NIXIE Radio Project 2014 – 2018
Links to documents:
- Schematics and pcb (Eagle)
- PIC software (XC8, MPLABX)
- NIXIE Tubes informations
Daily updates:
Status per day: June 10th
- Setup the MPLABX project
- Setup config bits
- Prepared the system.h with ports names
- Setup Oscillator to 16MHz
- Setup UART to 19200bd
- prepared putch function as per XC8 documentation
- tested uC Terminal :):) printf working (see Terminal logbook)
- SendByte working :):)
June 15th
- Setup the I2C connection
- Prepared the functions for I2C
- Prepared the functions for RTC Read Write registers
- Resoldered the Quart
- Read Time function
- Set Time function (Write to RTC)
- Prepared some Terminal library functions (number, char, setpos, clear etc.)
- Prepared terminal library UART functions
- Read button pressed from UART
- Read something from TEA5767 module 😀
October 23rd
- Prepare the NIXIE coding function
- Prepare the Display_TIME, VOLUME, FREQUENCY functions
October 25th
- Update the MPLABX and the XC8 compiler
- Try to use the code configurator
- Backuped the software
- Test the PWM output, controlled by uTerminal
- Did the 4..20 mA driver, with PWM output, controlled from uTerminal, with calibration option
November 5th
- Moved the indicator add to the display to the NIXIE_Update
- Updated the manual
- Start preparing the buttons logic
- Cleaned up the 4..20 program
September 22nd 2018
- MPLAB project restored, compiling OK
- Can’t download to the PIC, either board problem or PIC itself. Programmer was checked with other project
- TODO urgently, resolder the whole PIC board, maybe there are cold joints
- TODO Order shopping from MOUSER (including spare PICs, encoders, etc.)
September 23rd 2018
- Downloaded and updated MPLABX to v5.xx, big mess with XC8 v 2.xx, noit compiling the software
- Changed the tollchain to xc8-cc.exe, changed variable from bit to bool, changed interrupt descriptions, compiling works now!
- Try to move the PIC to the breadboard, but still not programming, suspecting malfunctioning uC
September 26th 2018
- Received the new microcontroller, programmed correctly in the breadboard
September 28th 2018
- Drilled and mounted the pcbs on the wooden board – for easy handling
September 29-30
- Corrected displaying (the nixie tube PCB symbol was mirrored, so the display masking was wrong)
- Tested different resistor and watched the whole playlist of Eevblog about nixie. Trying to solve the display problem
October 1st
- Finally discovered that the 1 symbol cathode and anode of the tube are swapped (don’t know why it was displaying at all :)) Swapped for one module and works perfectly (although one tube number “1” is dead)
- Ordered lamps IN1 and IN4
October 2nd
- Corrected the pcb layout in EAGLE, added also the connection to ground that was missing
- Rewire the leg 1 and anode on the second module, now all the lamps are displaying beautifully. (Except leg 1 on lamp 3 and 4)
- Set the time in the RTC (there’s a bit that need to be set that the RTC work) also changed the battery, now the RTC is working and displaying on the uTerminal
October 3rd
- Displaying time and blinking two neon in the middle
- Program function to read the button inputs and set the flags (buttons 1,2,3, UP, DN and ENCODER)
- Tested with the 1,2,3, buttons
- Tested also long press and holding
- Added switching between modes 0..1..2..3..4..5
- Added functions to set the clock and alarm, also switch the alarm to active/inactive (need to connect the other two buttons)
- Removed setting the time at the beginning of the code – this should be now stored in RTC with battery backup
October 4th
- Connected other two buttons, reconnect software for button 2 and up/down correctly
- Added the alarm comparing mode, entering to the alarm, beeping on the Terminal, acknowledging alarm
- Starting with calibration function – need to connect AnalogDiscovery – Saleae does not measure frequency acurate enough
- Display Calibration value, Entering Calibration mode in RTC, exiting Calibration mode on the Clock
- Added delays after every printf – not to block the uTerminal
- Added initialization of the buttons_OLD variables, After POR it does not go to setup immediately
TO DO:
- Add function to calibrate the RTC module (display value, change via up/down buttons, save to EEPROM, restore from EEPROM at the POR and store to RTC)
- Structure the software better, more in sub functions
- Show seconds while holding button 3
- Add function to auto calibrate the internal 100ms timer with RTC interrupt every minute 🙂
- Try to talk to FM module
- Connect the other two buttons
- Program entering the alarm mode and acknowledging, use uTerminal buzzer for now
- Program the other lamps for Setting and alarm blinking (the whole NIXIE blinking?)
- Display the actual time on the NIXIE, check functions for displaying Time, Alarm, blinking two bulbs every 0.5s
- Connect the buttons and program checking for press
- Program settings function, Press Setting – > Set hours -> Set Minutes -> Set Alarm Hours -> Set Alarm Minutes -> Done
- Connect and program 5 buttons (SET, ALARM, AUX, UP, DOWN)
- Setup the I2C connection
- Read the RTC
- Display RTC
- Read the UART data (buttons)
- Set the RTC
- Set the RTC alarms and INT0 interrupt from RTC
- Try to read anything from the FM module
- Prepare the NIXIE coding