Macetech’s ChronoDot is a Real Time Clock module for projects requiring highly accurate time keeping and measurement. The ChronoDot uses the DS3231 chip, which features a TCXO to compensate for variations in temperature which affect normal oscillators, like the ones in most microcontrollers. The DS3231 uses simple I2C commands and registers for storing and retrieving time, but also features a variable output that goes all the way down to 1.000 hz for low power, interrupt style timekeeping applications. With the provided watch battery, the ChronoDot can keep time in idle mode for up to 8 years.
Normally the ChronoDot comes mostly assembled, requiring you to only solder on the watch battery. However, due to a manufacturing mistake, Macetech is selling a version with the header pins on the wrong side they call the ChronoDoh. This module is currently nearly half off the regular price of $14.99, which makes it a great low cost addition to a project. Macetech has sent us a couple of these modules to demonstrate how functional they still are.
Because of this mistake, using these parts as a breadboard tool is made a little bit harder, as the silkscreen pin names are only on the “top” side. However, if a project is designed around this part, or if alternate tools such as a wire ribbon or probes were used, this problem would disappear. It would also be possible to desolder the header pins and remount them, but there is always the possibility of lifting the pads, or otherwise causing damage to the parts whenever desoldering is involved.
We set up one of the ChronoDoh modules as demonstrated, and pinned out the I2C connection using a “right side up” ChronoDoh as reference. The Dot must have an external VCC signal to respond to I2C commands, and will only silently keep time when powered by the watch battery. For the ChronoDo(h/t), sample Arduino code and schematics are provided on Macetech’s website, making initial set up and testing a breeze. We used a Teensy++ running the Teensyduino loader to simplify the process. The sample code simply displayed the time reported over I2C by the Dot, which seemed to be the time since the Dot first received 5V power (when it was most likely initialized). The chip reported that the time was 00:01:55, which meant that it was time to update the registers. Unfortunately, this is where the sample code leaves off, though the provided documentation does provide a list of all of the relevant registers (page 11 of the datasheet).
After setting the I2C registers, the ChronoDoh was correctly keeping time, so we decided to test the accuracy. We set up the other module, put it in our freezer for a week, then tested the two against each other. Wonderfully, they both reported identical times. Though unscientific, this is backed up by the ongoing accuracy test by the makers of the DS3231, which claims an accuracy of “± 2ppm at 0C to +40C (~1 minute per year)”.
Hack a Day review disclosure: Macetech gave us a couple free ChronoDohs to review for this post.