Build Your Own Steampunk GPS

No dear reader, you haven’t been punked – or in this case, steampunked.

Today’s DIY cache tutorial will actually teach you how to build a Steampunk GPS – an object that would perfectly fit an imaginary Victorian age of brass or copper clockworks and steam-powered inventions that go far beyond 1800s technology.

According to Wikipedia: “Steampunk is a sub-genre of science fiction, alternate history, and speculative fiction that came into prominence during the 1980s and early 1990s.”

Specifically, it involves “an era or world driven by steam-powered machines” – often Victorian Britain – that “incorporates prominent elements of science fiction or fantasy”.

Imagine anachronistic machinery based on a 19th-century perspective –  Utopian dirgibles, anyone? – and futuristic innovations – such as the analog computer – all operated by goggle-wearing heroes.

Authors HG Wells and Jules Verne both wrote of steampunk ideals, though the example you’re most likely to recall is that hideous 1999 movie Wild Wild West starring Will Smith, Kevin Kline and Salma Hayek.

In a nutshell, it’s a steam-powered alternate history most often replicated today by modifying one’s electronic gadgets to make them look a century out-of-date.

Though before you pooh-pooh the idea, it’s worth remembering that the Chinese actually invented the compass around the middle of the 3rd century but didn’t begin using it for navigational purposes until the 11th century.

In this case, our inventor is Greek geocacher Richard Preen (GC handle r10n), who earlier gave It’s Not About The Numbers a sneak preview of his latest electronic puzzle cache.

After he began building puzzles last year, Preen found himself with some spare components so decided to create a functional Steampunk Compass.

“Based around a Arduino Duemilanove, this was a really quick and simple build. Taking a reading from a digital compass, the Arduino controls a servo to position the clock hand.”

Not completely satisfied, he remodelled his project into a Steampunk GPS, creating “a device that instead of pointing north will point to any programmed co-ordinate”.

Unfortunately while the end result is accurate only to 10 degrees, he says it “can always point you toward home, or to a geocache”.



Small servo
Arduino Duemilanove
HMC6352 Compass Module

Mini breadboard
Female-female hookup wire
Male Headers
9-volt battery and connectors
EM-406A GPS Module

4 clock cogs
1 hour hand
4 screws


“Couldn’t be simpler,” Preen says. The digital compass connects:
SCL to Arduino Analog pin 5
SDA to Arduino Analog pin 4
VCC to Arduino 5V
GND to Arduino GND

The servo connects:
Signal to Arduino Digital pin 10
VCC to Arduino 5V
GND to Arduino GND

To connect up the GPS module, either wire it up directly or “splash out and get a shield”.

“Everything can then be just placed in a box. The only important thing is that the compass module must be ‘fixed’ so that it moves with the box.”


“This was trial and error. I went to a local clock repair shop and got cogs that geared up from one around to four. This gave me a 90-degree turn on the servo – equal to roughly a 360-turn on the final cog.

“To test the positioning of the cogs before I started putting them into the final box, I put nails through them and tried them out on some scrap wood.

“Next I drilled a hole in the lid of the box, big enough to fit the shaft of the servo, and screwed the servo to the inside of the case. On the outside, I then screwed and glued the main drive cog directly into/onto the servo’s shaft.

“All the other cogs are free to rotate around simple screws. The final cog has an hour hand from a clock glued to the top of it. This allows the cog and hand to move together freely around the final screw.

“After playing with the gearing between the first and final cog, it turned out that moving the servo from 80 degrees to 145 gave a full rotation on the compass cog.”


Steampunk GPS – Source Code

“The attached code should pretty much speak for itself. Using the TinyGPS library, your current position is taken and the direction to the final location is calculated. Moving the box in another direction gives you the required heading, and this is what is displayed via the servo.

“Your final destination is specified in the attached code:
#define DESTINATION_LATITUDE ( 37.916553f * DEG_TO_RAD ) // destination imitos
#define DESTINATION_LONGITUDE ( 23.815278f * DEG_TO_RAD ) // destination imitis”


“I didn’t position the cogs close enough to each other so there is a little play between them. The hour hand can move about 10 degrees without the servo cog turning – so the acuracy isn’t quite as good as it could have been.

“But that aside it looks pretty good on my coffee table at home.”

Of course, you’ll definitely need some steampunk googles if you ever plan to operate this unit outdoors.

* You can also see Preen’s tutorials online at Instructables.


1 ping

Skip to comment form

  1. Dodger

    Every once in awhile I get overwhelmed by all the modern gadgets laying around. That’s when I go into a sort of anti-technology funk. Not that this is ‘anti-technology’, it just ‘feels’ that way. Really, it’s pretty damn clever. I like it!

  2. kjwx

    Have to agree with you there, Dodger – and I really want a pair of steampunk goggles. Now if only I had the skills to build one myself …

  3. Rod-on

    Do you need to use a servo sketch in this build?

    1. kjwx

      Yes, there’s a link to it above titled The Source. Hope that helps. Any other questions, don’t hesitate to ask. We’d love to see your finished product.

  1. The Maritime Geocaching Association » Build Your Own Steampunk GPS

    […] Mar 02 2011 Build Your Own Steampunk GPS By Dragoon Found this really neat article on NotAboutTheNumbers.com: […]

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

Switch to mobile version