Added battery support to Heltec T114

This commit is contained in:
Mark Qvist 2025-01-13 18:05:35 +01:00
parent 7a505f73e3
commit 8cf6e9cb40
3 changed files with 26 additions and 3 deletions

View File

@ -638,7 +638,7 @@
#define HAS_BLUETOOTH false #define HAS_BLUETOOTH false
#define HAS_BLE true #define HAS_BLE true
#define HAS_CONSOLE false #define HAS_CONSOLE false
#define HAS_PMU false #define HAS_PMU true
#define HAS_NP true #define HAS_NP true
#define HAS_SD false #define HAS_SD false
#define HAS_TCXO true #define HAS_TCXO true

25
Power.h
View File

@ -111,6 +111,23 @@
bool bat_voltage_dropping = false; bool bat_voltage_dropping = false;
float bat_delay_v = 0; float bat_delay_v = 0;
float bat_state_change_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 #endif
uint32_t last_pmu_update = 0; uint32_t last_pmu_update = 0;
@ -121,7 +138,7 @@ uint8_t pmu_rc = 0;
void kiss_indicate_battery(); void kiss_indicate_battery();
void measure_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_installed = true;
battery_indeterminate = true; battery_indeterminate = true;
@ -129,6 +146,8 @@ void measure_battery() {
float battery_measurement = (float)(analogRead(pin_vbat)) * 0.0041; float battery_measurement = (float)(analogRead(pin_vbat)) * 0.0041;
#elif BOARD_MODEL == BOARD_RNODE_NG_22 #elif BOARD_MODEL == BOARD_RNODE_NG_22
float battery_measurement = (float)(analogRead(pin_vbat)) / 4095.0*6.7828; 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 #else
float battery_measurement = (float)(analogRead(pin_vbat)) / 4095.0*7.26; float battery_measurement = (float)(analogRead(pin_vbat)) / 4095.0*7.26;
#endif #endif
@ -313,6 +332,10 @@ bool init_pmu() {
pinMode(pin_ctrl,OUTPUT); pinMode(pin_ctrl,OUTPUT);
digitalWrite(pin_ctrl, LOW); digitalWrite(pin_ctrl, LOW);
return true; return true;
#elif BOARD_MODEL == BOARD_HELTEC_T114
pinMode(pin_ctrl,OUTPUT);
digitalWrite(pin_ctrl, HIGH);
return true;
#elif BOARD_MODEL == BOARD_TBEAM #elif BOARD_MODEL == BOARD_TBEAM
Wire.begin(I2C_SDA, I2C_SCL); Wire.begin(I2C_SDA, I2C_SCL);

View File

@ -889,7 +889,7 @@ void kiss_indicate_channel_stats() {
uint16_t cll = (uint16_t)(longterm_channel_util*100*100); uint16_t cll = (uint16_t)(longterm_channel_util*100*100);
uint8_t crs = (uint8_t)(current_rssi+rssi_offset); uint8_t crs = (uint8_t)(current_rssi+rssi_offset);
uint8_t nfl = (uint8_t)(noise_floor+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(FEND);
serial_write(CMD_STAT_CHTM); serial_write(CMD_STAT_CHTM);
escaped_serial_write(ats>>8); escaped_serial_write(ats>>8);