Skip to content

Ultimate GPS Tutorial

johngarchie edited this page Jan 23, 2015 · 1 revision

Installing the Ultimate GPS is not too different from the procedure described in the Adafruit Learning System, so that documentation should still be helpful. But here is a description of the process for the Ultimate GPS breakout.

On the software side, you'll need to choose a firmware, and the required hacking/configuration will depend on the particular firmware you choose. I am aware of three firmware projects which support GPS.

The Adafruit GPS firmware will run on the ATMEGA168V that comes with the Ice Tube Clock but the code requires modification to compile under recent versions of GCC. Also the Ultimate GPS runs at 9600 baud, but the Adafruit code expects to connect at 4800 baud. Therefore, the line in iv.c that reads "uart_init(BRRL_4800);" must be changed to "uart_init(BRRL_9600);".

Two alternative firmwares support the Ultimate GPS Breakout and compile without modification, but both require an ATMEGA328P-PU. An ATMEGA328P-PU costs around $10 from Digi-Key or Mouser ($3 + $7 shipping). In my opinion, the additional features provided by these firmwares far outweigh the cost and inconvenience of replacing the microcontroller.

The first of these alternatives is my xmas-icetube firmware, which supports the Ultimate GPS baud rate by default. Follow the instructions in the README file and be sure to uncomment the GPS_TIMEKEEPING macro in config.h. Please let me know if you have any difficulty. (Note that the xmas-icetube firmware is so named because I received the Ice Tube Clock as a Christmas gift. The firmware works perfectly well at other times of the year.)

The second alternative is William Phelps' firmware, which also supports the Ultimate GPS out-of-the-box. If I remember correctly, the GPS option must must be toggled from "gps off" to "gps on96". William is a regular on these forms and would probably be willing to help if you have difficulty.

On the hardware side, there are many ways to install the Ultimate GPS, but the following describes my method.

The Ultimate GPS is small enough to fit inside the acrylic case, so I chose that option. To install the module, I soldered wires to the GPS's VIN, GND, and TX pins and glued the assembly on the upper left corner of the rear acrylic piece. For glue, I like marine silicon which is overkill, but always seems to work well.

Ultimate GPS Module glued to case

To run the wires, I cut a small notch in the clock's PCB board.

Small notch cut in main board

To connect the GPS, I used the ground and power directly from the voltage regulator, and the GPS's TX line was connected to the ATMEGA's RX pin. Drawing GPS power before D2, means that GPS power is cut when the clock loses external power, which saves the clock's internal battery. The battery is still useful because the GPS needs a minute to acquire satellites after external power is restored; without the battery backup, time will be incorrect immediately after a power outage. And on the xmas-icetube firmware, enabled alarms will sound during power outages if the backup battery is good. (On the photo below, ignore the red and yellow wires which do not loop around the PCB; they are for the extended battery hack)

GPS wires soldered to main board

The last steps were assembling the case and setting the timezone. On my firmware the timezone does not incorporate daylight saving time and is specified relative to GMT/UTC under "cfg regn"/"set zone" in the menus. So the zone would be "-05h 00m" for New York and "00h 00m" for Lon-don. Daylight savings time may be specified under "cfg regn"/"set dst" and has four settings: "dst on", "dst off", "dst usa", and "dst eu". The first two provide manual DST control; the last two automatically toggle DST in accordance with US or EU rules.

Assembled clock with GPS

Hope that helps. Good luck and happy hacking!