Added HE4 cell type

This commit is contained in:
greyhash
2022-02-06 17:38:02 +01:00
parent 9ac7f3fdc7
commit 598f74f8a3
5 changed files with 64 additions and 32 deletions

View File

@ -12,7 +12,7 @@ add_definitions(
-DTFT_CS=14 -DTFT_CS=14
-DTFT_DC=12 -DTFT_DC=12
-DTFT_RST=2 -DTFT_RST=2
-DSPI_FREQUENCY=27000000 -DSPI_FREQUENCY=40000000
) )
set(BOBBYCAR_BUILDFLAGS set(BOBBYCAR_BUILDFLAGS
@ -20,35 +20,35 @@ set(BOBBYCAR_BUILDFLAGS
-DPINS_GAS=34 -DPINS_GAS=34
-DPINS_BREMS=35 -DPINS_BREMS=35
-DDEFAULT_SWAPSCREENBYTES=false -DDEFAULT_SWAPSCREENBYTES=false
# -DFEATURE_CAN -DFEATURE_CAN
# -DFEATURE_SERIAL # -DFEATURE_SERIAL
# -DPINS_RX1=4 # -DPINS_RX1=4
# -DPINS_TX1=5 # -DPINS_TX1=5
# -DPINS_RX2=22 # -DPINS_RX2=22
# -DPINS_TX2=23 # -DPINS_TX2=23
-DDEFAULT_INVERTFRONTLEFT=false -DDEFAULT_INVERTFRONTLEFT=false
-DDEFAULT_INVERTFRONTRIGHT=true -DDEFAULT_INVERTFRONTRIGHT=true
-DDEFAULT_INVERTBACKLEFT=false -DDEFAULT_INVERTBACKLEFT=false
-DDEFAULT_INVERTBACKRIGHT=true -DDEFAULT_INVERTBACKRIGHT=true
-DDEFAULT_WHEELDIAMETER=200 -DDEFAULT_WHEELDIAMETER=200
# -DFEATURE_MOSFETS # -DFEATURE_MOSFETS
# -DPINS_MOSFET0=18 # -DPINS_MOSFET0=18
# -DPINS_MOSFET1=19 # -DPINS_MOSFET1=19
# -DPINS_MOSFET2=21 # -DPINS_MOSFET2=21
-DDEFAULT_IMOTMAX=28 -DDEFAULT_IMOTMAX=28
-DDEFAULT_IDCMAX=30 -DDEFAULT_IDCMAX=30
-DDEFAULT_NMOTMAX=2000 -DDEFAULT_NMOTMAX=2000
-DDEFAULT_FIELDWEAKMAX=7 -DDEFAULT_FIELDWEAKMAX=7
-DDEFAULT_FIELDADVMAX=40 -DDEFAULT_FIELDADVMAX=40
# -DFEATURE_WEBSERVER -DFEATURE_WEBSERVER
# -DFEATURE_OTA -DFEATURE_OTA
-DFEATURE_DPAD_5WIRESW -DFEATURE_DPAD_5WIRESW_2OUT
-DPINS_DPAD_5WIRESW_OUT=4 -DPINS_DPAD_5WIRESW_OUT1=5
-DPINS_DPAD_5WIRESW_IN1=5 -DPINS_DPAD_5WIRESW_OUT2=4
-DPINS_DPAD_5WIRESW_IN2=27 -DPINS_DPAD_5WIRESW_IN1=27
-DPINS_DPAD_5WIRESW_IN2=19
-DPINS_DPAD_5WIRESW_IN3=18 -DPINS_DPAD_5WIRESW_IN3=18
-DPINS_DPAD_5WIRESW_IN4=19 -DFEATURE_BLE
# -DFEATURE_BLE
# -DFEATURE_BLUETOOTH # -DFEATURE_BLUETOOTH
# -DFEATURE_BMS # -DFEATURE_BMS
# -DFEATURE_GAMETRAK # -DFEATURE_GAMETRAK
@ -57,18 +57,27 @@ set(BOBBYCAR_BUILDFLAGS
# -DPINS_GAMETRAKDIST=36 # -DPINS_GAMETRAKDIST=36
# -DFEATURE_POWERSUPPLY # -DFEATURE_POWERSUPPLY
# -DFEATURE_CLOUD # -DFEATURE_CLOUD
# -DFEATURE_UDPCLOUD -DFEATURE_UDPCLOUD
# -DFEATURE_LEDBACKLIGHT -DFEATURE_LEDBACKLIGHT
# -DPINS_LEDBACKLIGHT=23 -DPINS_LEDBACKLIGHT=23
# -DLEDBACKLIGHT_INVERTED -DLEDBACKLIGHT_INVERTED
# -DFEATURE_GARAGE -DFEATURE_GARAGE
# -DFEATURE_NTP # -DFEATURE_NTP
# -DFEATURE_WIRELESS_CONFIG -DFEATURE_WIRELESS_CONFIG
# -DFEATURE_LEDSTRIP -DFEATURE_LEDSTRIP
# -DPINS_LEDSTRIP=33 -DPINS_LEDSTRIP=33
# -DLEDSTRIP_DEFAULT_BRIGHTNESS=100 # -DHEAP_LRGST_CRASH_TEXT_FIX
# -DLEDSTRIP_WRONG_DIRECTION # -DLEDSTRIP_WRONG_DIRECTION
# -DLEDSTRIP_ANIMATION_DEFAULT=0 -DLEDSTRIP_ANIMATION_DEFAULT=2
-DOLD_NVS -DLEDS_PER_METER=144
# -DFEATURE_DNS_NS -DOLD_NVS
-DFEATURE_DNS_NS
# -DSWITCH_BLINK
# -DFEATURE_IS_MIR_EGAL_OB_DER_WEBSERVER_KORREKT_ARBEITET
-DFEATURE_ESPNOW
) )
if (EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/ignore/lockscreen_plugin.cmake")
include("${CMAKE_CURRENT_SOURCE_DIR}/ignore/lockscreen_plugin.cmake")
message(WARNING "Including lockscreen_plugin")
endif()

View File

@ -115,6 +115,24 @@ float getBatteryPercentage(float batVoltage, BatteryCellType cellType)
CURVE(3.31, 2.50, 2.25, 2.5) CURVE(3.31, 2.50, 2.25, 2.5)
break; break;
} }
case BatteryCellType::HE4:
{
const float expected_ah = 2.3;
if(cellVoltage > 4.15){
return 100;
}
CURVE(4.15, 4.02, 0, 0.25)
CURVE(4.02, 3.91, 0.25, 0.5)
CURVE(3.91, 3.81, 0.5, 0.75)
CURVE(3.81, 3.72, 0.75, 1)
CURVE(3.72, 3.61, 1, 1.25)
CURVE(3.61, 3.62, 1.25, 1.5)
CURVE(3.62, 3.53, 1.5, 1.75)
CURVE(3.53, 3.45, 1.75, 2)
CURVE(3.45, 3.21, 2, 2.25)
CURVE(3.21, 2.80, 2.25, 2.3)
break;
}
} }
return 0.f; return 0.f;
} }
@ -145,6 +163,7 @@ float getTarget_mAh()
if(BatteryCellType(configs.battery.cellType.value) == BatteryCellType::MH1) target_mah = 3200; if(BatteryCellType(configs.battery.cellType.value) == BatteryCellType::MH1) target_mah = 3200;
if(BatteryCellType(configs.battery.cellType.value) == BatteryCellType::VTC5) target_mah = 2600; if(BatteryCellType(configs.battery.cellType.value) == BatteryCellType::VTC5) target_mah = 2600;
if(BatteryCellType(configs.battery.cellType.value) == BatteryCellType::BAK_25R) target_mah = 2500; if(BatteryCellType(configs.battery.cellType.value) == BatteryCellType::BAK_25R) target_mah = 2500;
if(BatteryCellType(configs.battery.cellType.value) == BatteryCellType::HE4) target_mah = 2300;
return target_mah; return target_mah;
} }

