The Nixie Tube Clock by Nuvitron
At Nuvitron, I led the electronics development of The Nixie Clock hardware included in some of their models. This repository starts from the production version of the clock circuit, and includes further improvements in the form of:
- Code refactoring
- Hardware tweaks (pending)
This project is based on an ATmega324pb MCU from Atmel (now Microchip). The standard AVR toolchain for Ubuntu Linux was used. No bootloader implemented. Not tested under Windows or Mac.
- avr-gcc for compiling and building.
- avr-libc for AVR libraries.
- avrdude for programming, using usbasp programmer or alternatively the official AVR ISP MK2
There're many guides on how to install and set-up the toolchain. Here's one of many guides available.
Sidenote: The ATmega324pb MCU is NOT supported by default, neither by AVRdude nor by avr-gcc, thus, a few extra steps need to be performed in order to get this toolchain to work properly. It's just a matter of including some extra files in the proper locatios to fully support the MCU:
- AVRdude: it uses a configuration file that includes all MCUs recognized by the program, among other things. Mine is at
/etc/avrdude.conf
. Edit it (with root proviledges) and add an entry for the ATmega324pb. Use the ATmega324pa as an example, which inherits most of the properties from the ATmega324p. The signature for the 324pb is1e 95 17
. Alternatively, I've added myavrdude.conf
to the repo, here. - avr-gcc: A device specification file must be included. My path:
/usr/lib/gcc/avr/5.4.0/device-spec/
. The missing file is calledspecs-atmega324pb
and I found it in a Windows installation of Atmel Studio, the Atmel IDE for Windows. Within this file there's a couple of dependencies pointing to files in the avr-libc path. - avr-libc: Three files are needed. Again, I found them in the Atmel Studio Windows installation path. My paths for these files are:
/usr/lib/avr/include/avr/
must include the fileiom324pb.h
, which is the memory mapping for all MCU peripherals and special registers./usr/lib/avr/lib/avr5/
must includecrtatmega324pb.o
andlibatmega324pb.a
.
Sidenote 2: The latest version of Atmel Studio (7.0, at the time of this writting) doesn't include support for the ATmega324pb out-of-the-box. Instead, the user must install an additional package to fully support it. It's called "Device Firmware Pack", and it's installed within Atmel Studio in the "Device Package Manager" window. Search for ATmega_DFP and install it. Mine was version 1.2.272
. Once installed, the previously mentioned Windows files can be found at:
\<install-path>\Atmel\Studio\7.0\packs\atmel\ATmega_DFP\1.2.272\include\avr\iom324pb.h
\<install-path>\Atmel\Studio\7.0\packs\atmel\ATmega_DFP\1.2.272\gcc\dev\atmega324pb\avr5\crtatmega324pb.o
andlibatmega324pb.a
\<install-path>\Atmel\Studio\7.0\packs\atmel\ATmega_DFP\1.2.272\gcc\dev\atmega324pb\device-specs\specs-atmega324pb
For the sake of completeness, these files are also included here.
- src: contains all the code files needed, including library files.
- special: contains all "additional" files to support the MCU.
- img: some images of the project.
- docs: GitHub project page.
- output: not included in the repo. Automatically created once the Make recipe is executed.
- MCU: ATmega324pb
- (pending)
Released under the MIT License - 2020 Jose Logreira