Hi peeps, I have been wanting to make a small GPS device (GPS receiver and some sort of screen) that I could carry around for a while now, but I didn’t want it to be too big, so I made this. Mission accomplished.

This unit is explained in the video above, but is basically a GPS receiver, 1 CR1220 battery for the RTC on the GPS breakout, one of my Square Inch of Goodness boards, one 128×32 OLED display, three 6mm buttons, and a 400mAh Li-Po Battery (from Sparkfun). It even has FTDI headers on it so I can update the firmware with ease (with my own FTDI adapter!). The awesome part is that all of those things fit in an Altoids Smalls tin, measuring 2.15″ (W), 1.35″ (L), and .56″ (H), or 55mm (W), 34mm (L), and 14mm (H).

The GPS breakout board is from Adafruit and uses the MTK3339 GPS module, and man does it work well. I have had other GPS modules that worked, but it was a fight. If you’re thinking about putting GPS in a project, use this. They also have a great library for it. They even have the raw MTK3339 GPS module if you want to use your board. Read the Adafruit product page for all the features, there are many.

The 128×32 OLED display is also from Adafruit, it works well and has the typical OLED crispiness. Very easy to read, even in sunlight, for the size and you can even multiply the text size if you want to.

So I’m going up to NY in a few days, and I wanted a new and exciting way to talk with the TSA folks, so I figured this would work. (kidding) If only Hollywood had not trained everyone to think a gadget with a few wires and a flashing red LED, that they didn’t understand, was a bomb.. ugh. (not kidding)

*UPDATE – there is a set on Flickr for this with teardown pictures.

*UPDATE #2 – Oops, I forgot to put the link to the code on Github. 0_0

Date posted: July 15, 2012 | Author: | 26 Comments »

Categories: Arduino Cool Stuff LED Open Source Hardware PCB SMD Tools / Equipment