View File

@ -11,7 +11,8 @@
x(HG2) \ x(HG2) \
x(MH1) \ x(MH1) \
x(VTC5) \ x(VTC5) \
x(BAK_25R) x(BAK_25R) \
x(HE4)
DECLARE_TYPESAFE_ENUM(BatteryCellType, : uint8_t, BatteryCellTypeValues) DECLARE_TYPESAFE_ENUM(BatteryCellType, : uint8_t, BatteryCellTypeValues)
float getBatteryPercentage(float batVoltage, BatteryCellType cellType); float getBatteryPercentage(float batVoltage, BatteryCellType cellType);

View File

@ -34,6 +34,7 @@ constexpr char TEXT_BATTERY_TYPE_HG2[] = "HG2 cells";
constexpr char TEXT_BATTERY_TYPE_MH1[] = "MH1 cells"; constexpr char TEXT_BATTERY_TYPE_MH1[] = "MH1 cells";
constexpr char TEXT_BATTERY_TYPE_VTC5[] = "VTC5 cells"; constexpr char TEXT_BATTERY_TYPE_VTC5[] = "VTC5 cells";
constexpr char TEXT_BATTERY_TYPE_BAK_25R[] = "BAK / 25R cells"; constexpr char TEXT_BATTERY_TYPE_BAK_25R[] = "BAK / 25R cells";
constexpr char TEXT_BATTERY_TYPE_HE4[] = "HE4 cells";
constexpr char TEXT_BATTERY_WHKM[] = "Wh per km"; constexpr char TEXT_BATTERY_WHKM[] = "Wh per km";
constexpr char TEXT_BATTERY_APPLYCALIB[] = "Apply calibration"; constexpr char TEXT_BATTERY_APPLYCALIB[] = "Apply calibration";
constexpr char TEXT_VOLTAGECALIBRATION_RESET[] = "Reset calibration"; constexpr char TEXT_VOLTAGECALIBRATION_RESET[] = "Reset calibration";

