Forráskód Böngészése

Default button polarity to active-LOW across all firmware types

Nearly all LoRa boards use a boot button that pulls to ground when
pressed.
Wessel Nieboer 6 hónapja
szülő
commit
0a13ac7fc7

+ 5 - 1
examples/simple_repeater/UITask.cpp

@@ -2,6 +2,10 @@
 #include <Arduino.h>
 #include <helpers/CommonCLI.h>
 
+#ifndef USER_BTN_PRESSED
+#define USER_BTN_PRESSED LOW
+#endif
+
 #define AUTO_OFF_MILLIS      20000  // 20 seconds
 #define BOOT_SCREEN_MILLIS   4000   // 4 seconds
 
@@ -85,7 +89,7 @@ void UITask::loop() {
   if (millis() >= _next_read) {
     int btnState = digitalRead(PIN_USER_BTN);
     if (btnState != _prevBtnState) {
-      if (btnState == LOW) {  // pressed?
+      if (btnState == USER_BTN_PRESSED) {  // pressed?
         if (_display->isOn()) {
           // TODO: any action ?
         } else {

+ 5 - 1
examples/simple_room_server/UITask.cpp

@@ -2,6 +2,10 @@
 #include <Arduino.h>
 #include <helpers/CommonCLI.h>
 
+#ifndef USER_BTN_PRESSED
+#define USER_BTN_PRESSED LOW
+#endif
+
 #define AUTO_OFF_MILLIS      20000  // 20 seconds
 #define BOOT_SCREEN_MILLIS   4000   // 4 seconds
 
@@ -85,7 +89,7 @@ void UITask::loop() {
   if (millis() >= _next_read) {
     int btnState = digitalRead(PIN_USER_BTN);
     if (btnState != _prevBtnState) {
-      if (btnState == LOW) {  // pressed?
+      if (btnState == USER_BTN_PRESSED) {  // pressed?
         if (_display->isOn()) {
           // TODO: any action ?
         } else {

+ 5 - 1
examples/simple_sensor/UITask.cpp

@@ -2,6 +2,10 @@
 #include <Arduino.h>
 #include <helpers/CommonCLI.h>
 
+#ifndef USER_BTN_PRESSED
+#define USER_BTN_PRESSED LOW
+#endif
+
 #define AUTO_OFF_MILLIS      20000  // 20 seconds
 #define BOOT_SCREEN_MILLIS   4000   // 4 seconds
 
@@ -85,7 +89,7 @@ void UITask::loop() {
   if (millis() >= _next_read) {
     int btnState = digitalRead(PIN_USER_BTN);
     if (btnState != _prevBtnState) {
-      if (btnState == LOW) {  // pressed?
+      if (btnState == USER_BTN_PRESSED) {  // pressed?
         if (_display->isOn()) {
           // TODO: any action ?
         } else {

+ 4 - 0
src/helpers/ESP32Board.h

@@ -3,6 +3,10 @@
 #include <MeshCore.h>
 #include <Arduino.h>
 
+#ifndef USER_BTN_PRESSED
+#define USER_BTN_PRESSED LOW
+#endif
+
 #if defined(ESP_PLATFORM)
 
 #include <rom/rtc.h>

+ 1 - 1
variants/minewsemi_me25ls01/MinewsemiME25LS01Board.h

@@ -63,7 +63,7 @@ public:
     digitalWrite(LED_PIN, LOW);
     #endif
     #ifdef BUTTON_PIN
-    nrf_gpio_cfg_sense_input(digitalPinToInterrupt(BUTTON_PIN), NRF_GPIO_PIN_PULLUP, NRF_GPIO_PIN_SENSE_HIGH);
+    nrf_gpio_cfg_sense_input(digitalPinToInterrupt(BUTTON_PIN), NRF_GPIO_PIN_PULLUP, NRF_GPIO_PIN_SENSE_LOW);
     #endif
     sd_power_system_off();
   }

+ 0 - 1
variants/minewsemi_me25ls01/platformio.ini

@@ -21,7 +21,6 @@ build_flags = ${nrf52840_me25ls01.build_flags}
   -I variants/minewsemi_me25ls01
   -D me25ls01
   -D PIN_USER_BTN=27
-  -D USER_BTN_PRESSED=HIGH
   -D PIN_STATUS_LED=39
   -D P_LORA_TX_LED=22
   -D RADIO_CLASS=CustomLR1110

+ 2 - 2
variants/t1000-e/T1000eBoard.h

@@ -78,14 +78,14 @@ public:
     digitalWrite(LED_PIN, HIGH);
     #endif
     #ifdef BUTTON_PIN
-    while(digitalRead(BUTTON_PIN));
+    while(digitalRead(BUTTON_PIN) == LOW);
     #endif
     #ifdef LED_PIN
     digitalWrite(LED_PIN, LOW);
     #endif
 
     #ifdef BUTTON_PIN
-    nrf_gpio_cfg_sense_input(BUTTON_PIN, NRF_GPIO_PIN_NOPULL, NRF_GPIO_PIN_SENSE_HIGH);
+    nrf_gpio_cfg_sense_input(BUTTON_PIN, NRF_GPIO_PIN_NOPULL, NRF_GPIO_PIN_SENSE_LOW);
     #endif
 
     sd_power_system_off();

+ 0 - 1
variants/t1000-e/platformio.ini

@@ -10,7 +10,6 @@ build_flags = ${nrf52_base.build_flags}
   -I src/helpers/ui
   -D T1000_E
   -D PIN_USER_BTN=6
-  -D USER_BTN_PRESSED=HIGH
   -D PIN_STATUS_LED=24
   -D RADIO_CLASS=CustomLR1110
   -D WRAPPER_CLASS=CustomLR1110Wrapper

+ 0 - 1
variants/thinknode_m3/platformio.ini

@@ -10,7 +10,6 @@ build_flags = ${nrf52_base.build_flags}
   -I src/helpers/ui
   -D THINKNODE_M3
   -D PIN_USER_BTN=12
-  -D USER_BTN_PRESSED=LOW
   -D PIN_STATUS_LED=35
   -D RADIO_CLASS=CustomLR1110
   -D WRAPPER_CLASS=CustomLR1110Wrapper

+ 0 - 1
variants/wio-e5-mini/platformio.ini

@@ -9,7 +9,6 @@ build_flags = ${stm32_base.build_flags}
   -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>

+ 5 - 1
variants/xiao_nrf52/XiaoNrf52Board.h

@@ -4,6 +4,10 @@
 #include <Arduino.h>
 #include <helpers/NRF52Board.h>
 
+#ifndef USER_BTN_PRESSED
+#define USER_BTN_PRESSED LOW
+#endif
+
 #ifdef XIAO_NRF52
 
 class XiaoNrf52Board : public NRF52BoardDCDC {
@@ -35,7 +39,7 @@ public:
     // set led on and wait for button release before poweroff
     digitalWrite(PIN_LED, LOW);
 #ifdef PIN_USER_BTN
-    while(digitalRead(PIN_USER_BTN) == LOW);
+    while(digitalRead(PIN_USER_BTN) == USER_BTN_PRESSED);
 #endif
     digitalWrite(LED_GREEN, HIGH);
     digitalWrite(LED_BLUE, HIGH);