here's my latest project, a fully open-source msp430f5510-based gps/gprs tracker. it's a device that wakes up every few minutes and does the following:
- tries to get a gps fix
- connects to the gsm network, marks the tower cell ids it talks to
- executes sms commands received - if any
- starts a gprs connection and sends all the info it has collected via http to my server
it does all this only based on interrupts (zero blocking functions are used - all the similar projects I've seen are riddled with delay()s).
functions that fail due to network unavailability are retried a given number of times.
the data received on the server is placed into a database and gps positions of the cell towers are obtained for future triangulation. this info can be used if there is no gps coverage due to obstacles.
to give a little context, I felt the need of making my own tracker because I bought something like this an year ago and quickly became dissapointed by the dubious quality of the hardware design and software of the product.
here is the first prototype - the magnet wire was used to debug the hardware flow control-enabled UART of the sim900.
the first assembled module is ready to be used on my trip to Greece. instead of a small flat LiPo I ended up using 2 cells from a discarded laptop battery - there was no time to wire this to my motorbike. now after ~20 days it is still tracking.
I am pretty happy with this first revision, but I'm working on the next one that will include a small serial fram chip. I decided to use that as a buffer because of the weird way the mobile phone company is counting the gprs traffic.
for some more eye-candy, you can see my route from home to Ouranoupoli on a google-map overlay here:
http://www.simplex.ro/files/trips/test.html
waypoints are 10 minutes apart, the trip took 10 hours and about 800km.
project home: https://github.com/rodan/tracy