# Design Questions for a Nixie Tube Clock

I'm making a Nixie Tube Clock as a project for a class. The whole point of the project is to essentially to do it from scratch. I'll be designing a PCB for the project and I want to put the microcontroller chip directly on the PCB instead of simply using a standalone microcontroller. I've never done this before so I'm just looking for some advice for what is easy to use. Not just from the programming language but also how do I get the program onto the board, connect I/O, and make sure the chip doesn't lose the program every time I disconnect power.

I've programmed in MIPS assembly, C, and C++ before so any chip using those or something similar would be fine for me.

I was thinking about a Atmega328P with the Arduino bootloader already on the chip but that may be overkill for my project.

Thank you for the help!

• Vague as all get-out. Perhaps you could do some research yourself? – Ecnerwal Feb 29 '16 at 5:27

An ATmega328P is a good choice, as there is a free software toolchain as well as the Arduino IDE if you are more comfortable with that, and programmers are cheap (~$15). Additionally, there is a lot of community support and it is very easy to get an ATmega up and running on a board by itself. Take a look at the Arduino UNO schematic, and strip out the things you don't need. Basically, at a bare minimum, it boils down to the following: • A stable logic voltage supply (5V or 3V3 would be a good choice). • A way to program the device. Easiest way to do this is with an ICSP header (6 pins, programmers are cheap, very easy to use). A crystal is optional. The ATmega328 has an internal oscillator. Because you don't need a high clock frequency, and I presume you'll be using an external RTC, you don't need a stable or fast clock. You'll need to choose the peripherals for your clock: I'm guessing you'll want an RTC and some I/O expanders (or shift registers) to drive the clock. make sure the chip doesn't lose the program every time I disconnect power. Every microcontroller (within reason) has non-volatile (flash-based) program storage and will retain its program code through power cycles. Other reasonable microcontroller alternatives: • If you need less horsepower, an ATtiny would be a reasonable choice. However, most ATtiny's will also have less I/O, which might be an issue. The toolchain/programmer is the same though. • If you want a more modern/capable/fast MCU, look at ARM Cortex M0+ and M4 chips. I would recommend STMicro or perhaps Freescale (now NXP) Kinetis chips. Keep in mind that STMicro programmers are much cheaper than Freescale programmers. • If I were to use a battery pack for power would that be stable enough as a logic voltage supply or would I need to do something to clean up the signal before sending it to the Atmega328P? I wasn't planning on using an RTC to set the time of the clock. I was going to set up a series of switches and flip them to create the binary representation of the time I'm trying to set and then flip another switch for the clock to recognize the input. I have to have some way a user can input as part of the project. – user3055889 Feb 29 '16 at 4:26 • How long are you wanting this clock to run? Nixie tubes and batteries are not a usual mix. Without an RTC, it isn't going to be much of a clock i.e. it won't keep time. It's possible to power an ATmega directly from a battery, but you'll need to design for a significant voltage droop over the lifetime of the battery (no ADC, no communication with anything that requires a stable voltage). – uint128_t Feb 29 '16 at 4:29 • Would using a crystal be worth adding in? Sorry the comments are hard to read I tried to add a blank line between the two questions but whenever I saved it was gone. – user3055889 Feb 29 '16 at 4:30 • I can scrap the battery idea if it seems unreasonable. That was strictly for aesthetic so I didn't have a cord running from the clock. – user3055889 Feb 29 '16 at 4:31 • The ATmega328 has an internal 8MHz oscillator. Unless you need the extra cycles (which you don't, in a clock), why bother? – uint128_t Feb 29 '16 at 4:32 I would recommend to look at STM32F030K6 - It also has 32 pins, RTC, internal clock, but much cheaper (~2$), has easy to use configuration utility - stm32 CubeMX(+cubeF0), you can programm it with serial port.