49 lines
1.7 KiB
Markdown
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
|
|
```
|