Neo 1973 GPS

From Openmoko

(Difference between revisions)
Jump to: navigation, search
m (light cleaning up of introduction)
(Many small changes, mostly just grammar.)
Line 1: Line 1:
The [[Neo 1973]] device contains an integrated ''GPS''. The particular device is marketed as Assisted GPS ('AGPS'). Performance requirements are defined in GSM/GPRS 3GPP TS 25.171, CDMA 3GPP2 C.S0036-0. There is some [[Hardware:AGPS | discussion]] available as to what significance that "A" might have.
+
The smartphones contain an integrated ''GPS'' receiver. The devices used are marketed as Assisted GPS ('AGPS'). Performance requirements are defined in GSM/GPRS 3GPP TS 25.171, CDMA 3GPP2 C.S0036-0. There is some [[Hardware:AGPS | discussion]] available as to what significance that "A" might have.
  
The external antenna for the GPS is using a [http://en.wikipedia.org/wiki/MMCX MMCX] connector.  More information about external antennas on the [[GPS antennas for neo1973|GPS antennas page]]. The connector for the internal GPS antenna is also using a MMCX connector. This GPS connector is located on the side of Freerunner.
+
The external antenna for the GPS uses an [http://en.wikipedia.org/wiki/MMCX MMCX] connector.  More information about external antennas on the [[GPS antennas for neo1973|GPS antennas page]]. The connector for the internal GPS antenna also uses an MMCX connector. The external connector is located on the side of Freerunner.
  
Note that the [[GTA02 GPS]] device contains the [[u-blox ANTARIS 4 ATR0635]].
+
The two current models (Neo 1973 and Neo Freerunner) use different GPS chipsets.
 
+
The Neo Freerunner [[GTA02 GPS]] device contains the [[u-blox ANTARIS 4 ATR0635]].
A critical problem with early (current) GTA02s are interferences with the SD card, which results in a long connection time (10min+) to get first GPS data. See [[GPS Problems | this page]] for more discussion and suggested fixes.
+
  
 +
A critical problem with early (current) GTA02s is that accesssing the SD card generates RF noise, which causes very long TTFF (time to first fix) (10min+ or longer). See [[GPS Problems | this page]] for more discussion and suggested fixes. Using an external antenna is one.
  
 
=== GTA01 GPS driver (gllin) ===
 
=== GTA01 GPS driver (gllin) ===
Line 52: Line 52:
 
--[[User:Speedevil|Speedevil]] 11:52, 7 April 2008 (CEST)
 
--[[User:Speedevil|Speedevil]] 11:52, 7 April 2008 (CEST)
  
If you are having GPS problems with your freerunner, please document these on the page [[GPS Problems]].
+
If you are having GPS problems with your Freerunner, please document them on the page [[GPS Problems]].
[[FreeRunner_GPS_antenna_repair_SOP]] documents a possible solution.
+
[[FreeRunner GPS antenna repair SOP]] documents a possible solution.
  
In Openmoko projects, you could find a GPS test program that could provide graphical and text dump of GPS information. See [[Howto Test Your GPS with agpsui]]. This project called [http://svn.projects.openmoko.org/svnroot/openmoko-agpsui Openmoko AGPS UI project].
+
In Openmoko projects, you will find a GPS test program that provides graphical and text dump of GPS information. See [[Howto Test Your GPS with agpsui]]. The project is called [http://svn.projects.openmoko.org/svnroot/openmoko-agpsui Openmoko AGPS UI project].
  
 
=== Possible GPS programs ===
 
=== Possible GPS programs ===
Line 85: Line 85:
 
== Using the Neo's GPS on a Laptop ==
 
== Using the Neo's GPS on a Laptop ==
  
First be sure you have gllin installed on the Neo.
+
This procedure depends upon being able to set up a network connection between your Neo and your laptop. The connection can be over either WiFi or USB cable.
  
*On host type: '''nc -vvn -l -p 5000 > /tmp/nmeaNP''' (Host starts listening on port 5000 for GPS-signals and sends them to /tmp/nmeaNP)
+
First be sure you have gllin and gpsd installed on the Neo. Some Neo Freerunner images don't have them, they use a different GPS stack called gypsy.  
*On the Neo type:  '''nc 192.168.0.200 5000 < /dev/ttySAC1''' (Signals from device will be send to port 5000 on host.) If your host is connected to the neo via wifi, change the IP address in the command to the one of the host.
+
*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.
+
# On host type: '''nc -vvn -l -p 5000 > /tmp/nmeaNP''' (Host starts listening on port 5000 for GPS-signals and sends them to /tmp/nmeaNP)
 +
# On the Neo type:  '''nc 192.168.0.200 5000 < /dev/ttySAC1''' (Signals from device will be send to port 5000 on host.) If your host is connected to the neo via wifi, change the IP address in the command to the one of the host.
 +
# 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!
 +
 
 +
If you have an unlimited [[GPRS]] data package you could make your gpsd service accessible over the Internet. This opens up many possibilities. For example, you could implemented AVL (Automatic Vehicle Location) by having a web server somewhere query your gpsd server for your position and write it to a KML file which would then display your location on a Google map.
  
 
== Bluetooth GPS relay ==
 
== Bluetooth GPS relay ==
  
To make your neo appear like a regular bluetooth GPS:
+
To make your Neo appear like a regular Bluetooth GPS:
  
 
=== GTA01 ===
 
=== GTA01 ===
Line 113: Line 116:
  
 
[[Category:GPS]]
 
[[Category:GPS]]
 
 
[[category:Documentation]]
 
[[category:Documentation]]
 
[[category:Standard]]
 
[[category:Standard]]

Revision as of 20:40, 15 August 2008

The smartphones contain an integrated GPS receiver. The devices used are marketed as Assisted GPS ('AGPS'). Performance requirements are defined in GSM/GPRS 3GPP TS 25.171, CDMA 3GPP2 C.S0036-0. There is some discussion available as to what significance that "A" might have.

The external antenna for the GPS uses an MMCX connector. More information about external antennas on the GPS antennas page. The connector for the internal GPS antenna also uses an MMCX connector. The external connector is located on the side of Freerunner.

The two current models (Neo 1973 and Neo Freerunner) use different GPS chipsets. The Neo Freerunner GTA02 GPS device contains the u-blox ANTARIS 4 ATR0635.

A critical problem with early (current) GTA02s is that accesssing the SD card generates RF noise, which causes very long TTFF (time to first fix) (10min+ or longer). See this page for more discussion and suggested fixes. Using an external antenna is one.

Contents

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

There was an effort to write a Free Software program that could be used instead of this binary-only program, but this stalled after the decision to change GPS chips in GTA02. The Iphone 3G also uses the same GPS chip. It's not inconcievable that this might lead to further effort.

See Hammerhead/Protocol for details and the latest status.

Some scripts for those with the binary are on Manually_using_GPS

Please see the important information on Gllin!

GTA02 GPS

Main article: GTA02 GPS


To turn on the GPS, echo 1 to the file /sys/devices/platform/s3c2440-i2c/i2c-adapter/i2c-0/0-0073/neo1973-pm-gps.0/pwron

To read from the GPS, simply read /dev/ttySAC1.

gpspipe -r 127.0.0.1 2947

gpspipe is in package gps-utils

NOTE:
cat /dev/ttySAC1 

Produces the unknown msg*58 this doesn't happen with gpspipe


Before getting a fix, the GPS spits out lots of "$GPTXT,01,01,01,NMEA unknown msg*58", though these stop once a fix is obtained.

A position without a fix looks like:

  • $GPGGA,235946.99,,,,,00,00,5.0,,M,0.0001999,M,0.0020199,*57

One with a fix:

  • $GPGGA,065852.00,5613.022527,N,00306.725890,W,1,05,0.5,158.0,M,0.277000,M,-0.010

0515,*7A

(central Scotland)

--Speedevil 11:52, 7 April 2008 (CEST)

If you are having GPS problems with your Freerunner, please document them on the page GPS Problems. FreeRunner GPS antenna repair SOP documents a possible solution.

In Openmoko projects, you will find a GPS test program that provides graphical and text dump of GPS information. See Howto Test Your GPS with agpsui. The project is called Openmoko AGPS UI project.

Possible GPS programs

As people develop more sophisticated GPS applications, please note them here.

Here are some ideas for possibilities:

  • Cairo-based mapping
  • Routing
  • 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.
  • Raná is the new version of pyroute
  • 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.
  • TangoGPS works very well, downloads maps on demand and stores them for later use, very efficient.
  • 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
  • Cumulus GPS software for glider pilots (and pilots in general), has a port for Qtopia and pulls (world) maps from the KFLog flight planner project. I think someone has put a project like this on the projects website here.
  • Openmoko AGPS UI project.
  • GPS Sight, a popular Openmoko project under LGPL.
  • Orrery, an unpopular Openmoko project for displaying the night sky.
  • Gosmore is a routing and viewer of OSM XML data such as the planet.osm.

Using the Neo's GPS on a Laptop

This procedure depends upon being able to set up a network connection between your Neo and your laptop. The connection can be over either WiFi or USB cable.

First be sure you have gllin and gpsd installed on the Neo. Some Neo Freerunner images don't have them, they use a different GPS stack called gypsy.

  1. On host type: nc -vvn -l -p 5000 > /tmp/nmeaNP (Host starts listening on port 5000 for GPS-signals and sends them to /tmp/nmeaNP)
  2. On the Neo type: nc 192.168.0.200 5000 < /dev/ttySAC1 (Signals from device will be send to port 5000 on host.) If your host is connected to the neo via wifi, change the IP address in the command to the one of the host.
  3. On the host PC install GPSD, your GPS is attached as /tmp/nmeaNP
  4. start gpsd on host with: gpsd -p /tmp/nmeaNP
  5. run your application! I used gpsdrive and it works better than my stand-alone GPS.

Tested with RoadNav. Works great!

If you have an unlimited GPRS data package you could make your gpsd service accessible over the Internet. This opens up many possibilities. For example, you could implemented AVL (Automatic Vehicle Location) by having a web server somewhere query your gpsd server for your position and write it to a KML file which would then display your location on a Google map.

Bluetooth GPS relay

To make your Neo appear like a regular Bluetooth GPS:

GTA01

  • Power up the bluetooth radio
  • Run the gllin script
  • run sdptool add SP
  • run rfcomm watch 0 1 sh -c "cat /tmp/nmeaNP >/dev/rfcomm0" &

GTA02

  • Power up the bluetooth radio
  • Ensure gpsd is running and the gps-utils package is installed
  • run sdptool add SP
  • run rfcomm -r watch 0 1 sh -c "gpspipe -r >/dev/rfcomm0" &
Personal tools

The Neo 1973 device contains an integrated GPS. The particular device is marketed as Assisted GPS ('AGPS'). Performance requirements are defined in GSM/GPRS 3GPP TS 25.171, CDMA 3GPP2 C.S0036-0. There is some discussion available as to what significance that "A" might have.

The external antenna for the GPS is using a MMCX connector. More information about external antennas on the GPS antennas page. The connector for the internal GPS antenna is also using a MMCX connector. This GPS connector is located on the side of Freerunner.

Note that the GTA02 GPS device contains the u-blox ANTARIS 4 ATR0635.

A critical problem with early (current) GTA02s are interferences with the SD card, which results in a long connection time (10min+) to get first GPS data. See this page for more discussion and suggested fixes.


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

There was an effort to write a Free Software program that could be used instead of this binary-only program, but this stalled after the decision to change GPS chips in GTA02. The Iphone 3G also uses the same GPS chip. It's not inconcievable that this might lead to further effort.

See Hammerhead/Protocol for details and the latest status.

Some scripts for those with the binary are on Manually_using_GPS

Please see the important information on Gllin!

GTA02 GPS

Main article: GTA02 GPS


To turn on the GPS, echo 1 to the file /sys/devices/platform/s3c2440-i2c/i2c-adapter/i2c-0/0-0073/neo1973-pm-gps.0/pwron

To read from the GPS, simply read /dev/ttySAC1.

gpspipe -r 127.0.0.1 2947

gpspipe is in package gps-utils

NOTE:
cat /dev/ttySAC1 

Produces the unknown msg*58 this doesn't happen with gpspipe


Before getting a fix, the GPS spits out lots of "$GPTXT,01,01,01,NMEA unknown msg*58", though these stop once a fix is obtained.

A position without a fix looks like:

  • $GPGGA,235946.99,,,,,00,00,5.0,,M,0.0001999,M,0.0020199,*57

One with a fix:

  • $GPGGA,065852.00,5613.022527,N,00306.725890,W,1,05,0.5,158.0,M,0.277000,M,-0.010

0515,*7A

(central Scotland)

--Speedevil 11:52, 7 April 2008 (CEST)

If you are having GPS problems with your freerunner, please document these on the page GPS Problems. FreeRunner_GPS_antenna_repair_SOP documents a possible solution.

In Openmoko projects, you could find a GPS test program that could provide graphical and text dump of GPS information. See Howto Test Your GPS with agpsui. This project called Openmoko AGPS UI project.

Possible GPS programs

As people develop more sophisticated GPS applications, please note them here.

Here are some ideas for possibilities:

  • Cairo-based mapping
  • Routing
  • 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.
  • Raná is the new version of pyroute
  • 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.
  • TangoGPS works very well, downloads maps on demand and stores them for later use, very efficient.
  • 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
  • Cumulus GPS software for glider pilots (and pilots in general), has a port for Qtopia and pulls (world) maps from the KFLog flight planner project. I think someone has put a project like this on the projects website here.
  • Openmoko AGPS UI project.
  • GPS Sight, a popular Openmoko project under LGPL.
  • Orrery, an unpopular Openmoko project for displaying the night sky.
  • Gosmore is a routing and viewer of OSM XML data such as the planet.osm.

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 (Host starts listening on port 5000 for GPS-signals and sends them to /tmp/nmeaNP)
  • On the Neo type: nc 192.168.0.200 5000 < /dev/ttySAC1 (Signals from device will be send to port 5000 on host.) If your host is connected to the neo via wifi, change the IP address in the command to the one of the host.
  • 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.

Bluetooth GPS relay

To make your neo appear like a regular bluetooth GPS:

GTA01

  • Power up the bluetooth radio
  • Run the gllin script
  • run sdptool add SP
  • run rfcomm watch 0 1 sh -c "cat /tmp/nmeaNP >/dev/rfcomm0" &

GTA02

  • Power up the bluetooth radio
  • Ensure gpsd is running and the gps-utils package is installed
  • run sdptool add SP
  • run rfcomm -r watch 0 1 sh -c "gpspipe -r >/dev/rfcomm0" &