mirror of
https://github.com/meshcore-dev/MeshCore.git
synced 2026-04-20 22:13:47 +00:00
Add centralized LEDManager for configurable LED behavior
Adds a LEDManager class (src/helpers/ui/LEDManager.h) that centralizes all LED control into one component with begin()/loop() lifecycle and per-pin active-HIGH/LOW polarity support. LED settings are exposed as custom vars (led.status, led.activity) accessible via companion radio binary protocol, CLI set/get commands, and the SensorManager settings interface. Status LED modes: off, boot-30s, slow blink (200ms/4s), always on. Activity LED modes: off, BLE only, LoRa TX only, BLE + LoRa TX. Integrated into 23 board variants, replacing scattered hardcoded digitalWrite calls in onBeforeTransmit/onAfterTransmit/powerOff.
This commit is contained in:
parent
467959cc3b
commit
e2aa33b3a0
60 changed files with 497 additions and 185 deletions
|
|
@ -54,4 +54,9 @@ void GAT56230SMeshKitBoard::begin() {
|
|||
#endif
|
||||
digitalWrite(SX126X_POWER_EN, HIGH);
|
||||
delay(10); // give sx1262 some time to power up
|
||||
|
||||
// Start LEDs with defaults; prefs are applied after loadPrefs()
|
||||
static LEDManager _ledManager(LED_BLUE, LED_GREEN);
|
||||
ledManager = &_ledManager;
|
||||
ledManager->begin(LED_STATUS_BOOT_30S, LED_ACTIVITY_BOTH);
|
||||
}
|
||||
|
|
@ -3,6 +3,7 @@
|
|||
#include <MeshCore.h>
|
||||
#include <Arduino.h>
|
||||
#include <helpers/NRF52Board.h>
|
||||
#include <helpers/ui/LEDManager.h>
|
||||
|
||||
|
||||
class GAT56230SMeshKitBoard : public NRF52BoardDCDC {
|
||||
|
|
@ -33,15 +34,12 @@ public:
|
|||
return "GAT562 30S Mesh Kit";
|
||||
}
|
||||
|
||||
#if defined(P_LORA_TX_LED)
|
||||
void onBeforeTransmit() override {
|
||||
digitalWrite(P_LORA_TX_LED, HIGH); // turn TX LED on
|
||||
if (ledManager) ledManager->onBeforeTransmit();
|
||||
}
|
||||
|
||||
void onAfterTransmit() override {
|
||||
digitalWrite(P_LORA_TX_LED, LOW); // turn TX LED off
|
||||
if (ledManager) ledManager->onAfterTransmit();
|
||||
}
|
||||
#endif
|
||||
|
||||
void powerOff() override {
|
||||
uint32_t button_pin = PIN_BUTTON1;
|
||||
|
|
|
|||
|
|
@ -54,4 +54,9 @@ void GAT562MeshTrackerProBoard::begin() {
|
|||
#endif
|
||||
digitalWrite(SX126X_POWER_EN, HIGH);
|
||||
delay(10); // give sx1262 some time to power up
|
||||
|
||||
// Start LEDs with defaults; prefs are applied after loadPrefs()
|
||||
static LEDManager _ledManager(LED_GREEN, LED_BLUE);
|
||||
ledManager = &_ledManager;
|
||||
ledManager->begin(LED_STATUS_BOOT_30S, LED_ACTIVITY_BOTH);
|
||||
}
|
||||
|
|
@ -3,6 +3,7 @@
|
|||
#include <MeshCore.h>
|
||||
#include <Arduino.h>
|
||||
#include <helpers/NRF52Board.h>
|
||||
#include <helpers/ui/LEDManager.h>
|
||||
|
||||
|
||||
class GAT562MeshTrackerProBoard : public NRF52BoardDCDC {
|
||||
|
|
@ -33,15 +34,12 @@ public:
|
|||
return "GAT562 Mesh Tracker Pro";
|
||||
}
|
||||
|
||||
#if defined(P_LORA_TX_LED)
|
||||
void onBeforeTransmit() override {
|
||||
digitalWrite(P_LORA_TX_LED, HIGH); // turn TX LED on
|
||||
if (ledManager) ledManager->onBeforeTransmit();
|
||||
}
|
||||
|
||||
void onAfterTransmit() override {
|
||||
digitalWrite(P_LORA_TX_LED, LOW); // turn TX LED off
|
||||
if (ledManager) ledManager->onAfterTransmit();
|
||||
}
|
||||
#endif
|
||||
|
||||
void powerOff() override {
|
||||
uint32_t button_pin = PIN_BUTTON1;
|
||||
|
|
|
|||
|
|
@ -43,11 +43,6 @@ void T114Board::begin() {
|
|||
|
||||
Wire.begin();
|
||||
|
||||
#ifdef P_LORA_TX_LED
|
||||
pinMode(P_LORA_TX_LED, OUTPUT);
|
||||
digitalWrite(P_LORA_TX_LED, HIGH);
|
||||
#endif
|
||||
|
||||
pinMode(SX126X_POWER_EN, OUTPUT);
|
||||
#ifdef NRF52_POWER_MANAGEMENT
|
||||
// Boot voltage protection check (may not return if voltage too low)
|
||||
|
|
@ -56,4 +51,9 @@ void T114Board::begin() {
|
|||
#endif
|
||||
digitalWrite(SX126X_POWER_EN, HIGH);
|
||||
delay(10); // give sx1262 some time to power up
|
||||
|
||||
// Start LEDs with defaults; prefs are applied after loadPrefs()
|
||||
static LEDManager _ledManager(-1, LED_RED, true, false);
|
||||
ledManager = &_ledManager;
|
||||
ledManager->begin(LED_STATUS_BOOT_30S, LED_ACTIVITY_BOTH);
|
||||
}
|
||||
|
|
@ -3,6 +3,7 @@
|
|||
#include <MeshCore.h>
|
||||
#include <Arduino.h>
|
||||
#include <helpers/NRF52Board.h>
|
||||
#include <helpers/ui/LEDManager.h>
|
||||
|
||||
// built-ins
|
||||
#define PIN_VBAT_READ 4
|
||||
|
|
@ -19,14 +20,12 @@ public:
|
|||
T114Board() : NRF52Board("T114_OTA") {}
|
||||
void begin();
|
||||
|
||||
#if defined(P_LORA_TX_LED)
|
||||
void onBeforeTransmit() override {
|
||||
digitalWrite(P_LORA_TX_LED, LOW); // turn TX LED on
|
||||
if (ledManager) ledManager->onBeforeTransmit();
|
||||
}
|
||||
void onAfterTransmit() override {
|
||||
digitalWrite(P_LORA_TX_LED, HIGH); // turn TX LED off
|
||||
if (ledManager) ledManager->onAfterTransmit();
|
||||
}
|
||||
#endif
|
||||
|
||||
uint16_t getBattMilliVolts() override {
|
||||
int adcvalue = 0;
|
||||
|
|
@ -47,9 +46,7 @@ public:
|
|||
}
|
||||
|
||||
void powerOff() override {
|
||||
#ifdef LED_PIN
|
||||
digitalWrite(LED_PIN, HIGH);
|
||||
#endif
|
||||
if (ledManager) ledManager->powerOff();
|
||||
#if ENV_INCLUDE_GPS == 1
|
||||
pinMode(GPS_EN, OUTPUT);
|
||||
digitalWrite(GPS_EN, LOW);
|
||||
|
|
|
|||
|
|
@ -29,12 +29,12 @@ void IkokaNrf52Board::begin() {
|
|||
|
||||
Wire.begin();
|
||||
|
||||
#ifdef P_LORA_TX_LED
|
||||
pinMode(P_LORA_TX_LED, OUTPUT);
|
||||
digitalWrite(P_LORA_TX_LED, HIGH);
|
||||
#endif
|
||||
|
||||
delay(10); // give sx1262 some time to power up
|
||||
|
||||
// Start LEDs with defaults; prefs are applied after loadPrefs()
|
||||
static LEDManager _ledManager(LED_GREEN, LED_RED, false, false);
|
||||
ledManager = &_ledManager;
|
||||
ledManager->begin(LED_STATUS_BOOT_30S, LED_ACTIVITY_BOTH);
|
||||
}
|
||||
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -3,6 +3,7 @@
|
|||
#include <Arduino.h>
|
||||
#include <MeshCore.h>
|
||||
#include <helpers/NRF52Board.h>
|
||||
#include <helpers/ui/LEDManager.h>
|
||||
|
||||
#ifdef IKOKA_NRF52
|
||||
|
||||
|
|
@ -11,14 +12,12 @@ public:
|
|||
IkokaNrf52Board() : NRF52Board("XIAO_NRF52_OTA") {}
|
||||
void begin();
|
||||
|
||||
#if defined(P_LORA_TX_LED)
|
||||
void onBeforeTransmit() override {
|
||||
digitalWrite(P_LORA_TX_LED, LOW); // turn TX LED on
|
||||
if (ledManager) ledManager->onBeforeTransmit();
|
||||
}
|
||||
void onAfterTransmit() override {
|
||||
digitalWrite(P_LORA_TX_LED, HIGH); // turn TX LED off
|
||||
if (ledManager) ledManager->onAfterTransmit();
|
||||
}
|
||||
#endif
|
||||
|
||||
uint16_t getBattMilliVolts() override {
|
||||
// Please read befor going further ;)
|
||||
|
|
|
|||
|
|
@ -22,14 +22,14 @@ void IkokaNanoNRFBoard::begin() {
|
|||
|
||||
Wire.begin();
|
||||
|
||||
#ifdef P_LORA_TX_LED
|
||||
pinMode(P_LORA_TX_LED, OUTPUT);
|
||||
digitalWrite(P_LORA_TX_LED, HIGH);
|
||||
#endif
|
||||
|
||||
// pinMode(SX126X_POWER_EN, OUTPUT);
|
||||
// digitalWrite(SX126X_POWER_EN, HIGH);
|
||||
delay(10); // give sx1262 some time to power up
|
||||
|
||||
// Start LEDs with defaults; prefs are applied after loadPrefs()
|
||||
static LEDManager _ledManager(LED_GREEN, LED_RED, false, false);
|
||||
ledManager = &_ledManager;
|
||||
ledManager->begin(LED_STATUS_BOOT_30S, LED_ACTIVITY_BOTH);
|
||||
}
|
||||
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -3,6 +3,7 @@
|
|||
#include <MeshCore.h>
|
||||
#include <Arduino.h>
|
||||
#include <helpers/NRF52Board.h>
|
||||
#include <helpers/ui/LEDManager.h>
|
||||
|
||||
#ifdef XIAO_NRF52
|
||||
|
||||
|
|
@ -11,22 +12,20 @@ public:
|
|||
IkokaNanoNRFBoard() : NRF52Board("XIAO_NRF52_OTA") {}
|
||||
void begin();
|
||||
|
||||
#if defined(P_LORA_TX_LED)
|
||||
void onBeforeTransmit() override {
|
||||
digitalWrite(P_LORA_TX_LED, LOW); // turn TX LED on
|
||||
if (ledManager) ledManager->onBeforeTransmit();
|
||||
#if defined(LED_BLUE)
|
||||
// turn off that annoying blue LED before transmitting
|
||||
digitalWrite(LED_BLUE, HIGH);
|
||||
#endif
|
||||
}
|
||||
void onAfterTransmit() override {
|
||||
digitalWrite(P_LORA_TX_LED, HIGH); // turn TX LED off
|
||||
if (ledManager) ledManager->onAfterTransmit();
|
||||
#if defined(LED_BLUE)
|
||||
// do it after transmitting too, just in case
|
||||
digitalWrite(LED_BLUE, HIGH);
|
||||
#endif
|
||||
}
|
||||
#endif
|
||||
|
||||
uint16_t getBattMilliVolts() override {
|
||||
// Please read befor going further ;)
|
||||
|
|
|
|||
|
|
@ -22,14 +22,14 @@ void IkokaStickNRFBoard::begin() {
|
|||
|
||||
Wire.begin();
|
||||
|
||||
#ifdef P_LORA_TX_LED
|
||||
pinMode(P_LORA_TX_LED, OUTPUT);
|
||||
digitalWrite(P_LORA_TX_LED, HIGH);
|
||||
#endif
|
||||
|
||||
// pinMode(SX126X_POWER_EN, OUTPUT);
|
||||
// digitalWrite(SX126X_POWER_EN, HIGH);
|
||||
delay(10); // give sx1262 some time to power up
|
||||
|
||||
// Start LEDs with defaults; prefs are applied after loadPrefs()
|
||||
static LEDManager _ledManager(LED_GREEN, LED_RED, false, false);
|
||||
ledManager = &_ledManager;
|
||||
ledManager->begin(LED_STATUS_BOOT_30S, LED_ACTIVITY_BOTH);
|
||||
}
|
||||
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -3,6 +3,7 @@
|
|||
#include <MeshCore.h>
|
||||
#include <Arduino.h>
|
||||
#include <helpers/NRF52Board.h>
|
||||
#include <helpers/ui/LEDManager.h>
|
||||
|
||||
#ifdef XIAO_NRF52
|
||||
|
||||
|
|
@ -11,22 +12,20 @@ public:
|
|||
IkokaStickNRFBoard() : NRF52Board("XIAO_NRF52_OTA") {}
|
||||
void begin();
|
||||
|
||||
#if defined(P_LORA_TX_LED)
|
||||
void onBeforeTransmit() override {
|
||||
digitalWrite(P_LORA_TX_LED, LOW); // turn TX LED on
|
||||
if (ledManager) ledManager->onBeforeTransmit();
|
||||
#if defined(LED_BLUE)
|
||||
// turn off that annoying blue LED before transmitting
|
||||
digitalWrite(LED_BLUE, HIGH);
|
||||
#endif
|
||||
}
|
||||
void onAfterTransmit() override {
|
||||
digitalWrite(P_LORA_TX_LED, HIGH); // turn TX LED off
|
||||
if (ledManager) ledManager->onAfterTransmit();
|
||||
#if defined(LED_BLUE)
|
||||
// do it after transmitting too, just in case
|
||||
digitalWrite(LED_BLUE, HIGH);
|
||||
#endif
|
||||
}
|
||||
#endif
|
||||
|
||||
uint16_t getBattMilliVolts() override {
|
||||
// Please read befor going further ;)
|
||||
|
|
|
|||
|
|
@ -11,22 +11,23 @@ void TBeam1WBoard::begin() {
|
|||
|
||||
// RF switch RXEN pin handled by RadioLib via setRfSwitchPins()
|
||||
|
||||
// Initialize LED
|
||||
pinMode(LED_PIN, OUTPUT);
|
||||
digitalWrite(LED_PIN, LOW);
|
||||
|
||||
// Initialize fan control (on by default - 1W PA can overheat)
|
||||
pinMode(FAN_CTRL_PIN, OUTPUT);
|
||||
digitalWrite(FAN_CTRL_PIN, HIGH);
|
||||
|
||||
// Start LEDs with defaults; prefs are applied after loadPrefs()
|
||||
static LEDManager _ledManager(-1, LED_PIN);
|
||||
ledManager = &_ledManager;
|
||||
ledManager->begin(LED_STATUS_BOOT_30S, LED_ACTIVITY_BOTH);
|
||||
}
|
||||
|
||||
void TBeam1WBoard::onBeforeTransmit() {
|
||||
// RF switching handled by RadioLib via SX126X_DIO2_AS_RF_SWITCH and setRfSwitchPins()
|
||||
digitalWrite(LED_PIN, HIGH); // TX LED on
|
||||
if (ledManager) ledManager->onBeforeTransmit();
|
||||
}
|
||||
|
||||
void TBeam1WBoard::onAfterTransmit() {
|
||||
digitalWrite(LED_PIN, LOW); // TX LED off
|
||||
if (ledManager) ledManager->onAfterTransmit();
|
||||
}
|
||||
|
||||
uint16_t TBeam1WBoard::getBattMilliVolts() {
|
||||
|
|
@ -56,7 +57,7 @@ void TBeam1WBoard::powerOff() {
|
|||
radio_powered = false;
|
||||
|
||||
// Turn off LED and fan
|
||||
digitalWrite(LED_PIN, LOW);
|
||||
if (ledManager) ledManager->powerOff();
|
||||
digitalWrite(FAN_CTRL_PIN, LOW);
|
||||
|
||||
ESP32Board::powerOff();
|
||||
|
|
|
|||
|
|
@ -2,6 +2,7 @@
|
|||
|
||||
#include <Arduino.h>
|
||||
#include <helpers/ESP32Board.h>
|
||||
#include <helpers/ui/LEDManager.h>
|
||||
#include "variant.h"
|
||||
|
||||
// LilyGo T-Beam 1W with SX1262 + external PA (XY16P35 module)
|
||||
|
|
|
|||
|
|
@ -9,4 +9,9 @@ void HeltecMeshPocket::begin() {
|
|||
pinMode(PIN_VBAT_READ, INPUT);
|
||||
|
||||
pinMode(PIN_USER_BTN, INPUT);
|
||||
|
||||
// Start LEDs with defaults; prefs are applied after loadPrefs()
|
||||
static LEDManager _ledManager(PIN_LED, -1, false);
|
||||
ledManager = &_ledManager;
|
||||
ledManager->begin(LED_STATUS_BOOT_30S, LED_ACTIVITY_BOTH);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -3,6 +3,7 @@
|
|||
#include <Arduino.h>
|
||||
#include <MeshCore.h>
|
||||
#include <helpers/NRF52Board.h>
|
||||
#include <helpers/ui/LEDManager.h>
|
||||
|
||||
// built-ins
|
||||
#define PIN_VBAT_READ 29
|
||||
|
|
|
|||
|
|
@ -39,6 +39,11 @@ void MeshtinyBoard::begin() {
|
|||
pinMode(SX126X_POWER_EN, OUTPUT);
|
||||
digitalWrite(SX126X_POWER_EN, HIGH);
|
||||
delay(10); // give sx1262 some time to power up
|
||||
|
||||
// Start LEDs with defaults; prefs are applied after loadPrefs()
|
||||
static LEDManager _ledManager(LED_GREEN, PIN_LED2);
|
||||
ledManager = &_ledManager;
|
||||
ledManager->begin(LED_STATUS_BOOT_30S, LED_ACTIVITY_BOTH);
|
||||
}
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -3,6 +3,7 @@
|
|||
#include <Arduino.h>
|
||||
#include <MeshCore.h>
|
||||
#include <helpers/NRF52Board.h>
|
||||
#include <helpers/ui/LEDManager.h>
|
||||
|
||||
class MeshtinyBoard : public NRF52BoardDCDC {
|
||||
protected:
|
||||
|
|
@ -12,14 +13,12 @@ public:
|
|||
MeshtinyBoard() : NRF52Board("Meshtiny OTA") {}
|
||||
void begin();
|
||||
|
||||
#if defined(P_LORA_TX_LED)
|
||||
void onBeforeTransmit() override {
|
||||
digitalWrite(P_LORA_TX_LED, HIGH); // turn TX LED on
|
||||
if (ledManager) ledManager->onBeforeTransmit();
|
||||
}
|
||||
void onAfterTransmit() override {
|
||||
digitalWrite(P_LORA_TX_LED, LOW); // turn TX LED off
|
||||
if (ledManager) ledManager->onAfterTransmit();
|
||||
}
|
||||
#endif
|
||||
|
||||
uint16_t getBattMilliVolts() override {
|
||||
int adcvalue = 0;
|
||||
|
|
@ -47,14 +46,7 @@ public:
|
|||
digitalWrite(PIN_3V3_EN, LOW);
|
||||
#endif
|
||||
|
||||
|
||||
#ifdef PIN_LED1
|
||||
digitalWrite(PIN_LED1, LOW);
|
||||
#endif
|
||||
|
||||
#ifdef PIN_LED2
|
||||
digitalWrite(PIN_LED2, LOW);
|
||||
#endif
|
||||
if (ledManager) ledManager->powerOff();
|
||||
|
||||
#ifdef PIN_USER_BTN
|
||||
nrf_gpio_cfg_sense_input(g_ADigitalPinMap[PIN_USER_BTN], NRF_GPIO_PIN_PULLUP, NRF_GPIO_PIN_SENSE_LOW);
|
||||
|
|
|
|||
|
|
@ -20,10 +20,10 @@ void MinewsemiME25LS01Board::begin() {
|
|||
|
||||
Wire.begin();
|
||||
|
||||
#ifdef P_LORA_TX_LED
|
||||
pinMode(P_LORA_TX_LED, OUTPUT);
|
||||
digitalWrite(P_LORA_TX_LED, LOW);
|
||||
#endif
|
||||
|
||||
delay(10); // give sx1262 some time to power up
|
||||
|
||||
// Start LEDs with defaults; prefs are applied after loadPrefs()
|
||||
static LEDManager _ledManager(LED_BLUE, LED_RED);
|
||||
ledManager = &_ledManager;
|
||||
ledManager->begin(LED_STATUS_BOOT_30S, LED_ACTIVITY_BOTH);
|
||||
}
|
||||
|
|
@ -3,6 +3,7 @@
|
|||
#include <MeshCore.h>
|
||||
#include <Arduino.h>
|
||||
#include <helpers/NRF52Board.h>
|
||||
#include <helpers/ui/LEDManager.h>
|
||||
|
||||
// LoRa and SPI pins
|
||||
|
||||
|
|
@ -54,26 +55,23 @@ public:
|
|||
pinMode(GPS_RESETB, OUTPUT);
|
||||
digitalWrite(GPS_RESETB, LOW);
|
||||
#endif
|
||||
|
||||
|
||||
#ifdef BUZZER_EN
|
||||
digitalWrite(BUZZER_EN, LOW);
|
||||
#endif
|
||||
|
||||
#ifdef LED_PIN
|
||||
digitalWrite(LED_PIN, LOW);
|
||||
#endif
|
||||
|
||||
if (ledManager) ledManager->powerOff();
|
||||
|
||||
#ifdef BUTTON_PIN
|
||||
nrf_gpio_cfg_sense_input(digitalPinToInterrupt(BUTTON_PIN), NRF_GPIO_PIN_PULLUP, NRF_GPIO_PIN_SENSE_HIGH);
|
||||
#endif
|
||||
sd_power_system_off();
|
||||
}
|
||||
|
||||
#if defined(P_LORA_TX_LED)
|
||||
void onBeforeTransmit() override {
|
||||
digitalWrite(P_LORA_TX_LED, HIGH);// turn TX LED on
|
||||
if (ledManager) ledManager->onBeforeTransmit();
|
||||
}
|
||||
void onAfterTransmit() override {
|
||||
digitalWrite(P_LORA_TX_LED, LOW); // turn TX LED off
|
||||
if (ledManager) ledManager->onAfterTransmit();
|
||||
}
|
||||
#endif
|
||||
};
|
||||
|
|
@ -22,4 +22,9 @@ void PromicroBoard::begin() {
|
|||
pinMode(SX126X_POWER_EN, OUTPUT);
|
||||
digitalWrite(SX126X_POWER_EN, HIGH);
|
||||
delay(10); // give sx1262 some time to power up
|
||||
|
||||
// Start LEDs with defaults; prefs are applied after loadPrefs()
|
||||
static LEDManager _ledManager(PIN_LED, -1);
|
||||
ledManager = &_ledManager;
|
||||
ledManager->begin(LED_STATUS_BOOT_30S, LED_ACTIVITY_BOTH);
|
||||
}
|
||||
|
|
@ -3,6 +3,7 @@
|
|||
#include <MeshCore.h>
|
||||
#include <Arduino.h>
|
||||
#include <helpers/NRF52Board.h>
|
||||
#include <helpers/ui/LEDManager.h>
|
||||
|
||||
#define P_LORA_NSS 13 //P1.13 45
|
||||
#define P_LORA_DIO_1 11 //P0.10 10
|
||||
|
|
|
|||
|
|
@ -7,10 +7,6 @@ void RAK11310Board::begin() {
|
|||
// for future use, sub-classes SHOULD call this from their begin()
|
||||
startup_reason = BD_STARTUP_NORMAL;
|
||||
|
||||
#ifdef P_LORA_TX_LED
|
||||
pinMode(P_LORA_TX_LED, OUTPUT);
|
||||
#endif
|
||||
|
||||
#ifdef PIN_VBAT_READ
|
||||
pinMode(PIN_VBAT_READ, INPUT);
|
||||
#endif
|
||||
|
|
@ -23,6 +19,11 @@ void RAK11310Board::begin() {
|
|||
Wire.begin();
|
||||
|
||||
delay(10); // give sx1262 some time to power up
|
||||
|
||||
// Start LEDs with defaults; prefs are applied after loadPrefs()
|
||||
static LEDManager _ledManager(23, 24);
|
||||
ledManager = &_ledManager;
|
||||
ledManager->begin(LED_STATUS_BOOT_30S, LED_ACTIVITY_BOTH);
|
||||
}
|
||||
|
||||
bool RAK11310Board::startOTAUpdate(const char *id, char reply[]) {
|
||||
|
|
|
|||
|
|
@ -2,6 +2,7 @@
|
|||
|
||||
#include <Arduino.h>
|
||||
#include <MeshCore.h>
|
||||
#include <helpers/ui/LEDManager.h>
|
||||
|
||||
// from https://github.com/RAKWireless/RAK11300-AT-Command-Firmware/blob/9c48409a43620a828d653501d536473200aa33af/RAK11300-AT-Arduino/batt.cpp#L17-L19
|
||||
#define VBAT_MV_PER_LSB (0.806F) // 3.0V ADC range and 12 - bit ADC resolution = 3300mV / 4096
|
||||
|
|
@ -20,10 +21,12 @@ public:
|
|||
void begin();
|
||||
uint8_t getStartupReason() const override { return startup_reason; }
|
||||
|
||||
#ifdef P_LORA_TX_LED
|
||||
void onBeforeTransmit() override { digitalWrite(P_LORA_TX_LED, HIGH); }
|
||||
void onAfterTransmit() override { digitalWrite(P_LORA_TX_LED, LOW); }
|
||||
#endif
|
||||
void onBeforeTransmit() override {
|
||||
if (ledManager) ledManager->onBeforeTransmit();
|
||||
}
|
||||
void onAfterTransmit() override {
|
||||
if (ledManager) ledManager->onAfterTransmit();
|
||||
}
|
||||
|
||||
uint16_t getBattMilliVolts() override {
|
||||
#if defined(PIN_VBAT_READ) && defined(ADC_MULTIPLIER)
|
||||
|
|
|
|||
|
|
@ -63,4 +63,9 @@ void RAK3401Board::begin() {
|
|||
#endif
|
||||
digitalWrite(SX126X_POWER_EN, HIGH);
|
||||
delay(1); // SKY66122 turn-on settling time (tON = 3us typ)
|
||||
|
||||
// Start LEDs with defaults; prefs are applied after loadPrefs()
|
||||
static LEDManager _ledManager(LED_GREEN, LED_BLUE);
|
||||
ledManager = &_ledManager;
|
||||
ledManager->begin(LED_STATUS_BOOT_30S, LED_ACTIVITY_BOTH);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -3,6 +3,7 @@
|
|||
#include <MeshCore.h>
|
||||
#include <Arduino.h>
|
||||
#include <helpers/NRF52Board.h>
|
||||
#include <helpers/ui/LEDManager.h>
|
||||
|
||||
// built-ins
|
||||
#define PIN_VBAT_READ 5
|
||||
|
|
@ -38,6 +39,10 @@ public:
|
|||
return "RAK 3401";
|
||||
}
|
||||
|
||||
// TX/RX switching is handled by SX1262 DIO2 -> SKY66122 CTX (hardware-timed).
|
||||
// No onBeforeTransmit/onAfterTransmit overrides needed.
|
||||
void onBeforeTransmit() override {
|
||||
if (ledManager) ledManager->onBeforeTransmit();
|
||||
}
|
||||
void onAfterTransmit() override {
|
||||
if (ledManager) ledManager->onAfterTransmit();
|
||||
}
|
||||
};
|
||||
|
|
|
|||
|
|
@ -50,4 +50,9 @@ void RAK4631Board::begin() {
|
|||
#endif
|
||||
digitalWrite(SX126X_POWER_EN, HIGH);
|
||||
delay(10); // give sx1262 some time to power up
|
||||
|
||||
// Start LEDs with defaults; prefs are applied after loadPrefs()
|
||||
static LEDManager _ledManager(LED_GREEN, LED_BLUE);
|
||||
ledManager = &_ledManager;
|
||||
ledManager->begin(LED_STATUS_BOOT_30S, LED_ACTIVITY_BOTH);
|
||||
}
|
||||
|
|
@ -3,6 +3,7 @@
|
|||
#include <MeshCore.h>
|
||||
#include <Arduino.h>
|
||||
#include <helpers/NRF52Board.h>
|
||||
#include <helpers/ui/LEDManager.h>
|
||||
|
||||
// built-ins
|
||||
#define PIN_VBAT_READ 5
|
||||
|
|
@ -35,4 +36,8 @@ public:
|
|||
const char* getManufacturerName() const override {
|
||||
return "RAK 4631";
|
||||
}
|
||||
|
||||
void onBeforeTransmit() override { if (ledManager) ledManager->onBeforeTransmit(); }
|
||||
void onAfterTransmit() override { if (ledManager) ledManager->onAfterTransmit(); }
|
||||
void powerOff() override { if (ledManager) ledManager->powerOff(); }
|
||||
};
|
||||
|
|
|
|||
|
|
@ -15,4 +15,9 @@ void RAKWismeshTagBoard::begin() {
|
|||
pinMode(SX126X_POWER_EN, OUTPUT);
|
||||
digitalWrite(SX126X_POWER_EN, HIGH);
|
||||
delay(10); // give sx1262 some time to power up
|
||||
|
||||
// Start LEDs with defaults; prefs are applied after loadPrefs()
|
||||
static LEDManager _ledManager(LED_BLUE, LED_GREEN);
|
||||
ledManager = &_ledManager;
|
||||
ledManager->begin(LED_STATUS_BOOT_30S, LED_ACTIVITY_BOTH);
|
||||
}
|
||||
|
|
@ -3,6 +3,7 @@
|
|||
#include <MeshCore.h>
|
||||
#include <Arduino.h>
|
||||
#include <helpers/NRF52Board.h>
|
||||
#include <helpers/ui/LEDManager.h>
|
||||
|
||||
// built-ins
|
||||
#define PIN_VBAT_READ 5
|
||||
|
|
@ -13,14 +14,12 @@ public:
|
|||
RAKWismeshTagBoard() : NRF52Board("WISMESHTAG_OTA") {}
|
||||
void begin();
|
||||
|
||||
#if defined(P_LORA_TX_LED) && defined(LED_STATE_ON)
|
||||
void onBeforeTransmit() override {
|
||||
digitalWrite(P_LORA_TX_LED, LED_STATE_ON); // turn TX LED on
|
||||
if (ledManager) ledManager->onBeforeTransmit();
|
||||
}
|
||||
void onAfterTransmit() override {
|
||||
digitalWrite(P_LORA_TX_LED, !LED_STATE_ON); // turn TX LED off
|
||||
if (ledManager) ledManager->onAfterTransmit();
|
||||
}
|
||||
#endif
|
||||
|
||||
#define BATTERY_SAMPLES 8
|
||||
|
||||
|
|
@ -57,12 +56,8 @@ public:
|
|||
// wismesh tag uses LOW to indicate button is pressed, wait until it goes HIGH to indicate it was released
|
||||
while(digitalRead(BUTTON_PIN) == LOW);
|
||||
#endif
|
||||
#ifdef LED_GREEN
|
||||
digitalWrite(LED_GREEN, LOW);
|
||||
#endif
|
||||
#ifdef LED_BLUE
|
||||
digitalWrite(LED_BLUE, LOW);
|
||||
#endif
|
||||
|
||||
if (ledManager) ledManager->powerOff();
|
||||
|
||||
#ifdef BUTTON_PIN
|
||||
// configure button press to wake up when in powered off state
|
||||
|
|
|
|||
|
|
@ -47,23 +47,14 @@ void SenseCapSolarBoard::begin() {
|
|||
|
||||
Wire.begin();
|
||||
|
||||
#ifdef LED_WHITE
|
||||
pinMode(LED_WHITE, OUTPUT);
|
||||
digitalWrite(LED_WHITE, HIGH);
|
||||
#endif
|
||||
#ifdef LED_BLUE
|
||||
pinMode(LED_BLUE, OUTPUT);
|
||||
digitalWrite(LED_BLUE, LOW);
|
||||
#endif
|
||||
|
||||
#ifdef P_LORA_TX_LED
|
||||
pinMode(P_LORA_TX_LED, OUTPUT);
|
||||
digitalWrite(P_LORA_TX_LED, LOW);
|
||||
#endif
|
||||
|
||||
#ifdef NRF52_POWER_MANAGEMENT
|
||||
checkBootVoltage(&power_config);
|
||||
#endif
|
||||
|
||||
delay(10); // give sx1262 some time to power up
|
||||
|
||||
// Start LEDs with defaults; prefs are applied after loadPrefs()
|
||||
static LEDManager _ledManager(LED_BLUE, LED_WHITE);
|
||||
ledManager = &_ledManager;
|
||||
ledManager->begin(LED_STATUS_BOOT_30S, LED_ACTIVITY_BOTH);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -3,6 +3,7 @@
|
|||
#include <MeshCore.h>
|
||||
#include <Arduino.h>
|
||||
#include <helpers/NRF52Board.h>
|
||||
#include <helpers/ui/LEDManager.h>
|
||||
|
||||
class SenseCapSolarBoard : public NRF52BoardDCDC {
|
||||
protected:
|
||||
|
|
@ -14,14 +15,12 @@ public:
|
|||
SenseCapSolarBoard() : NRF52Board("SENSECAP_SOLAR_OTA") {}
|
||||
void begin();
|
||||
|
||||
#if defined(P_LORA_TX_LED)
|
||||
void onBeforeTransmit() override {
|
||||
digitalWrite(P_LORA_TX_LED, HIGH); // turn TX LED on
|
||||
if (ledManager) ledManager->onBeforeTransmit();
|
||||
}
|
||||
void onAfterTransmit() override {
|
||||
digitalWrite(P_LORA_TX_LED, LOW); // turn TX LED off
|
||||
if (ledManager) ledManager->onAfterTransmit();
|
||||
}
|
||||
#endif
|
||||
|
||||
uint16_t getBattMilliVolts() override {
|
||||
digitalWrite(VBAT_ENABLE, LOW);
|
||||
|
|
@ -38,8 +37,7 @@ public:
|
|||
}
|
||||
|
||||
void powerOff() override {
|
||||
digitalWrite(LED_WHITE, LOW);
|
||||
digitalWrite(LED_BLUE, LOW);
|
||||
if (ledManager) ledManager->powerOff();
|
||||
|
||||
#ifdef PIN_USER_BTN
|
||||
while (digitalRead(PIN_USER_BTN) == LOW);
|
||||
|
|
|
|||
|
|
@ -20,4 +20,9 @@ void T1000eBoard::begin() {
|
|||
Wire.begin();
|
||||
|
||||
delay(10); // give sx1262 some time to power up
|
||||
|
||||
// Start LEDs with defaults; prefs are applied after loadPrefs()
|
||||
static LEDManager _ledManager(LED_GREEN, -1);
|
||||
ledManager = &_ledManager;
|
||||
ledManager->begin(LED_STATUS_BOOT_30S, LED_ACTIVITY_BOTH);
|
||||
}
|
||||
|
|
@ -3,6 +3,7 @@
|
|||
#include <MeshCore.h>
|
||||
#include <Arduino.h>
|
||||
#include <helpers/NRF52Board.h>
|
||||
#include <helpers/ui/LEDManager.h>
|
||||
|
||||
class T1000eBoard : public NRF52BoardDCDC {
|
||||
protected:
|
||||
|
|
@ -80,9 +81,8 @@ public:
|
|||
#ifdef BUTTON_PIN
|
||||
while(digitalRead(BUTTON_PIN));
|
||||
#endif
|
||||
#ifdef LED_PIN
|
||||
digitalWrite(LED_PIN, LOW);
|
||||
#endif
|
||||
|
||||
if (ledManager) ledManager->powerOff();
|
||||
|
||||
#ifdef BUTTON_PIN
|
||||
nrf_gpio_cfg_sense_input(BUTTON_PIN, NRF_GPIO_PIN_NOPULL, NRF_GPIO_PIN_SENSE_HIGH);
|
||||
|
|
|
|||
|
|
@ -10,14 +10,15 @@ void ThinkNodeM1Board::begin() {
|
|||
|
||||
Wire.begin();
|
||||
|
||||
#ifdef P_LORA_TX_LED
|
||||
pinMode(P_LORA_TX_LED, OUTPUT);
|
||||
digitalWrite(P_LORA_TX_LED, LOW);
|
||||
#endif
|
||||
|
||||
pinMode(SX126X_POWER_EN, OUTPUT);
|
||||
digitalWrite(SX126X_POWER_EN, HIGH);
|
||||
delay(10); // give sx1262 some time to power up
|
||||
|
||||
// Start LEDs with defaults; prefs are applied after loadPrefs()
|
||||
// LED_GREEN is active-LOW (LED_STATE_ON=LOW), P_LORA_TX_LED(13) is active-HIGH
|
||||
static LEDManager _ledManager(LED_GREEN, 13, false, true);
|
||||
ledManager = &_ledManager;
|
||||
ledManager->begin(LED_STATUS_BOOT_30S, LED_ACTIVITY_BOTH);
|
||||
}
|
||||
|
||||
uint16_t ThinkNodeM1Board::getBattMilliVolts() {
|
||||
|
|
|
|||
|
|
@ -3,6 +3,7 @@
|
|||
#include <MeshCore.h>
|
||||
#include <Arduino.h>
|
||||
#include <helpers/NRF52Board.h>
|
||||
#include <helpers/ui/LEDManager.h>
|
||||
|
||||
// built-ins
|
||||
#define VBAT_MV_PER_LSB (0.73242188F) // 3.0V ADC range and 12-bit ADC resolution = 3000mV/4096
|
||||
|
|
@ -19,28 +20,21 @@ public:
|
|||
void begin();
|
||||
uint16_t getBattMilliVolts() override;
|
||||
|
||||
#if defined(P_LORA_TX_LED)
|
||||
void onBeforeTransmit() override {
|
||||
digitalWrite(P_LORA_TX_LED, HIGH); // turn TX LED on
|
||||
if (ledManager) ledManager->onBeforeTransmit();
|
||||
}
|
||||
void onAfterTransmit() override {
|
||||
digitalWrite(P_LORA_TX_LED, LOW); // turn TX LED off
|
||||
if (ledManager) ledManager->onAfterTransmit();
|
||||
}
|
||||
#endif
|
||||
|
||||
const char* getManufacturerName() const override {
|
||||
return "Elecrow ThinkNode-M1";
|
||||
}
|
||||
|
||||
void powerOff() override {
|
||||
|
||||
// turn off all leds, sd_power_system_off will not do this for us
|
||||
#ifdef P_LORA_TX_LED
|
||||
digitalWrite(P_LORA_TX_LED, LOW);
|
||||
#endif
|
||||
if (ledManager) ledManager->powerOff();
|
||||
|
||||
// power off board
|
||||
sd_power_system_off();
|
||||
|
||||
}
|
||||
};
|
||||
|
|
|
|||
|
|
@ -9,7 +9,11 @@ void ThinknodeM2Board::begin() {
|
|||
digitalWrite(PIN_VEXT_EN, PIN_VEXT_EN_ACTIVE); // turn backlight back on
|
||||
delay(120); // give display time to bias on cold boot
|
||||
ESP32Board::begin();
|
||||
pinMode(PIN_STATUS_LED, OUTPUT); // init power led
|
||||
|
||||
// Start LEDs with defaults; prefs are applied after loadPrefs()
|
||||
static LEDManager _ledManager(PIN_STATUS_LED, -1);
|
||||
ledManager = &_ledManager;
|
||||
ledManager->begin(LED_STATUS_BOOT_30S, LED_ACTIVITY_BOTH);
|
||||
}
|
||||
|
||||
void ThinknodeM2Board::enterDeepSleep(uint32_t secs, int pin_wake_btn) {
|
||||
|
|
|
|||
|
|
@ -3,6 +3,7 @@
|
|||
#include <Arduino.h>
|
||||
#include <helpers/RefCountedDigitalPin.h>
|
||||
#include <helpers/ESP32Board.h>
|
||||
#include <helpers/ui/LEDManager.h>
|
||||
#include <driver/rtc_io.h>
|
||||
|
||||
class ThinknodeM2Board : public ESP32Board {
|
||||
|
|
|
|||
|
|
@ -11,6 +11,11 @@ void ThinkNodeM3Board::begin() {
|
|||
Wire.begin();
|
||||
|
||||
delay(10); // give sx1262 some time to power up
|
||||
|
||||
// Start LEDs with defaults; prefs are applied after loadPrefs()
|
||||
static LEDManager _ledManager(PIN_LED_GREEN, PIN_LED_BLUE, false, false);
|
||||
ledManager = &_ledManager;
|
||||
ledManager->begin(LED_STATUS_BOOT_30S, LED_ACTIVITY_BOTH);
|
||||
}
|
||||
|
||||
uint16_t ThinkNodeM3Board::getBattMilliVolts() {
|
||||
|
|
|
|||
|
|
@ -3,6 +3,7 @@
|
|||
#include <Arduino.h>
|
||||
#include <MeshCore.h>
|
||||
#include <helpers/NRF52Board.h>
|
||||
#include <helpers/ui/LEDManager.h>
|
||||
|
||||
#define ADC_FACTOR ((1000.0*ADC_MULTIPLIER*AREF_VOLTAGE)/ADC_MAX)
|
||||
|
||||
|
|
@ -18,14 +19,12 @@ public:
|
|||
void begin();
|
||||
uint16_t getBattMilliVolts() override;
|
||||
|
||||
#if defined(P_LORA_TX_LED)
|
||||
void onBeforeTransmit() override {
|
||||
digitalWrite(P_LORA_TX_LED, HIGH); // turn TX LED on
|
||||
if (ledManager) ledManager->onBeforeTransmit();
|
||||
}
|
||||
void onAfterTransmit() override {
|
||||
digitalWrite(P_LORA_TX_LED, LOW); // turn TX LED off
|
||||
if (ledManager) ledManager->onAfterTransmit();
|
||||
}
|
||||
#endif
|
||||
|
||||
const char* getManufacturerName() const override {
|
||||
return "Elecrow ThinkNode M3";
|
||||
|
|
@ -43,10 +42,7 @@ public:
|
|||
}
|
||||
|
||||
void powerOff() override {
|
||||
// turn off all leds, sd_power_system_off will not do this for us
|
||||
#ifdef P_LORA_TX_LED
|
||||
digitalWrite(P_LORA_TX_LED, LOW);
|
||||
#endif
|
||||
if (ledManager) ledManager->powerOff();
|
||||
|
||||
// power off board
|
||||
sd_power_system_off();
|
||||
|
|
|
|||
|
|
@ -10,12 +10,12 @@ void ThinkNodeM6Board::begin() {
|
|||
|
||||
Wire.begin();
|
||||
|
||||
#ifdef P_LORA_TX_LED
|
||||
pinMode(P_LORA_TX_LED, OUTPUT);
|
||||
digitalWrite(P_LORA_TX_LED, LOW);
|
||||
#endif
|
||||
|
||||
delay(10); // give sx1262 some time to power up
|
||||
|
||||
// Start LEDs with defaults; prefs are applied after loadPrefs()
|
||||
static LEDManager _ledManager(PIN_LED_RED, PIN_LED_BLUE);
|
||||
ledManager = &_ledManager;
|
||||
ledManager->begin(LED_STATUS_BOOT_30S, LED_ACTIVITY_BOTH);
|
||||
}
|
||||
|
||||
uint16_t ThinkNodeM6Board::getBattMilliVolts() {
|
||||
|
|
|
|||
|
|
@ -3,6 +3,7 @@
|
|||
#include <Arduino.h>
|
||||
#include <MeshCore.h>
|
||||
#include <helpers/NRF52Board.h>
|
||||
#include <helpers/ui/LEDManager.h>
|
||||
|
||||
// built-ins
|
||||
#define VBAT_MV_PER_LSB (0.73242188F) // 3.0V ADC range and 12-bit ADC resolution = 3000mV/4096
|
||||
|
|
@ -23,25 +24,19 @@ public:
|
|||
void begin();
|
||||
uint16_t getBattMilliVolts() override;
|
||||
|
||||
#if defined(P_LORA_TX_LED)
|
||||
void onBeforeTransmit() override {
|
||||
digitalWrite(P_LORA_TX_LED, HIGH); // turn TX LED on
|
||||
if (ledManager) ledManager->onBeforeTransmit();
|
||||
}
|
||||
void onAfterTransmit() override {
|
||||
digitalWrite(P_LORA_TX_LED, LOW); // turn TX LED off
|
||||
if (ledManager) ledManager->onAfterTransmit();
|
||||
}
|
||||
#endif
|
||||
|
||||
const char* getManufacturerName() const override {
|
||||
return "Elecrow ThinkNode M6";
|
||||
}
|
||||
|
||||
void powerOff() override {
|
||||
|
||||
// turn off all leds, sd_power_system_off will not do this for us
|
||||
#ifdef P_LORA_TX_LED
|
||||
digitalWrite(P_LORA_TX_LED, LOW);
|
||||
#endif
|
||||
if (ledManager) ledManager->powerOff();
|
||||
|
||||
// power off board
|
||||
sd_power_system_off();
|
||||
|
|
|
|||
|
|
@ -13,8 +13,6 @@ void WioWM1110Board::begin() {
|
|||
pinMode(LED_RED, OUTPUT);
|
||||
pinMode(SENSOR_POWER_PIN, OUTPUT);
|
||||
|
||||
digitalWrite(LED_GREEN, HIGH);
|
||||
digitalWrite(LED_RED, LOW);
|
||||
digitalWrite(SENSOR_POWER_PIN, LOW);
|
||||
|
||||
Serial1.begin(115200);
|
||||
|
|
@ -26,6 +24,12 @@ void WioWM1110Board::begin() {
|
|||
Wire.begin();
|
||||
|
||||
delay(10);
|
||||
|
||||
// Start LEDs with defaults; prefs are applied after loadPrefs()
|
||||
// LED_GREEN was previously always on; LED_STATUS_ALWAYS_ON preserves that behavior
|
||||
static LEDManager _ledManager(LED_GREEN, LED_RED);
|
||||
ledManager = &_ledManager;
|
||||
ledManager->begin(LED_STATUS_BOOT_30S, LED_ACTIVITY_BOTH);
|
||||
}
|
||||
#endif
|
||||
|
||||
|
|
|
|||
|
|
@ -3,6 +3,7 @@
|
|||
#include <MeshCore.h>
|
||||
#include <Arduino.h>
|
||||
#include <helpers/NRF52Board.h>
|
||||
#include <helpers/ui/LEDManager.h>
|
||||
|
||||
#ifdef WIO_WM1110
|
||||
|
||||
|
|
@ -16,14 +17,12 @@ public:
|
|||
WioWM1110Board() : NRF52Board("WM1110_OTA") {}
|
||||
void begin();
|
||||
|
||||
#if defined(LED_GREEN)
|
||||
void onBeforeTransmit() override {
|
||||
digitalWrite(LED_RED, HIGH);
|
||||
if (ledManager) ledManager->onBeforeTransmit();
|
||||
}
|
||||
void onAfterTransmit() override {
|
||||
digitalWrite(LED_RED, LOW);
|
||||
if (ledManager) ledManager->onAfterTransmit();
|
||||
}
|
||||
#endif
|
||||
|
||||
uint16_t getBattMilliVolts() override {
|
||||
int adcvalue = 0;
|
||||
|
|
|
|||
|
|
@ -50,17 +50,17 @@ void XiaoNrf52Board::begin() {
|
|||
|
||||
Wire.begin();
|
||||
|
||||
#ifdef P_LORA_TX_LED
|
||||
pinMode(P_LORA_TX_LED, OUTPUT);
|
||||
digitalWrite(P_LORA_TX_LED, HIGH);
|
||||
#endif
|
||||
|
||||
#ifdef NRF52_POWER_MANAGEMENT
|
||||
// Boot voltage protection check (may not return if voltage too low)
|
||||
checkBootVoltage(&power_config);
|
||||
#endif
|
||||
|
||||
delay(10); // Give sx1262 some time to power up
|
||||
|
||||
// Start LEDs with defaults; prefs are applied after loadPrefs()
|
||||
static LEDManager _ledManager(LED_BLUE, LED_RED, false, false);
|
||||
ledManager = &_ledManager;
|
||||
ledManager->begin(LED_STATUS_BOOT_30S, LED_ACTIVITY_BOTH);
|
||||
}
|
||||
|
||||
uint16_t XiaoNrf52Board::getBattMilliVolts() {
|
||||
|
|
|
|||
|
|
@ -3,6 +3,7 @@
|
|||
#include <MeshCore.h>
|
||||
#include <Arduino.h>
|
||||
#include <helpers/NRF52Board.h>
|
||||
#include <helpers/ui/LEDManager.h>
|
||||
|
||||
#ifdef XIAO_NRF52
|
||||
|
||||
|
|
@ -16,14 +17,12 @@ public:
|
|||
XiaoNrf52Board() : NRF52Board("XIAO_NRF52_OTA") {}
|
||||
void begin();
|
||||
|
||||
#if defined(P_LORA_TX_LED)
|
||||
void onBeforeTransmit() override {
|
||||
digitalWrite(P_LORA_TX_LED, LOW); // turn TX LED on
|
||||
if (ledManager) ledManager->onBeforeTransmit();
|
||||
}
|
||||
void onAfterTransmit() override {
|
||||
digitalWrite(P_LORA_TX_LED, HIGH); // turn TX LED off
|
||||
if (ledManager) ledManager->onAfterTransmit();
|
||||
}
|
||||
#endif
|
||||
|
||||
uint16_t getBattMilliVolts() override;
|
||||
|
||||
|
|
@ -37,8 +36,9 @@ public:
|
|||
#ifdef PIN_USER_BTN
|
||||
while(digitalRead(PIN_USER_BTN) == LOW);
|
||||
#endif
|
||||
|
||||
if (ledManager) ledManager->powerOff();
|
||||
digitalWrite(LED_GREEN, HIGH);
|
||||
digitalWrite(LED_BLUE, HIGH);
|
||||
digitalWrite(PIN_LED, HIGH);
|
||||
|
||||
#ifdef PIN_USER_BTN
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue