Where you at?

Probably the most common phrase ever uttered on a cell phone. Competes with “You still there?” of course. 🙂

Anyway, back to the show.

I built myself an Arduino-based GPS receiver last night. I used the GPS Logging Shield from Adafruit (all hail Ladyada), an EM-406A GPS module from Sparkfun (Ladyada was out of stock, and Digikey was more expensive, for shame). The shield went together without a hitch. I used stacking headers on it, with the intention of putting a protoshield on top of it, but I think that this will not be the long-term solution; the GPS shield in “prototyping mode” can’t really be stacked-upon, and in “finished project mode”, I won’t need a protoshield, because I can just solder headers onto the GPS shield (not to mention blocking the antenna defeats the purpose).

I might desolder the ICSP header from the Arduino; it’s irritating to remove the shield every time you want to get at the SD card.

True to form, though, the shield works really, really well. The example sketch is enough to get something fun done. Within minutes of finishing the soldering, I had a satellite lock and tracking log on the SD card. I GPS’d my way to work today, and was duly impressed with the data I’m getting off the chip.

The values are a little shaky when I’m walking or standing still. But for driving down the road, it worked pretty well. Perhaps taking fewer readings when the speed drops would help calm some of the jitter.

I also think it’s only accurate to about half an arcsecond or so, which sounds like a lot, but it’s about 200′ (62m). That seems pretty loose. I’ll have to do some more testing.

The SD card eats up 4 Arduino pins.
The GPS needs “around” 5 more (TX, RX, PWR, LED1, LED2). One could get away with using fewer; RX (data *to* the GPS) could be tied to ground, and the LEDs are not strictly necessary.

Anyway, that leaves 5 digital pins on a standard Arduino. 3 more go to drive the LCD (I’m giving up on the diode/resistor AND gate thing, because it makes the LCD software more difficult), and I need at least one for a “select” button. That means that, even if the Arduino and GPS share serial pins, I’m down to 1 digital pin left. Time to break into those analog pins! 🙂

Honestly, I can’t think of much more hardware that I want for a GPS tracker. Maybe a button for the LCD backlight. Maybe a “quick waypoint” button. shrug.

Eventually, I’d like to have some or all of the following features:
– NMEA passthrough (PC sees it as a GPS module)
– PC sees it as an SD card reader
– save waypoints
– current heading/position
– distance/heading to waypoint
– speed-controlled logging (reduce jitter when stopped or walking)
– menus controlled by pot/button

for now, I have a little track logger to play with.

This entry was posted in Electronics, Knowledge, Making, Science and tagged , . Bookmark the permalink.

Leave a Reply

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