Arduino GPS Clock

A while back I prototyped a ublox GPS unit with an Arduino Nano on a breadboard. I wrote up some thoughts here. The ublox GPS unit streams messages on a serial line that contain a variety of time, date, location, altitude and speed fields. So one obvious application is to make these parts into a desk clock. The big advantage of a GPS clock is that it never has to be set. Just power it with 12v and you know the time is correct. Well at least until the next Carrington Event.

Last week I built up the GPS ublox module onto an Arduino Uno in an Altronics K9675 prototyping case. I bought this nice perspex case and matching LCD for my teenage son as a way of demoing Arduino. Once you have an Arduino with an LCD connected, a lot of things become possible.

I made up a Veroboard ‘shield’ to get access to the Uno pins I needed, and soldered on a 7805 regulator for the LCD. I ‘mounted’ the Ublox 6m GPS breakout on four Vero tracks and wired them up to Uno serial tx/rx and power. I connected up the LCD in the usual way. I see from the pictures that the GPS antenna is supposed to sit on the bottom of the GPS PCB, but I put the pins in the other way. Oh well, I’ll just have to work out how to physically support it. That’s about it for melting solder.

Time in UTC is present in every NMEA message header, regardless of whether the unit has a GPS position fix. So I used the header timestamps for my time display. I initially thought to write code to apply the Daylight Savings Time offset. Do the EST/DST transitions happen on the same date every year? Of course not.  I left it displaying Eastern Australian Standard Time (EST) for now. A push button could be used to apply the DST offset, with the state stored in EEPROM.

There is code for some other functions in my script as well. Gridsquare is one. Distance to a hard coded lat/long is another. Again, a push button could be used to cycle through various data on the lower row of the LCD. To keep it simple I added code to cycle the data displayed on the lower row, changing every 10 seconds. My unit shows lat/lon; gridsquare, speed and altitude; distance to home, school, Melbourne GPO, Sydney and London.

The rough wiring diagram below illustrates how it is wired. The row of numbers across the top are the LCD pins. The parallel vertical rows of small squares and labels are a subset of the Uno connections available on the 0.1″ headers running down either side of the Uno.  A 7812 regulates 12VDC to 5V for the Uno and LCD including the backlight.  The 470 ohm series backlight resistor was reduced to 33 ohms on experimentation.  The script will be available on github.

5 thoughts on “Arduino GPS Clock

  1. wb8nbs says:

    I’m interested in this project. Could you measure the power drain? Wondering how long it will run if powered from one of those single 18650 cell phone boosters.
    You can make the assembly much smaller by using one of the Arduino clones that have enough I/O pins to solder the processor directly on to the back of the LCD. I have used a Teensy, but I think the Adafruit feather would work also.

    Liked by 1 person

    • Paul Taylor says:

      Hi again, sorry for the delay, just saw your comment. It draws over 100mA but most of that is the LCD backlight. I agree that you could make it much more compact and lower power. Let me know how you go if you proceed. My code on github will get you going . 73 VK3HN.


  2. […] QRP transmitters (which in my modes of operation have low duty cycles). And perfect for powering my Arduino GPS Clock. At an amp or so the 2N3055 is loafing. I thought of cutting a circular hole in the dome above the […]


  3. Ronny Larsson says:

    Hi Paul
    is there a way to get a 8 digit readout for the Maidenhead Grid Square
    Ronny / DE SM5OEM


Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

Shack of VK2KMI

Ham Radio Blog of VK2KMI

Ham Historian

A passionate amateur looks at Melbourne history


My journey of repairing and recycling anything I put my hands on that I believe is still useful. Not just hardware, but including software with relevant content and issues in the field of Cyber Security, Vulnerability Scanning and Penetration Testing.

G4YDM Ham-Radio and SWL news

Radio craft, homebrew, QRP/SOTA, AM

Amateur radio experiences with VK1DA

Tj Lab


The Microscopic New Yankee Make Shop

Bits of technology and illogic by WA2MZE

Paul Gacek



This blog is no longer in use!

%d bloggers like this: