Building a clock really is about as textbook as it gets when it comes to electronics projects – especially on the internet.
I however have never build a clock (not intentionally anyway… I wouldn’t count the measily effort of my smartwatch!) so I’ve decided to have a go at one. Instead of doing one of the standard clocks though (7 segment, VFD, Nixie, LED…), I’ve decided to go for a dot matrix built out of neon bulbs! From what I gather, a neon dot matrix has been attempted once and of the one result I can find, there don’t seem to be any schematics of how it was accomplished. I can understand why as a neon dot matrix uses a reasonably wide array of electronics knowledge – high voltage switching, high voltage generation, display scanning and circuit design.
Having previously designed low pixel number sets, I’ve decided to go for 4x 4×5 digits for a total of 80 bulbs! To make sure I don’t need to use 80 individual drivers and resistors, I’ve gone for a matrix form – like you would find on any LED based matrix requiring a total of 5x high voltage PNP transistors and 22x high voltage N Mosfets. For the Mosfets, I’m using the standard BSS123 rated up to 100V with an on resistance of 10ohm (negligible compared to the series resistance of 220k). For the high side PNP transistors, I’m using the standard MPSA92. These won’t need to be switched particularly quickly and won’t need to source much current.
To drive the Mosfets, I’m using 3x 74HC595 shift registers. Because the PNP transistors need to be pulled down to ground but their bases allowed to float to near the boosted voltage, N Mosfets are used to pull these bases down with their gates controlled by the shift registers. I did however make a minor design issue which causes spurious results in simulation which consists of not including a resistor from the PNP bases to their emitters. This means that the turn off time is pretty slow as the PNP transistors need to charge up the Mosfet drain capacitance through their base giving for a sluggish response. Hopefully this isn’t a major issue on this revision though if it is, I can just solder some resistors on carefully.
As per usual, all of the actual time keeping will be done using an STM32F0 microcontroller. A steady clock timebase will be kept using a standard 8MHz crystal which will be used to drive the RTC. As there is no need to worry about battery life, the microcontroller won’t need to sleep meaning the HSE oscillator can be kept permanently on. The board also includes three tactile push buttons which I will eventually be able to use to change the time and set alarms. Finally, a very crude PWM speaker driver is on board though here lies another minor issue – due to transistor shoot through, there will likely be lots of power supply disruption when using the speaker so I may end up not using this section, or I might bodge in an RC/LC filter between the PNP emitter and V+.
To generate the actual high voltage, an onboard boost converter is included. While it isn’t going to be particularly efficient, it should hopefully be able to generate ~95V with enough current to at least drive a single neon (rated at 300uA). I say a single neon because I can program individual illumination, hopefully at a fast enough rate for it to not be perceived.
Board layout – it wasn’t the most fun route!
Schematic 1 – I had to split the board into a the microcontroller side and the shift register/neon side
Schematic 2 – The neon and shift register side
Using my simple boost sketch, I was able to generate a high enough voltage (with a smidgen of external circuitry…) so strike two neon bulbs to get an idea for what they will look like! The holding voltage seemed to be ~60V (3 bulbs tested) which is quite accurate with some sources I’ve read so hopefully boosting to 95V on the real thing will be enough to successfully strike everytime.
They look so cool! The left neon had a 100k resistor in series and the right neon had a 220k resistor in series. Due to DC drive, only one of the electrodes lights up.
A small improvement on the simple boost circuit. For the higher voltage, an IRF840 was used with a 2N7000 Mosfet used to generate a higher drive voltage (5V vs 3V). As I didn’t have any high speed high voltage diodes, a poor 1N4008 needed to suffice – ewww!
I’ve already sent off for these PCBs so hopefully they should arrive in the next couple of days with my motor controller ones!