View File

@ -26,6 +26,7 @@ constexpr char TEXT_BATTERY_TYPE_HG2[] = "HG2 cells";
constexpr char TEXT_BATTERY_TYPE_MH1[] = "MH1 cells"; constexpr char TEXT_BATTERY_TYPE_MH1[] = "MH1 cells";
constexpr char TEXT_BATTERY_TYPE_VTC5[] = "VTC5 cells"; constexpr char TEXT_BATTERY_TYPE_VTC5[] = "VTC5 cells";
constexpr char TEXT_BATTERY_TYPE_BAK_25R[] = "BAK / 25R cells"; constexpr char TEXT_BATTERY_TYPE_BAK_25R[] = "BAK / 25R cells";
constexpr char TEXT_BATTERY_TYPE_HE4[] = "HE4 cells";
constexpr char TEXT_BATTERY_WHKM[] = "Wh per km"; constexpr char TEXT_BATTERY_WHKM[] = "Wh per km";
constexpr char TEXT_BATTERY_APPLYCALIB[] = "Apply calibration"; constexpr char TEXT_BATTERY_APPLYCALIB[] = "Apply calibration";
constexpr char TEXT_VOLTAGECALIBRATION_RESET[] = "Reset calibration"; constexpr char TEXT_VOLTAGECALIBRATION_RESET[] = "Reset calibration";
@ -57,6 +58,7 @@ BatteryTypeMenu::BatteryTypeMenu()
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_BATTERY_TYPE_MH1>, BatterySelectTypeAction<BatteryCellType::MH1>>>(); constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_BATTERY_TYPE_MH1>, BatterySelectTypeAction<BatteryCellType::MH1>>>();
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_BATTERY_TYPE_VTC5>, BatterySelectTypeAction<BatteryCellType::VTC5>>>(); constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_BATTERY_TYPE_VTC5>, BatterySelectTypeAction<BatteryCellType::VTC5>>>();
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_BATTERY_TYPE_BAK_25R>, BatterySelectTypeAction<BatteryCellType::BAK_25R>>>(); constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_BATTERY_TYPE_BAK_25R>, BatterySelectTypeAction<BatteryCellType::BAK_25R>>>();
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_BATTERY_TYPE_HE4>, BatterySelectTypeAction<BatteryCellType::HE4>>>();
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_BACK>, SwitchScreenAction<MainMenu>, StaticMenuItemIcon<&espgui::icons::back>>>(); constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_BACK>, SwitchScreenAction<MainMenu>, StaticMenuItemIcon<&espgui::icons::back>>>();
} }