Commit Graph
32 Commits
Author SHA1 Message Date
Frieder Schrempf 4f46ec75dd Remove NRF52BoardOTA class and integrate it into NRF52Board
As all NRF52 boards now have OTA support, let's remove the subclass
and integrate it into the base class.

Signed-off-by: Frieder Schrempf <frieder@fris.de>
2026-01-08 22:46:20 +01:00
Frieder Schrempf 686d887f72 variants: T1000E: Add OTA support
To reduce the number of different code paths, add OTA support for the
remaining NRF52 boards.

Signed-off-by: Frieder Schrempf <frieder@fris.de>
2026-01-08 22:46:09 +01:00
Frieder Schrempf 1651db81f9 variants: Sensecap Solar: Use DC/DC regulator
The schematic shows the LC circuit for the internal DC/DC regulator
to be available. Enable it to save power.

Signed-off-by: Frieder Schrempf <frieder@fris.de>
2026-01-08 22:44:23 +01:00
Frieder Schrempf 80ca720002 variants: ProMicro: Use DC/DC regulator
The schematic shows the LC circuit for the internal DC/DC regulator
to be available. Enable it to save power.

Signed-off-by: Frieder Schrempf <frieder@fris.de>
2026-01-08 22:44:22 +01:00
Frieder Schrempf 137eed3ede variants: Minewsemi ME25LS01: Use DC/DC regulator
The schematic shows the LC circuit for the internal DC/DC regulator
to be available. Enable it to save power.

Signed-off-by: Frieder Schrempf <frieder@fris.de>
2026-01-08 22:44:21 +01:00
Frieder Schrempf 465b481a2e variants: Mesh Pocket: Use DC/DC regulator
The schematic shows the LC circuit for the internal DC/DC regulator
to be available. Enable it to save power.

Signed-off-by: Frieder Schrempf <frieder@fris.de>
2026-01-08 22:44:20 +01:00
Frieder Schrempf bf93d6cf7a variants: Lilygo T-Echo (Lite): Use DC/DC regulator
The schematic shows the LC circuit for the internal DC/DC regulator
to be available. Enable it to save power.

Signed-off-by: Frieder Schrempf <frieder@fris.de>
2026-01-08 22:44:19 +01:00
Frieder Schrempf 041f67ab71 variants: Ikoka NRF: Use DC/DC regulator
The Ikoka boards are based on the Xioa NRF52840 module which is known
to have the LC circuit for the internal DC/DC regulator to be
available. Enable it to save power.

Signed-off-by: Frieder Schrempf <frieder@fris.de>
2026-01-08 22:44:18 +01:00
Frieder Schrempf 3b0870e2c1 variants: Heltec T114: Use DC/DC regulator
The schematic shows the LC circuit for the internal DC/DC regulator
to be available. Enable it to save power.

Signed-off-by: Frieder Schrempf <frieder@fris.de>
2026-01-08 22:44:16 +01:00
Frieder Schrempf 24a4b99e31 variants: Heltec Mesh Solar: Use DC/DC regulator
The schematic shows the LC circuit for the internal DC/DC regulator
to be available. Enable it to save power.

Signed-off-by: Frieder Schrempf <frieder@fris.de>
2026-01-08 22:44:15 +01:00
Frieder Schrempf 578d55b28a variants: Thinknode M3/M6: Use common Nrf52Board class
Signed-off-by: Frieder Schrempf <frieder@fris.de>
2026-01-08 22:44:14 +01:00
Frieder Schrempf 57fa1ba854 variants: Wio WM1110: Use common implementation of startOTAUpdate()
Signed-off-by: Frieder Schrempf <frieder@fris.de>
2026-01-08 22:44:13 +01:00
Frieder Schrempf fa48d4fe81 variants: Nano G2 Ultra: Use common implementation of startOTAUpdate()
Signed-off-by: Frieder Schrempf <frieder@fris.de>
2026-01-08 22:43:38 +01:00
Frieder Schrempf ab7935142c EnvironmentSensorManager.cpp: Cleanup after failed RAK4631 GPS detection
If no GPS was detected, revert the hardware to the initial state,
otherwise we may see conflicts or increased power consumption on some
boards.

Signed-off-by: Frieder Schrempf <frieder@fris.de>
2025-12-31 14:42:42 +01:00
Frieder Schrempf e79ee11872 EnvironmentSensorManager.cpp: Fix RAK4631 serial GPS detection
Serial1 is always true. If we want to check for the presence of a GPS
receiver, we need to check if any data was received.

Signed-off-by: Frieder Schrempf <frieder@fris.de>
2025-12-31 14:42:41 +01:00
Frieder Schrempf 8eb229bcf8 variants: RAK4631: Enable DC/DC regulator to reduce power consumption
The RAK4631/RAK4630 module are able to use the DC/DC converter. Enable
it to reduce power consumption.

Signed-off-by: Frieder Schrempf <frieder@fris.de>
2025-12-17 10:39:55 +01:00
Frieder Schrempf 22b1585959 NRF52Board.h: Mark getMCUTemperature() as virtual
The function in the derived class is virtual per definition. Mark it
to make this clearer to the reader.

