I’ve been working hard on Xronos Clock 3.0 for almost a year and while I’m not ready to release hardware just yet, I rewrote huge chunks of code making big improvements in how Xronos Clock works. Biggest one was automatic DST adjustment and support for all US (and soon world) time zones.

However at some point I realized that new code can be made compatible with Xronos 2.1!

So I made yet another rewrite and finally was able to make firmware that with few adjustments can be loaded onto Xronos Clock V2.1 as well as upcoming V3!

Here are main improvements of new program:

  • Supports both DS3231 and DS1307 RTCs chips
  • DST and all US Timezones are now supported
  • Supports both RFM12b and RFM69w Trancievers (although RFM69w can cause clock to lock up due to SPI conflic with SD library)
  • Radio settings (such as frequency, node IDs, etc.) can now be changed in Setup menu
  • Most definitions moved to xronos3.h file for cleaner look
  • TH02 temperature and humidity internal sensor now supported
  • Button logic was rewritten, holding INCR button for 2 seconds will activate accelerated incremental changes in settings of the time, alarm, etc.

Beta version of this code is available at my GitHub repository.  Feel free to try it and let me know if you see any issues!

There are just few things that you need to know before using it.

  • If you plan to use Arduino IDE to upload code, you will need to use version 1.6.10 (or later). I’ve tested it in 1.6.5 and it doesn’t compile.
  • If you just want to upload .hex firmware, you will need AVRude 6.3 (or later). It comes with Arduino 1.6.10
  •  You must download latest Time library (DS1307). Old one doesn’t work with Arduino 1.6.10, plus new one supports both DS1307 and DS3231 RTC chips.
  • Timezone library is also required.
  • It’s very important that you Initialize EEPROM with default settings to load all timezones. You can do it from System Menu (Reset Flash).