Docs menu

Engineering Reference · PHYSICALLY PROVEN / CLOSED

Authoritative u-blox NEO-8 UART1 wiring, live NMEA, fix data and checksum-valid UBX request/response physical proof.

Hardware Example 05 — GPS / GNSS

Device Console: After flashing, use MONITOR for unchanged UART, NMEA, fix, and UBX output. Explicit FG_GPS_UI fix/satellite and UART activity lines can populate the read-only I/O view. I/O deliberately does not decode coordinates from raw NMEA, so MONITOR and the generated example UI remain authoritative for the complete GPS proof.

Status: PHYSICALLY PROVEN

Public reference:

  • Repository: RTechAI/ForgeUI-P4-UART-GPS-GNSS
  • Release: v1.0.0
  • Public baseline commit: 2c6e6a6

This example is physically proven on the Waveshare ESP32-P4-WIFI6-Touch-LCD-7B with a u-blox NEO-8 GPS/GNSS receiver and ESP-IDF 5.5.4. It proves a generated Studio UI bound to a developer-owned full-duplex UART1 GPS implementation, standalone export, and the real Build & Flash path.

Hardware and wiring

Power the receiver from the dedicated UART connector and route its data signals through the bottom GPIO header:

NEO-8 connectionWaveshare 7B connection
NEO VCCUART connector VCC / Core_5V
NEO GNDUART connector GND
NEO TXIO3 / GPIO3 → P4 UART1 RX
NEO RXIO4 / GPIO4 ← P4 UART1 TX

GPIO3 and GPIO4 use 3.3 V UART logic. The proof's Core_5V module supply does not make either data pin 5 V tolerant. Power down before changing wiring and keep a common ground between the module and board.

Why GPIO37 and GPIO38 are avoided

GPIO38/RXD is not used for GPS RX because it shares the CH343P TX net. GPIO37/TXD is not used for GPS TX because it shares the CH343P RX net. Those nets are not isolated, so the connector labels do not make them a safe independent GPS pair.

GPIO3/GPIO4 are the physically proven ForgeUI GPS pair:

  • GPIO3: P4 UART1 RX, receiving NEO TX
  • GPIO4: P4 UART1 TX, driving NEO RX

UART settings

  • Interface: full-duplex UART1
  • Baud: 9600
  • Data bits: 8
  • Parity: none
  • Stop bits: 1
  • Flow control: none

Proven NMEA and fix behavior

The UART task receives NMEA and validates each sentence checksum before using its data. The generated Studio UI receives live semantic updates for:

  • UART RX state
  • NMEA state
  • 2D / 3D fix state
  • satellite count
  • latitude and longitude
  • altitude
  • speed
  • HDOP
  • UTC

FG_GPS: UART RX alive followed by FG_GPS: NMEA alive proves the receiver and NMEA link. Checksum-valid NMEA may be received indoors before a position fix is available, so NO FIX does not mean UART or NMEA has failed. The UI distinguishes no fix, 2D fix, and 3D fix. Physical certification reached a real 3D GPS fix and observed 12 satellites, with live latitude/longitude, altitude, speed, HDOP, and UTC updates.

Full-duplex TX and UBX-MON-VER proof

After the first checksum-valid NMEA sentence, the P4 sends one read-only UBX-MON-VER poll on UART1 TX / GPIO4. The receiver replies on UART1 RX / GPIO3; the implementation validates the UBX checksum and reads the bounded receiver version response. Physical proof recorded a valid response, including SW="ROM SPG 5.10 (7b202e)" and HW="000A0000".

UBX-MON-VER only requests version information. This example does not change or save receiver configuration and does not claim persistent UBX configuration.

Studio Load Example workflow

  1. Open ForgeUI Studio and select Hardware Examples.
  2. Find Example 05 — GPS / GNSS and choose Load Example.
  3. Confirm replacement of the current editable project when prompted. Hardware

Example selection is exclusive; examples do not accumulate.

  1. Keep the generated GPS semantic field names intact so export can select and

bind the Example 05 implementation.

  1. Use Guide on the Example 05 card to reopen the concise in-Studio wiring

and proof summary.

Standalone export workflow

  1. With Example 05 loaded, run the normal Standalone Export workflow.
  2. Choose the Waveshare ESP32-P4-WIFI6-Touch-LCD-7B profile and an export

destination.

  1. Confirm the export completes without missing-source or mixed-example errors.
  2. The standalone project contains the generated UI contract and the selected

developer-owned 99_Hardware_Example_05_GPS.c/.h implementation. The generated UI does not duplicate UART or parser behavior.

Build & Flash workflow

  1. Connect the Waveshare 7B to the development computer and wire the NEO-8 as

shown above.

  1. Use ForgeUI Studio's normal Build & Flash workflow, or build and flash the

standalone project with ESP-IDF 5.5.4.

  1. Confirm clean firmware startup and the UART1 configuration on GPIO3/GPIO4.
  2. Confirm UART RX alive, NMEA alive, and checksum-valid NMEA. Obtain open-sky

reception to verify 2D/3D fix behavior and live position fields.

  1. Confirm the one-shot UBX-MON-VER transmit log, checksum-valid response, and

continuing generated UI updates.

The real ESP-IDF 5.5.4 build, flash, UART operation, generated Studio UI live updates, and standalone export are all PHYSICALLY PROVEN on ESP32-P4.

Certification boundary

The proven scope is UART RX, checksum-valid NMEA, 2D/3D fix presentation, a 3D fix with 12 satellites observed, latitude/longitude, altitude, speed, HDOP, UTC, UART1 TX, a read-only UBX-MON-VER request with checksum-valid response, generated Studio UI live updates, standalone export, and ESP-IDF 5.5.4 Build & Flash.

This example does not claim mapping, navigation, routing, production vehicle navigation, or persistent UBX configuration.