Necessity may be the mother of invention, but being cheap is the mother of glorious hacks.
My friend Mike and I went bike riding two weeks ago using a route from a book. This was awkward because each of us could only retain three or four instructions at a time (“right? left? Mountain? Peach Orchard?”). We had to check the map so often that progress was slow and uncontinuous. Ah, but for a handlebar-mounted gps with mapping!
Ouch! Ok, nevermind.
So I did some googling, and discovered that someone had made some Garmin-specific files of Boston area bike rides. Char and I own the cheapest Garmin, the eTrex. No mapping, no magnetic compass, no altitude, just location data and route information. I got it at target thinking we might do some Geocaching, but we haven’t done any yet. The problem was, how to get the maps into the GPS?
Cheap-ass serial cable! I learned that the data port on the Garmin is simply a serial port: Rx, Tx, Ground. Wire those terminals to a 9 pin serial connector (everyone has a 9 pin serial cable lying around in a drawer somewhere of course!), and you’ve saved yourself $38.00. My cable isn’t very well made and could use a little solder to improve the connections, but right now it works well enough.
While it’s nice to use other people’s maps, I really wanted to create my own. As you can see by my previous post, the solution was handed to me on a silver platter, as was the problem of format conversion and linux-based uploading. This weekend I created a short map on the website, uploaded it to the GPS, and Char and I followed the path around the neighborhood. The problems I noted after that walk led to the development of the python script I wrote.
The last problem was the one I had been avoiding thinking about: mounting the GPS on my thick handlebars. The sanctioned mounting kit fits handlebars of one-inch, but mine are larger. After some fiddling, it appeared that I might be able to attach the device to the stem of the bike. Maybe zip-ties could do it?
Yes! And in the event of catastrophic zip-tie failure, the lanyard is secured to the stem so the GPS doesn’t go careening to the ground.
Had I gone the “legit” route, I would have paid:
Garmin Etrex GPS | 100$ |
Data Cable | 38$ |
Bicycle Mount | 18$ |
Software | 30$ |
Total | 186$ |
And that’s not counting the price of windows! (:P)
If I had gotten the Vista, it would have been 250$ for the device plus the same 18$ and 38$ for the mount and cable, plus an optional 117$ for a national map (which, by the way, I can’t get for any price with my eTrex) for a total of $423. That’s a lot to pay for directions.
Instead I paid:
Garmin Etrex GPS | 100$ |
Serial Cable | free (from drawer or old mouse) |
Out of Date Credit Card | free |
Zip Ties | free (from work) |
Total | 100$ |
Which I think is a better deal, even if I have an ugly cable and worry-inducing mount. I bet the map-creation interface is better, though :). You could go even cheaper by getting a used eTrex on ebay or craigslist. I hope to take the whole contraption on the road this weekend. The one big feature I might miss is the “beep on upcoming waypoint,” but the screen is large and clear so that shouldn’t be an issue.
Happy Hacking!
After you got the cable working, how did you upload the maps to your GPS unit?
The gpsbabel program takes care of the uploading. Just pass the parameters -r -i [format] -f [file] -o garmin -F [com port] and it uploads to the com port of your choice. I use /dev/ttyS1. The garmin just accepts the data no matter what mode it's in. Make sure to include the -r or nothing will happen.
Nice bit of GPS hacking... I went with the standard eTrex handlebar mount since it was pretty cheap and well constructed. I thought about attaching the GPS with my own devices for about two minutes before I decided the real mounting device would be the best idea for me.