mirror of
https://github.com/meshtastic/firmware.git
synced 2026-01-29 21:22:03 +00:00
Compare commits
1 Commits
master
...
test/ai-sl
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
069e8f6265 |
3
.github/workflows/models_pr_triage.yml
vendored
3
.github/workflows/models_pr_triage.yml
vendored
@@ -88,10 +88,9 @@ jobs:
|
|||||||
|
|
||||||
# ─────────────────────────────────────────────────────────────────────────
|
# ─────────────────────────────────────────────────────────────────────────
|
||||||
# Step 3: Auto-label PR type (bugfix/hardware-support/enhancement)
|
# Step 3: Auto-label PR type (bugfix/hardware-support/enhancement)
|
||||||
# Only skip for spam/ai-generated; still classify needs-review PRs
|
|
||||||
# ─────────────────────────────────────────────────────────────────────────
|
# ─────────────────────────────────────────────────────────────────────────
|
||||||
- name: Classify PR for labeling
|
- name: Classify PR for labeling
|
||||||
if: steps.check-labels.outputs.skip_all != 'true' && steps.check-labels.outputs.has_type_label != 'true' && steps.quality.outputs.response != 'spam' && steps.quality.outputs.response != 'ai-generated'
|
if: steps.check-labels.outputs.skip_all != 'true' && steps.check-labels.outputs.has_type_label != 'true' && (steps.quality.outputs.response == 'ok' || steps.quality.outputs.response == '')
|
||||||
uses: actions/ai-inference@v2
|
uses: actions/ai-inference@v2
|
||||||
id: classify
|
id: classify
|
||||||
continue-on-error: true
|
continue-on-error: true
|
||||||
|
|||||||
@@ -56,7 +56,6 @@ build_flags = -Wno-missing-field-initializers
|
|||||||
-DMESHTASTIC_EXCLUDE_GENERIC_THREAD_MODULE=1
|
-DMESHTASTIC_EXCLUDE_GENERIC_THREAD_MODULE=1
|
||||||
-DMESHTASTIC_EXCLUDE_POWERMON=1
|
-DMESHTASTIC_EXCLUDE_POWERMON=1
|
||||||
-D MAX_THREADS=40 ; As we've split modules, we have more threads to manage
|
-D MAX_THREADS=40 ; As we've split modules, we have more threads to manage
|
||||||
-DLED_BUILTIN=-1
|
|
||||||
#-DBUILD_EPOCH=$UNIX_TIME ; set in platformio-custom.py now
|
#-DBUILD_EPOCH=$UNIX_TIME ; set in platformio-custom.py now
|
||||||
#-D OLED_PL=1
|
#-D OLED_PL=1
|
||||||
#-D DEBUG_HEAP=1 ; uncomment to add free heap space / memory leak debugging logs
|
#-D DEBUG_HEAP=1 ; uncomment to add free heap space / memory leak debugging logs
|
||||||
|
|||||||
@@ -1,59 +1,8 @@
|
|||||||
#include "InputBroker.h"
|
#include "InputBroker.h"
|
||||||
#include "PowerFSM.h" // needed for event trigger
|
#include "PowerFSM.h" // needed for event trigger
|
||||||
#include "configuration.h"
|
#include "configuration.h"
|
||||||
#include "graphics/Screen.h"
|
|
||||||
#include "modules/ExternalNotificationModule.h"
|
#include "modules/ExternalNotificationModule.h"
|
||||||
|
|
||||||
#if ARCH_PORTDUINO
|
|
||||||
#include "input/LinuxInputImpl.h"
|
|
||||||
#include "input/SeesawRotary.h"
|
|
||||||
#include "platform/portduino/PortduinoGlue.h"
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if !MESHTASTIC_EXCLUDE_INPUTBROKER
|
|
||||||
#include "input/ExpressLRSFiveWay.h"
|
|
||||||
#include "input/RotaryEncoderImpl.h"
|
|
||||||
#include "input/RotaryEncoderInterruptImpl1.h"
|
|
||||||
#include "input/SerialKeyboardImpl.h"
|
|
||||||
#include "input/UpDownInterruptImpl1.h"
|
|
||||||
#include "input/i2cButton.h"
|
|
||||||
#if HAS_TRACKBALL
|
|
||||||
#include "input/TrackballInterruptImpl1.h"
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#include "modules/StatusLEDModule.h"
|
|
||||||
|
|
||||||
#if !MESHTASTIC_EXCLUDE_I2C
|
|
||||||
#include "input/cardKbI2cImpl.h"
|
|
||||||
#endif
|
|
||||||
#include "input/kbMatrixImpl.h"
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if HAS_BUTTON || defined(ARCH_PORTDUINO)
|
|
||||||
#include "input/ButtonThread.h"
|
|
||||||
|
|
||||||
#if defined(BUTTON_PIN_TOUCH)
|
|
||||||
ButtonThread *TouchButtonThread = nullptr;
|
|
||||||
#if defined(TTGO_T_ECHO_PLUS) && defined(PIN_EINK_EN)
|
|
||||||
static bool touchBacklightWasOn = false;
|
|
||||||
static bool touchBacklightActive = false;
|
|
||||||
#endif
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if defined(BUTTON_PIN) || defined(ARCH_PORTDUINO)
|
|
||||||
ButtonThread *UserButtonThread = nullptr;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if defined(ALT_BUTTON_PIN)
|
|
||||||
ButtonThread *BackButtonThread = nullptr;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if defined(CANCEL_BUTTON_PIN)
|
|
||||||
ButtonThread *CancelButtonThread = nullptr;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#endif
|
|
||||||
|
|
||||||
InputBroker *inputBroker = nullptr;
|
InputBroker *inputBroker = nullptr;
|
||||||
|
|
||||||
InputBroker::InputBroker()
|
InputBroker::InputBroker()
|
||||||
@@ -125,262 +74,3 @@ void InputBroker::pollSoonWorker(void *p)
|
|||||||
vTaskDelete(NULL);
|
vTaskDelete(NULL);
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
void InputBroker::Init()
|
|
||||||
{
|
|
||||||
|
|
||||||
#ifdef BUTTON_PIN
|
|
||||||
#ifdef ARCH_ESP32
|
|
||||||
|
|
||||||
#if ESP_ARDUINO_VERSION_MAJOR >= 3
|
|
||||||
#ifdef BUTTON_NEED_PULLUP
|
|
||||||
pinMode(config.device.button_gpio ? config.device.button_gpio : BUTTON_PIN, INPUT_PULLUP);
|
|
||||||
#else
|
|
||||||
pinMode(config.device.button_gpio ? config.device.button_gpio : BUTTON_PIN, INPUT); // default to BUTTON_PIN
|
|
||||||
#endif
|
|
||||||
#else
|
|
||||||
pinMode(config.device.button_gpio ? config.device.button_gpio : BUTTON_PIN, INPUT); // default to BUTTON_PIN
|
|
||||||
#ifdef BUTTON_NEED_PULLUP
|
|
||||||
gpio_pullup_en((gpio_num_t)(config.device.button_gpio ? config.device.button_gpio : BUTTON_PIN));
|
|
||||||
delay(10);
|
|
||||||
#endif
|
|
||||||
#ifdef BUTTON_NEED_PULLUP2
|
|
||||||
gpio_pullup_en((gpio_num_t)BUTTON_NEED_PULLUP2);
|
|
||||||
delay(10);
|
|
||||||
#endif
|
|
||||||
#endif
|
|
||||||
#endif
|
|
||||||
#endif
|
|
||||||
|
|
||||||
// buttons are now inputBroker, so have to come after setupModules
|
|
||||||
#if HAS_BUTTON
|
|
||||||
int pullup_sense = 0;
|
|
||||||
#ifdef INPUT_PULLUP_SENSE
|
|
||||||
// Some platforms (nrf52) have a SENSE variant which allows wake from sleep - override what OneButton did
|
|
||||||
#ifdef BUTTON_SENSE_TYPE
|
|
||||||
pullup_sense = BUTTON_SENSE_TYPE;
|
|
||||||
#else
|
|
||||||
pullup_sense = INPUT_PULLUP_SENSE;
|
|
||||||
#endif
|
|
||||||
#endif
|
|
||||||
#if defined(ARCH_PORTDUINO)
|
|
||||||
|
|
||||||
if (portduino_config.userButtonPin.enabled) {
|
|
||||||
|
|
||||||
LOG_DEBUG("Use GPIO%02d for button", portduino_config.userButtonPin.pin);
|
|
||||||
UserButtonThread = new ButtonThread("UserButton");
|
|
||||||
if (screen) {
|
|
||||||
ButtonConfig config;
|
|
||||||
config.pinNumber = (uint8_t)portduino_config.userButtonPin.pin;
|
|
||||||
config.activeLow = true;
|
|
||||||
config.activePullup = true;
|
|
||||||
config.pullupSense = INPUT_PULLUP;
|
|
||||||
config.intRoutine = []() {
|
|
||||||
UserButtonThread->userButton.tick();
|
|
||||||
UserButtonThread->setIntervalFromNow(0);
|
|
||||||
runASAP = true;
|
|
||||||
BaseType_t higherWake = 0;
|
|
||||||
concurrency::mainDelay.interruptFromISR(&higherWake);
|
|
||||||
};
|
|
||||||
config.singlePress = INPUT_BROKER_USER_PRESS;
|
|
||||||
config.longPress = INPUT_BROKER_SELECT;
|
|
||||||
UserButtonThread->initButton(config);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef BUTTON_PIN_TOUCH
|
|
||||||
TouchButtonThread = new ButtonThread("BackButton");
|
|
||||||
ButtonConfig touchConfig;
|
|
||||||
touchConfig.pinNumber = BUTTON_PIN_TOUCH;
|
|
||||||
touchConfig.activeLow = true;
|
|
||||||
touchConfig.activePullup = true;
|
|
||||||
touchConfig.pullupSense = pullup_sense;
|
|
||||||
touchConfig.intRoutine = []() {
|
|
||||||
TouchButtonThread->userButton.tick();
|
|
||||||
TouchButtonThread->setIntervalFromNow(0);
|
|
||||||
runASAP = true;
|
|
||||||
BaseType_t higherWake = 0;
|
|
||||||
concurrency::mainDelay.interruptFromISR(&higherWake);
|
|
||||||
};
|
|
||||||
touchConfig.singlePress = INPUT_BROKER_NONE;
|
|
||||||
touchConfig.longPress = INPUT_BROKER_BACK;
|
|
||||||
#if defined(TTGO_T_ECHO_PLUS) && defined(PIN_EINK_EN)
|
|
||||||
// On T-Echo Plus the touch pad should only drive the backlight, not UI navigation/sounds
|
|
||||||
touchConfig.longPress = INPUT_BROKER_NONE;
|
|
||||||
touchConfig.suppressLeadUpSound = true;
|
|
||||||
touchConfig.onPress = []() {
|
|
||||||
touchBacklightWasOn = uiconfig.screen_brightness == 1;
|
|
||||||
if (!touchBacklightWasOn) {
|
|
||||||
digitalWrite(PIN_EINK_EN, HIGH);
|
|
||||||
}
|
|
||||||
touchBacklightActive = true;
|
|
||||||
};
|
|
||||||
touchConfig.onRelease = []() {
|
|
||||||
if (touchBacklightActive && !touchBacklightWasOn) {
|
|
||||||
digitalWrite(PIN_EINK_EN, LOW);
|
|
||||||
}
|
|
||||||
touchBacklightActive = false;
|
|
||||||
};
|
|
||||||
#endif
|
|
||||||
TouchButtonThread->initButton(touchConfig);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if defined(CANCEL_BUTTON_PIN)
|
|
||||||
// Buttons. Moved here cause we need NodeDB to be initialized
|
|
||||||
CancelButtonThread = new ButtonThread("CancelButton");
|
|
||||||
ButtonConfig cancelConfig;
|
|
||||||
cancelConfig.pinNumber = CANCEL_BUTTON_PIN;
|
|
||||||
cancelConfig.activeLow = CANCEL_BUTTON_ACTIVE_LOW;
|
|
||||||
cancelConfig.activePullup = CANCEL_BUTTON_ACTIVE_PULLUP;
|
|
||||||
cancelConfig.pullupSense = pullup_sense;
|
|
||||||
cancelConfig.intRoutine = []() {
|
|
||||||
CancelButtonThread->userButton.tick();
|
|
||||||
CancelButtonThread->setIntervalFromNow(0);
|
|
||||||
runASAP = true;
|
|
||||||
BaseType_t higherWake = 0;
|
|
||||||
concurrency::mainDelay.interruptFromISR(&higherWake);
|
|
||||||
};
|
|
||||||
cancelConfig.singlePress = INPUT_BROKER_CANCEL;
|
|
||||||
cancelConfig.longPress = INPUT_BROKER_SHUTDOWN;
|
|
||||||
cancelConfig.longPressTime = 4000;
|
|
||||||
CancelButtonThread->initButton(cancelConfig);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if defined(ALT_BUTTON_PIN)
|
|
||||||
// Buttons. Moved here cause we need NodeDB to be initialized
|
|
||||||
BackButtonThread = new ButtonThread("BackButton");
|
|
||||||
ButtonConfig backConfig;
|
|
||||||
backConfig.pinNumber = ALT_BUTTON_PIN;
|
|
||||||
backConfig.activeLow = ALT_BUTTON_ACTIVE_LOW;
|
|
||||||
backConfig.activePullup = ALT_BUTTON_ACTIVE_PULLUP;
|
|
||||||
backConfig.pullupSense = pullup_sense;
|
|
||||||
backConfig.intRoutine = []() {
|
|
||||||
BackButtonThread->userButton.tick();
|
|
||||||
BackButtonThread->setIntervalFromNow(0);
|
|
||||||
runASAP = true;
|
|
||||||
BaseType_t higherWake = 0;
|
|
||||||
concurrency::mainDelay.interruptFromISR(&higherWake);
|
|
||||||
};
|
|
||||||
backConfig.singlePress = INPUT_BROKER_ALT_PRESS;
|
|
||||||
backConfig.longPress = INPUT_BROKER_ALT_LONG;
|
|
||||||
backConfig.longPressTime = 500;
|
|
||||||
BackButtonThread->initButton(backConfig);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if defined(BUTTON_PIN)
|
|
||||||
#if defined(USERPREFS_BUTTON_PIN)
|
|
||||||
int _pinNum = config.device.button_gpio ? config.device.button_gpio : USERPREFS_BUTTON_PIN;
|
|
||||||
#else
|
|
||||||
int _pinNum = config.device.button_gpio ? config.device.button_gpio : BUTTON_PIN;
|
|
||||||
#endif
|
|
||||||
#ifndef BUTTON_ACTIVE_LOW
|
|
||||||
#define BUTTON_ACTIVE_LOW true
|
|
||||||
#endif
|
|
||||||
#ifndef BUTTON_ACTIVE_PULLUP
|
|
||||||
#define BUTTON_ACTIVE_PULLUP true
|
|
||||||
#endif
|
|
||||||
|
|
||||||
// Buttons. Moved here cause we need NodeDB to be initialized
|
|
||||||
// If your variant.h has a BUTTON_PIN defined, go ahead and define BUTTON_ACTIVE_LOW and BUTTON_ACTIVE_PULLUP
|
|
||||||
UserButtonThread = new ButtonThread("UserButton");
|
|
||||||
if (screen) {
|
|
||||||
ButtonConfig userConfig;
|
|
||||||
userConfig.pinNumber = (uint8_t)_pinNum;
|
|
||||||
userConfig.activeLow = BUTTON_ACTIVE_LOW;
|
|
||||||
userConfig.activePullup = BUTTON_ACTIVE_PULLUP;
|
|
||||||
userConfig.pullupSense = pullup_sense;
|
|
||||||
userConfig.intRoutine = []() {
|
|
||||||
UserButtonThread->userButton.tick();
|
|
||||||
UserButtonThread->setIntervalFromNow(0);
|
|
||||||
runASAP = true;
|
|
||||||
BaseType_t higherWake = 0;
|
|
||||||
concurrency::mainDelay.interruptFromISR(&higherWake);
|
|
||||||
};
|
|
||||||
userConfig.singlePress = INPUT_BROKER_USER_PRESS;
|
|
||||||
userConfig.longPress = INPUT_BROKER_SELECT;
|
|
||||||
userConfig.longPressTime = 500;
|
|
||||||
userConfig.longLongPress = INPUT_BROKER_SHUTDOWN;
|
|
||||||
UserButtonThread->initButton(userConfig);
|
|
||||||
} else {
|
|
||||||
ButtonConfig userConfigNoScreen;
|
|
||||||
userConfigNoScreen.pinNumber = (uint8_t)_pinNum;
|
|
||||||
userConfigNoScreen.activeLow = BUTTON_ACTIVE_LOW;
|
|
||||||
userConfigNoScreen.activePullup = BUTTON_ACTIVE_PULLUP;
|
|
||||||
userConfigNoScreen.pullupSense = pullup_sense;
|
|
||||||
userConfigNoScreen.intRoutine = []() {
|
|
||||||
UserButtonThread->userButton.tick();
|
|
||||||
UserButtonThread->setIntervalFromNow(0);
|
|
||||||
runASAP = true;
|
|
||||||
BaseType_t higherWake = 0;
|
|
||||||
concurrency::mainDelay.interruptFromISR(&higherWake);
|
|
||||||
};
|
|
||||||
userConfigNoScreen.singlePress = INPUT_BROKER_USER_PRESS;
|
|
||||||
userConfigNoScreen.longPress = INPUT_BROKER_NONE;
|
|
||||||
userConfigNoScreen.longPressTime = 500;
|
|
||||||
userConfigNoScreen.longLongPress = INPUT_BROKER_SHUTDOWN;
|
|
||||||
userConfigNoScreen.doublePress = INPUT_BROKER_SEND_PING;
|
|
||||||
userConfigNoScreen.triplePress = INPUT_BROKER_GPS_TOGGLE;
|
|
||||||
UserButtonThread->initButton(userConfigNoScreen);
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if (HAS_BUTTON || ARCH_PORTDUINO) && !MESHTASTIC_EXCLUDE_INPUTBROKER
|
|
||||||
if (config.display.displaymode != meshtastic_Config_DisplayConfig_DisplayMode_COLOR) {
|
|
||||||
#if defined(T_LORA_PAGER)
|
|
||||||
// use a special FSM based rotary encoder version for T-LoRa Pager
|
|
||||||
rotaryEncoderImpl = new RotaryEncoderImpl();
|
|
||||||
if (!rotaryEncoderImpl->init()) {
|
|
||||||
delete rotaryEncoderImpl;
|
|
||||||
rotaryEncoderImpl = nullptr;
|
|
||||||
}
|
|
||||||
#elif defined(INPUTDRIVER_ENCODER_TYPE) && (INPUTDRIVER_ENCODER_TYPE == 2)
|
|
||||||
upDownInterruptImpl1 = new UpDownInterruptImpl1();
|
|
||||||
if (!upDownInterruptImpl1->init()) {
|
|
||||||
delete upDownInterruptImpl1;
|
|
||||||
upDownInterruptImpl1 = nullptr;
|
|
||||||
}
|
|
||||||
#else
|
|
||||||
rotaryEncoderInterruptImpl1 = new RotaryEncoderInterruptImpl1();
|
|
||||||
if (!rotaryEncoderInterruptImpl1->init()) {
|
|
||||||
delete rotaryEncoderInterruptImpl1;
|
|
||||||
rotaryEncoderInterruptImpl1 = nullptr;
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
cardKbI2cImpl = new CardKbI2cImpl();
|
|
||||||
cardKbI2cImpl->init();
|
|
||||||
#if defined(M5STACK_UNITC6L)
|
|
||||||
i2cButton = new i2cButtonThread("i2cButtonThread");
|
|
||||||
#endif
|
|
||||||
#ifdef INPUTBROKER_MATRIX_TYPE
|
|
||||||
kbMatrixImpl = new KbMatrixImpl();
|
|
||||||
kbMatrixImpl->init();
|
|
||||||
#endif // INPUTBROKER_MATRIX_TYPE
|
|
||||||
#ifdef INPUTBROKER_SERIAL_TYPE
|
|
||||||
aSerialKeyboardImpl = new SerialKeyboardImpl();
|
|
||||||
aSerialKeyboardImpl->init();
|
|
||||||
#endif // INPUTBROKER_MATRIX_TYPE
|
|
||||||
}
|
|
||||||
#endif // HAS_BUTTON
|
|
||||||
#if ARCH_PORTDUINO
|
|
||||||
if (config.display.displaymode != meshtastic_Config_DisplayConfig_DisplayMode_COLOR && portduino_config.i2cdev != "") {
|
|
||||||
seesawRotary = new SeesawRotary("SeesawRotary");
|
|
||||||
if (!seesawRotary->init()) {
|
|
||||||
delete seesawRotary;
|
|
||||||
seesawRotary = nullptr;
|
|
||||||
}
|
|
||||||
aLinuxInputImpl = new LinuxInputImpl();
|
|
||||||
aLinuxInputImpl->init();
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
#if !MESHTASTIC_EXCLUDE_INPUTBROKER && HAS_TRACKBALL
|
|
||||||
if (config.display.displaymode != meshtastic_Config_DisplayConfig_DisplayMode_COLOR) {
|
|
||||||
trackballInterruptImpl1 = new TrackballInterruptImpl1();
|
|
||||||
trackballInterruptImpl1->init(TB_DOWN, TB_UP, TB_LEFT, TB_RIGHT, TB_PRESS);
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
#ifdef INPUTBROKER_EXPRESSLRSFIVEWAY_TYPE
|
|
||||||
expressLRSFiveWayInput = new ExpressLRSFiveWay();
|
|
||||||
#endif
|
|
||||||
}
|
|
||||||
|
|||||||
@@ -1,7 +1,6 @@
|
|||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
#include "Observer.h"
|
#include "Observer.h"
|
||||||
#include "concurrency/OSThread.h"
|
|
||||||
#include "freertosinc.h"
|
#include "freertosinc.h"
|
||||||
|
|
||||||
#ifdef InputBrokerDebug
|
#ifdef InputBrokerDebug
|
||||||
@@ -77,7 +76,6 @@ class InputBroker : public Observable<const InputEvent *>
|
|||||||
void queueInputEvent(const InputEvent *event);
|
void queueInputEvent(const InputEvent *event);
|
||||||
void processInputEventQueue();
|
void processInputEventQueue();
|
||||||
#endif
|
#endif
|
||||||
void Init();
|
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
int handleInputEvent(const InputEvent *event);
|
int handleInputEvent(const InputEvent *event);
|
||||||
@@ -91,5 +89,4 @@ class InputBroker : public Observable<const InputEvent *>
|
|||||||
#endif
|
#endif
|
||||||
};
|
};
|
||||||
|
|
||||||
extern InputBroker *inputBroker;
|
extern InputBroker *inputBroker;
|
||||||
extern bool runASAP;
|
|
||||||
226
src/main.cpp
226
src/main.cpp
@@ -120,6 +120,31 @@ void printPartitionTable()
|
|||||||
#endif // DEBUG_PARTITION_TABLE
|
#endif // DEBUG_PARTITION_TABLE
|
||||||
#endif // ARCH_ESP32
|
#endif // ARCH_ESP32
|
||||||
|
|
||||||
|
#if HAS_BUTTON || defined(ARCH_PORTDUINO)
|
||||||
|
#include "input/ButtonThread.h"
|
||||||
|
|
||||||
|
#if defined(BUTTON_PIN_TOUCH)
|
||||||
|
ButtonThread *TouchButtonThread = nullptr;
|
||||||
|
#if defined(TTGO_T_ECHO_PLUS) && defined(PIN_EINK_EN)
|
||||||
|
static bool touchBacklightWasOn = false;
|
||||||
|
static bool touchBacklightActive = false;
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if defined(BUTTON_PIN) || defined(ARCH_PORTDUINO)
|
||||||
|
ButtonThread *UserButtonThread = nullptr;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if defined(ALT_BUTTON_PIN)
|
||||||
|
ButtonThread *BackButtonThread = nullptr;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if defined(CANCEL_BUTTON_PIN)
|
||||||
|
ButtonThread *CancelButtonThread = nullptr;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
#include "AmbientLightingThread.h"
|
#include "AmbientLightingThread.h"
|
||||||
#include "PowerFSMThread.h"
|
#include "PowerFSMThread.h"
|
||||||
|
|
||||||
@@ -484,6 +509,30 @@ void setup()
|
|||||||
LOG_INFO("Wait for peripherals to stabilize");
|
LOG_INFO("Wait for peripherals to stabilize");
|
||||||
delay(PERIPHERAL_WARMUP_MS);
|
delay(PERIPHERAL_WARMUP_MS);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifdef BUTTON_PIN
|
||||||
|
#ifdef ARCH_ESP32
|
||||||
|
|
||||||
|
#if ESP_ARDUINO_VERSION_MAJOR >= 3
|
||||||
|
#ifdef BUTTON_NEED_PULLUP
|
||||||
|
pinMode(config.device.button_gpio ? config.device.button_gpio : BUTTON_PIN, INPUT_PULLUP);
|
||||||
|
#else
|
||||||
|
pinMode(config.device.button_gpio ? config.device.button_gpio : BUTTON_PIN, INPUT); // default to BUTTON_PIN
|
||||||
|
#endif
|
||||||
|
#else
|
||||||
|
pinMode(config.device.button_gpio ? config.device.button_gpio : BUTTON_PIN, INPUT); // default to BUTTON_PIN
|
||||||
|
#ifdef BUTTON_NEED_PULLUP
|
||||||
|
gpio_pullup_en((gpio_num_t)(config.device.button_gpio ? config.device.button_gpio : BUTTON_PIN));
|
||||||
|
delay(10);
|
||||||
|
#endif
|
||||||
|
#ifdef BUTTON_NEED_PULLUP2
|
||||||
|
gpio_pullup_en((gpio_num_t)BUTTON_NEED_PULLUP2);
|
||||||
|
delay(10);
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
initSPI();
|
initSPI();
|
||||||
|
|
||||||
OSThread::setup();
|
OSThread::setup();
|
||||||
@@ -950,9 +999,180 @@ void setup()
|
|||||||
nodeDB->hasWarned = true;
|
nodeDB->hasWarned = true;
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
#if !MESHTASTIC_EXCLUDE_INPUTBROKER
|
|
||||||
if (inputBroker)
|
// buttons are now inputBroker, so have to come after setupModules
|
||||||
inputBroker->Init();
|
#if HAS_BUTTON
|
||||||
|
int pullup_sense = 0;
|
||||||
|
#ifdef INPUT_PULLUP_SENSE
|
||||||
|
// Some platforms (nrf52) have a SENSE variant which allows wake from sleep - override what OneButton did
|
||||||
|
#ifdef BUTTON_SENSE_TYPE
|
||||||
|
pullup_sense = BUTTON_SENSE_TYPE;
|
||||||
|
#else
|
||||||
|
pullup_sense = INPUT_PULLUP_SENSE;
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
#if defined(ARCH_PORTDUINO)
|
||||||
|
|
||||||
|
if (portduino_config.userButtonPin.enabled) {
|
||||||
|
|
||||||
|
LOG_DEBUG("Use GPIO%02d for button", portduino_config.userButtonPin.pin);
|
||||||
|
UserButtonThread = new ButtonThread("UserButton");
|
||||||
|
if (screen) {
|
||||||
|
ButtonConfig config;
|
||||||
|
config.pinNumber = (uint8_t)portduino_config.userButtonPin.pin;
|
||||||
|
config.activeLow = true;
|
||||||
|
config.activePullup = true;
|
||||||
|
config.pullupSense = INPUT_PULLUP;
|
||||||
|
config.intRoutine = []() {
|
||||||
|
UserButtonThread->userButton.tick();
|
||||||
|
UserButtonThread->setIntervalFromNow(0);
|
||||||
|
runASAP = true;
|
||||||
|
BaseType_t higherWake = 0;
|
||||||
|
mainDelay.interruptFromISR(&higherWake);
|
||||||
|
};
|
||||||
|
config.singlePress = INPUT_BROKER_USER_PRESS;
|
||||||
|
config.longPress = INPUT_BROKER_SELECT;
|
||||||
|
UserButtonThread->initButton(config);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef BUTTON_PIN_TOUCH
|
||||||
|
TouchButtonThread = new ButtonThread("BackButton");
|
||||||
|
ButtonConfig touchConfig;
|
||||||
|
touchConfig.pinNumber = BUTTON_PIN_TOUCH;
|
||||||
|
touchConfig.activeLow = true;
|
||||||
|
touchConfig.activePullup = true;
|
||||||
|
touchConfig.pullupSense = pullup_sense;
|
||||||
|
touchConfig.intRoutine = []() {
|
||||||
|
TouchButtonThread->userButton.tick();
|
||||||
|
TouchButtonThread->setIntervalFromNow(0);
|
||||||
|
runASAP = true;
|
||||||
|
BaseType_t higherWake = 0;
|
||||||
|
mainDelay.interruptFromISR(&higherWake);
|
||||||
|
};
|
||||||
|
touchConfig.singlePress = INPUT_BROKER_NONE;
|
||||||
|
touchConfig.longPress = INPUT_BROKER_BACK;
|
||||||
|
#if defined(TTGO_T_ECHO_PLUS) && defined(PIN_EINK_EN)
|
||||||
|
// On T-Echo Plus the touch pad should only drive the backlight, not UI navigation/sounds
|
||||||
|
touchConfig.longPress = INPUT_BROKER_NONE;
|
||||||
|
touchConfig.suppressLeadUpSound = true;
|
||||||
|
touchConfig.onPress = []() {
|
||||||
|
touchBacklightWasOn = uiconfig.screen_brightness == 1;
|
||||||
|
if (!touchBacklightWasOn) {
|
||||||
|
digitalWrite(PIN_EINK_EN, HIGH);
|
||||||
|
}
|
||||||
|
touchBacklightActive = true;
|
||||||
|
};
|
||||||
|
touchConfig.onRelease = []() {
|
||||||
|
if (touchBacklightActive && !touchBacklightWasOn) {
|
||||||
|
digitalWrite(PIN_EINK_EN, LOW);
|
||||||
|
}
|
||||||
|
touchBacklightActive = false;
|
||||||
|
};
|
||||||
|
#endif
|
||||||
|
TouchButtonThread->initButton(touchConfig);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if defined(CANCEL_BUTTON_PIN)
|
||||||
|
// Buttons. Moved here cause we need NodeDB to be initialized
|
||||||
|
CancelButtonThread = new ButtonThread("CancelButton");
|
||||||
|
ButtonConfig cancelConfig;
|
||||||
|
cancelConfig.pinNumber = CANCEL_BUTTON_PIN;
|
||||||
|
cancelConfig.activeLow = CANCEL_BUTTON_ACTIVE_LOW;
|
||||||
|
cancelConfig.activePullup = CANCEL_BUTTON_ACTIVE_PULLUP;
|
||||||
|
cancelConfig.pullupSense = pullup_sense;
|
||||||
|
cancelConfig.intRoutine = []() {
|
||||||
|
CancelButtonThread->userButton.tick();
|
||||||
|
CancelButtonThread->setIntervalFromNow(0);
|
||||||
|
runASAP = true;
|
||||||
|
BaseType_t higherWake = 0;
|
||||||
|
mainDelay.interruptFromISR(&higherWake);
|
||||||
|
};
|
||||||
|
cancelConfig.singlePress = INPUT_BROKER_CANCEL;
|
||||||
|
cancelConfig.longPress = INPUT_BROKER_SHUTDOWN;
|
||||||
|
cancelConfig.longPressTime = 4000;
|
||||||
|
CancelButtonThread->initButton(cancelConfig);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if defined(ALT_BUTTON_PIN)
|
||||||
|
// Buttons. Moved here cause we need NodeDB to be initialized
|
||||||
|
BackButtonThread = new ButtonThread("BackButton");
|
||||||
|
ButtonConfig backConfig;
|
||||||
|
backConfig.pinNumber = ALT_BUTTON_PIN;
|
||||||
|
backConfig.activeLow = ALT_BUTTON_ACTIVE_LOW;
|
||||||
|
backConfig.activePullup = ALT_BUTTON_ACTIVE_PULLUP;
|
||||||
|
backConfig.pullupSense = pullup_sense;
|
||||||
|
backConfig.intRoutine = []() {
|
||||||
|
BackButtonThread->userButton.tick();
|
||||||
|
BackButtonThread->setIntervalFromNow(0);
|
||||||
|
runASAP = true;
|
||||||
|
BaseType_t higherWake = 0;
|
||||||
|
mainDelay.interruptFromISR(&higherWake);
|
||||||
|
};
|
||||||
|
backConfig.singlePress = INPUT_BROKER_ALT_PRESS;
|
||||||
|
backConfig.longPress = INPUT_BROKER_ALT_LONG;
|
||||||
|
backConfig.longPressTime = 500;
|
||||||
|
BackButtonThread->initButton(backConfig);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if defined(BUTTON_PIN)
|
||||||
|
#if defined(USERPREFS_BUTTON_PIN)
|
||||||
|
int _pinNum = config.device.button_gpio ? config.device.button_gpio : USERPREFS_BUTTON_PIN;
|
||||||
|
#else
|
||||||
|
int _pinNum = config.device.button_gpio ? config.device.button_gpio : BUTTON_PIN;
|
||||||
|
#endif
|
||||||
|
#ifndef BUTTON_ACTIVE_LOW
|
||||||
|
#define BUTTON_ACTIVE_LOW true
|
||||||
|
#endif
|
||||||
|
#ifndef BUTTON_ACTIVE_PULLUP
|
||||||
|
#define BUTTON_ACTIVE_PULLUP true
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// Buttons. Moved here cause we need NodeDB to be initialized
|
||||||
|
// If your variant.h has a BUTTON_PIN defined, go ahead and define BUTTON_ACTIVE_LOW and BUTTON_ACTIVE_PULLUP
|
||||||
|
UserButtonThread = new ButtonThread("UserButton");
|
||||||
|
if (screen) {
|
||||||
|
ButtonConfig userConfig;
|
||||||
|
userConfig.pinNumber = (uint8_t)_pinNum;
|
||||||
|
userConfig.activeLow = BUTTON_ACTIVE_LOW;
|
||||||
|
userConfig.activePullup = BUTTON_ACTIVE_PULLUP;
|
||||||
|
userConfig.pullupSense = pullup_sense;
|
||||||
|
userConfig.intRoutine = []() {
|
||||||
|
UserButtonThread->userButton.tick();
|
||||||
|
UserButtonThread->setIntervalFromNow(0);
|
||||||
|
runASAP = true;
|
||||||
|
BaseType_t higherWake = 0;
|
||||||
|
mainDelay.interruptFromISR(&higherWake);
|
||||||
|
};
|
||||||
|
userConfig.singlePress = INPUT_BROKER_USER_PRESS;
|
||||||
|
userConfig.longPress = INPUT_BROKER_SELECT;
|
||||||
|
userConfig.longPressTime = 500;
|
||||||
|
userConfig.longLongPress = INPUT_BROKER_SHUTDOWN;
|
||||||
|
UserButtonThread->initButton(userConfig);
|
||||||
|
} else {
|
||||||
|
ButtonConfig userConfigNoScreen;
|
||||||
|
userConfigNoScreen.pinNumber = (uint8_t)_pinNum;
|
||||||
|
userConfigNoScreen.activeLow = BUTTON_ACTIVE_LOW;
|
||||||
|
userConfigNoScreen.activePullup = BUTTON_ACTIVE_PULLUP;
|
||||||
|
userConfigNoScreen.pullupSense = pullup_sense;
|
||||||
|
userConfigNoScreen.intRoutine = []() {
|
||||||
|
UserButtonThread->userButton.tick();
|
||||||
|
UserButtonThread->setIntervalFromNow(0);
|
||||||
|
runASAP = true;
|
||||||
|
BaseType_t higherWake = 0;
|
||||||
|
mainDelay.interruptFromISR(&higherWake);
|
||||||
|
};
|
||||||
|
userConfigNoScreen.singlePress = INPUT_BROKER_USER_PRESS;
|
||||||
|
userConfigNoScreen.longPress = INPUT_BROKER_NONE;
|
||||||
|
userConfigNoScreen.longPressTime = 500;
|
||||||
|
userConfigNoScreen.longLongPress = INPUT_BROKER_SHUTDOWN;
|
||||||
|
userConfigNoScreen.doublePress = INPUT_BROKER_SEND_PING;
|
||||||
|
userConfigNoScreen.triplePress = INPUT_BROKER_GPS_TOGGLE;
|
||||||
|
UserButtonThread->initButton(userConfigNoScreen);
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef MESHTASTIC_INCLUDE_NICHE_GRAPHICS
|
#ifdef MESHTASTIC_INCLUDE_NICHE_GRAPHICS
|
||||||
|
|||||||
@@ -17,6 +17,12 @@
|
|||||||
ErrorCode ReliableRouter::send(meshtastic_MeshPacket *p)
|
ErrorCode ReliableRouter::send(meshtastic_MeshPacket *p)
|
||||||
{
|
{
|
||||||
if (p->want_ack) {
|
if (p->want_ack) {
|
||||||
|
// If someone asks for acks on broadcast, we need the hop limit to be at least one, so that first node that receives our
|
||||||
|
// message will rebroadcast. But asking for hop_limit 0 in that context means the client app has no preference on hop
|
||||||
|
// counts and we want this message to get through the whole mesh, so use the default.
|
||||||
|
if (p->hop_limit == 0) {
|
||||||
|
p->hop_limit = Default::getConfiguredOrDefaultHopLimit(config.lora.hop_limit);
|
||||||
|
}
|
||||||
DEBUG_HEAP_BEFORE;
|
DEBUG_HEAP_BEFORE;
|
||||||
auto copy = packetPool.allocCopy(*p);
|
auto copy = packetPool.allocCopy(*p);
|
||||||
DEBUG_HEAP_AFTER("ReliableRouter::send", copy);
|
DEBUG_HEAP_AFTER("ReliableRouter::send", copy);
|
||||||
|
|||||||
@@ -266,13 +266,6 @@ ErrorCode Router::sendLocal(meshtastic_MeshPacket *p, RxSource src)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// If someone asks for acks on broadcast, we need the hop limit to be at least one, so that first node that receives our
|
|
||||||
// message will rebroadcast. But asking for hop_limit 0 in that context means the client app has no preference on hop
|
|
||||||
// counts and we want this message to get through the whole mesh, so use the default.
|
|
||||||
if (src == RX_SRC_USER && p->want_ack && p->hop_limit == 0) {
|
|
||||||
p->hop_limit = Default::getConfiguredOrDefaultHopLimit(config.lora.hop_limit);
|
|
||||||
}
|
|
||||||
|
|
||||||
return send(p);
|
return send(p);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,8 +1,24 @@
|
|||||||
#include "configuration.h"
|
#include "configuration.h"
|
||||||
#if !MESHTASTIC_EXCLUDE_INPUTBROKER
|
#if !MESHTASTIC_EXCLUDE_INPUTBROKER
|
||||||
#include "buzz/BuzzerFeedbackThread.h"
|
#include "buzz/BuzzerFeedbackThread.h"
|
||||||
#include "modules/StatusLEDModule.h"
|
#include "input/ExpressLRSFiveWay.h"
|
||||||
|
#include "input/InputBroker.h"
|
||||||
|
#include "input/RotaryEncoderImpl.h"
|
||||||
|
#include "input/RotaryEncoderInterruptImpl1.h"
|
||||||
|
#include "input/SerialKeyboardImpl.h"
|
||||||
|
#include "input/UpDownInterruptImpl1.h"
|
||||||
|
#include "input/i2cButton.h"
|
||||||
#include "modules/SystemCommandsModule.h"
|
#include "modules/SystemCommandsModule.h"
|
||||||
|
#if HAS_TRACKBALL
|
||||||
|
#include "input/TrackballInterruptImpl1.h"
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#include "modules/StatusLEDModule.h"
|
||||||
|
|
||||||
|
#if !MESHTASTIC_EXCLUDE_I2C
|
||||||
|
#include "input/cardKbI2cImpl.h"
|
||||||
|
#endif
|
||||||
|
#include "input/kbMatrixImpl.h"
|
||||||
#endif
|
#endif
|
||||||
#if !MESHTASTIC_EXCLUDE_PKI
|
#if !MESHTASTIC_EXCLUDE_PKI
|
||||||
#include "KeyVerificationModule.h"
|
#include "KeyVerificationModule.h"
|
||||||
@@ -43,6 +59,8 @@
|
|||||||
#include "modules/WaypointModule.h"
|
#include "modules/WaypointModule.h"
|
||||||
#endif
|
#endif
|
||||||
#if ARCH_PORTDUINO
|
#if ARCH_PORTDUINO
|
||||||
|
#include "input/LinuxInputImpl.h"
|
||||||
|
#include "input/SeesawRotary.h"
|
||||||
#include "modules/Telemetry/HostMetrics.h"
|
#include "modules/Telemetry/HostMetrics.h"
|
||||||
#if !MESHTASTIC_EXCLUDE_STOREFORWARD
|
#if !MESHTASTIC_EXCLUDE_STOREFORWARD
|
||||||
#include "modules/StoreForwardModule.h"
|
#include "modules/StoreForwardModule.h"
|
||||||
@@ -91,9 +109,6 @@
|
|||||||
#include "modules/DropzoneModule.h"
|
#include "modules/DropzoneModule.h"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if defined(HAS_HARDWARE_WATCHDOG)
|
|
||||||
#include "watchdog/watchdogThread.h"
|
|
||||||
#endif
|
|
||||||
/**
|
/**
|
||||||
* Create module instances here. If you are adding a new module, you must 'new' it here (or somewhere else)
|
* Create module instances here. If you are adding a new module, you must 'new' it here (or somewhere else)
|
||||||
*/
|
*/
|
||||||
@@ -164,6 +179,63 @@ void setupModules()
|
|||||||
#endif
|
#endif
|
||||||
// Example: Put your module here
|
// Example: Put your module here
|
||||||
// new ReplyModule();
|
// new ReplyModule();
|
||||||
|
#if (HAS_BUTTON || ARCH_PORTDUINO) && !MESHTASTIC_EXCLUDE_INPUTBROKER
|
||||||
|
if (config.display.displaymode != meshtastic_Config_DisplayConfig_DisplayMode_COLOR) {
|
||||||
|
#if defined(T_LORA_PAGER)
|
||||||
|
// use a special FSM based rotary encoder version for T-LoRa Pager
|
||||||
|
rotaryEncoderImpl = new RotaryEncoderImpl();
|
||||||
|
if (!rotaryEncoderImpl->init()) {
|
||||||
|
delete rotaryEncoderImpl;
|
||||||
|
rotaryEncoderImpl = nullptr;
|
||||||
|
}
|
||||||
|
#elif defined(INPUTDRIVER_ENCODER_TYPE) && (INPUTDRIVER_ENCODER_TYPE == 2)
|
||||||
|
upDownInterruptImpl1 = new UpDownInterruptImpl1();
|
||||||
|
if (!upDownInterruptImpl1->init()) {
|
||||||
|
delete upDownInterruptImpl1;
|
||||||
|
upDownInterruptImpl1 = nullptr;
|
||||||
|
}
|
||||||
|
#else
|
||||||
|
rotaryEncoderInterruptImpl1 = new RotaryEncoderInterruptImpl1();
|
||||||
|
if (!rotaryEncoderInterruptImpl1->init()) {
|
||||||
|
delete rotaryEncoderInterruptImpl1;
|
||||||
|
rotaryEncoderInterruptImpl1 = nullptr;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
cardKbI2cImpl = new CardKbI2cImpl();
|
||||||
|
cardKbI2cImpl->init();
|
||||||
|
#if defined(M5STACK_UNITC6L)
|
||||||
|
i2cButton = new i2cButtonThread("i2cButtonThread");
|
||||||
|
#endif
|
||||||
|
#ifdef INPUTBROKER_MATRIX_TYPE
|
||||||
|
kbMatrixImpl = new KbMatrixImpl();
|
||||||
|
kbMatrixImpl->init();
|
||||||
|
#endif // INPUTBROKER_MATRIX_TYPE
|
||||||
|
#ifdef INPUTBROKER_SERIAL_TYPE
|
||||||
|
aSerialKeyboardImpl = new SerialKeyboardImpl();
|
||||||
|
aSerialKeyboardImpl->init();
|
||||||
|
#endif // INPUTBROKER_MATRIX_TYPE
|
||||||
|
}
|
||||||
|
#endif // HAS_BUTTON
|
||||||
|
#if ARCH_PORTDUINO
|
||||||
|
if (config.display.displaymode != meshtastic_Config_DisplayConfig_DisplayMode_COLOR && portduino_config.i2cdev != "") {
|
||||||
|
seesawRotary = new SeesawRotary("SeesawRotary");
|
||||||
|
if (!seesawRotary->init()) {
|
||||||
|
delete seesawRotary;
|
||||||
|
seesawRotary = nullptr;
|
||||||
|
}
|
||||||
|
aLinuxInputImpl = new LinuxInputImpl();
|
||||||
|
aLinuxInputImpl->init();
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
#if !MESHTASTIC_EXCLUDE_INPUTBROKER && HAS_TRACKBALL
|
||||||
|
if (config.display.displaymode != meshtastic_Config_DisplayConfig_DisplayMode_COLOR) {
|
||||||
|
trackballInterruptImpl1 = new TrackballInterruptImpl1();
|
||||||
|
trackballInterruptImpl1->init(TB_DOWN, TB_UP, TB_LEFT, TB_RIGHT, TB_PRESS);
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
#ifdef INPUTBROKER_EXPRESSLRSFIVEWAY_TYPE
|
||||||
|
expressLRSFiveWayInput = new ExpressLRSFiveWay();
|
||||||
|
#endif
|
||||||
#if HAS_SCREEN && !MESHTASTIC_EXCLUDE_CANNEDMESSAGES
|
#if HAS_SCREEN && !MESHTASTIC_EXCLUDE_CANNEDMESSAGES
|
||||||
if (config.display.displaymode != meshtastic_Config_DisplayConfig_DisplayMode_COLOR) {
|
if (config.display.displaymode != meshtastic_Config_DisplayConfig_DisplayMode_COLOR) {
|
||||||
cannedMessageModule = new CannedMessageModule();
|
cannedMessageModule = new CannedMessageModule();
|
||||||
@@ -232,9 +304,6 @@ void setupModules()
|
|||||||
#if !MESHTASTIC_EXCLUDE_RANGETEST && !MESHTASTIC_EXCLUDE_GPS
|
#if !MESHTASTIC_EXCLUDE_RANGETEST && !MESHTASTIC_EXCLUDE_GPS
|
||||||
if (moduleConfig.has_range_test && moduleConfig.range_test.enabled)
|
if (moduleConfig.has_range_test && moduleConfig.range_test.enabled)
|
||||||
new RangeTestModule();
|
new RangeTestModule();
|
||||||
#endif
|
|
||||||
#if defined(HAS_HARDWARE_WATCHDOG)
|
|
||||||
watchdogThread = new WatchdogThread();
|
|
||||||
#endif
|
#endif
|
||||||
// NOTE! This module must be added LAST because it likes to check for replies from other modules and avoid sending extra
|
// NOTE! This module must be added LAST because it likes to check for replies from other modules and avoid sending extra
|
||||||
// acks
|
// acks
|
||||||
|
|||||||
@@ -67,8 +67,6 @@ uint8_t RoutingModule::getHopLimitForResponse(const meshtastic_MeshPacket &mp)
|
|||||||
#if !(EVENTMODE) // This falls through to the default.
|
#if !(EVENTMODE) // This falls through to the default.
|
||||||
return hopsUsed; // If the request used more hops than the limit, use the same amount of hops
|
return hopsUsed; // If the request used more hops than the limit, use the same amount of hops
|
||||||
#endif
|
#endif
|
||||||
} else if (mp.hop_start == 0) {
|
|
||||||
return 0; // The requesting node wanted 0 hops, so the response also uses a direct/local path.
|
|
||||||
} else if ((uint8_t)(hopsUsed + 2) < config.lora.hop_limit) {
|
} else if ((uint8_t)(hopsUsed + 2) < config.lora.hop_limit) {
|
||||||
return hopsUsed + 2; // Use only the amount of hops needed with some margin as the way back may be different
|
return hopsUsed + 2; // Use only the amount of hops needed with some margin as the way back may be different
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -63,25 +63,28 @@
|
|||||||
SerialModule *serialModule;
|
SerialModule *serialModule;
|
||||||
SerialModuleRadio *serialModuleRadio;
|
SerialModuleRadio *serialModuleRadio;
|
||||||
|
|
||||||
#ifndef SERIAL_PRINT_PORT
|
#if defined(TTGO_T_ECHO) || defined(TTGO_T_ECHO_PLUS) || defined(CANARYONE) || defined(MESHLINK) || \
|
||||||
#define SERIAL_PRINT_PORT 2
|
defined(ELECROW_ThinkNode_M1) || defined(ELECROW_ThinkNode_M4) || defined(ELECROW_ThinkNode_M5) || \
|
||||||
#endif
|
defined(HELTEC_MESH_SOLAR) || defined(T_ECHO_LITE) || defined(ELECROW_ThinkNode_M3) || defined(MUZI_BASE)
|
||||||
|
|
||||||
#if SERIAL_PRINT_PORT == 0
|
SerialModule::SerialModule() : StreamAPI(&Serial), concurrency::OSThread("Serial")
|
||||||
#define SERIAL_PRINT_OBJECT Serial
|
|
||||||
#elif SERIAL_PRINT_PORT == 1
|
|
||||||
#define SERIAL_PRINT_OBJECT Serial1
|
|
||||||
#elif SERIAL_PRINT_PORT == 2
|
|
||||||
#define SERIAL_PRINT_OBJECT Serial2
|
|
||||||
#else
|
|
||||||
#error "Unsupported SERIAL_PRINT_PORT value. Allowed values are 0, 1, or 2."
|
|
||||||
#endif
|
|
||||||
|
|
||||||
SerialModule::SerialModule() : StreamAPI(&SERIAL_PRINT_OBJECT), concurrency::OSThread("Serial")
|
|
||||||
{
|
{
|
||||||
api_type = TYPE_SERIAL;
|
api_type = TYPE_SERIAL;
|
||||||
}
|
}
|
||||||
static Print *serialPrint = &SERIAL_PRINT_OBJECT;
|
static Print *serialPrint = &Serial;
|
||||||
|
#elif defined(CONFIG_IDF_TARGET_ESP32C6) || defined(RAK3172) || defined(EBYTE_E77_MBL)
|
||||||
|
SerialModule::SerialModule() : StreamAPI(&Serial1), concurrency::OSThread("Serial")
|
||||||
|
{
|
||||||
|
api_type = TYPE_SERIAL;
|
||||||
|
}
|
||||||
|
static Print *serialPrint = &Serial1;
|
||||||
|
#else
|
||||||
|
SerialModule::SerialModule() : StreamAPI(&Serial2), concurrency::OSThread("Serial")
|
||||||
|
{
|
||||||
|
api_type = TYPE_SERIAL;
|
||||||
|
}
|
||||||
|
static Print *serialPrint = &Serial2;
|
||||||
|
#endif
|
||||||
|
|
||||||
char serialBytes[512];
|
char serialBytes[512];
|
||||||
size_t serialPayloadSize;
|
size_t serialPayloadSize;
|
||||||
@@ -202,7 +205,9 @@ int32_t SerialModule::runOnce()
|
|||||||
Serial.begin(baud);
|
Serial.begin(baud);
|
||||||
Serial.setTimeout(moduleConfig.serial.timeout > 0 ? moduleConfig.serial.timeout : TIMEOUT);
|
Serial.setTimeout(moduleConfig.serial.timeout > 0 ? moduleConfig.serial.timeout : TIMEOUT);
|
||||||
}
|
}
|
||||||
#elif SERIAL_PRINT_PORT != 0
|
#elif !defined(TTGO_T_ECHO) && !defined(TTGO_T_ECHO_PLUS) && !defined(T_ECHO_LITE) && !defined(CANARYONE) && \
|
||||||
|
!defined(MESHLINK) && !defined(ELECROW_ThinkNode_M1) && !defined(ELECROW_ThinkNode_M3) && !defined(ELECROW_ThinkNode_M4) && \
|
||||||
|
!defined(ELECROW_ThinkNode_M5) && !defined(MUZI_BASE)
|
||||||
|
|
||||||
if (moduleConfig.serial.rxd && moduleConfig.serial.txd) {
|
if (moduleConfig.serial.rxd && moduleConfig.serial.txd) {
|
||||||
#ifdef ARCH_RP2040
|
#ifdef ARCH_RP2040
|
||||||
@@ -259,7 +264,9 @@ int32_t SerialModule::runOnce()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#if SERIAL_PRINT_PORT != 0
|
#if !defined(TTGO_T_ECHO) && !defined(TTGO_T_ECHO_PLUS) && !defined(T_ECHO_LITE) && !defined(CANARYONE) && !defined(MESHLINK) && \
|
||||||
|
!defined(ELECROW_ThinkNode_M1) && !defined(ELECROW_ThinkNode_M3) && !defined(ELECROW_ThinkNode_M4) && \
|
||||||
|
!defined(ELECROW_ThinkNode_M5) && !defined(MUZI_BASE)
|
||||||
else if ((moduleConfig.serial.mode == meshtastic_ModuleConfig_SerialConfig_Serial_Mode_WS85)) {
|
else if ((moduleConfig.serial.mode == meshtastic_ModuleConfig_SerialConfig_Serial_Mode_WS85)) {
|
||||||
processWXSerial();
|
processWXSerial();
|
||||||
|
|
||||||
@@ -533,7 +540,11 @@ ParsedLine parseLine(const char *line)
|
|||||||
*/
|
*/
|
||||||
void SerialModule::processWXSerial()
|
void SerialModule::processWXSerial()
|
||||||
{
|
{
|
||||||
#if SERIAL_PRINT_PORT != 0 && !defined(ARCH_STM32WL) && !defined(CONFIG_IDF_TARGET_ESP32C6)
|
#if !defined(TTGO_T_ECHO) && !defined(TTGO_T_ECHO_PLUS) && !defined(T_ECHO_LITE) && !defined(CANARYONE) && \
|
||||||
|
!defined(CONFIG_IDF_TARGET_ESP32C6) && !defined(MESHLINK) && !defined(ELECROW_ThinkNode_M1) && \
|
||||||
|
!defined(ELECROW_ThinkNode_M3) && \
|
||||||
|
!defined(ELECROW_ThinkNode_M4) && \
|
||||||
|
!defined(ELECROW_ThinkNode_M5) && !defined(ARCH_STM32WL) && !defined(MUZI_BASE)
|
||||||
|
|
||||||
static unsigned int lastAveraged = 0;
|
static unsigned int lastAveraged = 0;
|
||||||
static unsigned int averageIntervalMillis = 300000; // 5 minutes hard coded.
|
static unsigned int averageIntervalMillis = 300000; // 5 minutes hard coded.
|
||||||
|
|||||||
@@ -529,46 +529,37 @@ bool EnvironmentTelemetryModule::handleReceivedProtobuf(const meshtastic_MeshPac
|
|||||||
|
|
||||||
bool EnvironmentTelemetryModule::getEnvironmentTelemetry(meshtastic_Telemetry *m)
|
bool EnvironmentTelemetryModule::getEnvironmentTelemetry(meshtastic_Telemetry *m)
|
||||||
{
|
{
|
||||||
bool valid = false;
|
bool valid = true;
|
||||||
bool hasSensor = false;
|
bool hasSensor = false;
|
||||||
// getMetrics() doesn't always get evaluated because of
|
|
||||||
// short-circuit evaluation rules in c++
|
|
||||||
bool get_metrics;
|
|
||||||
m->time = getTime();
|
m->time = getTime();
|
||||||
m->which_variant = meshtastic_Telemetry_environment_metrics_tag;
|
m->which_variant = meshtastic_Telemetry_environment_metrics_tag;
|
||||||
m->variant.environment_metrics = meshtastic_EnvironmentMetrics_init_zero;
|
m->variant.environment_metrics = meshtastic_EnvironmentMetrics_init_zero;
|
||||||
|
|
||||||
for (TelemetrySensor *sensor : sensors) {
|
for (TelemetrySensor *sensor : sensors) {
|
||||||
get_metrics = sensor->getMetrics(m); // avoid short-circuit evaluation rules
|
valid = valid && sensor->getMetrics(m);
|
||||||
valid = valid || get_metrics;
|
|
||||||
hasSensor = true;
|
hasSensor = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifndef T1000X_SENSOR_EN
|
#ifndef T1000X_SENSOR_EN
|
||||||
if (ina219Sensor.hasSensor()) {
|
if (ina219Sensor.hasSensor()) {
|
||||||
get_metrics = ina219Sensor.getMetrics(m);
|
valid = valid && ina219Sensor.getMetrics(m);
|
||||||
valid = valid || get_metrics;
|
|
||||||
hasSensor = true;
|
hasSensor = true;
|
||||||
}
|
}
|
||||||
if (ina260Sensor.hasSensor()) {
|
if (ina260Sensor.hasSensor()) {
|
||||||
get_metrics = ina260Sensor.getMetrics(m);
|
valid = valid && ina260Sensor.getMetrics(m);
|
||||||
valid = valid || get_metrics;
|
|
||||||
hasSensor = true;
|
hasSensor = true;
|
||||||
}
|
}
|
||||||
if (ina3221Sensor.hasSensor()) {
|
if (ina3221Sensor.hasSensor()) {
|
||||||
get_metrics = ina3221Sensor.getMetrics(m);
|
valid = valid && ina3221Sensor.getMetrics(m);
|
||||||
valid = valid || get_metrics;
|
|
||||||
hasSensor = true;
|
hasSensor = true;
|
||||||
}
|
}
|
||||||
if (max17048Sensor.hasSensor()) {
|
if (max17048Sensor.hasSensor()) {
|
||||||
get_metrics = max17048Sensor.getMetrics(m);
|
valid = valid && max17048Sensor.getMetrics(m);
|
||||||
valid = valid || get_metrics;
|
|
||||||
hasSensor = true;
|
hasSensor = true;
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
#ifdef HAS_RAKPROT
|
#ifdef HAS_RAKPROT
|
||||||
get_metrics = rak9154Sensor.getMetrics(m);
|
valid = valid && rak9154Sensor.getMetrics(m);
|
||||||
valid = valid || get_metrics;
|
|
||||||
hasSensor = true;
|
hasSensor = true;
|
||||||
#endif
|
#endif
|
||||||
return valid && hasSensor;
|
return valid && hasSensor;
|
||||||
|
|||||||
@@ -168,21 +168,18 @@ bool HealthTelemetryModule::handleReceivedProtobuf(const meshtastic_MeshPacket &
|
|||||||
|
|
||||||
bool HealthTelemetryModule::getHealthTelemetry(meshtastic_Telemetry *m)
|
bool HealthTelemetryModule::getHealthTelemetry(meshtastic_Telemetry *m)
|
||||||
{
|
{
|
||||||
bool valid = false;
|
bool valid = true;
|
||||||
bool hasSensor = false;
|
bool hasSensor = false;
|
||||||
bool get_metrics;
|
|
||||||
m->time = getTime();
|
m->time = getTime();
|
||||||
m->which_variant = meshtastic_Telemetry_health_metrics_tag;
|
m->which_variant = meshtastic_Telemetry_health_metrics_tag;
|
||||||
m->variant.health_metrics = meshtastic_HealthMetrics_init_zero;
|
m->variant.health_metrics = meshtastic_HealthMetrics_init_zero;
|
||||||
|
|
||||||
if (max30102Sensor.hasSensor()) {
|
if (max30102Sensor.hasSensor()) {
|
||||||
get_metrics = max30102Sensor.getMetrics(m);
|
valid = valid && max30102Sensor.getMetrics(m);
|
||||||
valid = valid || get_metrics; // avoid short-circuit evaluation rules
|
|
||||||
hasSensor = true;
|
hasSensor = true;
|
||||||
}
|
}
|
||||||
if (mlx90614Sensor.hasSensor()) {
|
if (mlx90614Sensor.hasSensor()) {
|
||||||
get_metrics = mlx90614Sensor.getMetrics(m);
|
valid = valid && mlx90614Sensor.getMetrics(m);
|
||||||
valid = valid || get_metrics;
|
|
||||||
hasSensor = true;
|
hasSensor = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -686,9 +686,6 @@ class NimbleBluetoothServerCallback : public NimBLEServerCallbacks
|
|||||||
#ifdef NIMBLE_TWO
|
#ifdef NIMBLE_TWO
|
||||||
if (ble->isDeInit)
|
if (ble->isDeInit)
|
||||||
return;
|
return;
|
||||||
#else
|
|
||||||
if (nimbleBluetooth && nimbleBluetooth->isDeInit)
|
|
||||||
return;
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
meshtastic::BluetoothStatus newStatus(meshtastic::BluetoothStatus::ConnectionState::DISCONNECTED);
|
meshtastic::BluetoothStatus newStatus(meshtastic::BluetoothStatus::ConnectionState::DISCONNECTED);
|
||||||
|
|||||||
@@ -1,37 +0,0 @@
|
|||||||
#include "watchdogThread.h"
|
|
||||||
#include "configuration.h"
|
|
||||||
|
|
||||||
#ifdef HAS_HARDWARE_WATCHDOG
|
|
||||||
WatchdogThread *watchdogThread;
|
|
||||||
|
|
||||||
WatchdogThread::WatchdogThread() : OSThread("Watchdog")
|
|
||||||
{
|
|
||||||
setup();
|
|
||||||
}
|
|
||||||
|
|
||||||
void WatchdogThread::feedDog(void)
|
|
||||||
{
|
|
||||||
digitalWrite(HARDWARE_WATCHDOG_DONE, HIGH);
|
|
||||||
delay(1);
|
|
||||||
digitalWrite(HARDWARE_WATCHDOG_DONE, LOW);
|
|
||||||
}
|
|
||||||
|
|
||||||
int32_t WatchdogThread::runOnce()
|
|
||||||
{
|
|
||||||
LOG_DEBUG("Feeding hardware watchdog");
|
|
||||||
feedDog();
|
|
||||||
return HARDWARE_WATCHDOG_TIMEOUT_MS;
|
|
||||||
}
|
|
||||||
|
|
||||||
bool WatchdogThread::setup()
|
|
||||||
{
|
|
||||||
LOG_DEBUG("init hardware watchdog");
|
|
||||||
pinMode(HARDWARE_WATCHDOG_WAKE, INPUT);
|
|
||||||
pinMode(HARDWARE_WATCHDOG_DONE, OUTPUT);
|
|
||||||
delay(1);
|
|
||||||
digitalWrite(HARDWARE_WATCHDOG_DONE, LOW);
|
|
||||||
delay(1);
|
|
||||||
feedDog();
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
@@ -1,17 +0,0 @@
|
|||||||
#pragma once
|
|
||||||
|
|
||||||
#include "concurrency/OSThread.h"
|
|
||||||
#include <stdint.h>
|
|
||||||
|
|
||||||
#ifdef HAS_HARDWARE_WATCHDOG
|
|
||||||
class WatchdogThread : private concurrency::OSThread
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
WatchdogThread();
|
|
||||||
void feedDog(void);
|
|
||||||
virtual bool setup();
|
|
||||||
virtual int32_t runOnce() override;
|
|
||||||
};
|
|
||||||
|
|
||||||
extern WatchdogThread *watchdogThread;
|
|
||||||
#endif
|
|
||||||
64
test_ai_slop.c
Normal file
64
test_ai_slop.c
Normal file
@@ -0,0 +1,64 @@
|
|||||||
|
/**
|
||||||
|
* AI Slop Test File - This is intentionally AI-generated looking content
|
||||||
|
*
|
||||||
|
* This function serves the purpose of demonstrating and testing the capability
|
||||||
|
* of the advanced machine learning model to comprehensively identify and accurately
|
||||||
|
* classify content that exhibits characteristics commonly associated with artificial
|
||||||
|
* intelligence-generated compositions, including but not limited to: redundant phrasing,
|
||||||
|
* verbose explanations, generic descriptions, lack of specific implementation details,
|
||||||
|
* and an overall tone that suggests automated generation rather than human authorship.
|
||||||
|
*
|
||||||
|
* The methodology employed herein leverages sophisticated algorithms and innovative
|
||||||
|
* approaches to systematically and methodically accomplish the following objectives:
|
||||||
|
* 1. To demonstrate the robustness of the classification system
|
||||||
|
* 2. To showcase the effectiveness of modern detection techniques
|
||||||
|
* 3. To validate the operational parameters of the triaging infrastructure
|
||||||
|
* 4. To comprehensively evaluate the performance metrics of the solution
|
||||||
|
*
|
||||||
|
* Implementation considerations and technical specifications have been carefully
|
||||||
|
* considered and thoughtfully incorporated to ensure optimal functionality and
|
||||||
|
* seamless integration with existing systems and protocols.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include <stdio.h>
|
||||||
|
#include <stdlib.h>
|
||||||
|
#include <string.h>
|
||||||
|
|
||||||
|
/**
|
||||||
|
* A comprehensive and thoroughly documented function that implements
|
||||||
|
* a sophisticated approach to value processing and subsequent display.
|
||||||
|
*/
|
||||||
|
void demonstrateAIGeneratedCode(const char *input_value)
|
||||||
|
{
|
||||||
|
// Initialize variables with appropriate data types
|
||||||
|
int status_code = 0;
|
||||||
|
char buffer[256];
|
||||||
|
|
||||||
|
// Implement conditional logic to handle various scenarios
|
||||||
|
if (input_value != NULL) {
|
||||||
|
// Perform string manipulation operations
|
||||||
|
snprintf(buffer, sizeof(buffer), "Processing input: %s", input_value);
|
||||||
|
printf("%s\n", buffer);
|
||||||
|
status_code = 1;
|
||||||
|
} else {
|
||||||
|
// Handle null input scenario appropriately
|
||||||
|
printf("Input value was null\n");
|
||||||
|
status_code = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Return and indicate completion
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Primary entry point for application execution.
|
||||||
|
* This function orchestrates the overall flow and coordination of various
|
||||||
|
* components to achieve the desired outcomes and objectives.
|
||||||
|
*/
|
||||||
|
int main()
|
||||||
|
{
|
||||||
|
printf("Initiating execution of AI slop detection test...\n");
|
||||||
|
demonstrateAIGeneratedCode("test data");
|
||||||
|
printf("Execution completed successfully.\n");
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
@@ -8,7 +8,6 @@ build_flags =
|
|||||||
-I variants/esp32/chatter2
|
-I variants/esp32/chatter2
|
||||||
-DMESHTASTIC_EXCLUDE_WEBSERVER=1
|
-DMESHTASTIC_EXCLUDE_WEBSERVER=1
|
||||||
-DMESHTASTIC_EXCLUDE_PAXCOUNTER=1
|
-DMESHTASTIC_EXCLUDE_PAXCOUNTER=1
|
||||||
-ULED_BUILTIN
|
|
||||||
|
|
||||||
lib_deps =
|
lib_deps =
|
||||||
${esp32_base.lib_deps}
|
${esp32_base.lib_deps}
|
||||||
|
|||||||
@@ -14,4 +14,3 @@ build_flags =
|
|||||||
${esp32_base.build_flags}
|
${esp32_base.build_flags}
|
||||||
-D DIY_V1
|
-D DIY_V1
|
||||||
-I variants/esp32/diy/hydra
|
-I variants/esp32/diy/hydra
|
||||||
-ULED_BUILTIN
|
|
||||||
|
|||||||
@@ -17,4 +17,3 @@ build_flags =
|
|||||||
-D DIY_V1
|
-D DIY_V1
|
||||||
-D EBYTE_E22
|
-D EBYTE_E22
|
||||||
-I variants/esp32/diy/v1
|
-I variants/esp32/diy/v1
|
||||||
-ULED_BUILTIN
|
|
||||||
|
|||||||
@@ -14,4 +14,3 @@ build_flags =
|
|||||||
${esp32_base.build_flags}
|
${esp32_base.build_flags}
|
||||||
-D NANO_G1_EXPLORER
|
-D NANO_G1_EXPLORER
|
||||||
-I variants/esp32/nano-g1-explorer
|
-I variants/esp32/nano-g1-explorer
|
||||||
-ULED_BUILTIN
|
|
||||||
|
|||||||
@@ -14,4 +14,3 @@ build_flags =
|
|||||||
${esp32_base.build_flags}
|
${esp32_base.build_flags}
|
||||||
-D NANO_G1
|
-D NANO_G1
|
||||||
-I variants/esp32/nano-g1
|
-I variants/esp32/nano-g1
|
||||||
-ULED_BUILTIN
|
|
||||||
|
|||||||
@@ -9,7 +9,6 @@ build_flags =
|
|||||||
-DHAS_STK8XXX=1
|
-DHAS_STK8XXX=1
|
||||||
-O2
|
-O2
|
||||||
-I variants/esp32/radiomaster_900_bandit
|
-I variants/esp32/radiomaster_900_bandit
|
||||||
-ULED_BUILTIN
|
|
||||||
board_build.f_cpu = 240000000L
|
board_build.f_cpu = 240000000L
|
||||||
upload_protocol = esptool
|
upload_protocol = esptool
|
||||||
lib_deps =
|
lib_deps =
|
||||||
|
|||||||
@@ -13,6 +13,5 @@ build_flags =
|
|||||||
-DCONFIG_DISABLE_HAL_LOCKS=1
|
-DCONFIG_DISABLE_HAL_LOCKS=1
|
||||||
-O2
|
-O2
|
||||||
-I variants/esp32/radiomaster_900_bandit_nano
|
-I variants/esp32/radiomaster_900_bandit_nano
|
||||||
-ULED_BUILTIN
|
|
||||||
board_build.f_cpu = 240000000L
|
board_build.f_cpu = 240000000L
|
||||||
upload_protocol = esptool
|
upload_protocol = esptool
|
||||||
|
|||||||
@@ -16,6 +16,5 @@ build_flags =
|
|||||||
-DCONFIG_DISABLE_HAL_LOCKS=1
|
-DCONFIG_DISABLE_HAL_LOCKS=1
|
||||||
-O2
|
-O2
|
||||||
-I variants/esp32/radiomaster_900_bandit_nano
|
-I variants/esp32/radiomaster_900_bandit_nano
|
||||||
-ULED_BUILTIN
|
|
||||||
board_build.f_cpu = 240000000L
|
board_build.f_cpu = 240000000L
|
||||||
upload_protocol = esptool
|
upload_protocol = esptool
|
||||||
|
|||||||
@@ -6,6 +6,8 @@
|
|||||||
#define LED_GREEN 12
|
#define LED_GREEN 12
|
||||||
#define LED_BLUE 2
|
#define LED_BLUE 2
|
||||||
|
|
||||||
|
#define LED_BUILTIN LED_GREEN
|
||||||
|
|
||||||
static const uint8_t TX = 1;
|
static const uint8_t TX = 1;
|
||||||
static const uint8_t RX = 3;
|
static const uint8_t RX = 3;
|
||||||
|
|
||||||
|
|||||||
@@ -6,6 +6,8 @@
|
|||||||
#define LED_GREEN 12
|
#define LED_GREEN 12
|
||||||
#define LED_BLUE 2
|
#define LED_BLUE 2
|
||||||
|
|
||||||
|
#define LED_BUILTIN LED_GREEN
|
||||||
|
|
||||||
static const uint8_t TX = 1;
|
static const uint8_t TX = 1;
|
||||||
static const uint8_t RX = 3;
|
static const uint8_t RX = 3;
|
||||||
|
|
||||||
|
|||||||
@@ -14,4 +14,3 @@ build_flags =
|
|||||||
${esp32_base.build_flags}
|
${esp32_base.build_flags}
|
||||||
-D STATION_G1
|
-D STATION_G1
|
||||||
-I variants/esp32/station-g1
|
-I variants/esp32/station-g1
|
||||||
-ULED_BUILTIN
|
|
||||||
|
|||||||
@@ -18,7 +18,6 @@ build_flags = ${esp32_base.build_flags}
|
|||||||
-I variants/esp32/tbeam
|
-I variants/esp32/tbeam
|
||||||
-DBOARD_HAS_PSRAM
|
-DBOARD_HAS_PSRAM
|
||||||
-mfix-esp32-psram-cache-issue
|
-mfix-esp32-psram-cache-issue
|
||||||
-ULED_BUILTIN
|
|
||||||
upload_speed = 921600
|
upload_speed = 921600
|
||||||
|
|
||||||
[env:tbeam-displayshield]
|
[env:tbeam-displayshield]
|
||||||
|
|||||||
@@ -12,7 +12,7 @@ extends = esp32_base
|
|||||||
board = ttgo-lora32-v21
|
board = ttgo-lora32-v21
|
||||||
board_check = true
|
board_check = true
|
||||||
build_flags =
|
build_flags =
|
||||||
${esp32_base.build_flags} -D TLORA_V2_1_16 -I variants/esp32/tlora_v2_1_16 -ULED_BUILTIN
|
${esp32_base.build_flags} -D TLORA_V2_1_16 -I variants/esp32/tlora_v2_1_16
|
||||||
upload_speed = 115200
|
upload_speed = 115200
|
||||||
|
|
||||||
[env:sugarcube]
|
[env:sugarcube]
|
||||||
|
|||||||
@@ -6,5 +6,4 @@ build_flags =
|
|||||||
-D TLORA_V2_1_16
|
-D TLORA_V2_1_16
|
||||||
-I variants/esp32/tlora_v2_1_16
|
-I variants/esp32/tlora_v2_1_16
|
||||||
-D LORA_TCXO_GPIO=12
|
-D LORA_TCXO_GPIO=12
|
||||||
-D BUTTON_PIN=0
|
-D BUTTON_PIN=0
|
||||||
-ULED_BUILTIN
|
|
||||||
@@ -50,5 +50,3 @@ void c6l_init();
|
|||||||
#endif
|
#endif
|
||||||
#define SCREEN_TRANSITION_FRAMERATE 10
|
#define SCREEN_TRANSITION_FRAMERATE 10
|
||||||
#define BRIGHTNESS_DEFAULT 130 // Medium Low Brightness
|
#define BRIGHTNESS_DEFAULT 130 // Medium Low Brightness
|
||||||
|
|
||||||
#define SERIAL_PRINT_PORT 1
|
|
||||||
|
|||||||
@@ -8,4 +8,3 @@ build_flags =
|
|||||||
-I variants/esp32c6/tlora_c6
|
-I variants/esp32c6/tlora_c6
|
||||||
-DARDUINO_USB_CDC_ON_BOOT=1
|
-DARDUINO_USB_CDC_ON_BOOT=1
|
||||||
-DARDUINO_USB_MODE=1
|
-DARDUINO_USB_MODE=1
|
||||||
-ULED_BUILTIN
|
|
||||||
|
|||||||
@@ -19,5 +19,3 @@
|
|||||||
#define SX126X_TXEN 14
|
#define SX126X_TXEN 14
|
||||||
#define SX126X_DIO2_AS_RF_SWITCH
|
#define SX126X_DIO2_AS_RF_SWITCH
|
||||||
#define SX126X_DIO3_TCXO_VOLTAGE 1.8
|
#define SX126X_DIO3_TCXO_VOLTAGE 1.8
|
||||||
|
|
||||||
#define SERIAL_PRINT_PORT 1
|
|
||||||
|
|||||||
@@ -81,6 +81,4 @@
|
|||||||
|
|
||||||
#define BUTTON_PIN PIN_BUTTON1
|
#define BUTTON_PIN PIN_BUTTON1
|
||||||
#define BUTTON_PIN_ALT PIN_BUTTON2
|
#define BUTTON_PIN_ALT PIN_BUTTON2
|
||||||
|
|
||||||
#define SERIAL_PRINT_PORT 0
|
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
@@ -6,5 +6,4 @@ board_build.partitions = default_8MB.csv
|
|||||||
build_flags =
|
build_flags =
|
||||||
${esp32s3_base.build_flags} -I variants/esp32s3/heltec_capsule_sensor_v3
|
${esp32s3_base.build_flags} -I variants/esp32s3/heltec_capsule_sensor_v3
|
||||||
-D HELTEC_CAPSULE_SENSOR_V3
|
-D HELTEC_CAPSULE_SENSOR_V3
|
||||||
-ULED_BUILTIN
|
|
||||||
;-D DEBUG_DISABLED ; uncomment this line to disable DEBUG output
|
;-D DEBUG_DISABLED ; uncomment this line to disable DEBUG output
|
||||||
|
|||||||
@@ -7,7 +7,6 @@ build_flags =
|
|||||||
${esp32s3_base.build_flags}
|
${esp32s3_base.build_flags}
|
||||||
-I variants/esp32s3/heltec_sensor_hub
|
-I variants/esp32s3/heltec_sensor_hub
|
||||||
-D HELTEC_SENSOR_HUB
|
-D HELTEC_SENSOR_HUB
|
||||||
-ULED_BUILTIN
|
|
||||||
|
|
||||||
lib_deps = ${esp32s3_base.lib_deps}
|
lib_deps = ${esp32s3_base.lib_deps}
|
||||||
# renovate: datasource=custom.pio depName=NeoPixel packageName=adafruit/library/Adafruit NeoPixel
|
# renovate: datasource=custom.pio depName=NeoPixel packageName=adafruit/library/Adafruit NeoPixel
|
||||||
|
|||||||
@@ -18,4 +18,3 @@ build_flags =
|
|||||||
${esp32s3_base.build_flags}
|
${esp32s3_base.build_flags}
|
||||||
-D HELTEC_V3
|
-D HELTEC_V3
|
||||||
-I variants/esp32s3/heltec_v3
|
-I variants/esp32s3/heltec_v3
|
||||||
-ULED_BUILTIN
|
|
||||||
|
|||||||
@@ -6,6 +6,10 @@
|
|||||||
#define USB_VID 0x303a
|
#define USB_VID 0x303a
|
||||||
#define USB_PID 0x1001
|
#define USB_PID 0x1001
|
||||||
|
|
||||||
|
static const uint8_t LED_BUILTIN = 35;
|
||||||
|
#define BUILTIN_LED LED_BUILTIN // backward compatibility
|
||||||
|
#define LED_BUILTIN LED_BUILTIN // allow testing #ifdef LED_BUILTIN
|
||||||
|
|
||||||
static const uint8_t TX = 43;
|
static const uint8_t TX = 43;
|
||||||
static const uint8_t RX = 44;
|
static const uint8_t RX = 44;
|
||||||
|
|
||||||
|
|||||||
@@ -3,6 +3,10 @@
|
|||||||
|
|
||||||
#include <stdint.h>
|
#include <stdint.h>
|
||||||
|
|
||||||
|
static const uint8_t LED_BUILTIN = 45; // LED is not populated on earliest board variant
|
||||||
|
#define BUILTIN_LED LED_BUILTIN // Backward compatibility
|
||||||
|
#define LED_BUILTIN LED_BUILTIN
|
||||||
|
|
||||||
static const uint8_t TX = 43;
|
static const uint8_t TX = 43;
|
||||||
static const uint8_t RX = 44;
|
static const uint8_t RX = 44;
|
||||||
|
|
||||||
|
|||||||
@@ -3,6 +3,10 @@
|
|||||||
|
|
||||||
#include <stdint.h>
|
#include <stdint.h>
|
||||||
|
|
||||||
|
static const uint8_t LED_BUILTIN = 45; // LED is not populated on earliest board variant
|
||||||
|
#define BUILTIN_LED LED_BUILTIN // Backward compatibility
|
||||||
|
#define LED_BUILTIN LED_BUILTIN
|
||||||
|
|
||||||
static const uint8_t TX = 43;
|
static const uint8_t TX = 43;
|
||||||
static const uint8_t RX = 44;
|
static const uint8_t RX = 44;
|
||||||
|
|
||||||
|
|||||||
@@ -3,6 +3,10 @@
|
|||||||
|
|
||||||
#include <stdint.h>
|
#include <stdint.h>
|
||||||
|
|
||||||
|
static const uint8_t LED_BUILTIN = 35;
|
||||||
|
#define BUILTIN_LED LED_BUILTIN // backward compatibility
|
||||||
|
#define LED_BUILTIN LED_BUILTIN
|
||||||
|
|
||||||
static const uint8_t TX = 43;
|
static const uint8_t TX = 43;
|
||||||
static const uint8_t RX = 44;
|
static const uint8_t RX = 44;
|
||||||
|
|
||||||
|
|||||||
@@ -3,6 +3,10 @@
|
|||||||
|
|
||||||
#include <stdint.h>
|
#include <stdint.h>
|
||||||
|
|
||||||
|
static const uint8_t LED_BUILTIN = 18;
|
||||||
|
#define BUILTIN_LED LED_BUILTIN // backward compatibility
|
||||||
|
#define LED_BUILTIN LED_BUILTIN
|
||||||
|
|
||||||
static const uint8_t TX = 43;
|
static const uint8_t TX = 43;
|
||||||
static const uint8_t RX = 44;
|
static const uint8_t RX = 44;
|
||||||
|
|
||||||
|
|||||||
@@ -3,6 +3,10 @@
|
|||||||
|
|
||||||
#include <stdint.h>
|
#include <stdint.h>
|
||||||
|
|
||||||
|
static const uint8_t LED_BUILTIN = 18;
|
||||||
|
#define BUILTIN_LED LED_BUILTIN // backward compatibility
|
||||||
|
#define LED_BUILTIN LED_BUILTIN
|
||||||
|
|
||||||
static const uint8_t KEY_BUILTIN = 0;
|
static const uint8_t KEY_BUILTIN = 0;
|
||||||
|
|
||||||
static const uint8_t TX = 43;
|
static const uint8_t TX = 43;
|
||||||
|
|||||||
@@ -11,6 +11,10 @@
|
|||||||
#define USB_VID 0x303a
|
#define USB_VID 0x303a
|
||||||
#define USB_PID 0x1001
|
#define USB_PID 0x1001
|
||||||
|
|
||||||
|
static const uint8_t LED_BUILTIN = 18;
|
||||||
|
#define BUILTIN_LED LED_BUILTIN // backward compatibility
|
||||||
|
#define LED_BUILTIN LED_BUILTIN
|
||||||
|
|
||||||
static const uint8_t TX = 43;
|
static const uint8_t TX = 43;
|
||||||
static const uint8_t RX = 44;
|
static const uint8_t RX = 44;
|
||||||
|
|
||||||
|
|||||||
@@ -11,6 +11,10 @@
|
|||||||
#define USB_VID 0x303a
|
#define USB_VID 0x303a
|
||||||
#define USB_PID 0x1001
|
#define USB_PID 0x1001
|
||||||
|
|
||||||
|
static const uint8_t LED_BUILTIN = 18;
|
||||||
|
#define BUILTIN_LED LED_BUILTIN // backward compatibility
|
||||||
|
#define LED_BUILTIN LED_BUILTIN
|
||||||
|
|
||||||
static const uint8_t TX = 43;
|
static const uint8_t TX = 43;
|
||||||
static const uint8_t RX = 44;
|
static const uint8_t RX = 44;
|
||||||
|
|
||||||
|
|||||||
@@ -10,6 +10,10 @@
|
|||||||
#define USB_VID 0x303a
|
#define USB_VID 0x303a
|
||||||
#define USB_PID 0x1001
|
#define USB_PID 0x1001
|
||||||
|
|
||||||
|
static const uint8_t LED_BUILTIN = 18;
|
||||||
|
#define BUILTIN_LED LED_BUILTIN // backward compatibility
|
||||||
|
#define LED_BUILTIN LED_BUILTIN
|
||||||
|
|
||||||
static const uint8_t TX = 43;
|
static const uint8_t TX = 43;
|
||||||
static const uint8_t RX = 44;
|
static const uint8_t RX = 44;
|
||||||
|
|
||||||
|
|||||||
@@ -17,4 +17,3 @@ build_flags =
|
|||||||
${esp32s3_base.build_flags}
|
${esp32s3_base.build_flags}
|
||||||
-D HELTEC_WSL_V3
|
-D HELTEC_WSL_V3
|
||||||
-I variants/esp32s3/heltec_wsl_v3
|
-I variants/esp32s3/heltec_wsl_v3
|
||||||
-ULED_BUILTIN
|
|
||||||
|
|||||||
@@ -10,7 +10,10 @@
|
|||||||
// Some boards have too low voltage on this pin (board design bug)
|
// Some boards have too low voltage on this pin (board design bug)
|
||||||
// Use different pin with 3V and connect with 48
|
// Use different pin with 3V and connect with 48
|
||||||
// and change this setup for the chosen pin (for example 38)
|
// and change this setup for the chosen pin (for example 38)
|
||||||
#define RGB_BUILTIN SOC_GPIO_PIN_COUNT + 48
|
static const uint8_t LED_BUILTIN = SOC_GPIO_PIN_COUNT + 48;
|
||||||
|
#define BUILTIN_LED LED_BUILTIN // backward compatibility
|
||||||
|
#define LED_BUILTIN LED_BUILTIN
|
||||||
|
#define RGB_BUILTIN LED_BUILTIN
|
||||||
#define RGB_BRIGHTNESS 64
|
#define RGB_BRIGHTNESS 64
|
||||||
|
|
||||||
static const uint8_t TX = 43;
|
static const uint8_t TX = 43;
|
||||||
|
|||||||
@@ -49,6 +49,10 @@ static const uint8_t T14 = 14;
|
|||||||
static const uint8_t VBAT_SENSE = 2;
|
static const uint8_t VBAT_SENSE = 2;
|
||||||
static const uint8_t VBUS_SENSE = 34;
|
static const uint8_t VBUS_SENSE = 34;
|
||||||
|
|
||||||
|
// User LED
|
||||||
|
#define LED_BUILTIN 13
|
||||||
|
#define BUILTIN_LED LED_BUILTIN // backward compatibility
|
||||||
|
|
||||||
static const uint8_t RGB_DATA = 40;
|
static const uint8_t RGB_DATA = 40;
|
||||||
// RGB_BUILTIN and RGB_BRIGHTNESS can be used in new Arduino API neopixelWrite()
|
// RGB_BUILTIN and RGB_BRIGHTNESS can be used in new Arduino API neopixelWrite()
|
||||||
#define RGB_BUILTIN (RGB_DATA + SOC_GPIO_PIN_COUNT)
|
#define RGB_BUILTIN (RGB_DATA + SOC_GPIO_PIN_COUNT)
|
||||||
|
|||||||
@@ -24,6 +24,9 @@ static const uint8_t SCK = 13;
|
|||||||
#define SPI_MISO (10)
|
#define SPI_MISO (10)
|
||||||
#define SPI_CS (12)
|
#define SPI_CS (12)
|
||||||
|
|
||||||
|
// LEDs
|
||||||
|
#define LED_BUILTIN LED_GREEN
|
||||||
|
|
||||||
#ifdef _VARIANT_RAK3112_
|
#ifdef _VARIANT_RAK3112_
|
||||||
/*
|
/*
|
||||||
* Serial interfaces
|
* Serial interfaces
|
||||||
|
|||||||
@@ -22,4 +22,7 @@ static const uint8_t SCK = 13;
|
|||||||
#define SPI_MISO (10)
|
#define SPI_MISO (10)
|
||||||
#define SPI_CS (12)
|
#define SPI_CS (12)
|
||||||
|
|
||||||
|
// LEDs
|
||||||
|
#define LED_BUILTIN LED_GREEN
|
||||||
|
|
||||||
#endif /* Pins_Arduino_h */
|
#endif /* Pins_Arduino_h */
|
||||||
|
|||||||
@@ -3,6 +3,8 @@
|
|||||||
|
|
||||||
#include <stdint.h>
|
#include <stdint.h>
|
||||||
|
|
||||||
|
// static const uint8_t LED_BUILTIN = -1;
|
||||||
|
|
||||||
// static const uint8_t TX = 43;
|
// static const uint8_t TX = 43;
|
||||||
// static const uint8_t RX = 44;
|
// static const uint8_t RX = 44;
|
||||||
|
|
||||||
|
|||||||
@@ -6,6 +6,8 @@
|
|||||||
#define USB_VID 0x303a
|
#define USB_VID 0x303a
|
||||||
#define USB_PID 0x1001
|
#define USB_PID 0x1001
|
||||||
|
|
||||||
|
// static const uint8_t LED_BUILTIN = -1;
|
||||||
|
|
||||||
static const uint8_t TX = 43;
|
static const uint8_t TX = 43;
|
||||||
static const uint8_t RX = 44;
|
static const uint8_t RX = 44;
|
||||||
|
|
||||||
|
|||||||
@@ -3,6 +3,8 @@
|
|||||||
|
|
||||||
#include <stdint.h>
|
#include <stdint.h>
|
||||||
|
|
||||||
|
// static const uint8_t LED_BUILTIN = -1;
|
||||||
|
|
||||||
// static const uint8_t TX = 43;
|
// static const uint8_t TX = 43;
|
||||||
// static const uint8_t RX = 44;
|
// static const uint8_t RX = 44;
|
||||||
|
|
||||||
|
|||||||
@@ -11,6 +11,10 @@
|
|||||||
#define USB_VID 0x303a
|
#define USB_VID 0x303a
|
||||||
#define USB_PID 0x1001
|
#define USB_PID 0x1001
|
||||||
|
|
||||||
|
static const uint8_t LED_BUILTIN = 18;
|
||||||
|
#define BUILTIN_LED LED_BUILTIN // backward compatibility
|
||||||
|
#define LED_BUILTIN LED_BUILTIN
|
||||||
|
|
||||||
static const uint8_t TX = 43;
|
static const uint8_t TX = 43;
|
||||||
static const uint8_t RX = 44;
|
static const uint8_t RX = 44;
|
||||||
|
|
||||||
|
|||||||
@@ -11,6 +11,10 @@
|
|||||||
#define USB_VID 0x303a
|
#define USB_VID 0x303a
|
||||||
#define USB_PID 0x1001
|
#define USB_PID 0x1001
|
||||||
|
|
||||||
|
static const uint8_t LED_BUILTIN = 18;
|
||||||
|
#define BUILTIN_LED LED_BUILTIN // backward compatibility
|
||||||
|
#define LED_BUILTIN LED_BUILTIN
|
||||||
|
|
||||||
static const uint8_t TX = 43;
|
static const uint8_t TX = 43;
|
||||||
static const uint8_t RX = 44;
|
static const uint8_t RX = 44;
|
||||||
|
|
||||||
|
|||||||
@@ -11,6 +11,10 @@
|
|||||||
#define USB_VID 0x303a
|
#define USB_VID 0x303a
|
||||||
#define USB_PID 0x1001
|
#define USB_PID 0x1001
|
||||||
|
|
||||||
|
static const uint8_t LED_BUILTIN = 18;
|
||||||
|
#define BUILTIN_LED LED_BUILTIN // backward compatibility
|
||||||
|
#define LED_BUILTIN LED_BUILTIN
|
||||||
|
|
||||||
static const uint8_t TX = 43;
|
static const uint8_t TX = 43;
|
||||||
static const uint8_t RX = 44;
|
static const uint8_t RX = 44;
|
||||||
|
|
||||||
|
|||||||
@@ -6,6 +6,9 @@
|
|||||||
#define USB_VID 0x16D0
|
#define USB_VID 0x16D0
|
||||||
#define USB_PID 0x1178
|
#define USB_PID 0x1178
|
||||||
|
|
||||||
|
#define LED_BUILTIN 13
|
||||||
|
#define BUILTIN_LED LED_BUILTIN // backward compatibility
|
||||||
|
|
||||||
static const uint8_t TX = 43;
|
static const uint8_t TX = 43;
|
||||||
static const uint8_t RX = 44;
|
static const uint8_t RX = 44;
|
||||||
|
|
||||||
|
|||||||
@@ -29,7 +29,7 @@ lib_deps =
|
|||||||
# renovate: datasource=custom.pio depName=LovyanGFX packageName=lovyan03/library/LovyanGFX
|
# renovate: datasource=custom.pio depName=LovyanGFX packageName=lovyan03/library/LovyanGFX
|
||||||
lovyan03/LovyanGFX@1.2.19
|
lovyan03/LovyanGFX@1.2.19
|
||||||
# renovate: datasource=git-refs depName=libch341-spi-userspace packageName=https://github.com/pine64/libch341-spi-userspace gitBranch=main
|
# renovate: datasource=git-refs depName=libch341-spi-userspace packageName=https://github.com/pine64/libch341-spi-userspace gitBranch=main
|
||||||
https://github.com/pine64/libch341-spi-userspace/archive/af9bc27c9c30fa90772279925b7c5913dff789b4.zip
|
https://github.com/pine64/libch341-spi-userspace/archive/23c42319a69cffcb65868e3c72e6bed83974a393.zip
|
||||||
# renovate: datasource=custom.pio depName=adafruit/Adafruit seesaw Library packageName=adafruit/library/Adafruit seesaw Library
|
# renovate: datasource=custom.pio depName=adafruit/Adafruit seesaw Library packageName=adafruit/library/Adafruit seesaw Library
|
||||||
adafruit/Adafruit seesaw Library@1.7.9
|
adafruit/Adafruit seesaw Library@1.7.9
|
||||||
# renovate: datasource=git-refs depName=RAK12034-BMX160 packageName=https://github.com/RAKWireless/RAK12034-BMX160 gitBranch=main
|
# renovate: datasource=git-refs depName=RAK12034-BMX160 packageName=https://github.com/RAKWireless/RAK12034-BMX160 gitBranch=main
|
||||||
|
|||||||
@@ -50,6 +50,7 @@ extern "C" {
|
|||||||
#define RGBLED_BLUE (0 + 12) // Blue of RGB P0.12
|
#define RGBLED_BLUE (0 + 12) // Blue of RGB P0.12
|
||||||
#define RGBLED_CA // comment out this line if you have a common cathode type, as defined use common anode logic
|
#define RGBLED_CA // comment out this line if you have a common cathode type, as defined use common anode logic
|
||||||
|
|
||||||
|
#define LED_BUILTIN PIN_LED1
|
||||||
#define LED_CONN PIN_LED2
|
#define LED_CONN PIN_LED2
|
||||||
|
|
||||||
#define LED_GREEN PIN_LED1
|
#define LED_GREEN PIN_LED1
|
||||||
|
|||||||
@@ -55,6 +55,7 @@ extern "C" {
|
|||||||
#define LED_RED PIN_LED3
|
#define LED_RED PIN_LED3
|
||||||
#define LED_BLUE PIN_LED1
|
#define LED_BLUE PIN_LED1
|
||||||
#define LED_GREEN PIN_LED2
|
#define LED_GREEN PIN_LED2
|
||||||
|
#define LED_BUILTIN LED_BLUE
|
||||||
#define LED_CONN PIN_GREEN
|
#define LED_CONN PIN_GREEN
|
||||||
#define LED_STATE_ON 0 // State when LED is lit // LED灯亮时的状态
|
#define LED_STATE_ON 0 // State when LED is lit // LED灯亮时的状态
|
||||||
#define PIN_BUZZER (0 + 6)
|
#define PIN_BUZZER (0 + 6)
|
||||||
@@ -158,8 +159,6 @@ External serial flash WP25R1635FZUIL0
|
|||||||
#define PIN_SERIAL1_TX GPS_TX_PIN
|
#define PIN_SERIAL1_TX GPS_TX_PIN
|
||||||
#define PIN_SERIAL1_RX GPS_RX_PIN
|
#define PIN_SERIAL1_RX GPS_RX_PIN
|
||||||
|
|
||||||
#define SERIAL_PRINT_PORT 0
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* SPI Interfaces
|
* SPI Interfaces
|
||||||
*/
|
*/
|
||||||
|
|||||||
@@ -58,6 +58,7 @@ extern "C" {
|
|||||||
#define LED_BLUE 37
|
#define LED_BLUE 37
|
||||||
#define LED_PAIRING LED_BLUE // Signals the Status LED Module to handle this LED
|
#define LED_PAIRING LED_BLUE // Signals the Status LED Module to handle this LED
|
||||||
|
|
||||||
|
#define LED_BUILTIN -1
|
||||||
#define LED_STATE_ON LOW
|
#define LED_STATE_ON LOW
|
||||||
#define LED_STATE_OFF HIGH
|
#define LED_STATE_OFF HIGH
|
||||||
|
|
||||||
@@ -112,8 +113,6 @@ extern "C" {
|
|||||||
#define LR11X0_DIO3_TCXO_VOLTAGE 3.3
|
#define LR11X0_DIO3_TCXO_VOLTAGE 3.3
|
||||||
#define LR11X0_DIO_AS_RF_SWITCH
|
#define LR11X0_DIO_AS_RF_SWITCH
|
||||||
|
|
||||||
#define SERIAL_PRINT_PORT 0
|
|
||||||
|
|
||||||
// PCF8563 RTC Module
|
// PCF8563 RTC Module
|
||||||
// REVISIT https://github.com/meshtastic/firmware/pull/9084
|
// REVISIT https://github.com/meshtastic/firmware/pull/9084
|
||||||
// #define PCF8563_RTC 0x51
|
// #define PCF8563_RTC 0x51
|
||||||
|
|||||||
@@ -40,6 +40,7 @@ extern "C" {
|
|||||||
#define NUM_ANALOG_OUTPUTS (0)
|
#define NUM_ANALOG_OUTPUTS (0)
|
||||||
|
|
||||||
// LEDs
|
// LEDs
|
||||||
|
#define LED_BUILTIN -1
|
||||||
#define LED_BLUE -1
|
#define LED_BLUE -1
|
||||||
#define PIN_LED2 (32 + 9)
|
#define PIN_LED2 (32 + 9)
|
||||||
#define LED_PAIRING (13)
|
#define LED_PAIRING (13)
|
||||||
@@ -134,8 +135,6 @@ static const uint8_t A0 = PIN_A0;
|
|||||||
#define PIN_SERIAL1_RX GPS_RX_PIN
|
#define PIN_SERIAL1_RX GPS_RX_PIN
|
||||||
#define PIN_SERIAL1_TX GPS_TX_PIN
|
#define PIN_SERIAL1_TX GPS_TX_PIN
|
||||||
|
|
||||||
#define SERIAL_PRINT_PORT 0
|
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
@@ -40,6 +40,7 @@ extern "C" {
|
|||||||
#define NUM_ANALOG_OUTPUTS (0)
|
#define NUM_ANALOG_OUTPUTS (0)
|
||||||
|
|
||||||
// LEDs
|
// LEDs
|
||||||
|
#define LED_BUILTIN -1
|
||||||
#define LED_BLUE -1
|
#define LED_BLUE -1
|
||||||
#define LED_CHARGE (12)
|
#define LED_CHARGE (12)
|
||||||
#define LED_PAIRING (7)
|
#define LED_PAIRING (7)
|
||||||
|
|||||||
@@ -51,6 +51,7 @@ extern "C" {
|
|||||||
#define PIN_LED1 (32 + 7) // P1.07 Blue D2
|
#define PIN_LED1 (32 + 7) // P1.07 Blue D2
|
||||||
|
|
||||||
#define LED_PIN PIN_LED1
|
#define LED_PIN PIN_LED1
|
||||||
|
#define LED_BUILTIN -1
|
||||||
|
|
||||||
#define LED_BLUE -1
|
#define LED_BLUE -1
|
||||||
#define LED_STATE_ON 1 // State when LED is lit
|
#define LED_STATE_ON 1 // State when LED is lit
|
||||||
|
|||||||
@@ -51,6 +51,7 @@ extern "C" {
|
|||||||
#define PIN_LED1 (32 + 7) // P1.07 Blue D2
|
#define PIN_LED1 (32 + 7) // P1.07 Blue D2
|
||||||
|
|
||||||
#define LED_PIN PIN_LED1
|
#define LED_PIN PIN_LED1
|
||||||
|
#define LED_BUILTIN -1
|
||||||
|
|
||||||
#define LED_BLUE -1
|
#define LED_BLUE -1
|
||||||
#define LED_STATE_ON 1 // State when LED is lit
|
#define LED_STATE_ON 1 // State when LED is lit
|
||||||
|
|||||||
@@ -51,6 +51,7 @@ extern "C" {
|
|||||||
#define PIN_LED1 (-1)
|
#define PIN_LED1 (-1)
|
||||||
|
|
||||||
#define LED_PIN PIN_LED1
|
#define LED_PIN PIN_LED1
|
||||||
|
#define LED_BUILTIN -1
|
||||||
|
|
||||||
#define LED_BLUE -1
|
#define LED_BLUE -1
|
||||||
#define LED_STATE_ON 1 // State when LED is lit
|
#define LED_STATE_ON 1 // State when LED is lit
|
||||||
|
|||||||
@@ -29,6 +29,7 @@ extern "C" {
|
|||||||
#define PIN_LED1 (32 + 10) // LED P1.15
|
#define PIN_LED1 (32 + 10) // LED P1.15
|
||||||
#define PIN_LED2 (-1) //
|
#define PIN_LED2 (-1) //
|
||||||
|
|
||||||
|
#define LED_BUILTIN PIN_LED1
|
||||||
#define LED_CONN PIN_LED2
|
#define LED_CONN PIN_LED2
|
||||||
|
|
||||||
#define LED_GREEN PIN_LED1
|
#define LED_GREEN PIN_LED1
|
||||||
|
|||||||
@@ -29,6 +29,7 @@ extern "C" {
|
|||||||
#define PIN_LED1 (32 + 10) // LED P1.15
|
#define PIN_LED1 (32 + 10) // LED P1.15
|
||||||
#define PIN_LED2 (-1) //
|
#define PIN_LED2 (-1) //
|
||||||
|
|
||||||
|
#define LED_BUILTIN PIN_LED1
|
||||||
#define LED_CONN PIN_LED2
|
#define LED_CONN PIN_LED2
|
||||||
|
|
||||||
#define LED_GREEN PIN_LED1
|
#define LED_GREEN PIN_LED1
|
||||||
|
|||||||
@@ -34,6 +34,7 @@ extern "C" {
|
|||||||
// #define PIN_LED1 (32 + 9) Green
|
// #define PIN_LED1 (32 + 9) Green
|
||||||
// #define PIN_LED1 (0 + 12) Blue
|
// #define PIN_LED1 (0 + 12) Blue
|
||||||
|
|
||||||
|
#define LED_BUILTIN PIN_LED1
|
||||||
#define LED_CONN PIN_LED2
|
#define LED_CONN PIN_LED2
|
||||||
|
|
||||||
#define LED_GREEN PIN_LED1
|
#define LED_GREEN PIN_LED1
|
||||||
|
|||||||
@@ -52,6 +52,7 @@ extern "C" {
|
|||||||
|
|
||||||
#define LED_BLUE PIN_LED1
|
#define LED_BLUE PIN_LED1
|
||||||
|
|
||||||
|
#define LED_BUILTIN PIN_LED1
|
||||||
#define LED_CONN PIN_LED3
|
#define LED_CONN PIN_LED3
|
||||||
|
|
||||||
#define LED_STATE_ON 0 // State when LED is lit
|
#define LED_STATE_ON 0 // State when LED is lit
|
||||||
@@ -169,8 +170,6 @@ static const uint8_t A0 = PIN_A0;
|
|||||||
#define VBAT_AR_INTERNAL AR_INTERNAL_3_0
|
#define VBAT_AR_INTERNAL AR_INTERNAL_3_0
|
||||||
#define ADC_MULTIPLIER (2.0F)
|
#define ADC_MULTIPLIER (2.0F)
|
||||||
|
|
||||||
#define SERIAL_PRINT_PORT 0
|
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
@@ -81,6 +81,7 @@ NRF52 PRO MICRO PIN ASSIGNMENT
|
|||||||
|
|
||||||
// LED
|
// LED
|
||||||
#define PIN_LED1 (0 + 15) // P0.15
|
#define PIN_LED1 (0 + 15) // P0.15
|
||||||
|
#define LED_BUILTIN PIN_LED1
|
||||||
// Actually red
|
// Actually red
|
||||||
#define LED_BLUE PIN_LED1
|
#define LED_BLUE PIN_LED1
|
||||||
#define LED_STATE_ON 1 // State when LED is lit
|
#define LED_STATE_ON 1 // State when LED is lit
|
||||||
|
|||||||
@@ -38,6 +38,7 @@ extern "C" {
|
|||||||
#define PIN_LED PIN_LED1
|
#define PIN_LED PIN_LED1
|
||||||
#define LED_PWR (PINS_COUNT)
|
#define LED_PWR (PINS_COUNT)
|
||||||
|
|
||||||
|
#define LED_BUILTIN PIN_LED
|
||||||
#define LED_STATE_ON 1 // State when LED is lit
|
#define LED_STATE_ON 1 // State when LED is lit
|
||||||
|
|
||||||
// XIAO Wio-SX1262 Shield User button
|
// XIAO Wio-SX1262 Shield User button
|
||||||
|
|||||||
@@ -44,6 +44,7 @@ extern "C" {
|
|||||||
|
|
||||||
// LED
|
// LED
|
||||||
#define PIN_LED1 (0 + 15)
|
#define PIN_LED1 (0 + 15)
|
||||||
|
#define LED_BUILTIN PIN_LED1
|
||||||
// Actually red
|
// Actually red
|
||||||
#define LED_BLUE PIN_LED1
|
#define LED_BLUE PIN_LED1
|
||||||
#define LED_STATE_ON 1
|
#define LED_STATE_ON 1
|
||||||
|
|||||||
@@ -49,6 +49,8 @@ extern "C" {
|
|||||||
#define PIN_LED1 (32 + 15) // P1.15 3
|
#define PIN_LED1 (32 + 15) // P1.15 3
|
||||||
#define PIN_LED2 (32 + 10) // P1.10 4
|
#define PIN_LED2 (32 + 10) // P1.10 4
|
||||||
|
|
||||||
|
#define LED_BUILTIN PIN_LED1
|
||||||
|
|
||||||
#define LED_GREEN PIN_LED2 // Actually red
|
#define LED_GREEN PIN_LED2 // Actually red
|
||||||
#define LED_BLUE PIN_LED1
|
#define LED_BLUE PIN_LED1
|
||||||
|
|
||||||
|
|||||||
@@ -48,6 +48,7 @@ extern "C" {
|
|||||||
#define PIN_LED1 (35)
|
#define PIN_LED1 (35)
|
||||||
#define PIN_LED2 (36)
|
#define PIN_LED2 (36)
|
||||||
|
|
||||||
|
#define LED_BUILTIN PIN_LED1
|
||||||
#define LED_CONN PIN_LED2
|
#define LED_CONN PIN_LED2
|
||||||
|
|
||||||
#define LED_GREEN PIN_LED1
|
#define LED_GREEN PIN_LED1
|
||||||
|
|||||||
@@ -30,6 +30,7 @@ extern "C" {
|
|||||||
#define PIN_LED1 (32 + 3) // green (confirmed on 1.0 board)
|
#define PIN_LED1 (32 + 3) // green (confirmed on 1.0 board)
|
||||||
#define LED_BLUE PIN_LED1 // fake for bluefruit library
|
#define LED_BLUE PIN_LED1 // fake for bluefruit library
|
||||||
#define LED_GREEN PIN_LED1
|
#define LED_GREEN PIN_LED1
|
||||||
|
#define LED_BUILTIN LED_GREEN
|
||||||
#define LED_STATE_ON 0 // State when LED is lit
|
#define LED_STATE_ON 0 // State when LED is lit
|
||||||
|
|
||||||
#define HAS_NEOPIXEL // Enable the use of neopixels
|
#define HAS_NEOPIXEL // Enable the use of neopixels
|
||||||
|
|||||||
@@ -74,6 +74,7 @@ extern "C" {
|
|||||||
#define PIN_LED1 (32 + 3) // green (confirmed on 1.0 board)
|
#define PIN_LED1 (32 + 3) // green (confirmed on 1.0 board)
|
||||||
#define LED_BLUE PIN_LED1 // fake for bluefruit library
|
#define LED_BLUE PIN_LED1 // fake for bluefruit library
|
||||||
#define LED_GREEN PIN_LED1
|
#define LED_GREEN PIN_LED1
|
||||||
|
#define LED_BUILTIN LED_GREEN
|
||||||
#define LED_STATE_ON 0 // State when LED is lit
|
#define LED_STATE_ON 0 // State when LED is lit
|
||||||
|
|
||||||
#define HAS_NEOPIXEL // Enable the use of neopixels
|
#define HAS_NEOPIXEL // Enable the use of neopixels
|
||||||
|
|||||||
@@ -26,6 +26,7 @@ extern "C" {
|
|||||||
#define LED_RED PIN_LED1
|
#define LED_RED PIN_LED1
|
||||||
#define LED_BLUE PIN_LED1
|
#define LED_BLUE PIN_LED1
|
||||||
#define LED_GREEN PIN_LED1
|
#define LED_GREEN PIN_LED1
|
||||||
|
#define LED_BUILTIN LED_BLUE
|
||||||
#define LED_CONN LED_BLUE
|
#define LED_CONN LED_BLUE
|
||||||
#define LED_STATE_ON 0 // State when LED is lit
|
#define LED_STATE_ON 0 // State when LED is lit
|
||||||
|
|
||||||
|
|||||||
@@ -39,15 +39,16 @@ extern "C" {
|
|||||||
#define NUM_ANALOG_INPUTS (1)
|
#define NUM_ANALOG_INPUTS (1)
|
||||||
#define NUM_ANALOG_OUTPUTS (0)
|
#define NUM_ANALOG_OUTPUTS (0)
|
||||||
|
|
||||||
#define PIN_LED1 (32 + 15) // green (confirmed on 1.0 board)
|
#define PIN_LED1 (0 + 4) // green (confirmed on 1.0 board)
|
||||||
#define LED_BLUE PIN_LED1 // fake for bluefruit library
|
#define LED_BLUE PIN_LED1 // fake for bluefruit library
|
||||||
#define LED_GREEN PIN_LED1
|
#define LED_GREEN PIN_LED1
|
||||||
|
#define LED_BUILTIN LED_GREEN
|
||||||
#define LED_STATE_ON 0 // State when LED is lit
|
#define LED_STATE_ON 0 // State when LED is lit
|
||||||
|
|
||||||
// #define HAS_NEOPIXEL // Enable the use of neopixels
|
#define HAS_NEOPIXEL // Enable the use of neopixels
|
||||||
// #define NEOPIXEL_COUNT 1 // How many neopixels are connected
|
#define NEOPIXEL_COUNT 1 // How many neopixels are connected
|
||||||
// #define NEOPIXEL_DATA (32 + 15) // gpio pin used to send data to the neopixels
|
#define NEOPIXEL_DATA (32 + 15) // gpio pin used to send data to the neopixels
|
||||||
// #define NEOPIXEL_TYPE (NEO_GRB + NEO_KHZ800) // type of neopixels in use
|
#define NEOPIXEL_TYPE (NEO_GRB + NEO_KHZ800) // type of neopixels in use
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Buttons
|
* Buttons
|
||||||
@@ -59,8 +60,8 @@ extern "C" {
|
|||||||
/*
|
/*
|
||||||
No longer populated on PCB
|
No longer populated on PCB
|
||||||
*/
|
*/
|
||||||
#define PIN_SERIAL2_RX (-1)
|
#define PIN_SERIAL2_RX (0 + 9)
|
||||||
#define PIN_SERIAL2_TX (-1)
|
#define PIN_SERIAL2_TX (0 + 10)
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* I2C
|
* I2C
|
||||||
@@ -137,18 +138,10 @@ No longer populated on PCB
|
|||||||
// To debug via the segger JLINK console rather than the CDC-ACM serial device
|
// To debug via the segger JLINK console rather than the CDC-ACM serial device
|
||||||
// #define USE_SEGGER
|
// #define USE_SEGGER
|
||||||
|
|
||||||
// Hardware watchdog
|
|
||||||
#define HAS_HARDWARE_WATCHDOG
|
|
||||||
#define HARDWARE_WATCHDOG_DONE (0 + 9)
|
|
||||||
#define HARDWARE_WATCHDOG_WAKE (0 + 10)
|
|
||||||
#define HARDWARE_WATCHDOG_TIMEOUT_MS (6 * 60 * 1000) // 6 minute watchdog
|
|
||||||
|
|
||||||
#define BQ4050_SDA_PIN (32 + 1) // I2C data line pin
|
#define BQ4050_SDA_PIN (32 + 1) // I2C data line pin
|
||||||
#define BQ4050_SCL_PIN (32 + 0) // I2C clock line pin
|
#define BQ4050_SCL_PIN (32 + 0) // I2C clock line pin
|
||||||
#define BQ4050_EMERGENCY_SHUTDOWN_PIN (32 + 3) // Emergency shutdown pin
|
#define BQ4050_EMERGENCY_SHUTDOWN_PIN (32 + 3) // Emergency shutdown pin
|
||||||
|
|
||||||
#define SERIAL_PRINT_PORT 0
|
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
@@ -31,6 +31,7 @@ extern "C" {
|
|||||||
// LEDs
|
// LEDs
|
||||||
#define PIN_LED1 (24) // Built in white led for status
|
#define PIN_LED1 (24) // Built in white led for status
|
||||||
#define LED_BLUE PIN_LED1
|
#define LED_BLUE PIN_LED1
|
||||||
|
#define LED_BUILTIN PIN_LED1
|
||||||
|
|
||||||
#define LED_STATE_ON 0 // State when LED is litted
|
#define LED_STATE_ON 0 // State when LED is litted
|
||||||
#define LED_INVERTED 1
|
#define LED_INVERTED 1
|
||||||
@@ -53,7 +54,6 @@ extern "C" {
|
|||||||
*/
|
*/
|
||||||
#define PIN_SERIAL1_RX (32 + 8)
|
#define PIN_SERIAL1_RX (32 + 8)
|
||||||
#define PIN_SERIAL1_TX (7)
|
#define PIN_SERIAL1_TX (7)
|
||||||
#define SERIAL_PRINT_PORT 0
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* SPI Interfaces
|
* SPI Interfaces
|
||||||
|
|||||||
@@ -49,6 +49,7 @@ extern "C" {
|
|||||||
#define PIN_LED1 (35)
|
#define PIN_LED1 (35)
|
||||||
#define PIN_LED2 (36)
|
#define PIN_LED2 (36)
|
||||||
|
|
||||||
|
#define LED_BUILTIN PIN_LED1
|
||||||
#define LED_CONN PIN_LED2
|
#define LED_CONN PIN_LED2
|
||||||
|
|
||||||
#define LED_GREEN PIN_LED1
|
#define LED_GREEN PIN_LED1
|
||||||
|
|||||||
@@ -52,6 +52,7 @@ extern "C" {
|
|||||||
#define PIN_LED1 (35)
|
#define PIN_LED1 (35)
|
||||||
#define PIN_LED2 (36) // Connected to WWAN host LED (if present)
|
#define PIN_LED2 (36) // Connected to WWAN host LED (if present)
|
||||||
|
|
||||||
|
#define LED_BUILTIN PIN_LED1
|
||||||
#define LED_CONN PIN_LED2
|
#define LED_CONN PIN_LED2
|
||||||
|
|
||||||
#define LED_GREEN PIN_LED1
|
#define LED_GREEN PIN_LED1
|
||||||
|
|||||||
@@ -45,6 +45,7 @@ extern "C" {
|
|||||||
#define PIN_LED1 (32 + 3) // P1.03, Green
|
#define PIN_LED1 (32 + 3) // P1.03, Green
|
||||||
#define PIN_LED2 (32 + 4) // P1.04, Blue
|
#define PIN_LED2 (32 + 4) // P1.04, Blue
|
||||||
|
|
||||||
|
#define LED_BUILTIN -1 // PIN_LED1
|
||||||
#define LED_BLUE PIN_LED2
|
#define LED_BLUE PIN_LED2
|
||||||
#define LED_STATE_ON 0 // State when LED is lit
|
#define LED_STATE_ON 0 // State when LED is lit
|
||||||
|
|
||||||
@@ -175,8 +176,6 @@ extern "C" {
|
|||||||
#define EXTERNAL_FLASH_DEVICES W25Q32JVSS
|
#define EXTERNAL_FLASH_DEVICES W25Q32JVSS
|
||||||
#define EXTERNAL_FLASH_USE_QSPI
|
#define EXTERNAL_FLASH_USE_QSPI
|
||||||
|
|
||||||
#define SERIAL_PRINT_PORT 0
|
|
||||||
|
|
||||||
// NFC is disabled via CONFIG_NFCT_PINS_AS_GPIOS=1 build flag
|
// NFC is disabled via CONFIG_NFCT_PINS_AS_GPIOS=1 build flag
|
||||||
// This configures P0.09 and P0.10 as regular GPIO pins instead of NFC pins
|
// This configures P0.09 and P0.10 as regular GPIO pins instead of NFC pins
|
||||||
|
|
||||||
|
|||||||
@@ -50,6 +50,7 @@ extern "C" {
|
|||||||
#define LED_BLUE PIN_LED1
|
#define LED_BLUE PIN_LED1
|
||||||
#define LED_GREEN PIN_LED2
|
#define LED_GREEN PIN_LED2
|
||||||
|
|
||||||
|
#define LED_BUILTIN LED_BLUE
|
||||||
#define LED_CONN PIN_GREEN
|
#define LED_CONN PIN_GREEN
|
||||||
|
|
||||||
#define LED_STATE_ON 0 // State when LED is lit
|
#define LED_STATE_ON 0 // State when LED is lit
|
||||||
|
|||||||
@@ -47,6 +47,7 @@ extern "C" {
|
|||||||
#define PIN_LED1 (32 + 4) // P1.04 Controls Green LED
|
#define PIN_LED1 (32 + 4) // P1.04 Controls Green LED
|
||||||
#define PIN_LED2 (28) // P0.28 Controls Blue LED
|
#define PIN_LED2 (28) // P0.28 Controls Blue LED
|
||||||
|
|
||||||
|
#define LED_BUILTIN PIN_LED1
|
||||||
#define LED_CONN PIN_LED2
|
#define LED_CONN PIN_LED2
|
||||||
|
|
||||||
#define LED_GREEN PIN_LED1
|
#define LED_GREEN PIN_LED1
|
||||||
|
|||||||
@@ -48,6 +48,7 @@ extern "C" {
|
|||||||
#define PIN_LED1 (35)
|
#define PIN_LED1 (35)
|
||||||
#define PIN_LED2 (36)
|
#define PIN_LED2 (36)
|
||||||
|
|
||||||
|
#define LED_BUILTIN PIN_LED1
|
||||||
#define LED_CONN PIN_LED2
|
#define LED_CONN PIN_LED2
|
||||||
|
|
||||||
#define LED_GREEN PIN_LED1
|
#define LED_GREEN PIN_LED1
|
||||||
|
|||||||
@@ -47,6 +47,7 @@ extern "C" {
|
|||||||
#define PIN_LED1 (35)
|
#define PIN_LED1 (35)
|
||||||
#define PIN_LED2 (36)
|
#define PIN_LED2 (36)
|
||||||
|
|
||||||
|
#define LED_BUILTIN PIN_LED1
|
||||||
#define LED_CONN PIN_LED2
|
#define LED_CONN PIN_LED2
|
||||||
|
|
||||||
#define LED_GREEN PIN_LED1
|
#define LED_GREEN PIN_LED1
|
||||||
|
|||||||
@@ -47,6 +47,7 @@ extern "C" {
|
|||||||
#define PIN_LED1 (35)
|
#define PIN_LED1 (35)
|
||||||
#define PIN_LED2 (36)
|
#define PIN_LED2 (36)
|
||||||
|
|
||||||
|
#define LED_BUILTIN PIN_LED1
|
||||||
#define LED_CONN PIN_LED2
|
#define LED_CONN PIN_LED2
|
||||||
|
|
||||||
#define LED_GREEN PIN_LED1
|
#define LED_GREEN PIN_LED1
|
||||||
|
|||||||
@@ -47,6 +47,7 @@ extern "C" {
|
|||||||
#define PIN_LED1 (35)
|
#define PIN_LED1 (35)
|
||||||
#define PIN_LED2 (36)
|
#define PIN_LED2 (36)
|
||||||
|
|
||||||
|
#define LED_BUILTIN PIN_LED1
|
||||||
#define LED_CONN PIN_LED2
|
#define LED_CONN PIN_LED2
|
||||||
|
|
||||||
#define LED_GREEN PIN_LED1
|
#define LED_GREEN PIN_LED1
|
||||||
|
|||||||
@@ -29,6 +29,7 @@ extern "C" {
|
|||||||
#define PIN_LED1 (35)
|
#define PIN_LED1 (35)
|
||||||
#define PIN_LED2 (36)
|
#define PIN_LED2 (36)
|
||||||
|
|
||||||
|
#define LED_BUILTIN PIN_LED1
|
||||||
#define LED_CONN PIN_LED2
|
#define LED_CONN PIN_LED2
|
||||||
|
|
||||||
#define LED_GREEN PIN_LED1
|
#define LED_GREEN PIN_LED1
|
||||||
|
|||||||
@@ -47,6 +47,7 @@ extern "C" {
|
|||||||
#define PIN_LED1 (35)
|
#define PIN_LED1 (35)
|
||||||
#define PIN_LED2 (36)
|
#define PIN_LED2 (36)
|
||||||
|
|
||||||
|
#define LED_BUILTIN PIN_LED1
|
||||||
#define LED_CONN PIN_LED2
|
#define LED_CONN PIN_LED2
|
||||||
|
|
||||||
#define LED_GREEN PIN_LED1
|
#define LED_GREEN PIN_LED1
|
||||||
|
|||||||
@@ -47,6 +47,7 @@ extern "C" {
|
|||||||
#define PIN_LED1 (35)
|
#define PIN_LED1 (35)
|
||||||
#define PIN_LED2 (36)
|
#define PIN_LED2 (36)
|
||||||
|
|
||||||
|
#define LED_BUILTIN PIN_LED1
|
||||||
#define LED_CONN PIN_LED2
|
#define LED_CONN PIN_LED2
|
||||||
|
|
||||||
#define LED_GREEN PIN_LED1
|
#define LED_GREEN PIN_LED1
|
||||||
|
|||||||
@@ -47,6 +47,7 @@ extern "C" {
|
|||||||
#define PIN_LED1 (35)
|
#define PIN_LED1 (35)
|
||||||
#define PIN_LED2 (36)
|
#define PIN_LED2 (36)
|
||||||
|
|
||||||
|
#define LED_BUILTIN PIN_LED1
|
||||||
#define LED_CONN PIN_LED2
|
#define LED_CONN PIN_LED2
|
||||||
|
|
||||||
#define LED_GREEN PIN_LED1
|
#define LED_GREEN PIN_LED1
|
||||||
|
|||||||
@@ -47,6 +47,7 @@ extern "C" {
|
|||||||
#define PIN_LED1 (35)
|
#define PIN_LED1 (35)
|
||||||
#define PIN_LED2 (36)
|
#define PIN_LED2 (36)
|
||||||
|
|
||||||
|
#define LED_BUILTIN PIN_LED1
|
||||||
#define LED_CONN PIN_LED2
|
#define LED_CONN PIN_LED2
|
||||||
|
|
||||||
#define LED_GREEN PIN_LED1
|
#define LED_GREEN PIN_LED1
|
||||||
|
|||||||
@@ -23,6 +23,7 @@
|
|||||||
#define PIN_LED1 (12) // LED P1.15
|
#define PIN_LED1 (12) // LED P1.15
|
||||||
#define PIN_LED2 (11) //
|
#define PIN_LED2 (11) //
|
||||||
|
|
||||||
|
#define LED_BUILTIN PIN_LED1
|
||||||
#define LED_CONN PIN_LED2
|
#define LED_CONN PIN_LED2
|
||||||
|
|
||||||
#define LED_GREEN PIN_LED1
|
#define LED_GREEN PIN_LED1
|
||||||
|
|||||||
@@ -23,6 +23,7 @@
|
|||||||
#define PIN_LED1 (11) // LED P1.15
|
#define PIN_LED1 (11) // LED P1.15
|
||||||
#define PIN_LED2 (12) //
|
#define PIN_LED2 (12) //
|
||||||
|
|
||||||
|
#define LED_BUILTIN PIN_LED1
|
||||||
#define LED_CONN PIN_LED2
|
#define LED_CONN PIN_LED2
|
||||||
|
|
||||||
#define LED_GREEN PIN_LED1
|
#define LED_GREEN PIN_LED1
|
||||||
|
|||||||
@@ -23,6 +23,7 @@
|
|||||||
#define PIN_LED1 (11) // LED P1.15
|
#define PIN_LED1 (11) // LED P1.15
|
||||||
#define PIN_LED2 (12) //
|
#define PIN_LED2 (12) //
|
||||||
|
|
||||||
|
#define LED_BUILTIN PIN_LED1
|
||||||
#define LED_CONN PIN_LED2
|
#define LED_CONN PIN_LED2
|
||||||
|
|
||||||
#define LED_GREEN PIN_LED1
|
#define LED_GREEN PIN_LED1
|
||||||
|
|||||||
@@ -69,6 +69,8 @@ static const uint8_t A5 = PIN_A5;
|
|||||||
#define PIN_LED2 LED_BLUE
|
#define PIN_LED2 LED_BLUE
|
||||||
#define PIN_LED3 LED_RED
|
#define PIN_LED3 LED_RED
|
||||||
|
|
||||||
|
#define LED_BUILTIN LED_RED // LED_BUILTIN is used by framework-arduinoadafruitnrf52 to indicate flash writes
|
||||||
|
|
||||||
#define LED_PWR LED_RED
|
#define LED_PWR LED_RED
|
||||||
#define USER_LED LED_BLUE
|
#define USER_LED LED_BLUE
|
||||||
|
|
||||||
|
|||||||
@@ -52,6 +52,7 @@ extern "C" {
|
|||||||
|
|
||||||
#define BLE_LED LED_BLUE
|
#define BLE_LED LED_BLUE
|
||||||
#define BLE_LED_INVERTED 1
|
#define BLE_LED_INVERTED 1
|
||||||
|
#define LED_BUILTIN LED_GREEN
|
||||||
#define LED_CONN LED_GREEN
|
#define LED_CONN LED_GREEN
|
||||||
#define LED_STATE_ON 0 // State when LED is lit
|
#define LED_STATE_ON 0 // State when LED is lit
|
||||||
|
|
||||||
@@ -170,8 +171,6 @@ static const uint8_t A0 = PIN_A0;
|
|||||||
#define VBAT_AR_INTERNAL AR_INTERNAL_3_0
|
#define VBAT_AR_INTERNAL AR_INTERNAL_3_0
|
||||||
#define ADC_MULTIPLIER (2.0F)
|
#define ADC_MULTIPLIER (2.0F)
|
||||||
|
|
||||||
#define SERIAL_PRINT_PORT 0
|
|
||||||
|
|
||||||
// #define NO_EXT_GPIO 1
|
// #define NO_EXT_GPIO 1
|
||||||
// PINs back side
|
// PINs back side
|
||||||
// Batt & solar connector left up corner
|
// Batt & solar connector left up corner
|
||||||
|
|||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user