Added battery support to Heltec T114
This commit is contained in:
		
							
								
								
									
										2
									
								
								Boards.h
									
									
									
									
									
								
							
							
						
						
									
										2
									
								
								Boards.h
									
									
									
									
									
								
							@@ -638,7 +638,7 @@
 | 
			
		||||
      #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
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										25
									
								
								Power.h
									
									
									
									
									
								
							
							
						
						
									
										25
									
								
								Power.h
									
									
									
									
									
								
							@@ -111,6 +111,23 @@
 | 
			
		||||
  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);
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -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);
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user