GPS refactored (#262)

- Refactored GPS service and HAL: GPS is no longer part of the HAL configuration. You can now add configure new GPS devices from the GPS settings app.
- T-Deck adds a boot hook to check if a GPS configuration exists and adds it when the config is empty.
- Implemented the concept of ObjectFile to read/write arrays of a raw data type (e.g. struct) to disk.
- Implemented more file utils (e.g. to create all directories of a path)
This commit is contained in:
Ken Van Hoeylandt
2025-03-30 01:14:22 +01:00
committed by GitHub
parent 81ece6f2e7
commit d0ca3b16f8
47 changed files with 1266 additions and 277 deletions
+27
View File
@@ -0,0 +1,27 @@
# GPS Reference
## Devices
### Beitian BH-222Q
115200 baud, U-Blox 10 clone, defaults to binary messages
https://www.beitian.com/en/pd.jsp?id=1677
### Beitian BN-357ZF
9600 baud, L76K clone
https://www.beitian.com/en/sys-pd/879.html
### GY-GPS6MV2
9600 baud, U-Blox 6 (original/clone)
https://www.datasheethub.com/gy-neo6mv2-flight-control-gps-module/
### M5Stack GPS
9600 baud, AT6558 + MAX2659 (LNA)
https://docs.m5stack.com/en/unit/gps
+1
View File
@@ -1,4 +1,5 @@
# TODOs
- rename kernel::systemEventAddListener() etc to subscribe/unsubscribe
- Split up boot stages, so the last stage can be done from the splash screen
- Start using non_null (either via MS GSL, or custom)
- `hal/Configuration.h` defines C function types: Use C++ std::function instead
+23
View File
@@ -0,0 +1,23 @@
# 4 Pin connectors
Many devices have 4-pin connectors:
Either a [Grove](https://docs.m5stack.com/en/start/interface/grove) connector or a [JST](https://en.wikipedia.org/wiki/JST_connector) one.
Boards that implement an I2C/UART configuration for such a connector are advised to always implement both.
To make it consistent, it's important that the pins are mapped in the same manner:
## I2C Pins
Follow the Grove layout:
Black(GND) - Red(5V) - Yellow(SDA) - White(SCL)
## I2C Pins
Follow this Grove layout on the MCU board:
Black(GND) - Red(5V) - Yellow(RX) - White(TX)
And this Grove layout on the peripheral:
Black(GND) - Red(5V) - Yellow(TX) - White(RX)