Merge pull request #443 from fdlamotte/wio_e5_mini_rescue_cli

wio_e5_mini: led and rescue cli
This commit is contained in:
ripplebiz
2025-06-24 23:30:52 +10:00
committed by GitHub
5 changed files with 63 additions and 4 deletions

View File

@@ -8,7 +8,7 @@ protected:
uint8_t startup_reason;
public:
void begin() {
virtual void begin() {
startup_reason = BD_STARTUP_NORMAL;
}
@@ -25,5 +25,14 @@ public:
void reboot() override {
}
#if defined(P_LORA_TX_LED)
void onBeforeTransmit() override {
digitalWrite(P_LORA_TX_LED, LOW); // turn TX LED on
}
void onAfterTransmit() override {
digitalWrite(P_LORA_TX_LED, HIGH); // turn TX LED off
}
#endif
bool startOTAUpdate(const char* id, char reply[]) override { return false; };
};

View File

@@ -0,0 +1,24 @@
#pragma once
#include <helpers/ui/DisplayDriver.h>
class NullDisplayDriver : public DisplayDriver {
public:
NullDisplayDriver() : DisplayDriver(128, 64) { }
bool begin() { return false; } // not present
bool isOn() override { return false; }
void turnOn() override { }
void turnOff() override { }
void clear() override { }
void startFrame(Color bkg = DARK) override { }
void setTextSize(int sz) override { }
void setColor(Color c) override { }
void setCursor(int x, int y) override { }
void print(const char* str) override { }
void fillRect(int x, int y, int w, int h) override { }
void drawRect(int x, int y, int w, int h) override { }
void drawXbm(int x, int y, const uint8_t* bits, int w, int h) override { }
uint16_t getTextWidth(const char* str) override { return 0; }
void endFrame() { }
};

View File

@@ -7,6 +7,9 @@ build_flags = ${stm32_base.build_flags}
-D WRAPPER_CLASS=CustomSTM32WLxWrapper
-D SPI_INTERFACES_COUNT=0
-D RX_BOOSTED_GAIN=true
-D P_LORA_TX_LED=LED_RED
-D PIN_USER_BTN=USER_BTN
-D USER_BTN_PRESSED=LOW
-I variants/wio-e5-mini
build_src_filter = ${stm32_base.build_src_filter}
+<../variants/wio-e5-mini>
@@ -27,7 +30,8 @@ extends = lora_e5_mini
build_flags = ${lora_e5_mini.build_flags}
-D LORA_TX_POWER=22
-D MAX_CONTACTS=100
-D MAX_GROUP_CHANNELS=8
-D MAX_GROUP_CHANNELS=8
-D DISPLAY_CLASS=NullDisplayDriver
build_src_filter = ${lora_e5_mini.build_src_filter}
+<../examples/companion_radio/*.cpp>
lib_deps = ${lora_e5_mini.lib_deps}

View File

@@ -20,6 +20,10 @@ static const Module::RfSwitchMode_t rfswitch_table[] = {
VolatileRTCClock rtc_clock;
WIOE5SensorManager sensors;
#ifdef DISPLAY_CLASS
NullDisplayDriver display;
#endif
#ifndef LORA_CR
#define LORA_CR 5
#endif

View File

@@ -7,20 +7,38 @@
#include <helpers/CustomSTM32WLxWrapper.h>
#include <helpers/ArduinoHelpers.h>
#include <helpers/SensorManager.h>
#ifdef DISPLAY_CLASS
#include "NullDisplayDriver.h"
#endif
#include <BME280I2C.h>
#include <Wire.h>
#ifdef DISPLAY_CLASS
extern NullDisplayDriver display;
#endif
class WIOE5Board : public STM32Board {
public:
void begin() override {
STM32Board::begin();
pinMode(LED_RED, OUTPUT);
digitalWrite(LED_RED, HIGH);
pinMode(USER_BTN, INPUT_PULLUP);
}
const char* getManufacturerName() const override {
return "Seeed Wio E5 mini";
}
uint16_t getBattMilliVolts() override {
analogReadResolution(12);
uint32_t raw = analogRead(PIN_A3);
return raw;
uint32_t raw = 0;
for (int i=0; i<8;i++) {
raw += analogRead(PIN_A3);
}
return ((double)raw) * 1.73 * 5 * 1000 / 8 / 4096;
}
};