Battery management for T3S3
This commit is contained in:
		
							
								
								
									
										22
									
								
								Power.h
									
									
									
									
									
								
							
							
						
						
									
										22
									
								
								Power.h
									
									
									
									
									
								
							@@ -62,6 +62,22 @@
 | 
			
		||||
  bool bat_voltage_dropping = false;
 | 
			
		||||
  float bat_delay_v = 0;
 | 
			
		||||
  float bat_state_change_v = 0;
 | 
			
		||||
#elif BOARD_MODEL == BOARD_RNODE_NG_22
 | 
			
		||||
  #define BAT_V_MIN       3.15
 | 
			
		||||
  #define BAT_V_MAX       4.3
 | 
			
		||||
  #define BAT_V_CHG       4.48
 | 
			
		||||
  #define BAT_V_FLOAT     4.33
 | 
			
		||||
  #define BAT_SAMPLES     5
 | 
			
		||||
  const uint8_t pin_vbat = 1;
 | 
			
		||||
  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;
 | 
			
		||||
#elif BOARD_MODEL == BOARD_TDECK
 | 
			
		||||
  #define BAT_V_MIN       3.15
 | 
			
		||||
  #define BAT_V_MAX       4.3
 | 
			
		||||
@@ -105,12 +121,14 @@ 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
 | 
			
		||||
  #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
 | 
			
		||||
    battery_installed = true;
 | 
			
		||||
    battery_indeterminate = true;
 | 
			
		||||
 | 
			
		||||
    #if BOARD_MODEL == BOARD_HELTEC32_V3
 | 
			
		||||
      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*2.0*3.3*1.1;
 | 
			
		||||
    #else
 | 
			
		||||
      float battery_measurement = (float)(analogRead(pin_vbat)) / 4095.0*2.0*3.3*1.1;
 | 
			
		||||
    #endif
 | 
			
		||||
@@ -288,7 +306,7 @@ void update_pmu() {
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
bool init_pmu() {
 | 
			
		||||
  #if BOARD_MODEL == BOARD_RNODE_NG_21 || BOARD_MODEL == BOARD_LORA32_V2_1 || BOARD_MODEL == BOARD_TDECK
 | 
			
		||||
  #if BOARD_MODEL == BOARD_RNODE_NG_21 || BOARD_MODEL == BOARD_LORA32_V2_1 || BOARD_MODEL == BOARD_TDECK || BOARD_MODEL ==BOARD_RNODE_NG_22
 | 
			
		||||
    pinMode(pin_vbat, INPUT);
 | 
			
		||||
    return true;
 | 
			
		||||
  #elif BOARD_MODEL == BOARD_HELTEC32_V3
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user