Wishlist/Software:GPS proxy

From Openmoko

(Difference between revisions)
Jump to: navigation, search
Line 1: Line 1:
 +
== Idea ==
 
Using bluetooth GPS dongle with any device is in fact nothing more than sending clear text (NMEA protocol) over serial port:
 
Using bluetooth GPS dongle with any device is in fact nothing more than sending clear text (NMEA protocol) over serial port:
 
  1. BT device (dongle) announces it's serial port (virtual serial port - Bluetooth SPP/SP profile)
 
  1. BT device (dongle) announces it's serial port (virtual serial port - Bluetooth SPP/SP profile)

Revision as of 13:12, 5 August 2008

Idea

Using bluetooth GPS dongle with any device is in fact nothing more than sending clear text (NMEA protocol) over serial port:

1. BT device (dongle) announces it's serial port (virtual serial port - Bluetooth SPP/SP profile)
2. BT client connects to the dongle
3. Dongle opens serial connection and send stream of NMEA data. That's all!

So let's see what NEO can do:

  • We got device equipped with GPS
  • We got very powerful bluez stack and utilities
  • We can get NMEA data
  • We can announce Serial (SPP/SP) service using bluetooth
  • and finally... we can bind GPS port with BT port and redirect NMEA to any BT client that would like to read it :)

Profits:

  • We can share GPS data with anyone (Phone/Smartphone/PC/Laptop)
  • Maybe sending that data to more than one person (I don't know the exact BT capabilities)
  • Whenever you want you can use your PocketPC powered with Automapa or TomTom and don't have to buy another GPS device
  • many many more :)

I've made few tests on desktop debian and was able to get data with Holux GM-101 Handheld GPS (USB Cable) and Nokia N70 (BT)


Holux----(USB)--->Debian-----(BT)---->Nokia


0. Prerequisites: connect GPS unit, setup bluez and remember to pair your devices!
1. Make BT listener: rfcomm listen 0 (on my system it binds connected device to /dev/rfcomm0)
2. Announce your SP service: sdptool add sp 1
3. Run some GPS aware application on your client device
4. On successful connection rfcomm will say something like: 
Waiting for connection on channel 1
Connection from 00:**:**:**:**:** to /dev/rfcomm0
Press CTRL-C for hangup
5. cat /dev/ttyUSB0 >/dev/rfcomm0  (where /dev/ttyUSB0 is my USB to serial converter connected to GPS)
6. Should work :D 


If you can connect but there is now data:

- use "cat /dev/your_gps_device" to see if GPS is sending NMEA data to PC (for examle in holux you have to switch some options in menu)
should look something like this:

PGSA,A,2,19,18,,,,,,,,,,,0.0,0.0,0.0*32
$GPGSV,3,1,11,03,71,207,23,06,66,169,22,22,64,137,31,19,57,289,32*7F
$GPGSV,3,2,11,18,46,065,33,21,21,082,00,16,11,193,00,15,11,025,00*75
$GPGSV,3,3,11,08,08,319,00,14,05,142,00,26,05,011,00*44
$GPRMC,225506.064,
- check paring 

In a thew weeks time I should get my new Forerunner, so I will try to move this idea to OpenMoko platform.

Freerunner as GPS bluetooth device

This is described here: http://wiki.openmoko.org/wiki/GPS#GTA02 It allows to use the freerunner as ordinary BT GPS reciever. BT aware devices like navigation systems can then use the freeruners GPS signals.

Personal tools

Using bluetooth GPS dongle with any device is in fact nothing more than sending clear text (NMEA protocol) over serial port:

1. BT device (dongle) announces it's serial port (virtual serial port - Bluetooth SPP/SP profile)
2. BT client connects to the dongle
3. Dongle opens serial connection and send stream of NMEA data. That's all!

So let's see what NEO can do:

  • We got device equipped with GPS
  • We got very powerful bluez stack and utilities
  • We can get NMEA data
  • We can announce Serial (SPP/SP) service using bluetooth
  • and finally... we can bind GPS port with BT port and redirect NMEA to any BT client that would like to read it :)

Profits:

  • We can share GPS data with anyone (Phone/Smartphone/PC/Laptop)
  • Maybe sending that data to more than one person (I don't know the exact BT capabilities)
  • Whenever you want you can use your PocketPC powered with Automapa or TomTom and don't have to buy another GPS device
  • many many more :)

I've made few tests on desktop debian and was able to get data with Holux GM-101 Handheld GPS (USB Cable) and Nokia N70 (BT)


Holux----(USB)--->Debian-----(BT)---->Nokia


0. Prerequisites: connect GPS unit, setup bluez and remember to pair your devices!
1. Make BT listener: rfcomm listen 0 (on my system it binds connected device to /dev/rfcomm0)
2. Announce your SP service: sdptool add sp 1
3. Run some GPS aware application on your client device
4. On successful connection rfcomm will say something like: 
Waiting for connection on channel 1
Connection from 00:**:**:**:**:** to /dev/rfcomm0
Press CTRL-C for hangup
5. cat /dev/ttyUSB0 >/dev/rfcomm0  (where /dev/ttyUSB0 is my USB to serial converter connected to GPS)
6. Should work :D 


If you can connect but there is now data:

- use "cat /dev/your_gps_device" to see if GPS is sending NMEA data to PC (for examle in holux you have to switch some options in menu)
should look something like this:

PGSA,A,2,19,18,,,,,,,,,,,0.0,0.0,0.0*32
$GPGSV,3,1,11,03,71,207,23,06,66,169,22,22,64,137,31,19,57,289,32*7F
$GPGSV,3,2,11,18,46,065,33,21,21,082,00,16,11,193,00,15,11,025,00*75
$GPGSV,3,3,11,08,08,319,00,14,05,142,00,26,05,011,00*44
$GPRMC,225506.064,
- check paring 

In a thew weeks time I should get my new Forerunner, so I will try to move this idea to OpenMoko platform.

Freerunner as GPS bluetooth device

This is described here: http://wiki.openmoko.org/wiki/GPS#GTA02 It allows to use the freerunner as ordinary BT GPS reciever. BT aware devices like navigation systems can then use the freeruners GPS signals.