]> git.tnoah.ca Git - lora-radio.git/commitdiff
Added battery support to Heltec T114
authorMark Qvist <mark@unsigned.io>
Mon, 13 Jan 2025 17:05:35 +0000 (18:05 +0100)
committerMark Qvist <mark@unsigned.io>
Mon, 13 Jan 2025 17:05:35 +0000 (18:05 +0100)
Boards.h
Power.h
Utilities.h

index 62b33b70a0ec0a55d89c8762f4270bf59fe04494..86230db473c60a247e4b1b1ee14b103f2fb9743c 100644 (file)
--- a/Boards.h
+++ b/Boards.h
       #define HAS_BLUETOOTH false
       #define HAS_BLE true
       #define HAS_CONSOLE false
-      #define HAS_PMU false
+      #define HAS_PMU true
       #define HAS_NP true
       #define HAS_SD false
       #define HAS_TCXO true
diff --git a/Power.h b/Power.h
index f8d22fb3f9da2bd955257835ac4daa7ba3970bba..b88a66f75e4d97d8ad46abbd3161e572d7ed2421 100644 (file)
--- a/Power.h
+++ b/Power.h
   bool bat_voltage_dropping = false;
   float bat_delay_v = 0;
   float bat_state_change_v = 0;
+#elif BOARD_MODEL == BOARD_HELTEC_T114
+  #define BAT_V_MIN       3.15
+  #define BAT_V_MAX       4.165
+  #define BAT_V_CHG       4.48
+  #define BAT_V_FLOAT     4.33
+  #define BAT_SAMPLES     7
+  const uint8_t pin_vbat = 4;
+  const uint8_t pin_ctrl = 6;
+  float bat_p_samples[BAT_SAMPLES];
+  float bat_v_samples[BAT_SAMPLES];
+  uint8_t bat_samples_count = 0;
+  int bat_discharging_samples = 0;
+  int bat_charging_samples = 0;
+  int bat_charged_samples = 0;
+  bool bat_voltage_dropping = false;
+  float bat_delay_v = 0;
+  float bat_state_change_v = 0;
 #endif
 
 uint32_t last_pmu_update = 0;
@@ -121,7 +138,7 @@ uint8_t pmu_rc = 0;
 void kiss_indicate_battery();
 
 void measure_battery() {
-  #if BOARD_MODEL == BOARD_RNODE_NG_21 || BOARD_MODEL == BOARD_LORA32_V2_1 || BOARD_MODEL == BOARD_HELTEC32_V3 || BOARD_MODEL == BOARD_TDECK || BOARD_MODEL == BOARD_RNODE_NG_22
+  #if BOARD_MODEL == BOARD_RNODE_NG_21 || BOARD_MODEL == BOARD_LORA32_V2_1 || BOARD_MODEL == BOARD_HELTEC32_V3 || BOARD_MODEL == BOARD_TDECK || BOARD_MODEL == BOARD_RNODE_NG_22 || BOARD_MODEL == BOARD_HELTEC_T114
     battery_installed = true;
     battery_indeterminate = true;
 
@@ -129,6 +146,8 @@ void measure_battery() {
       float battery_measurement = (float)(analogRead(pin_vbat)) * 0.0041;
     #elif BOARD_MODEL == BOARD_RNODE_NG_22
       float battery_measurement = (float)(analogRead(pin_vbat)) / 4095.0*6.7828;
+    #elif BOARD_MODEL == BOARD_HELTEC_T114
+      float battery_measurement = (float)(analogRead(pin_vbat)) * 0.017165;
     #else
       float battery_measurement = (float)(analogRead(pin_vbat)) / 4095.0*7.26;
     #endif
@@ -313,6 +332,10 @@ bool init_pmu() {
     pinMode(pin_ctrl,OUTPUT);
     digitalWrite(pin_ctrl, LOW);
     return true;
+  #elif BOARD_MODEL == BOARD_HELTEC_T114
+    pinMode(pin_ctrl,OUTPUT);
+    digitalWrite(pin_ctrl, HIGH);
+    return true;
   #elif BOARD_MODEL == BOARD_TBEAM
     Wire.begin(I2C_SDA, I2C_SCL);
 
index 81c2c4b0033556f6f89eef6aae42bf9d7443e9ac..9a5d51e009ce31a68207e2bd9f5380b57d6ac677 100644 (file)
@@ -889,7 +889,7 @@ void kiss_indicate_channel_stats() {
                uint16_t cll = (uint16_t)(longterm_channel_util*100*100);
                uint8_t  crs = (uint8_t)(current_rssi+rssi_offset);
                uint8_t  nfl = (uint8_t)(noise_floor+rssi_offset);
-               uint8_t  ntf = 0xFF; if (interference_detected) { (uint8_t)(current_rssi+rssi_offset); }
+               uint8_t  ntf = 0xFF; if (interference_detected) { ntf = (uint8_t)(current_rssi+rssi_offset); }
                serial_write(FEND);
                serial_write(CMD_STAT_CHTM);
                escaped_serial_write(ats>>8);