Browse Source

Implement proper shutdown procedure for R1 neo

fixes #2361
pull/2371/head
Wessel Nieboer 1 month ago
parent
commit
07671cf1fe
No known key found for this signature in database GPG Key ID: 27BB1C3D63DEEFFF
  1. 5
      variants/muziworks_r1_neo/R1NeoBoard.cpp
  2. 6
      variants/muziworks_r1_neo/R1NeoBoard.h

5
variants/muziworks_r1_neo/R1NeoBoard.cpp

@ -14,9 +14,12 @@ const PowerMgtConfig power_config = {
void R1NeoBoard::initiateShutdown(uint8_t reason) {
// Disable LoRa module power before shutdown
MESH_DEBUG_PRINTLN("R1Neo: shutting down");
digitalWrite(SX126X_POWER_EN, LOW);
// Signal IO controller that MCU is off, then release DCDC latch
digitalWrite(PIN_SOFT_SHUTDOWN, LOW);
digitalWrite(PIN_DCDC_EN_MCU_HOLD, LOW);
if (reason == SHUTDOWN_REASON_LOW_VOLTAGE ||
reason == SHUTDOWN_REASON_BOOT_PROTECT) {
configureVoltageWake(power_config.lpcomp_ain_channel, power_config.lpcomp_refsel);

6
variants/muziworks_r1_neo/R1NeoBoard.h

@ -18,6 +18,12 @@ public:
R1NeoBoard() : NRF52Board("R1NEO_OTA") {}
void begin();
#ifdef NRF52_POWER_MANAGEMENT
void powerOff() override {
initiateShutdown(SHUTDOWN_REASON_USER);
}
#endif
#if defined(P_LORA_TX_LED)
void onBeforeTransmit() override {
digitalWrite(P_LORA_TX_LED, HIGH); // turn TX LED on

Loading…
Cancel
Save