Introduction: Method and Apparatus for Mass-synchronizing Clocks

Most of my Arduino clocks (e.g. Nixie clocks, BookClock, and obviously Wise Clock 4) have on-board Bluetooth, intended mainly for setting up the time, without the need for buttons (the lousy holes I would drill in the enclosure may negatively impact the aesthetics). To set up the time, simply send the command TIME=hh:mm:ss, where "hh", "mm", "ss" are the hours, the minutes and the seconds, respectively. But setting up multiple clocks is a tedious process: pair your Android tablet with one clock at a time, then (from BlueTerm) send the command that includes the correct time. Then repeat for each clock.

What if you could broadcast the TIME=... command? And that command to include the most accurate time, acquired from GPS? You got it, this IS the "method".

Next, to the "apparatus", a hardware device that consists essentially of 3 parts: GPS receiver, ATmega 328 microcontroller (as used in Arduino Duemilanove) and Bluetooth master module. Putting them together is trivial, since both GPS receiver and Bluetooth module communicate through serial ports. As protoboard I used the XBee Shield from seeedstudio because it had a socket for my BTBee (plus the 3.3V voltage regulator) and also ample space for processor and GPS.

The GPS module I used is an older (now discontinued at the major online stores, but still available on ebay) Fastrax UP-501 GPS module I already had laying around. But any GPS receiver should work as well, including the Adafruit Ultimate GPS Breakout. (Adafruit has a great tutorial photo on connecting the UP-501 GPS module.)

The "Bluetooth master module" is a re-programmed HC-05 (see the datasheet) as master, with CMODE=1 (for broadcasting). This instructable will definitely help on this respect.

The device is small enough that it could fit in an Altoids tin if the GPS receiver is soldered directly to the board, without headers.

The sketch, attached, uses SoftwareSerial library to communicate with the GPS module (Rx on D3, Tx on D4) and TinyGPS library to extract the time from the NMEA sentence. The BTBee module is connected to the hardware serial port (D0, D1).

Power on this "mass synchronizer" once in a while, and you will keep your Bluetooth-equipped clocks synchronized and accurate.