This is a project I started about a week or so ago and have been working on when I find time after work.
It’s a GPS and compass that temporarily uses an Arduino Nano micro-controller, Nokia 3310 screen, EM-406A SiRF III GPS receiver, and a simple (non-tilt compensated) magnetometer for compass heading.
It’s obviously in it’s early stages and is currently built on a breadboard for prototyping. It’s a bunch of wires so I can easily try different hardware until I find the best parts. The final product will be built with surface-mount components to make it very compact. I’m looking at a smaller, better performing GPS receiver and direct AVR (forgoing all the Arduino overhead and saving power). Power efficiency is a big factor as it will be battery powered, so I have a few ides for that, like hibernating the GPS receiver for short intervals when ground speed is low (update GPS only every few seconds, instead of multiple times per second). So far the GPS received has the greatest impact on battery life. Once I have the hardware decided, I can built a neater prototype and focus more on the software.
I plan to use this mainly for geocaching, but it’s really just an engineering challenge, so it may not actually get much use. 😛 The benefit is I can service it myself and program it to do exactly what I want it to. So far it points me to waypoints (heading, distance, speed), and logs GPS data for viewing in Google Earth.
Other features will include compass, waypoint radar (i.e. show multiple waypoints on display), GPS re-trace (to reverse a recorded journey), and rugged weatherproof enclosure.
I’ve chosen to use a Nokia 3310 LCD screen, the LCD used in their older mobile phones. It’s only 84 x 48 pixel resolution, but these screens are cheap, and very reliable. They also feature an integrated back-light which is useful for night use, but the screen is also very clear and day light readable so the back-light isn’t always required. I can switch the back-light on and off and control it’s brightness in software, so I can still maintain low power draw in night use – this is an important consideration for a battery powered device. According to the data sheet the LCD only draws about 1mW without back-light!
Since starting this project I’ve received some more parts in the mail. They are all breakout boards which provide larger contacts for connecting. This is much easier than working directly with the SMD chips especially as I often need to rewire things.
For scale, the button battery has a 12mm (half inch) diameter.
From left to right:
- Magnetometer – i.e. compass module. I lost my last one, these things are tiny! 🙂
- Battery backed real time clock – This will keep time for years when the GPS is switched off. I’ll update this from the GPS data to ensure accurate time keeping.
- microSD card socket – Allows me to communicate with SD card directly and do away with the over complicated Arduino shield I was using.
I have a few revisions of my parts list and schematic. This is actually tricky business, every time I think of a better way to do something or find a better part, I have to rebuild the circuit and re-spec most of the supporting components. It has a snowball effect and it takes hours scrutinising over data sheets for each change I make. Basically, my parts list won’t be much use until I have a decent prototype locked down. 🙂
I should also say that it’s very expensive to buy single parts, so my prototype is maybe twice the cost of a retail GPS for just the parts. But at the moment I’m not too concerned about cost because this is really just a hobby project, I don’t see this as a ‘cheap alternative’ to the much better devices already available.
That been said, I should be able to lower the cost by buying chips directly without the breakout boards, and buying from a distributor like Element14 or DigiKey… we’ll see!