As part of a Dell Axim PDA bundle, I came into possession of this curious Dell Navteq BT-332 Bluetooth GPS Receiver that I’m planning to use with an offline OSM app on a laptop (something normally without a location sensor).

Before phones and other devices integrated location sensors the common setup was having an external GPS receiver that would process and relay location data via Bluetooth or physically connected serial (RS-232) port. Many manufacturers created devices in this space and this market was prolific in the early to mid 2000s.

Queries to a Bluetooth Serial Port device

# Find all TTY devices on MacOS
ls -l /dev/tty.*

# Our specific Dell Navteq device
ls -l /dev/tty.BT-GPS-33BA81-BT-GPSCOM

# Use a terminal emulator to read TTY messages from the device file
screen /dev/tty.BT-GPS-33BA81-BT-GPSCOM 38400

Device output data details

Message formats and types

  • $GPRMC
    • V = void means that a GPS fix has not been established (not enough GPS satellites to get a location)
    • Lat = ddmm.mmm (0-90 deg)
    • Lng = dddmm.mmm (0-180 deg)
    • Ground speed in knots (1 knot = 1.852 km/h)
  • $GPGSV
    • SV Satellite information
  • $GPGGA
    • GPS time, position, and fix related data

Sample data from screen

$GPGSA,A,1,,,,,,,,,,,,,,,*1E
$GPGSV,3,1,12,20,00,000,,10,00,000,,25,00,000,,27,00,000,*79
$GPGSV,3,2,12,03,00,000,,31,00,000,,24,00,000,,15,00,000,*78
$GPGSV,3,3,12,16,00,000,,05,00,000,,01,00,000,,26,00,000,*7D
$GPRMC,000617.061,V,,,,,,,110905,,*24                           <<<< indicates a GPS fix was not yet found 
$GPGGA,000618.061,,,,,0,00,,,M,0.0,M,,0000*5E
$GPGSA,A,1,,,,,,,,,,,,,,,*1E
$GPRMC,000618.061,V,,,,,,,110905,,*2B
$GPGGA,000619.072,,,,,0,00,,,M,0.0,M,,0000*5D
$GPGSA,A,1,,,,,,,,,,,,,,,*1E
$GPRMC,000619.072,V,,,,,,,110905,,*28
$GPGGA,000620.061,,,,,0,00,,,M,0.0,M,,0000*55
$GPGSA,A,1,,,,,,,,,,,,,,,*1E
$GPRMC,000620.061,V,,,,,,,110905,,*20
$GPGGA,000621.061,,,,,0,00,,,M,0.0,M,,0000*54
$GPGSA,A,1,,,,,,,,,,,,,,,*1E
$GPRMC,000621.061,V,,,,,,,110905,,*21
$GPGGA,000622.073,,,,,0,00,,,M,0.0,M,,0000*54
$GPGSA,A,1,,,,,,,,,,,,,,,*1E

GPS Bluetooth SPP Parser

I ended up writing a NMEA parser for NodeJS which is able to connect to and consume data from this GPS module. See my GitHub repo gps-bt-serial for details.

Further dev resources for BT-SPP