I needed to come up with something to send display data serially to a clock that I had built using ‘Smart Sockets’ and B-7971 tubes.
Previously I had some success using a WeMos D1 as an NTP sync device for other clocks. The NTP device would connect to WiFi, fetch the time from NTP sources and send GPS style strings to a clock. I knew I just needed to develop this scheme for the smart sockets so off I went.
Before too long I discovered that my lack of skills in this department led me to all sorts of dark places – mostly ending up with watchdog timout errors. I needed an alternative strategy.
I could have spent time learning how to deal with the timouts but that sounded like hard work (I’m not as young as I was when I was coding in 6502 and Z80 assembler in the early 80’s).
I decided instead to split the load. A NodeMCU-12E would continue to do the NTP Sync and I would use a separate controller such as an Arduino Nano to run the displays.
This was no small feat in itself as I worked out that I needed to learn about ‘state machines’ which put simply is a method of letting the micro run around the main loop very quickly and depending on the ‘state’ of the machine, send output as required and modify the state accordingly so the micro is never waiting for anything particular.
I am certainly no expert but by using this method it is possible to emulate a kind of multi-tasking.
Before long I had a NodeMCU sending time sync strings to an Arduino Nano which in turn was sending formatted serial data to the smart sockets to display time, day, date, etc.
I expanded the NodeMCU side so that it read temperature and pressure from a BMP280 sensor and passed that down to the Arduino Nano for display purposes. Random words were also added.
The NodeMCU, BMP280 and Nano were all put on to a single board and thus ‘Frankontroller’ was born.
Further enhancemnets included adding some transistors to switch Neons on and off, outputs to control the HV power supply and inputs to listen to a PIR device. This was Frankontroller II
I fully accept that it has to be possible to combine the whole lot on to something like an ESP-32 but that’s just not me 🙁
As things progressed and I wanted to do more I ran in to a problem where I had run out of headoom in the Arduino Nano. An alternative micro was needed. I looked at the ‘Blue Pill’ but ended up going way over the top and went for the Teensy 3.2. Total overkill for what I needed but it works and it’s so very quick! The first Teensy 3.2 version was Frankontroller III.
I have just made a trimmed down version of Frankontroller III for a clock based on Beckman SP-101 displays which had no need for any neons so a lot of the additional transistor outputs were removed but I have added my own 5V power supply circuit and a NCH6100HV 170V power supply module is fixed to the same board. I also switched the NodeMCU to a WeMos D1 Mini – they are both essentially breakout boards for an ESP8266.
The madness continues….