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.


3 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 […]


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 )

Google+ photo

You are commenting using your Google+ 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

Homebrew Amateur Radio

Homebrew Amateur Radio and Electronics.

W3JDR Bright Ideas

For Ham Radio Experimenters


Amateur Radio and Stuff


My Projects

The Dragon and The Phoenix

Bard's Journey into the Collective Subconscious and How It Shapes Our World

Bryce Dombrowski's Projects

electronics engineering and more!

VK1 SOTA on 1.2 and 2.4 GHz

Andrew VK1AD | Amateur Radio | 23cm 1296 MHz | 13cm 2.4 GHz | Summits on the Air


Design thinking, enterprise architecture, systems thinking, theory and practice.

Ripples in the Ether

Emanations from Amateur Radio Station NT7S


Fresh hacks every day

%d bloggers like this: