gps on the freerunner

This morning I spent sometimes trying to understand how the GPS subsystem on the freerunner works. I’m using SHR unstable. These information might be incomplete or wrong, so just use them with a grain of salt.

Ok, at the beginning the clients where connecting to the GPS device either directly : serial device -> client or using gpsd serial device-> gpsd-> client

so far so good. In the end an application like tangogps or navit only needed to have a fix that is not that difficult to obtain from the raw device input.

But what if I want to handle and gather information from multiple GPS devices ? the idea here is to add an additional layer of indirection to make like easier to clients. On top of it, since the freerunner used dbus to communicate and frameworkd as a communication broker we have now two different players. * gps -> ogpsd -> fso-gpsd -> tangogps

From [2], this is the story: gpsd - this is our good old friend from http://gpsd.berlios.de/ “True gpsd” someone called it. ogpsd - this is a subsystem of FSO’s frameworkd. It replaces gpsd it implements the Gypsy API communicating with applications via dbus fso-gpsd - is a compatibility shim to translate Gypsy messages for applications that expect gpsd clients …

What is gypsy [3] ? Gypsy is a GPS multiplexing daemon/protocol which allows multiple clients to access GPS data from multiple GPS sources concurrently.

Now, my point was to use the GPS information collected by these two fantastic projects opencellid [5] and cellhunter [6]. In order to do that I would need to add a “fake” gps device to feed ogpsd with information retrieved from the cell database.

If the architecture I’ve described here is correct, it should not be to difficult to add the missing bit in ogpsd [4] …

UPDATE: It seems that there is already an implementation [8,9] of agps fetching data from agps.u-blox.com and based on gllin [7] , but you will need a data connection to use this one.

[8] http://www.opkg.org/package_127.html [9] http://lists.openmoko.org/pipermail/community/2008-June/018680.html


http://gpsd.berlios.de/NMEA.txt

[2] http://kerneltrap.org/index.php?q=mailarchive/openmoko-community/2008/9/24/3395094

[3] http://gypsy.freedesktop.org/wiki/

[4] http://git.freesmartphone.org/?p=framework.git;a=tree;f=framework/subsystems/ogpsd;hb=HEAD

[5] http://www.opencellid.org/

[6] http://78.47.116.33/~hole/cellhunter/

[7] http://wiki.openmoko.org/wiki/Gllin