Template:FAQ/Questions/Bluetooth GPS

How can I connect to a Bluetooth GPS Receiver?
The following procedure was tested with a GlobalSat BT-359 Bluetooth GPS Receiver, a gumstix connex 400xm-bt, gumstix Buildroot rev 1318, and gpsd 2.34 (built with 1318): # sdptool browse ff:ff:ff:00:00:00 # sdptool add --channel=2 SP # sdptool setattr 0x010000 0x100 "Ch 1 Serial (getty)" # sdptool setattr 0x010001 0x100 "Ch 2 Serial (GPS)" # sdptool browse ff:ff:ff:00:00:00 # hcitool scan Scanning ... 00:0D:B5:34:65:27      BT-GPS-346527 # l2ping 00:0D:B5:34:65:27 Ping: 00:0D:B5:34:65:27 from 00:80:37:27:02:C1 (data size 44) ... 4 bytes from 00:0D:B5:34:65:27 id 0 time 73.80ms 4 bytes from 00:0D:B5:34:65:27 id 1 time 77.35ms 4 bytes from 00:0D:B5:34:65:27 id 2 time 88.81ms 3 sent, 3 received, 0% loss # rfcomm bind 1 00:0D:B5:34:65:27 # rfcomm rfcomm1: 00:0D:B5:34:65:27 channel 1 clean # gpsd -n /dev/rfcomm1 # gpspipe -r GPSD,R=1 $GPRMC,233209.000,A,3902.2074,N,07723.0781,W,0.22,73.08,180307,,*2F $GPGGA,233210.000,3902.2074,N,07723.0778,W,1,06,2.2,130.9,M,-33.4,M,,0000*6B $GPGSA,A,3,09,22,18,12,05,14,,,,,,,4.1,2.2,3.4*33 $GPRMC,233210.000,A,3902.2074,N,07723.0778,W,0.23,91.04,180307,,*20 $GPGGA,233211.000,3902.2073,N,07723.0778,W,1,06,2.2,130.6,M,-33.4,M,,0000*62 $GPGSA,A,3,09,22,18,12,05,14,,,,,,,4.1,2.2,3.4*33 $GPRMC,233211.000,A,3902.2073,N,07723.0778,W,0.36,134.53,180307,,*1E $GPGGA,233212.000,3902.2070,N,07723.0779,W,1,06,2.2,129.9,M,-33.4,M,,0000*64 $GPGSA,A,3,09,22,18,12,05,14,,,,,,,4.1,2.2,3.4*33 $GPRMC,233212.000,A,3902.2070,N,07723.0779,W,0.17,159.34,180307,,*16 $GPGGA,233213.000,3902.2067,N,07723.0778,W,1,06,2.2,130.2,M,-33.4,M,,0000*61 $GPGSA,A,3,09,22,18,12,05,14,,,,,,,4.1,2.2,3.4*33 $GPRMC,233213.000,A,3902.2067,N,07723.0778,W,0.30,107.93,180307,,*13 $GPGGA,233214.000,3902.2065,N,07723.0778,W,1,06,2.2,130.0,M,-33.4,M,,0000*66 $GPGSA,A,3,09,22,18,12,05,14,,,,,,,4.1,2.2,3.4*33 $GPGSV,3,1,11,22,83,352,35,18,56,120,19,14,53,295,22,05,31,109,23*70 $GPGSV,3,2,11,09,29,046,36,12,28,098,32,30,23,136,20,31,18,214,12*7F $GPGSV,3,3,11,01,13,268,21,21,09,176,11,11,00,326,*48 ...
 * On the gumstix, add a Serial Port (SP) service on channel 2 (this leaves the default getty on Bluetooth channel 1, /dev/rfcomm0 alone):
 * Turn on the BT-359 Bluetooth GPS Receiver - the green and blue LEDs should flash
 * On the gumstix, scan for the address of the BT-359:
 * On the gumstix, ping the BT-359:
 * On the gumstix, bind /dev/rfcomm1 to the BT-359, then check the binding:
 * On the gumstix, start gpsd with /dev/rfcomm1, then run gpspipe to see the NMEA messages coming from the BT-359:

For more information on the gumstix and Bluetooth, see sample chapter 9 - Bluetooth LED Sign, of the book Make: Projects - Small Form Factor PCs. This chapter is available for free from here, via this LinuxDevices article.

For more information on gpsd and Bluetooth GPS receivers, see Bluetooth and gpsd.

There is a script which tries to keep a connection to your GPS here: GpsService