Files

GNSS reception test

This engineering sketch exercises the real library receive and parse paths. It echoes complete raw sentences and reports byte, valid-frame, checksum-error, format-error, and parsed-sentence counts every two seconds. Unsupported sentence types count as valid frames but do not increase the parsed count.

No receiver commands are sent. A position fix is reported when available and is not required to establish communication. fix is true only when the latest fix status is valid and less than five seconds old; coordinates use that same check, including for RMC/GLL-only output. ggaQuality reports the last GGA fix quality separately and may be stale when GGA sentences stop arriving. Keep raw captures private if they contain location information.

Fixture Build selection Receive wiring
Classic Nano V3 + PA6H Default AVR build GPS TX to D8; D7 disconnected; 9600 baud
Classic Nano V3 + SAM-M8Q Default AVR build GPS TX to D8; D7 disconnected; 9600 baud
Classic Nano V3 + PA1010D Define GNSS_TEST_I2C SDA A4, SCL A5, address 0x10
HILBERT ESP32-S3 ESP32 build LC29H(EA) GPIO8 at 460800; ATGM336H GPIO38 at 115200

The Nano uses its own USB for upload and serial monitoring while seated in Jumperless. Leave Jumperless UART_TX/D0 and UART_RX/D1 disconnected. SoftwareSerial TX D7 stays physically disconnected, and the sketch disables the D8 input pull-up so it does not pull a 3.3 V receiver output toward the Nano's 5 V rail.

In the established Jumperless fixture, route PA6H TX row 5 or SAM-M8Q TX row 17 to D8, never both. PA1010D SDA is row 24 to A4 and SCL is row 25 to A5. Retain the existing physical power and ground jumpers; no power routing is changed by this sketch.

Build from the library checkout with --library . and one of these selections:

  • Nano: --fqbn arduino:avr:nano:cpu=atmega328.
  • Nano I2C: the Nano target plus --build-property compiler.cpp.extra_flags=-DGNSS_TEST_I2C.
  • HILBERT: --fqbn esp32:esp32:esp32s3:USBMode=hwcdc,CDCOnBoot=cdc,FlashSize=4M,FlashMode=qio,PSRAM=enabled.

Read the serial monitor at 115200 baud. Verify that valid and parsed counts continue increasing. Record any startup errors separately and compare error counts during steady reception; do not hide increasing errors. HILBERT reports both receivers independently. A missing fix is different from missing UART or I2C traffic.

These hardware tests are compiled and run explicitly. The host regression runner exercises synthetic parser tests without connected boards.