From 34a5851dfd4bec7c3fc6fb667b2c59d85676ff52 Mon Sep 17 00:00:00 2001 From: stefpi <19478336+stefpi@users.noreply.github.com> Date: Thu, 2 Apr 2026 21:07:16 -0700 Subject: [PATCH 01/24] add panda commit as dependency --- panda | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/panda b/panda index d079b0958b51ce..04b435e5d6fa39 160000 --- a/panda +++ b/panda @@ -1 +1 @@ -Subproject commit d079b0958b51ce33fc313def95317ef52b54b2ec +Subproject commit 04b435e5d6fa39d0095aff0b4f0293fc9a4751df From c5aadfadbcbad6f20957b6da286591931f4dda1b Mon Sep 17 00:00:00 2001 From: stefpi <19478336+stefpi@users.noreply.github.com> Date: Thu, 2 Apr 2026 21:09:18 -0700 Subject: [PATCH 02/24] add param gates to pandad to allow successful CAN flashing --- common/params_keys.h | 1 + selfdrive/pandad/pandad.cc | 15 ++++++++++----- 2 files changed, 11 insertions(+), 5 deletions(-) diff --git a/common/params_keys.h b/common/params_keys.h index b81a373d0876ef..ca6a089cfb4179 100644 --- a/common/params_keys.h +++ b/common/params_keys.h @@ -15,6 +15,7 @@ inline static std::unordered_map keys = { {"AthenadPid", {PERSISTENT, INT}}, {"AthenadUploadQueue", {PERSISTENT, JSON}}, {"AthenadRecentlyViewedRoutes", {PERSISTENT, STRING}}, + {"BodyFirmwareFlashing", {CLEAR_ON_MANAGER_START, BOOL}}, {"BootCount", {PERSISTENT, INT}}, {"CalibrationParams", {PERSISTENT, BYTES}}, {"CameraDebugExpGain", {CLEAR_ON_MANAGER_START, STRING}}, diff --git a/selfdrive/pandad/pandad.cc b/selfdrive/pandad/pandad.cc index 28d459f458aed3..2f82788c4ed754 100644 --- a/selfdrive/pandad/pandad.cc +++ b/selfdrive/pandad/pandad.cc @@ -189,8 +189,12 @@ std::optional send_panda_states(PubMaster *pm, Panda *panda, bool is_onroa bool ignition_local = ((health.ignition_line_pkt != 0) || (health.ignition_can_pkt != 0)); + static Params params; + bool body_firmware_flashing = params.getBool("BodyFirmwareFlashing"); + // Make sure CAN buses are live: safety_setter_thread does not work if Panda CAN are silent and there is only one other CAN node - if (health.safety_mode_pkt == (uint8_t)(cereal::CarParams::SafetyModel::SILENT)) { + // skip if body firmware is being flashed over CAN + if (health.safety_mode_pkt == (uint8_t)(cereal::CarParams::SafetyModel::SILENT) && && !body_firmware_flashing) { panda->set_safety_model(cereal::CarParams::SafetyModel::NO_OUTPUT); } @@ -200,8 +204,9 @@ std::optional send_panda_states(PubMaster *pm, Panda *panda, bool is_onroa } // set safety mode to NO_OUTPUT when car is off or we're not onroad. ELM327 is an alternative if we want to leverage athenad/connect + // skip if body firmware is being flashed over CAN, as that requires the relay to stay open bool should_close_relay = !ignition_local || !is_onroad; - if (should_close_relay && (health.safety_mode_pkt != (uint8_t)(cereal::CarParams::SafetyModel::NO_OUTPUT))) { + if (should_close_relay && (health.safety_mode_pkt != (uint8_t)(cereal::CarParams::SafetyModel::NO_OUTPUT)) && !body_firmware_flashing) { panda->set_safety_model(cereal::CarParams::SafetyModel::NO_OUTPUT); } @@ -341,9 +346,9 @@ void process_peripheral_state(Panda *panda, PubMaster *pm, bool no_fan_control) } if (ir_pwr != prev_ir_pwr || sm.frame % 100 == 0) { - int16_t ir_panda = util::map_val(ir_pwr, 0, 100, 0, MAX_IR_PANDA_VAL); + int16_t ir_panda = util::map_val(ir_pwr, 0, 100, 0, MAX_IR_PANDA_VAL); panda->set_ir_pwr(ir_panda); - Hardware::set_ir_power(ir_pwr); + Hardware::set_ir_power(ir_pwr); prev_ir_pwr = ir_pwr; } } @@ -367,7 +372,7 @@ void pandad_run(Panda *panda) { // Main loop: receive CAN data and process states while (!do_exit && check_connected(panda)) { - can_recv(panda, &pm); + if (params.getBool("BodyFirmwareFlashing")) can_recv(panda, &pm); // Process peripheral state at 20 Hz if (rk.frame() % 5 == 0) { From 60719a92d94a31b921509ce5cebb3a9edbf64be1 Mon Sep 17 00:00:00 2001 From: stefpi <19478336+stefpi@users.noreply.github.com> Date: Thu, 2 Apr 2026 21:14:29 -0700 Subject: [PATCH 03/24] fix typo --- selfdrive/pandad/pandad.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/selfdrive/pandad/pandad.cc b/selfdrive/pandad/pandad.cc index 2f82788c4ed754..d8976421612b67 100644 --- a/selfdrive/pandad/pandad.cc +++ b/selfdrive/pandad/pandad.cc @@ -194,7 +194,7 @@ std::optional send_panda_states(PubMaster *pm, Panda *panda, bool is_onroa // Make sure CAN buses are live: safety_setter_thread does not work if Panda CAN are silent and there is only one other CAN node // skip if body firmware is being flashed over CAN - if (health.safety_mode_pkt == (uint8_t)(cereal::CarParams::SafetyModel::SILENT) && && !body_firmware_flashing) { + if (health.safety_mode_pkt == (uint8_t)(cereal::CarParams::SafetyModel::SILENT) && !body_firmware_flashing) { panda->set_safety_model(cereal::CarParams::SafetyModel::NO_OUTPUT); } From 58cc164dff86cf60c076582ac0a9104c1506971c Mon Sep 17 00:00:00 2001 From: stefpi <19478336+stefpi@users.noreply.github.com> Date: Thu, 2 Apr 2026 21:33:43 -0700 Subject: [PATCH 04/24] remove accidental if statement inversion --- selfdrive/pandad/pandad.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/selfdrive/pandad/pandad.cc b/selfdrive/pandad/pandad.cc index d8976421612b67..f5853cc81deb4e 100644 --- a/selfdrive/pandad/pandad.cc +++ b/selfdrive/pandad/pandad.cc @@ -372,7 +372,7 @@ void pandad_run(Panda *panda) { // Main loop: receive CAN data and process states while (!do_exit && check_connected(panda)) { - if (params.getBool("BodyFirmwareFlashing")) can_recv(panda, &pm); + if (!params.getBool("BodyFirmwareFlashing")) can_recv(panda, &pm); // Process peripheral state at 20 Hz if (rk.frame() % 5 == 0) { From 34572024d636056fcb447600790b2e0eefaa6916 Mon Sep 17 00:00:00 2001 From: stefpi <19478336+stefpi@users.noreply.github.com> Date: Fri, 3 Apr 2026 12:49:11 -0700 Subject: [PATCH 05/24] bump submodules --- opendbc_repo | 2 +- panda | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/opendbc_repo b/opendbc_repo index ef70686afee3e0..5a389003c5940a 160000 --- a/opendbc_repo +++ b/opendbc_repo @@ -1 +1 @@ -Subproject commit ef70686afee3e0fe5e6be4938eaafc52e9e77935 +Subproject commit 5a389003c5940a53460a11a0a21ede140be81397 diff --git a/panda b/panda index 04b435e5d6fa39..3c3e427fe4b7e4 160000 --- a/panda +++ b/panda @@ -1 +1 @@ -Subproject commit 04b435e5d6fa39d0095aff0b4f0293fc9a4751df +Subproject commit 3c3e427fe4b7e4285da6a4414554ab326a96c97d From c158a82d6b16029a69e1d654853dd83a9b8ec258 Mon Sep 17 00:00:00 2001 From: stefpi <19478336+stefpi@users.noreply.github.com> Date: Fri, 3 Apr 2026 14:16:49 -0700 Subject: [PATCH 06/24] hardware ignition bypass during flashing --- panda | 2 +- system/hardware/hardwared.py | 4 ++++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/panda b/panda index 3c3e427fe4b7e4..944ece3e54a25d 160000 --- a/panda +++ b/panda @@ -1 +1 @@ -Subproject commit 3c3e427fe4b7e4285da6a4414554ab326a96c97d +Subproject commit 944ece3e54a25d52023813760f3c7a1f147600b7 diff --git a/system/hardware/hardwared.py b/system/hardware/hardwared.py index aad30f77b2b32c..b1c797387b07b3 100755 --- a/system/hardware/hardwared.py +++ b/system/hardware/hardwared.py @@ -329,6 +329,10 @@ def hardware_thread(end_event, hw_queue) -> None: # to make a different decision in your software startup_conditions["registered_device"] = PC or (params.get("DongleId") != UNREGISTERED_DONGLE_ID) + # keep ignition alive while body firmware is being flashed + if not onroad_conditions["ignition"] and params.get_bool("BodyFirmwareFlashing"): + onroad_conditions["ignition"] = True + # Handle offroad/onroad transition should_start = all(onroad_conditions.values()) if started_ts is None: From 4ed432a92803368a9d1addb57b355332467454c3 Mon Sep 17 00:00:00 2001 From: stefpi <19478336+stefpi@users.noreply.github.com> Date: Fri, 3 Apr 2026 15:15:10 -0700 Subject: [PATCH 07/24] bump panda --- panda | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/panda b/panda index 944ece3e54a25d..b8acc9a9380772 160000 --- a/panda +++ b/panda @@ -1 +1 @@ -Subproject commit 944ece3e54a25d52023813760f3c7a1f147600b7 +Subproject commit b8acc9a9380772f69e6c909600bf717b7f400cc9 From 1bd7a31c74b546afb948baf2d6219ff755b5e45e Mon Sep 17 00:00:00 2001 From: stefpi <19478336+stefpi@users.noreply.github.com> Date: Fri, 3 Apr 2026 15:29:09 -0700 Subject: [PATCH 08/24] bump panda --- panda | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/panda b/panda index b8acc9a9380772..7544c6cbceb8e2 160000 --- a/panda +++ b/panda @@ -1 +1 @@ -Subproject commit b8acc9a9380772f69e6c909600bf717b7f400cc9 +Subproject commit 7544c6cbceb8e29d6ffd13073b3d2c9634ff8bdf From 29af5fbfb94b14a22d586da4419f1f0c9d0b8c3a Mon Sep 17 00:00:00 2001 From: stefpi <19478336+stefpi@users.noreply.github.com> Date: Fri, 3 Apr 2026 19:21:15 -0700 Subject: [PATCH 09/24] refactor --- panda | 2 +- selfdrive/pandad/pandad.cc | 15 ++++++++------- system/hardware/hardwared.py | 4 ---- 3 files changed, 9 insertions(+), 12 deletions(-) diff --git a/panda b/panda index 7544c6cbceb8e2..5a5177ac526877 160000 --- a/panda +++ b/panda @@ -1 +1 @@ -Subproject commit 7544c6cbceb8e29d6ffd13073b3d2c9634ff8bdf +Subproject commit 5a5177ac5268777e6020683737abd539410159fe diff --git a/selfdrive/pandad/pandad.cc b/selfdrive/pandad/pandad.cc index f5853cc81deb4e..78ab16bb35b324 100644 --- a/selfdrive/pandad/pandad.cc +++ b/selfdrive/pandad/pandad.cc @@ -187,14 +187,16 @@ std::optional send_panda_states(PubMaster *pm, Panda *panda, bool is_onroa health.ignition_line_pkt = 1; } - bool ignition_local = ((health.ignition_line_pkt != 0) || (health.ignition_can_pkt != 0)); - static Params params; - bool body_firmware_flashing = params.getBool("BodyFirmwareFlashing"); + if (params.getBool("BodyFirmwareFlashing")) { + health.ignition_line_pkt = 1; + health.safety_mode_pkt = (uint8_t)(cereal::CarParams::SafetyModel::BODY); + } + + bool ignition_local = ((health.ignition_line_pkt != 0) || (health.ignition_can_pkt != 0)); // Make sure CAN buses are live: safety_setter_thread does not work if Panda CAN are silent and there is only one other CAN node - // skip if body firmware is being flashed over CAN - if (health.safety_mode_pkt == (uint8_t)(cereal::CarParams::SafetyModel::SILENT) && !body_firmware_flashing) { + if (health.safety_mode_pkt == (uint8_t)(cereal::CarParams::SafetyModel::SILENT)) { panda->set_safety_model(cereal::CarParams::SafetyModel::NO_OUTPUT); } @@ -204,9 +206,8 @@ std::optional send_panda_states(PubMaster *pm, Panda *panda, bool is_onroa } // set safety mode to NO_OUTPUT when car is off or we're not onroad. ELM327 is an alternative if we want to leverage athenad/connect - // skip if body firmware is being flashed over CAN, as that requires the relay to stay open bool should_close_relay = !ignition_local || !is_onroad; - if (should_close_relay && (health.safety_mode_pkt != (uint8_t)(cereal::CarParams::SafetyModel::NO_OUTPUT)) && !body_firmware_flashing) { + if (should_close_relay && (health.safety_mode_pkt != (uint8_t)(cereal::CarParams::SafetyModel::NO_OUTPUT))) { panda->set_safety_model(cereal::CarParams::SafetyModel::NO_OUTPUT); } diff --git a/system/hardware/hardwared.py b/system/hardware/hardwared.py index b1c797387b07b3..aad30f77b2b32c 100755 --- a/system/hardware/hardwared.py +++ b/system/hardware/hardwared.py @@ -329,10 +329,6 @@ def hardware_thread(end_event, hw_queue) -> None: # to make a different decision in your software startup_conditions["registered_device"] = PC or (params.get("DongleId") != UNREGISTERED_DONGLE_ID) - # keep ignition alive while body firmware is being flashed - if not onroad_conditions["ignition"] and params.get_bool("BodyFirmwareFlashing"): - onroad_conditions["ignition"] = True - # Handle offroad/onroad transition should_start = all(onroad_conditions.values()) if started_ts is None: From 6f275d6ac1a99375f22e22629321f9b181a4f46a Mon Sep 17 00:00:00 2001 From: stefpi <19478336+stefpi@users.noreply.github.com> Date: Fri, 3 Apr 2026 19:34:17 -0700 Subject: [PATCH 10/24] bump panda --- panda | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/panda b/panda index 5a5177ac526877..696b5c13bb2e02 160000 --- a/panda +++ b/panda @@ -1 +1 @@ -Subproject commit 5a5177ac5268777e6020683737abd539410159fe +Subproject commit 696b5c13bb2e02ec1d38db5b57ad0e402489515b From 8ad96c84cffd7c910f01e96c59a5f26d25e9ace2 Mon Sep 17 00:00:00 2001 From: stefpi <19478336+stefpi@users.noreply.github.com> Date: Fri, 3 Apr 2026 19:53:34 -0700 Subject: [PATCH 11/24] bump panda --- panda | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/panda b/panda index 696b5c13bb2e02..e2d2278b8da818 160000 --- a/panda +++ b/panda @@ -1 +1 @@ -Subproject commit 696b5c13bb2e02ec1d38db5b57ad0e402489515b +Subproject commit e2d2278b8da8186dc9dcfcabda32d56dca26f930 From a4b3ef9274a706b146dd13c19a7f89b7862897d3 Mon Sep 17 00:00:00 2001 From: stefpi <19478336+stefpi@users.noreply.github.com> Date: Mon, 6 Apr 2026 10:52:57 -0700 Subject: [PATCH 12/24] bump versions, fix gitmodules for ci --- .gitmodules | 2 ++ opendbc_repo | 2 +- panda | 2 +- 3 files changed, 4 insertions(+), 2 deletions(-) diff --git a/.gitmodules b/.gitmodules index ad6530de9ac910..e192c3241b083a 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,9 +1,11 @@ [submodule "panda"] path = panda url = ../../commaai/panda.git + branch = body-v1-update [submodule "opendbc"] path = opendbc_repo url = ../../commaai/opendbc.git + branch = body-v1-update [submodule "msgq"] path = msgq_repo url = ../../commaai/msgq.git diff --git a/opendbc_repo b/opendbc_repo index 5a389003c5940a..13b280a5dd5f97 160000 --- a/opendbc_repo +++ b/opendbc_repo @@ -1 +1 @@ -Subproject commit 5a389003c5940a53460a11a0a21ede140be81397 +Subproject commit 13b280a5dd5f97ea6adfc58574c5b716c1c518b4 diff --git a/panda b/panda index e2d2278b8da818..3b2f435955b1a0 160000 --- a/panda +++ b/panda @@ -1 +1 @@ -Subproject commit e2d2278b8da8186dc9dcfcabda32d56dca26f930 +Subproject commit 3b2f435955b1a08de23804715b9954429f7509a1 From 048e46aeea4c61f3aa309fd3473c958a2dbc33cb Mon Sep 17 00:00:00 2001 From: stefpi <19478336+stefpi@users.noreply.github.com> Date: Mon, 6 Apr 2026 10:54:58 -0700 Subject: [PATCH 13/24] bump panda --- panda | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/panda b/panda index 3b2f435955b1a0..ea03eece1bfda7 160000 --- a/panda +++ b/panda @@ -1 +1 @@ -Subproject commit 3b2f435955b1a08de23804715b9954429f7509a1 +Subproject commit ea03eece1bfda77ff8edca042ce323c026a7de59 From d0f2d18d754cb0d4e8fa55423a3d7e6946da2aea Mon Sep 17 00:00:00 2001 From: stefpi <19478336+stefpi@users.noreply.github.com> Date: Tue, 7 Apr 2026 10:34:55 -0700 Subject: [PATCH 14/24] keep ignition high for body firmware update --- opendbc_repo | 2 +- selfdrive/pandad/pandad.cc | 26 +++++++++++++++++++++++++- 2 files changed, 26 insertions(+), 2 deletions(-) diff --git a/opendbc_repo b/opendbc_repo index 13b280a5dd5f97..bc20c8ab5a71e5 160000 --- a/opendbc_repo +++ b/opendbc_repo @@ -1 +1 @@ -Subproject commit 13b280a5dd5f97ea6adfc58574c5b716c1c518b4 +Subproject commit bc20c8ab5a71e54c71b07adf30aa205e73b6b807 diff --git a/selfdrive/pandad/pandad.cc b/selfdrive/pandad/pandad.cc index 78ab16bb35b324..ea8d87f6bce4b8 100644 --- a/selfdrive/pandad/pandad.cc +++ b/selfdrive/pandad/pandad.cc @@ -161,6 +161,29 @@ void fill_panda_can_state(cereal::PandaState::PandaCanState::Builder &cs, const cs.setCanCoreResetCnt(can_health.can_core_reset_cnt); } +static bool is_body_platform(const std::string ¶ms_string) { + if (params_string.empty()) { + return false; + } + + try { + AlignedBuffer aligned_buf; + capnp::FlatArrayMessageReader cmsg(aligned_buf.align(params_string.data(), params_string.size())); + cereal::CarParams::Reader car_params = cmsg.getRoot(); + return car_params.getBrand() == "body"; + } catch (...) { + LOGE("Failed to parse CarParams while checking body init state"); + } + return false; +} + +static bool should_keep_body_ignition_high(Params ¶ms, bool is_onroad) { + if (!is_onroad || !params.getBool("FirmwareQueryDone") || params.getBool("ControlsReady")) { + return false; + } + return is_body_platform(params.get("CarParams")); +} + std::optional send_panda_states(PubMaster *pm, Panda *panda, bool is_onroad, bool spoofing_started) { // build msg MessageBuilder msg; @@ -188,9 +211,10 @@ std::optional send_panda_states(PubMaster *pm, Panda *panda, bool is_onroa } static Params params; - if (params.getBool("BodyFirmwareFlashing")) { + if (should_keep_body_ignition_high(params, is_onroad)) { health.ignition_line_pkt = 1; health.safety_mode_pkt = (uint8_t)(cereal::CarParams::SafetyModel::BODY); + panda->set_safety_model(cereal::CarParams::SafetyModel::BODY); } bool ignition_local = ((health.ignition_line_pkt != 0) || (health.ignition_can_pkt != 0)); From 0e2e749e049442d44cd8461e68bad80a1cc33383 Mon Sep 17 00:00:00 2001 From: stefpi <19478336+stefpi@users.noreply.github.com> Date: Tue, 7 Apr 2026 11:52:39 -0700 Subject: [PATCH 15/24] remove gating on can_recv --- opendbc_repo | 2 +- panda | 2 +- selfdrive/pandad/pandad.cc | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/opendbc_repo b/opendbc_repo index bc20c8ab5a71e5..45cee7bccbd259 160000 --- a/opendbc_repo +++ b/opendbc_repo @@ -1 +1 @@ -Subproject commit bc20c8ab5a71e54c71b07adf30aa205e73b6b807 +Subproject commit 45cee7bccbd259a2f70f3007e01e9853a23ae184 diff --git a/panda b/panda index ea03eece1bfda7..a415c76b4d8839 160000 --- a/panda +++ b/panda @@ -1 +1 @@ -Subproject commit ea03eece1bfda77ff8edca042ce323c026a7de59 +Subproject commit a415c76b4d88396354cd88584161a26b0bd9eb13 diff --git a/selfdrive/pandad/pandad.cc b/selfdrive/pandad/pandad.cc index ea8d87f6bce4b8..892d7fda6f8b34 100644 --- a/selfdrive/pandad/pandad.cc +++ b/selfdrive/pandad/pandad.cc @@ -397,7 +397,7 @@ void pandad_run(Panda *panda) { // Main loop: receive CAN data and process states while (!do_exit && check_connected(panda)) { - if (!params.getBool("BodyFirmwareFlashing")) can_recv(panda, &pm); + can_recv(panda, &pm); // Process peripheral state at 20 Hz if (rk.frame() % 5 == 0) { From b4bf87d89b3d6a82442b5d1a4bc36398660655b7 Mon Sep 17 00:00:00 2001 From: stefpi <19478336+stefpi@users.noreply.github.com> Date: Tue, 7 Apr 2026 11:54:25 -0700 Subject: [PATCH 16/24] merge master in opendbc --- opendbc_repo | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/opendbc_repo b/opendbc_repo index 45cee7bccbd259..a08cea6aa18466 160000 --- a/opendbc_repo +++ b/opendbc_repo @@ -1 +1 @@ -Subproject commit 45cee7bccbd259a2f70f3007e01e9853a23ae184 +Subproject commit a08cea6aa18466b16aa6795ba2bc5a20b528861c From 3042dce1d09840c5da4e3686e9e3adda38812c0e Mon Sep 17 00:00:00 2001 From: stefpi <19478336+stefpi@users.noreply.github.com> Date: Tue, 7 Apr 2026 11:58:51 -0700 Subject: [PATCH 17/24] bump opendbc_repo --- opendbc_repo | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/opendbc_repo b/opendbc_repo index a08cea6aa18466..5c1162fb9c2943 160000 --- a/opendbc_repo +++ b/opendbc_repo @@ -1 +1 @@ -Subproject commit a08cea6aa18466b16aa6795ba2bc5a20b528861c +Subproject commit 5c1162fb9c29438d7c81370dbd7a934365df7de2 From 3c297ede77770fb7d7f6eadf5106a2268c9bffa5 Mon Sep 17 00:00:00 2001 From: stefpi <19478336+stefpi@users.noreply.github.com> Date: Tue, 7 Apr 2026 13:03:06 -0700 Subject: [PATCH 18/24] bump panda --- panda | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/panda b/panda index a415c76b4d8839..10c6d1371bc83a 160000 --- a/panda +++ b/panda @@ -1 +1 @@ -Subproject commit a415c76b4d88396354cd88584161a26b0bd9eb13 +Subproject commit 10c6d1371bc83a2b61163ddafaea7884c8fd70d6 From 9eb3ecd0bd0d18597ac417389fef9319578ae867 Mon Sep 17 00:00:00 2001 From: stefpi <19478336+stefpi@users.noreply.github.com> Date: Tue, 7 Apr 2026 13:10:30 -0700 Subject: [PATCH 19/24] remove bodyfirmwareflashing key --- common/params_keys.h | 1 - 1 file changed, 1 deletion(-) diff --git a/common/params_keys.h b/common/params_keys.h index ca6a089cfb4179..b81a373d0876ef 100644 --- a/common/params_keys.h +++ b/common/params_keys.h @@ -15,7 +15,6 @@ inline static std::unordered_map keys = { {"AthenadPid", {PERSISTENT, INT}}, {"AthenadUploadQueue", {PERSISTENT, JSON}}, {"AthenadRecentlyViewedRoutes", {PERSISTENT, STRING}}, - {"BodyFirmwareFlashing", {CLEAR_ON_MANAGER_START, BOOL}}, {"BootCount", {PERSISTENT, INT}}, {"CalibrationParams", {PERSISTENT, BYTES}}, {"CameraDebugExpGain", {CLEAR_ON_MANAGER_START, STRING}}, From 6652ba133e9ee2e255d69565517831c72217a067 Mon Sep 17 00:00:00 2001 From: stefpi <19478336+stefpi@users.noreply.github.com> Date: Tue, 7 Apr 2026 13:40:33 -0700 Subject: [PATCH 20/24] bump opendbc --- opendbc_repo | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/opendbc_repo b/opendbc_repo index 5c1162fb9c2943..4235675d3fd1f9 160000 --- a/opendbc_repo +++ b/opendbc_repo @@ -1 +1 @@ -Subproject commit 5c1162fb9c29438d7c81370dbd7a934365df7de2 +Subproject commit 4235675d3fd1f98b8ec5110ccaa271e71fdda936 From c5bdad602087e0ff215337b5657729fe4dbe5e74 Mon Sep 17 00:00:00 2001 From: stefpi <19478336+stefpi@users.noreply.github.com> Date: Tue, 7 Apr 2026 15:21:57 -0700 Subject: [PATCH 21/24] bump opendbc and panda --- opendbc_repo | 2 +- panda | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/opendbc_repo b/opendbc_repo index 4235675d3fd1f9..2c0b932064d5be 160000 --- a/opendbc_repo +++ b/opendbc_repo @@ -1 +1 @@ -Subproject commit 4235675d3fd1f98b8ec5110ccaa271e71fdda936 +Subproject commit 2c0b932064d5bee85e469049b593c03579b10869 diff --git a/panda b/panda index 10c6d1371bc83a..54899f01fb14f9 160000 --- a/panda +++ b/panda @@ -1 +1 @@ -Subproject commit 10c6d1371bc83a2b61163ddafaea7884c8fd70d6 +Subproject commit 54899f01fb14f99b57b7a05b5033324988fad746 From 749efe66f560cb4ff0240307e932ffa9e3917c65 Mon Sep 17 00:00:00 2001 From: stefpi <19478336+stefpi@users.noreply.github.com> Date: Tue, 7 Apr 2026 15:29:09 -0700 Subject: [PATCH 22/24] bump panda --- panda | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/panda b/panda index 54899f01fb14f9..47797d9d62b3db 160000 --- a/panda +++ b/panda @@ -1 +1 @@ -Subproject commit 54899f01fb14f99b57b7a05b5033324988fad746 +Subproject commit 47797d9d62b3dbe6ec6d5bdf859506e3585a91e5 From 68edb63360e20e5be0a5f7caeac1045382c32632 Mon Sep 17 00:00:00 2001 From: stefpi <19478336+stefpi@users.noreply.github.com> Date: Tue, 7 Apr 2026 15:53:38 -0700 Subject: [PATCH 23/24] bump opendbc_repo --- opendbc_repo | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/opendbc_repo b/opendbc_repo index 2c0b932064d5be..dcf614c2fdf04a 160000 --- a/opendbc_repo +++ b/opendbc_repo @@ -1 +1 @@ -Subproject commit 2c0b932064d5bee85e469049b593c03579b10869 +Subproject commit dcf614c2fdf04a1d9143dd84a46f7f2393fc1bd8 From 43b9b578ef67a35f7744210a3381a17972768e1c Mon Sep 17 00:00:00 2001 From: stefpi <19478336+stefpi@users.noreply.github.com> Date: Tue, 7 Apr 2026 16:18:35 -0700 Subject: [PATCH 24/24] bump opendbc and panda --- opendbc_repo | 2 +- panda | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/opendbc_repo b/opendbc_repo index dcf614c2fdf04a..d42142dec00bae 160000 --- a/opendbc_repo +++ b/opendbc_repo @@ -1 +1 @@ -Subproject commit dcf614c2fdf04a1d9143dd84a46f7f2393fc1bd8 +Subproject commit d42142dec00bae09c21e152405626009e36fc719 diff --git a/panda b/panda index 47797d9d62b3db..e32f94e1d7a9b3 160000 --- a/panda +++ b/panda @@ -1 +1 @@ -Subproject commit 47797d9d62b3dbe6ec6d5bdf859506e3585a91e5 +Subproject commit e32f94e1d7a9b366c5a93ff6b2800960c881e9a0