Neo 1973 GPS
The Neo1973 device contains an integrated GPS. The particular device is marketed as an AGPS, and there is some discussion available as to what significance that "A" might have.
Note that the GTA02 device (not yet available) contains a different GPS chip (see http://www.u-blox.com/products/atr0635.html and/or http://www.atmel.com/dyn/products/product_card.asp?part_id=3932 for specs).
All purchased phones do not include the GPS binary driver. 
GTA01 GPS driver (gllin)
Main article - gllin
The GPS driver is available here: http://3rdparty.downloads.openmoko.org/gllin/. It is a command line tool that after starting writes the positioning data so that they can be read as if they were written to the file.
And here the Mail from Michael Shiloh http://lists.openmoko.org/pipermail/community/2007-November/011916.html
In the very early shipment to 50 Phase 1 developers, a binary-only program for talking to the the GPS was accidentally included in /home/root/DM2/gps, (and presumably, the same binary would function on a P0 device). This binary is called gllin and it is a oabi binary, i.e. it will only work in the 2007.1 OpenMoko environment. There is now a eabi binary, which works with 2007.2.
There is an ongoing effort to write a Free Software program that could be used instead of this binary-only program.
See Hammerhead/Protocol for details and the latest status.
Some scripts for those with the binary are on Manually_using_GPS
gllin command line parameters
Usage (version 1.1.7):
-help Help -board <type> Defines board type Ex: '-board matchbox' supported: matchbox, trident -com <com port> GPS com port; Ex: '-com com6' -baud <baud rate> Set baud rate; Ex: '-baud 115200' -rft <RF type> Set RF type; Ex: '-rft RF_LN22OUT' -freq <freq plan> | ? set frequency plan for GPS or show the list of all available plans Ex: '-freq FRQ_PLAN_OCXO_10000' Ex: '-freq ?' -- Show all available plans -g <URL> SUPL Server URL or IP address; Ex: '-g 22.214.171.124' -p <port> SUPL Server port number; Ex: '-p 9118' -udp <port> Local UDP port to send NMEA to. '-udp 6000' [default] -gsm_cell <cell ID> set GSM Cell ID information cell ID has the following format: '<MCC>.<MNC>.<LAC>.<CI>' Where: MCC - Mobile Country Code MNC - Mobile Network Code LAC - Location Area Code CI - Cell Identification Ex: '-gsm_cell 310.170.367.25732' -set_assisted_off disable SET assisted capability -set_based_off disable SET based capability -msisdn <MSISDN> set value for MSISDN (international phone number) as SET id Ex: '-msisdn 14081234567' -nai <nai> specify Network Access Identifier as SET id Ex: '-nai firstname.lastname@example.org' -periodic <s> make periodic request every s second (-1 to 64) -1 single shot: perform one fix, then quit 0 native: perform fixes as fast as possible <s> timed: report a position every <s> seconds where <s> is 1 to 64 -recover recover GLLIN after signaled exit -low [<count>] low level test. Default <count> is 1 -low_debug Low level debug ON +low_debug Low level debug OFF -train <count> Send train data <count> times +pty | -pty Enable or disable NMEA output to pty "/tmp/nmeaPTY" Default is off [-pty] +np | -np Enable or disable NMEA output to named pipe "/tmp/nmeaNP" Default is on [-np] +nmea | -nmea Enable or disable NMEA output to log file Default is off [-nmea] +daemon | -daemon Become a daemon (or not) Default is -daemon -a2 | -a3 | -a0 Select a GTA01 board revision. Default is a3 -batch <st> <n> <fix> perform batch test of <n> starts of type <st> <st> is hot, warm, cold, or SNR. Each start has <fix> fixes. -i start GLLIN command line +pnd optimize for PND -pnd look for low signal strength signals +sim using simulator so don't use almanac -sim not using simulator SNR manufacturing SNR test mode hot hot start [default] warm warm start cold cold start -v[n] Report GLLIN version string. n is 1234 to report selected versions.
The command line help appears to be wrong as it pertains to the nmea logging (ie The default is NOT off). So to keep the gllin from filling your flash in ./log/*.log here is a better gllin sh file:
#!/bin/sh echo "Starting gllin..." killall cat killall gllin.real mknod /tmp/nmeaNP p cat /tmp/nmeaNP > /dev/null & cd /home/root/gllin lib/ld-linux.so.2 --library-path /home/root/gllin/lib:/home/root/gllin/usr/lib /home/root/gllin/gllin.real -low 5 lib/ld-linux.so.2 --library-path /home/root/gllin/lib:/home/root/gllin/usr/lib /home/root/gllin/gllin.real -periodic 1 -nmea
Possible GPS programs
As people develop more sophisticated GPS applications, please note them here.
Here are some ideas for possibilities:
- Cairo-based mapping
- Openstreetmap a map viewer, annotation, and editing system.
- Pyroute is a routing program written in Python by Ojw, and a mobile phone GUI for maps, GPS, and routing.
- GPS-Trail a simple trail logger.
- roadmap mapping system using freely available maps (US census TIGER, DGLib, shapefiles).
- Geocaching paper chase for advanced users
- Set Profile (Mute, etc.) to coordinates (ex. At work)
- qpegps qtopia (arm PDA) based map viewer with gps features
- Navit a car navigation system with routing engine.
- QMapControl Qtopia based mapping widget. Displays maps and custom data, also other widgets can be bound to coordinates. GPS parser for the gllin output included.
- collection of ideas
Using the Neo's GPS on a Laptop
- First be sure you have gllin installed on the Neo.
- On host type: nc -vvn -l -p 5000 > /tmp/nmeaNP
- On the Neo type: nc 192.168.0.200 5000 < /tmp/nmeaNP
- On the host PC install GPSD, your GPS is attached as /tmp/nmeaNP
- start gpsd on host with: gpsd -p /tmp/nmeaNP
- run your application! I used gpsdrive and it works better than my stand-alone GPS.
- Tested with RoadNav.Works great!
- With this in mind if you have an unlimited data package you could export this over the internet.
- the possibilities are limitless.