26 Responses to Really Small(s) GPS

  1. GeriBoss says:

    Holy crap, that’s … *speechless* … coolest thing ever!
    Some constructive criticism: doesn’t that tin box, shield the radio-waves and thereby disabling the device?
    Standby current is 15mA? That seems huge… what consumes that much power? You have nearly everything disabled… (most ingeniously, if I might add).
    (PS. TSA would rape you if you’d try to take it aboard lol)

  2. […] Really Small(s) GPS @ The Custom Geek. Jeremy writes – Hi Adateam! Here is a post on the small GPS receiver and OLED display I had on show and tell. There is also a Flickr set here. Code is on Github, and links to it are on the post. Filed under: arduino,ask-an-engineer,gps — by adafruit, posted July 16, 2012 at 8:23 am Comments (0) Try Adafruit's new iPhone & iPad app for makers! Circuit Playground! "Incredibly handy for anyone working in electronics. Perfect for engineers and non-engineers alike." Looking for engineers, makers and the builders of dreams? Try our Adafruit job boards. Join our weekly Adafruit SHOW-AND-TELL at 9:30pm ET every Saturday night! Then at 10pm, ASK-AN-ENGINEER with Ladyada and the Adafruit team! hr{display:none} .in_the_store{background-image: url("https://www.adafruit.com/includes/templates/adafruit/images/side_back.jpg"); background-repeat: repeat-x;width:634px;border: 1px solid #CCCCCC; float:left;} In the Adafruit Store: 12V 5A switching power supply Break-away 0.1" 36-pin strip male header (10 pieces) Snap Circuits® Jr. 100 Experiments […]

  3. Kenton says:

    Looks like a great project! What kind of battery life do you get with the 400 mAh battery?

    • Jeremy says:

      Thanks Kenton, I get about 10 hours with everything on, and about 34 hours on ‘sleep’. I could get more if I removed the power LED on the ‘Square Inch of Goodness’ board and actually put the 328 to sleep, but thats for the next one. 😉

  4. Hikaru says:

    Could you share your code. I’m new to programming and am working with the Adafruit GPS to build a speedometer. I see some things in you device that my help.

  5. Stephanie says:

    That is very cool! I put together something similar, but a little bit larger, with the MTK3339 module and the 128×64 OLED, to have a GPS on my wrist:

    I love your ‘square inch of goodness’ board, that’s brilliant.

    • Jeremy says:

      Thanks Stephanie, I saw that, uber cool! Great job on that. I have a raw MTK3339 unit sitting on my bench just begging to find a home on a wristwatch..

  6. Eric says:

    Nice one Jeremy! How about all of this with a LiPo charging circuit on a single custom board with pins to download the MTK3339’s internal log… lots of possibilities here. I could really use a hardened enclosure for a “Sport Small(s) GPS”. I’ve got a wireless waypoint recording prototype that could use waterproofing and a size reduction. I’ll get right on that…

    BTW – nice to see Kris using your LED controller for his pool project!

  7. […] Truly Narrow GPS Indeed Meager(s) GPS @ The Habit Geek. Jeremy make this electronics projects and designs electronic circuits – join Hi Adateam! […]

  8. […] Truly Narrow GPS Indeed Meager(s) GPS @ The Habit Geek. Jeremy make this electronics projects and designs electronic circuits – join Hi Adateam! […]

  9. MooreOrLess says:

    This is a really nice device in a tiny package! Thank you for showing this off to the world.
    A question about the direction data: is the heading calculated from the current postition in relation to the previous position, or can it give an accurate bearing standing still? I ask because I am considering making my own digital compass. If the GPS chip can give the compass reading when still, I would get the GPS breakout ($39) instead of the compass sensor ($30) and have a much more capable device that gives my direction and more. Otherwise, I will get by with the compass sensor alone, which is my primary requirement. Thanks.

    • Jeremy says:

      Thanks, the bearing is only valid if the unit is moving, it has no magnetic compass. I would also wait on getting the GPS breakout from Adafruit, they have a newer, better on this week. It’s way thinner. I’t’s out of stock now anyway, so it will be the new version when it comes back in. I don’t believe the new one will have a compass, so you will probably be better off with the compass module, but I don’t know for sure. Happy hacking!

      • MooreOrLess says:

        Thank you, sir. I thought that was what I was reading from the datasheets and such, but I was looking for confirmation.

  10. sudopeople says:

    Awesome little project Jeremy!

    How did you wire the 3.7 Li-Po to a 5v system?

    • Jeremy says:

      Hi there! I cheated. I’m using an ATmega328P-AU that will run at voltages from 1.8 to 5, and the OLED as well as the GPS run at 3.3V and both have 3.3 LDO’s as well as level shifters on them. So, 4.2V-3.7V works without messing with any extra regulators. I heart flexible voltage/logic inputs. 🙂 (thanks Ladyada)

      • sudopeople says:

        Wow, that’s legit.

        This is such a simple question but I don’t even really know how to phrase it let alone find the answer to it: from reading the batteries’ datasheets on Sparkfun, it appears they discharge to about 2.5v.

        What happens to the GPS and OLED as the voltage drops? Do they turn off before the battery is actually empty?

        • Jeremy says:

          Well, the battery actually only got down to 2.8V, and everything was still running like a champ. That battery has a cut off circuit, so it cuts out before dropping lower than 2.8V. I had about 10 hours of run time without and power save or sleep mode. 34 hours on ‘sleep’ mode. (the 328 doesn’t go to asleep, just the OLED and GPS)

    • MooreOrLess says:

      I was going to ask that question myself. Figuring out how to power a portable project without wasting energy or complicating the design has been a roadblock for me. Are there any good resources/tutorials on powering small electronics from minimal battery/circuit setups?

  11. Ed Manning says:

    Could you pin out a cable to USB so you could interface with Google Earth or another GPS type of computer program?

    • Jeremy says:

      Hi Ed, you could have data go out the FTDI cable, that plugs in your computer via USB. I’m not sure how Google Earth would handle that, although it’s just standard NMEA data. Hmmm… I think you just added another project to my list. 😉

  12. ericb1 says:

    This is really great, thanks for posting! I was wondering if there is a “data logger” mode? I would like to be able to switch to a mode where it can record a trip onto some microSD card or something that I can then upload to google earth?

    And of course, it needs to still fit in an altoids smalls tin. The cool factor is definitely required!

    thanks again

  13. sudopeople says:


    An OpenLog by Sparkfun would fit the bill (and probably the tin) quite well.

    Without adding any more hardware, the Ultimate GPS supports a 15 seconds interval logging mode. That 15 seconds isn’t adjustable but you can store 16 hours worth of data. A key consideration though is getting the data off; another place the OpenLog shines.

  14. albert says:

    I really like your project and is exactly what I’m looking to build. I’m just curious as to what kind of connections you used to connect the battery to the microcontroller, OLED, and GPS without the use of a breadboard? I’m also planning on adding a microSD breakout board, as mentioned above, and am thinking about how they might all be powered together. Thanks for your advice, and congrats!

    • Jeremy says:

      Thanks Albert, I connected all the components with 30 gauge wire. They are all 3-5V compatible, so a 3.7 Li-Po was a prime choice. And cheap. 😉