Signed-off-by: Frieder Schrempf <frieder@fris.de>
2025-12-17 10:39:54 +01:00
Frieder Schrempf b024b9e1a1 Deduplicate NRF52 startOTAUpdate()
The startOTAUpdate() is the same for all NRF52 boards. Use a common
implementation for all boards that currently have a specific
implementation.

The following boards currently have an empty startOTAUpdate() for
whatever reasons and therefore are not inheriting NRF52BoardOTA to
keep the same state: Nano G2 Ultra, Seeed SenseCAP T1000-E,
Wio WM1110.

Signed-off-by: Frieder Schrempf <frieder@fris.de>
2025-12-17 10:30:50 +01:00
Frieder Schrempf e3bb225efb Deduplicate DC/DC regulator enable for NRF52 boards
Some NRF52 boards are able to use the internal power-efficient DC/DC
regulator. Add a new class that can be inherited by board classes to
enable this feature and reduce the power consumption.

Signed-off-by: Frieder Schrempf <frieder@fris.de>
2025-12-17 10:29:14 +01:00
Frieder Schrempf 93d1560d14 Use common NRF52 begin() and deduplicate() startup reason init
Use a common begin() method that can be called from derived classes
to contain the shared initialization code.

Signed-off-by: Frieder Schrempf <frieder@fris.de>
2025-12-17 10:26:57 +01:00
Frieder Schrempf 87b0e432bb Deduplicate reboot() for NRF52 boards
The reboot() method is the same for all NRF52 boards. Use a shared
implementation.

Signed-off-by: Frieder Schrempf <frieder@fris.de>
2025-12-17 10:25:16 +01:00
Frieder Schrempf 6486192477 variants: IkokaNrf52Board: Use NRF52Board base class
Signed-off-by: Frieder Schrempf <frieder@fris.de>
2025-12-17 10:22:15 +01:00
Frieder Schrempf 10b43a8f9f variants: XIAO NRF52: Enable button pullup
Some versions of the Wio-SX1262 board don't have the button and the
pullup resistor populated. Enable the internal pullup to prevent
a floating pin and spurious button presses on those boards.

This fixes #1173.

Signed-off-by: Frieder Schrempf <frieder@fris.de>
2025-12-05 12:40:12 +01:00
Frieder Schrempf 7723a4cb34 variants: Heltec T114: Enable DC/DC regulator
According to the documentation and experiments on other boards using
NRF52 + SX1262 this reduces the power consumption significantly.

Signed-off-by: Frieder Schrempf <frieder@fris.de>
2025-11-22 15:05:12 +01:00
Frieder Schrempf 5235516dc7 variants: XIAO NRF52: Enable status LED
Fix the active state of the LEDs (active low) and enable the status
LED.

Signed-off-by: Frieder Schrempf <frieder@fris.de>
2025-11-22 15:05:09 +01:00
Frieder Schrempf 048bd268a1 companion: ui: Respect LED_STATE_ON for status LED
The current logic only works for active high LEDs. Some boards need
an active low level control and therefore they set LED_STATE_ON to 0.
Take this into account and use the correct LED pattern for both cases.

Signed-off-by: Frieder Schrempf <frieder@fris.de>
2025-11-22 15:05:08 +01:00
Frieder Schrempf 4a8dcb4906 variants: XIAO NRF52: Support power-off via user button
Add the necessary code to properly power-off the Xiao + Wio
companions. This way we can achieve around 15 microamps of power
consumption in the off state.

Signed-off-by: Frieder Schrempf <frieder@fris.de>
2025-11-22 15:05:07 +01:00
Frieder Schrempf c76d337a00 variants: XIAO NRF52: Enable user button
The Xiao nRF52840 combined with the Wio-SX1262 is often used for
cheap and compact DIY companion nodes. The Wio actually has an onboard
pushbutton that can be used as user button. Enable support for the
button.

Signed-off-by: Frieder Schrempf <frieder@fris.de>
2025-11-22 15:05:06 +01:00
Frieder Schrempf 11f119a7fb variants: XIAO NRF52: Enable DC/DC regulator
This reduces the power consumption by approximately 25%.

Signed-off-by: Frieder Schrempf <frieder@fris.de>
2025-11-22 15:05:05 +01:00
Frieder Schrempf b9b82fcf1b variants: WisMesh Tag: Enable status LED
Use the blue LED as status LED. This prevents the blue LED from
being always-on and draining the battery. Instead use it as status
LED with blink patterns as other companion devices do.

Signed-off-by: Frieder Schrempf <frieder@fris.de>
2025-11-22 15:05:04 +01:00
Frieder Schrempf 0f565323a0 variants: WisMesh Tag: Enable DC/DC regulator
According to the documentation and experiments on other boards using
NRF52 + SX1262 this reduces the power consumption significantly. This
assumes that the hardware actually has the inductor for the internal
DC/DC regulator populated which is very likely. Even if not, it won't
hurt.

Signed-off-by: Frieder Schrempf <frieder@fris.de>
2025-11-22 15:05:02 +01:00
Frieder Schrempf 0dfd2bcbb8 README.md: Explain that companion nodes do not repeat messages
This is a key difference compared to other systems and I see people
asking this a lot. It is mentioned in the FAQ but let's make it more
prominent in the README.
2025-09-08 23:04:32 +02:00