A guide to capturing and decoding UART data from a GPS module for diagnostic purposes.
This experiment uses the Bus Pirate to monitor UART data from a GPS module (such as the NEO-6M) to observe and decode GPS location data. This setup can be useful for debugging, ensuring correct data transmission, and verifying baud rates.
Connect the Bus Pirate to the GPS module as follows:
Note: Only connect the Bus Pirate’s RX to the GPS TX if you want to passively read data without influencing the GPS module.
To configure the Bus Pirate for UART sniffing, follow these steps:
[m] --> [3] for UART
[9] for 9600 baud
[](space) to start reading UART data
The GPS module will transmit data in NMEA format, with sentences containing various GPS information such as position, speed, and time. An example NMEA sentence:
$GPGGA,123519,4807.038,N,01131.000,E,1,08,0.9,545.4,M,46.9,M,,*47
This string includes:
Refer to GPS NMEA documentation for detailed decoding of each field in an NMEA sentence.
Common NMEA sentences from GPS modules include:
Using this information, verify that the GPS data is correct by comparing coordinates and timestamps with known positions or times.