m3 gps + duty cycle off

This commit is contained in:
liquidraver
2026-03-08 22:07:26 +01:00
parent 463cee9b31
commit fdd68dfb71
3 changed files with 23 additions and 13 deletions
@@ -30,6 +30,3 @@ CONFIG_PWM=y
# ThinkNode M3 has no display — enable LED heartbeat
CONFIG_ZEPHCORE_UI_DISPLAY=n
# RX duty cycle — note LR1110 guard is active, safe for battery-powered use
CONFIG_ZEPHCORE_LORA_RX_DUTY_CYCLE=y
@@ -2,7 +2,7 @@
* ThinkNode M3 board overlay - additional ZephCore-specific configuration
* SPDX-License-Identifier: Apache-2.0
*
* GPS control pins for the GPS module (chip TBD, generic NMEA at 9600 baud):
* GPS control pins for the GPS module (generic NMEA at 9600 baud):
* - GPS_POWER (P0.14) - Main power enable (always HIGH, gpio-hog)
* - GPS_EN (P0.21) - Standby control (HIGH = awake, LOW = standby)
* - GPS_RESET (P0.25) - Reset (GPS_RESET_ACTIVE = LOW, REINIT pin)
@@ -15,7 +15,7 @@
*/
/ {
/* GPS standby control - P0.21 (GPS_EN, HIGH = active/awake) */
/* GPS standby control - P0.21 (GPS_EN, HIGH = active/awake, LOW = standby) */
gps_en: gps-enable {
compatible = "gpio-leds";
gps_enable_pin: gps_enable {
@@ -24,8 +24,20 @@
};
};
/* GPS hardware reset - P0.25 (GPS_RESET, active-LOW)
* Asserted (pin LOW) on standby entry to halt the module cleanly.
* Released (pin HIGH) after GPS_EN on wake with a brief reset pulse. */
gps_rst: gps-reset {
compatible = "gpio-leds";
gps_reset_pin: gps_reset {
gpios = <&gpio0 25 GPIO_ACTIVE_LOW>;
label = "GPS Reset";
};
};
aliases {
gps-enable = &gps_enable_pin;
gps-reset = &gps_reset_pin;
};
};
@@ -7,8 +7,8 @@
* Hardware (from Arduino variant.h / platformio.ini):
* - nRF52840 SoC with BLE
* - LR1110 LoRa radio on SPI1 (TCXO 3.3V, DIO5/DIO6 RF switch)
* - GPS module on UART0 (9600 baud, generic NMEA; chip TBD)
* Control: GPS_POWER=P0.14 (always on), GPS_EN=P0.21 (standby), GPS_RESET=P0.25
* - GPS module on UART0 (9600 baud, generic NMEA)
* Control: GPS_POWER=P0.14 (always on), GPS_EN=P0.21 (standby), GPS_RESET=P0.25 (active-LOW)
* - Battery ADC on AIN3 (P0.05), 2:1 voltage divider
* - LEDs: GREEN=P1.03, RED=P1.01 (active-low), POWER=P0.29 (always on via overlay)
* - Button on P0.12 (active-low, pull-up), single button with multi-tap
@@ -174,13 +174,14 @@
/* GPS on UART0 (9600 baud)
*
* Using gnss-nmea-generic (passive NMEA listener) — the GPS chip is unknown
* but the Arduino firmware uses MicroNMEA (generic NMEA parser only, no
* proprietary commands). The module is controlled via 3 GPIOs in the overlay:
* GPS_POWER=P0.14 (always on), GPS_EN=P0.21 (standby via gps-enable alias).
* Using gnss-nmea-generic (passive NMEA listener) — Arduino reference code
* uses MicroNMEA (generic NMEA parser only, no proprietary commands), so
* chip-specific drivers are neither needed nor safe.
* GPS_POWER=P0.14 (always on hog), GPS_EN=P0.21 (wake/standby),
* GPS_RESET=P0.25 (active-LOW, pulsed on wake, asserted during standby).
*
* zephyr,deferred-init: GPS module needs GPIO power-up (GPS_EN HIGH) before
* NMEA output. ZephyrGPSManager handles power-up then calls device_init(). */
* zephyr,deferred-init: GPS needs GPIO power-up (GPS_EN HIGH) before NMEA
* output. ZephyrGPSManager handles power-up then calls device_init(). */
&uart0 {
compatible = "nordic,nrf-uarte";
status = "okay";