microReticulumTbeam/exercises/09_GPS_Time/README.md

49 lines
1.7 KiB
Markdown

## Exercise 09: GPS Time (L76K)
This exercise boots the T-Beam Supreme and verifies GPS behavior at startup.
Important sequence note:
- Exercise 10 (`10_Simple_GPS`) should be completed before this exercise.
- Exercise 10 README contains the detailed pin-configuration explanation and troubleshooting rationale for why explicit GPS pin mapping is critical on this hardware.
- If GPS behavior is unexpected here, review Exercise 10 README first, then return to Exercise 9.
Implemented behavior:
1. Initializes PMU, OLED, and SD startup watcher (same startup SD path used in Exercise 08).
2. Probes GPS at startup for NMEA traffic, module identity, satellite count, and UTC time availability.
- Uses explicit GPS UART pins and an active startup probe (multi-baud + common GPS query commands), aligned with the approach validated in Exercise 10.
3. If L76K is detected, normal GPS-time flow continues.
4. If L76K is not detected and Quectel-style module text is detected, OLED shows a hard TODO error:
- Quectel detected
- L76K required
- Quectel support is TODO
5. Every minute:
- If GPS UTC is valid: shows GPS UTC time and satellites on OLED.
- If satellites are seen but UTC is not valid yet: shows that condition and RTC time.
- If no satellites: shows:
- "Unable to acquire"
- "satellites"
- "Take me outside so I"
- "can see satellites"
- plus current RTC time.
Notes:
- GPS time displayed is UTC from NMEA RMC with valid status.
- Satellite count uses best available from GGA/GSV.
- RTC fallback reads PCF8563 via Wire1.
## Build
```bash
source /home/jlpoole/rnsenv/bin/activate
pio run -e node_a
```
## Upload
```bash
source /home/jlpoole/rnsenv/bin/activate
pio run -e node_a -t upload --upload-port /dev/ttyACM0
```