diff --git a/src/configuration.h b/src/configuration.h
index 255a406b..cb0c5482 100644
--- a/src/configuration.h
+++ b/src/configuration.h
@@ -38,11 +38,11 @@ along with this program. If not, see .
// Select which T-Beam board is being used. Only uncomment one. Note: these options now come from platformio standard build file flags
//#ifdef ARDUINO_T_Beam
-//#define T_BEAM_V10 // AKA Rev1 (second board released)
+#define T_BEAM_V10 // AKA Rev1 (second board released)
//#endif
//#ifdef ARDUINO_HELTEC_WIFI_LORA_32_V2
-#define HELTEC_LORA32
+//#define HELTEC_LORA32
//#endif
// If we are using the JTAG port for debugging, some pins must be left free for that (and things like GPS have to be disabled)
@@ -62,7 +62,7 @@ along with this program. If not, see .
// If not defined, we will wait for lock forever
-#define MINWAKE_MSECS (30 * 60 * 1000) // stay awake a long time (30 mins) for debugging
+#define MINWAKE_MSECS (30 * 1000) // stay awake a long time (30 mins) for debugging
// #define MINWAKE_MSECS (30 * 1000) // Wait after every boot for GPS lock (may need longer than 5s because we turned the gps off during deep sleep)
// -----------------------------------------------------------------------------
@@ -122,6 +122,8 @@ along with this program. If not, see .
#define DIO0_GPIO 26
#define DIO1_GPIO 33 // Note: not really used on this board
#define DIO2_GPIO 32 // Note: not really used on this board
+
+// Leave undefined to disable our PMU IRQ handler
#define PMU_IRQ 35
#elif defined(HELTEC_LORA32)
diff --git a/src/main.ino b/src/main.ino
index f49cb382..d3de5d8e 100644
--- a/src/main.ino
+++ b/src/main.ino
@@ -37,8 +37,9 @@
#include "axp20x.h"
AXP20X_Class axp;
bool pmu_irq = false;
-String baChStatus = "No charging";
#endif
+bool isCharging = false;
+
bool ssd1306_found = false;
bool axp192_found = false;
@@ -268,6 +269,7 @@ void axp192Init()
axp.debugCharging();
+#ifdef PMU_IRQ
pinMode(PMU_IRQ, INPUT_PULLUP);
attachInterrupt(PMU_IRQ, [] {
pmu_irq = true;
@@ -277,11 +279,9 @@ void axp192Init()
axp.adc1Enable(AXP202_BATT_CUR_ADC1, 1);
axp.enableIRQ(AXP202_VBUS_REMOVED_IRQ | AXP202_VBUS_CONNECT_IRQ | AXP202_BATT_REMOVED_IRQ | AXP202_BATT_CONNECT_IRQ, 1);
axp.clearIRQ();
+#endif
- if (axp.isChargeing())
- {
- baChStatus = "Charging";
- }
+ isCharging = axp.isChargeing();
}
else
{
@@ -412,26 +412,21 @@ void loop()
// blink the axp led
axp.setChgLEDMode(ledon ? AXP20X_LED_LOW_LEVEL : AXP20X_LED_OFF);
+#ifdef PMU_IRQ
if (pmu_irq)
{
pmu_irq = false;
axp.readIRQ();
- if (axp.isChargingIRQ())
- {
- baChStatus = "Charging";
- }
- else
- {
- baChStatus = "No Charging";
- }
+ isCharging = axp.isChargingIRQ();
+
if (axp.isVbusRemoveIRQ())
- {
- baChStatus = "No Charging";
- }
+ isCharging = false;
+
// This is not a GPIO actually connected on the tbeam board
// digitalWrite(2, !digitalRead(2));
axp.clearIRQ();
}
+#endif
}
#endif
@@ -465,7 +460,8 @@ void loop()
#endif
#ifdef MINWAKE_MSECS
- if (millis() > MINWAKE_MSECS)
+ // Don't deepsleep if we have USB power
+ if (millis() > MINWAKE_MSECS && !isCharging)
{
sleep();
}
diff --git a/src/mesh.pb.h b/src/mesh.pb.h
index 516a78a1..2c016c0f 100644
--- a/src/mesh.pb.h
+++ b/src/mesh.pb.h
@@ -29,8 +29,8 @@ typedef enum _ChannelSettings_ModemConfig {
typedef enum _DeviceState_Version {
DeviceState_Version_Unset = 0,
- DeviceState_Version_Minimum = 5,
- DeviceState_Version_Current = 5
+ DeviceState_Version_Minimum = 6,
+ DeviceState_Version_Current = 6
} DeviceState_Version;
/* Struct definitions */