sensecap solar: add poweroff command and board power/LED parity

This commit is contained in:
Specter242
2026-02-27 22:12:12 -05:00
parent eeae32b25d
commit e323755990
6 changed files with 89 additions and 7 deletions

View File

@@ -5,6 +5,11 @@
#include <helpers/NRF52Board.h>
class SenseCapSolarBoard : public NRF52BoardDCDC {
protected:
#ifdef NRF52_POWER_MANAGEMENT
void initiateShutdown(uint8_t reason) override;
#endif
public:
SenseCapSolarBoard() : NRF52Board("SENSECAP_SOLAR_OTA") {}
void begin();
@@ -31,4 +36,23 @@ public:
const char* getManufacturerName() const override {
return "Seeed SenseCap Solar";
}
void powerOff() override {
digitalWrite(LED_GREEN, LOW);
digitalWrite(LED_BLUE, LOW);
#ifdef PIN_USER_BTN
while (digitalRead(PIN_USER_BTN) == LOW);
nrf_gpio_cfg_sense_input(digitalPinToInterrupt(g_ADigitalPinMap[PIN_USER_BTN]), NRF_GPIO_PIN_NOPULL, NRF_GPIO_PIN_SENSE_LOW);
#elif defined(PIN_BUTTON1)
while (digitalRead(PIN_BUTTON1) == LOW);
nrf_gpio_cfg_sense_input(digitalPinToInterrupt(g_ADigitalPinMap[PIN_BUTTON1]), NRF_GPIO_PIN_NOPULL, NRF_GPIO_PIN_SENSE_LOW);
#endif
#ifdef NRF52_POWER_MANAGEMENT
initiateShutdown(SHUTDOWN_REASON_USER);
#else
sd_power_system_off();
#endif
}
};