Clock build from IV-18 VFD tube and Arduino
Just build three of them so far, and the problem of synchronize between these clocks surfaced.
I modify the NTP code, now it will handle all of the timestame (uint64_t), also count in latency
then I can delay the decimal in timestamp so the system will synchronize in microseconds.
But the problem is that RTC chip handles Synchronize differently, the two RTC chip I'm using is DS1338(DS1307 3.3v version)
and PCF8563 , PCF8563 is tricky because it will not clear the counter after writing new time, so I have to wait the 1Hz clock output goes low, then stop the RTC clock, then write the new timestamp, also note that the time waiting for Clock output must also count in.
For DS1338, just write the second reg and it will clear the counter, much easier then PCF8563.
my latest solder work for this project :)
Although new version of IV-18 VFD seems working great, but its luminance is too small compare with first one with same voltage, I've check every thing from high voltage ripple to HV5812 scanning code, but still not found where the problem is.
When I comparing both tubes, it seems to have two types.
first one, I brought cuple month ago, which is military grade type of IV-18
the military mark is at the back of the tube.
second one seems to be civil grade of IV-18
other than the mark at the back, both plate that contain deoxidants and the white paint to cover the mark is less than military grade type of IV-18.
So, I'm thinking that if civil grade needs higher voltage than 30V?
current step-up design can handle up to 40V, so maybe I'll try how it performs on higher voltage.
I've just finish the new version of VFD controller PCB, which change the controller from MAX6921 to HV5812,
also because size limit, I remove the RTC IC.
HV5812 biggest problem is that the smallest package is SOIC , couple times bigger then MAX6921's SSOP,
almost cover half of the board.
Also, I've trying to make use of the Wifi module, currently the clock's setting is control from IOT service,
and the clock can upload light data to cloud (add a humidity,temperature sensor and you have a wifi sensor node)
I'm using Mediatek cloud sandbox here,
using string data,I can set alarm from cloud (Still have to press the button to stop alarm though)
and see the history light data.
So I've just finish couple things
First of all, the Linkit connect module is working and received NTP data, I've modify the code in to a library form(Github)
and some optimization
Linkit connect module
Second, I've add a photocell which monitor environment lux to control VFD brightness, the first one just close the VFD when light is under threshold but since I connect the blink pin on MAX6921, I can control the brightness using PWM, also the control is in timer interrupt, so i don't need to constantly update value and PWM.
Third,the hardware is all finish, but to use them all ,the program size become a big problem, currently the SD lib and Wifi lib is both too big to squeeze in 28K rom, after adding NTP time sync, the code size is already 27.3K not much room for SD card,
I will try to cut down the code size by not using USB CDC(Serial),which count for 4K of ROM.
Ver 1.0 on Linkit one on the left , Ver 2.0 standalone on the right
So adding a Linkit connect module and add a low cost RTC (both DS1307 or PCF8563),and a SD slot and some buttons, the next main board almost finish,(Still need a buzzer and a photocell) hope i can finish coding before Arduino Day event in Taiwan.
and by the way, the IV-18 board still have to make another version, because that SSOP version of MAX6921 is VERY EXPENSIVE and HARD TO BUY, so I'll try to build a version made of HV5812 and LM9022(equals to LM4871 by the way)
I'll just simply describe this PCB
first of all, it is basically like my wifi Arduino, which is MT7681 with Atmega32U4
second, I have add a SD card connector or a SPI flash footprint to store the web page
and a RTC IC
so this time I've add almost everything to control the VFD tube
fiirst is the little MCU Attiny84, and continues to scan IV-18 using MAX6921 SSOP version
small enough to fit at the top , also added a optional RTC
and the step-up is build-in to this PCB
The first part of the second version
that is the holder for IV-18,
in this part ,I've add an Attiny44 plus a MAX6921 , and using i2C to communicate with arduino
You can see from left to right is IV-18 breakout , Voltage step-up ,Arduino UNO
and the Step-up IC I choose is Ti LMR64010 ,a neat step-up IC up to 40 VOUT
This version still have some problem ,
First, the luminosity of the tube is not even, that is because I'm using DC to supply filament
and the current is too low, so that the voltage drop is big.
Second,the current limit resistor is larger wattage then a 0603 resistor can handle.
Third is the program, attiny seems to lost some data,cause the program to breakdown.
I've add the flag to indicate the first byte, but that cause attiny too slow to response the data
(because the attiny will enter SKIP DATA-REFRESH-SKIP DATA cycle), I'll try to cut down the total data need to transfer, hope that will help.
also when Arduino calling Wire.endTransmission(), sometime it return 4, and cause Arduino to freeze.
The last one, ADDING ISP
So for the next beta, I'll add two part
First is the MAX628, for switching filament electrode
Second is adding the step-up circuit, because after I remove SOIC ver MAX6921
PCB area is quite enough.
Well,the first version has many thing to improve
here is some point,
first the RTC can change to DS3231M or DS3231 ,which reduce the component count and improve the percision
second ,in the PCB layout, the inductor is way too far from the Step-up IC
third the Step-up IC can change to something better
fourth the VFD controller need scanning ,so I want to using a Attiny to control MAX6921
These may improve at the version 2