The firmware for my LED Sign / Clock project is taking shape. I’ve worked out my initial wishlist of features, and put together a basic menu structure. I figured a menu is the easiest way to access a lot of options, while only relying on two buttons.
The basic menu consists of options for setting the time and date; minute, hour, day, date, month, year. The basic options are pretty self explanatory. I have also planned some more advanced options:
1. Adjustable display brightness – Varying the duty cycle and refresh rate of the matrix can effect its brightness. I need to make a simple scale for these variances to allow for two or three brightness levels.
2. Adjustable scrolling speed – The program draws the same information several hundred times per ‘scroll’, changing this counter affects how fast the display appears to scroll.
3. Selectable time format – User can choose between 12 hour AM/PM time and 24 hours ‘Military’ formats
4. Message Mode – User can enable / disable scrolling messages as well as display a single message, a random message or messages in sequence.
Other than that, the code is still pretty basic. I’ve completed a bunch of internal fixes, like the scrolling code now handles messages of variable lengths. up to sixteen characters. I’ve also created i2c eeprom reading routines to extract menu prompts and other text strings I’ve stored in the eeprom to save flash space on the chip.