From 45643237e4a062a49f046b3ac3c5c4a8945da853 Mon Sep 17 00:00:00 2001 From: mbuhansen <91631350+mbuhansen@users.noreply.github.com> Date: Fri, 19 Sep 2025 08:42:19 +0200 Subject: [PATCH 1/5] Comment out contactor welded event checks --- Software/src/battery/BMW-I3-BATTERY.cpp | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/Software/src/battery/BMW-I3-BATTERY.cpp b/Software/src/battery/BMW-I3-BATTERY.cpp index 5ae9d510..de283afb 100644 --- a/Software/src/battery/BMW-I3-BATTERY.cpp +++ b/Software/src/battery/BMW-I3-BATTERY.cpp @@ -98,11 +98,11 @@ void BmwI3Battery::update_values() { //This function maps all the values fetche } else { clear_event(EVENT_HVIL_FAILURE); } - if (battery_status_error_disconnecting_switch > 0) { // Check if contactors are sticking / welded - set_event(EVENT_CONTACTOR_WELDED, 0); - } else { - clear_event(EVENT_CONTACTOR_WELDED); - } + //if (battery_status_error_disconnecting_switch > 0) { // Check if contactors are sticking / welded + // set_event(EVENT_CONTACTOR_WELDED, 0); + //} else { + // clear_event(EVENT_CONTACTOR_WELDED); + //} } void BmwI3Battery::handle_incoming_can_frame(CAN_frame rx_frame) { From 89abc6a964a75f599a9f8b338fa2b518accd6c35 Mon Sep 17 00:00:00 2001 From: mbuhansen <91631350+mbuhansen@users.noreply.github.com> Date: Fri, 19 Sep 2025 08:45:19 +0200 Subject: [PATCH 2/5] Update GPIO pin assignments for contactors --- Software/src/devboard/hal/hw_lilygo.h | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Software/src/devboard/hal/hw_lilygo.h b/Software/src/devboard/hal/hw_lilygo.h index 14b15f5c..ffe5240a 100644 --- a/Software/src/devboard/hal/hw_lilygo.h +++ b/Software/src/devboard/hal/hw_lilygo.h @@ -44,9 +44,9 @@ class LilyGoHal : public Esp32Hal { virtual gpio_num_t CHADEMO_LOCK() { return GPIO_NUM_18; } // Contactor handling - virtual gpio_num_t POSITIVE_CONTACTOR_PIN() { return GPIO_NUM_32; } - virtual gpio_num_t NEGATIVE_CONTACTOR_PIN() { return GPIO_NUM_33; } - virtual gpio_num_t PRECHARGE_PIN() { return GPIO_NUM_25; } + virtual gpio_num_t POSITIVE_CONTACTOR_PIN() { return GPIO_NUM_33; } + virtual gpio_num_t NEGATIVE_CONTACTOR_PIN() { return GPIO_NUM_2; } + virtual gpio_num_t PRECHARGE_PIN() { return GPIO_NUM_15; } virtual gpio_num_t BMS_POWER() { return GPIO_NUM_18; } virtual gpio_num_t SECOND_BATTERY_CONTACTORS_PIN() { return GPIO_NUM_15; } From 6982476e8921bc881142ee6559eecfb9019be862 Mon Sep 17 00:00:00 2001 From: mbuhansen <91631350+mbuhansen@users.noreply.github.com> Date: Sat, 20 Sep 2025 21:14:57 +0200 Subject: [PATCH 3/5] Change contactor closing condition from 20 to 7 frames --- Software/src/inverter/KOSTAL-RS485.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Software/src/inverter/KOSTAL-RS485.cpp b/Software/src/inverter/KOSTAL-RS485.cpp index 7e88f67f..b25185cf 100644 --- a/Software/src/inverter/KOSTAL-RS485.cpp +++ b/Software/src/inverter/KOSTAL-RS485.cpp @@ -136,8 +136,8 @@ void KostalInverterProtocol::update_values() { float2frame(CYCLIC_DATA, (float)datalayer.battery.status.current_dA / 10, 18); // Last current float2frame(CYCLIC_DATA, (float)datalayer.battery.status.current_dA / 10, 22); // Should be Avg current(1s) - // Close contactors after 20 battery info frames requested - if (f2_startup_count > 20) { + // Close contactors after 7 battery info frames requested + if (f2_startup_count > 7) { datalayer.system.status.inverter_allows_contactor_closing = true; dbg_message("inverter_allows_contactor_closing -> true (info frame)"); } From fd52c0e5e772175d2c8322cd09ba3f504aa7979b Mon Sep 17 00:00:00 2001 From: mbuhansen <91631350+mbuhansen@users.noreply.github.com> Date: Sat, 20 Sep 2025 21:19:08 +0200 Subject: [PATCH 4/5] Uncomment contactor welded event checks --- Software/src/battery/BMW-I3-BATTERY.cpp | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/Software/src/battery/BMW-I3-BATTERY.cpp b/Software/src/battery/BMW-I3-BATTERY.cpp index de283afb..5ae9d510 100644 --- a/Software/src/battery/BMW-I3-BATTERY.cpp +++ b/Software/src/battery/BMW-I3-BATTERY.cpp @@ -98,11 +98,11 @@ void BmwI3Battery::update_values() { //This function maps all the values fetche } else { clear_event(EVENT_HVIL_FAILURE); } - //if (battery_status_error_disconnecting_switch > 0) { // Check if contactors are sticking / welded - // set_event(EVENT_CONTACTOR_WELDED, 0); - //} else { - // clear_event(EVENT_CONTACTOR_WELDED); - //} + if (battery_status_error_disconnecting_switch > 0) { // Check if contactors are sticking / welded + set_event(EVENT_CONTACTOR_WELDED, 0); + } else { + clear_event(EVENT_CONTACTOR_WELDED); + } } void BmwI3Battery::handle_incoming_can_frame(CAN_frame rx_frame) { From 172e26016765b8c045fa5a84edb5132260fbf1a4 Mon Sep 17 00:00:00 2001 From: mbuhansen <91631350+mbuhansen@users.noreply.github.com> Date: Sat, 20 Sep 2025 21:20:41 +0200 Subject: [PATCH 5/5] Update GPIO pin assignments for contactor handling --- Software/src/devboard/hal/hw_lilygo.h | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Software/src/devboard/hal/hw_lilygo.h b/Software/src/devboard/hal/hw_lilygo.h index ffe5240a..14b15f5c 100644 --- a/Software/src/devboard/hal/hw_lilygo.h +++ b/Software/src/devboard/hal/hw_lilygo.h @@ -44,9 +44,9 @@ class LilyGoHal : public Esp32Hal { virtual gpio_num_t CHADEMO_LOCK() { return GPIO_NUM_18; } // Contactor handling - virtual gpio_num_t POSITIVE_CONTACTOR_PIN() { return GPIO_NUM_33; } - virtual gpio_num_t NEGATIVE_CONTACTOR_PIN() { return GPIO_NUM_2; } - virtual gpio_num_t PRECHARGE_PIN() { return GPIO_NUM_15; } + virtual gpio_num_t POSITIVE_CONTACTOR_PIN() { return GPIO_NUM_32; } + virtual gpio_num_t NEGATIVE_CONTACTOR_PIN() { return GPIO_NUM_33; } + virtual gpio_num_t PRECHARGE_PIN() { return GPIO_NUM_25; } virtual gpio_num_t BMS_POWER() { return GPIO_NUM_18; } virtual gpio_num_t SECOND_BATTERY_CONTACTORS_PIN() { return GPIO_NUM_15; }