diff --git a/panda/board/obj/body_h7.bin.signed b/panda/board/obj/body_h7.bin.signed index e52fd2c9..bee3f771 100644 Binary files a/panda/board/obj/body_h7.bin.signed and b/panda/board/obj/body_h7.bin.signed differ diff --git a/panda/board/obj/body_h7/bootstub.elf b/panda/board/obj/body_h7/bootstub.elf index 73c32864..86fca135 100755 Binary files a/panda/board/obj/body_h7/bootstub.elf and b/panda/board/obj/body_h7/bootstub.elf differ diff --git a/panda/board/obj/body_h7/main.bin b/panda/board/obj/body_h7/main.bin index e89c5228..a56c9564 100755 Binary files a/panda/board/obj/body_h7/main.bin and b/panda/board/obj/body_h7/main.bin differ diff --git a/panda/board/obj/body_h7/main.elf b/panda/board/obj/body_h7/main.elf index 940ee36a..7dfa39ee 100755 Binary files a/panda/board/obj/body_h7/main.elf and b/panda/board/obj/body_h7/main.elf differ diff --git a/panda/board/obj/bootstub.body_h7.bin b/panda/board/obj/bootstub.body_h7.bin index b9ae1e6e..79946cc7 100755 Binary files a/panda/board/obj/bootstub.body_h7.bin and b/panda/board/obj/bootstub.body_h7.bin differ diff --git a/panda/board/obj/bootstub.panda.bin b/panda/board/obj/bootstub.panda.bin index dfe4a7ca..0501ae3b 100755 Binary files a/panda/board/obj/bootstub.panda.bin and b/panda/board/obj/bootstub.panda.bin differ diff --git a/panda/board/obj/bootstub.panda_h7.bin b/panda/board/obj/bootstub.panda_h7.bin index a35aee73..7a5c7390 100755 Binary files a/panda/board/obj/bootstub.panda_h7.bin and b/panda/board/obj/bootstub.panda_h7.bin differ diff --git a/panda/board/obj/bootstub.panda_h7_remote.bin b/panda/board/obj/bootstub.panda_h7_remote.bin index a35aee73..7a5c7390 100755 Binary files a/panda/board/obj/bootstub.panda_h7_remote.bin and b/panda/board/obj/bootstub.panda_h7_remote.bin differ diff --git a/panda/board/obj/bootstub.panda_jungle_h7.bin b/panda/board/obj/bootstub.panda_jungle_h7.bin index d1a40e84..ebea708e 100755 Binary files a/panda/board/obj/bootstub.panda_jungle_h7.bin and b/panda/board/obj/bootstub.panda_jungle_h7.bin differ diff --git a/panda/board/obj/bootstub.panda_remote.bin b/panda/board/obj/bootstub.panda_remote.bin index dfe4a7ca..0501ae3b 100755 Binary files a/panda/board/obj/bootstub.panda_remote.bin and b/panda/board/obj/bootstub.panda_remote.bin differ diff --git a/panda/board/obj/gitversion.h b/panda/board/obj/gitversion.h index 79320e7b..8ff2431d 100644 --- a/panda/board/obj/gitversion.h +++ b/panda/board/obj/gitversion.h @@ -1,2 +1,2 @@ extern const uint8_t gitversion[19]; -const uint8_t gitversion[19] = "DEV-277b2255-DEBUG"; +const uint8_t gitversion[19] = "DEV-58504c5a-DEBUG"; diff --git a/panda/board/obj/panda.bin.signed b/panda/board/obj/panda.bin.signed index 09588377..866f92da 100644 Binary files a/panda/board/obj/panda.bin.signed and b/panda/board/obj/panda.bin.signed differ diff --git a/panda/board/obj/panda/bootstub.elf b/panda/board/obj/panda/bootstub.elf index 83d4547f..5175fe18 100755 Binary files a/panda/board/obj/panda/bootstub.elf and b/panda/board/obj/panda/bootstub.elf differ diff --git a/panda/board/obj/panda/main.bin b/panda/board/obj/panda/main.bin index 0f1a5445..a59feb7a 100755 Binary files a/panda/board/obj/panda/main.bin and b/panda/board/obj/panda/main.bin differ diff --git a/panda/board/obj/panda/main.elf b/panda/board/obj/panda/main.elf index 0b724e2c..3eef13a5 100755 Binary files a/panda/board/obj/panda/main.elf and b/panda/board/obj/panda/main.elf differ diff --git a/panda/board/obj/panda_h7.bin.signed b/panda/board/obj/panda_h7.bin.signed index 3007ab6f..765eee17 100644 Binary files a/panda/board/obj/panda_h7.bin.signed and b/panda/board/obj/panda_h7.bin.signed differ diff --git a/panda/board/obj/panda_h7/bootstub.elf b/panda/board/obj/panda_h7/bootstub.elf index 280fcf29..f3b15eae 100755 Binary files a/panda/board/obj/panda_h7/bootstub.elf and b/panda/board/obj/panda_h7/bootstub.elf differ diff --git a/panda/board/obj/panda_h7/main.bin b/panda/board/obj/panda_h7/main.bin index 730439eb..bc622847 100755 Binary files a/panda/board/obj/panda_h7/main.bin and b/panda/board/obj/panda_h7/main.bin differ diff --git a/panda/board/obj/panda_h7/main.elf b/panda/board/obj/panda_h7/main.elf index 53294827..aa294e33 100755 Binary files a/panda/board/obj/panda_h7/main.elf and b/panda/board/obj/panda_h7/main.elf differ diff --git a/panda/board/obj/panda_h7_remote.bin.signed b/panda/board/obj/panda_h7_remote.bin.signed index 1fba3aa6..e6657c8f 100644 Binary files a/panda/board/obj/panda_h7_remote.bin.signed and b/panda/board/obj/panda_h7_remote.bin.signed differ diff --git a/panda/board/obj/panda_h7_remote/bootstub.elf b/panda/board/obj/panda_h7_remote/bootstub.elf index d0245dbd..fc09614d 100755 Binary files a/panda/board/obj/panda_h7_remote/bootstub.elf and b/panda/board/obj/panda_h7_remote/bootstub.elf differ diff --git a/panda/board/obj/panda_h7_remote/main.bin b/panda/board/obj/panda_h7_remote/main.bin index 4525df84..dff36afb 100755 Binary files a/panda/board/obj/panda_h7_remote/main.bin and b/panda/board/obj/panda_h7_remote/main.bin differ diff --git a/panda/board/obj/panda_h7_remote/main.elf b/panda/board/obj/panda_h7_remote/main.elf index d25cc91c..cfa59b2c 100755 Binary files a/panda/board/obj/panda_h7_remote/main.elf and b/panda/board/obj/panda_h7_remote/main.elf differ diff --git a/panda/board/obj/panda_jungle_h7.bin.signed b/panda/board/obj/panda_jungle_h7.bin.signed index 68b3c556..e2ddcc05 100644 Binary files a/panda/board/obj/panda_jungle_h7.bin.signed and b/panda/board/obj/panda_jungle_h7.bin.signed differ diff --git a/panda/board/obj/panda_jungle_h7/bootstub.elf b/panda/board/obj/panda_jungle_h7/bootstub.elf index 52d626be..7b3c32b4 100755 Binary files a/panda/board/obj/panda_jungle_h7/bootstub.elf and b/panda/board/obj/panda_jungle_h7/bootstub.elf differ diff --git a/panda/board/obj/panda_jungle_h7/main.bin b/panda/board/obj/panda_jungle_h7/main.bin index 7e9a0407..6a141a5b 100755 Binary files a/panda/board/obj/panda_jungle_h7/main.bin and b/panda/board/obj/panda_jungle_h7/main.bin differ diff --git a/panda/board/obj/panda_jungle_h7/main.elf b/panda/board/obj/panda_jungle_h7/main.elf index cc1fdbf4..6f8af8f5 100755 Binary files a/panda/board/obj/panda_jungle_h7/main.elf and b/panda/board/obj/panda_jungle_h7/main.elf differ diff --git a/panda/board/obj/panda_remote.bin.signed b/panda/board/obj/panda_remote.bin.signed index 5ad16f1d..bfb044af 100644 Binary files a/panda/board/obj/panda_remote.bin.signed and b/panda/board/obj/panda_remote.bin.signed differ diff --git a/panda/board/obj/panda_remote/bootstub.elf b/panda/board/obj/panda_remote/bootstub.elf index a48c14ae..3ec93878 100755 Binary files a/panda/board/obj/panda_remote/bootstub.elf and b/panda/board/obj/panda_remote/bootstub.elf differ diff --git a/panda/board/obj/panda_remote/main.bin b/panda/board/obj/panda_remote/main.bin index 7fb59ef0..717e57bb 100755 Binary files a/panda/board/obj/panda_remote/main.bin and b/panda/board/obj/panda_remote/main.bin differ diff --git a/panda/board/obj/panda_remote/main.elf b/panda/board/obj/panda_remote/main.elf index 5fa18e4f..07de0ca9 100755 Binary files a/panda/board/obj/panda_remote/main.elf and b/panda/board/obj/panda_remote/main.elf differ diff --git a/panda/board/obj/version b/panda/board/obj/version index 7d2e710b..b10a7128 100644 --- a/panda/board/obj/version +++ b/panda/board/obj/version @@ -1 +1 @@ -DEV-277b2255-DEBUG \ No newline at end of file +DEV-58504c5a-DEBUG \ No newline at end of file diff --git a/selfdrive/ui/layouts/settings/starpilot/sounds.py b/selfdrive/ui/layouts/settings/starpilot/sounds.py index bfc0db2d..e6dc2f66 100644 --- a/selfdrive/ui/layouts/settings/starpilot/sounds.py +++ b/selfdrive/ui/layouts/settings/starpilot/sounds.py @@ -72,7 +72,7 @@ class StarPilotSoundsLayout(StarPilotPanel): panel.refresh_visibility() class StarPilotVolumeControlLayout(StarPilotPanel): - COOLDOWN_INFO = {"title": tr_noop("Switchback Mode Cooldown"), "icon": "toggle_icons/icon_mute.png", "min": 0, "max": 60} + COOLDOWN_INFO = {"title": tr_noop("Switchback Mode Cooldown"), "icon": "toggle_icons/icon_mute.png", "min": 0, "max": 30} VOLUME_INFO = { "BelowSteerSpeedVolume": {"title": tr_noop("Min Steer Speed Alert"), "icon": "toggle_icons/icon_mute.png", "min": 0}, "DisengageVolume": {"title": tr_noop("Disengage Volume"), "icon": "toggle_icons/icon_mute.png", "min": 0}, @@ -117,8 +117,8 @@ class StarPilotVolumeControlLayout(StarPilotPanel): if v == 0: return tr("Off") if v == 1: - return tr("1 second") - return f"{v} {tr('seconds')}" + return tr("1 minute") + return f"{v} {tr('minutes')}" self.CATEGORIES.append({ "title": self.COOLDOWN_INFO["title"], @@ -158,7 +158,7 @@ class StarPilotVolumeControlLayout(StarPilotPanel): gui_app.set_modal_overlay(SliderDialog( tr(self.COOLDOWN_INFO["title"]), 0, self.COOLDOWN_INFO["max"], 1, current_v, on_close, - unit=" s", labels={0: tr("Off")}, color="#FF0097" + unit=" min", labels={0: tr("Off")}, color="#FF0097" )) @classmethod diff --git a/selfdrive/ui/mici/onroad/starpilot_status.py b/selfdrive/ui/mici/onroad/starpilot_status.py index 564adfb9..20e1744c 100644 --- a/selfdrive/ui/mici/onroad/starpilot_status.py +++ b/selfdrive/ui/mici/onroad/starpilot_status.py @@ -17,9 +17,10 @@ TRAFFIC_COLOR = rl.Color(201, 34, 49, 255) def get_border_color(state: UIState): enabled = state.sm["selfdriveState"].enabled + lateral_active = enabled or state.always_on_lateral_active if state.status == UIStatus.OVERRIDE: return OVERRIDE_COLOR - if state.switchback_mode_enabled and enabled: + if state.switchback_mode_enabled and lateral_active: return SWITCHBACK_COLOR if state.traffic_mode_enabled and enabled: return TRAFFIC_COLOR diff --git a/selfdrive/ui/qt/onroad/buttons.cc b/selfdrive/ui/qt/onroad/buttons.cc index c5f79582..329c2acc 100644 --- a/selfdrive/ui/qt/onroad/buttons.cc +++ b/selfdrive/ui/qt/onroad/buttons.cc @@ -92,14 +92,14 @@ void ExperimentalButton::showEvent(QShowEvent *event) { void ExperimentalButton::updateBackgroundColor() { if (isDown() || !engageable) { background_color = QColor(0, 0, 0, 166); + } else if (starpilot_scene.switchback_mode_enabled) { + background_color = bg_colors[STATUS_SWITCHBACK_MODE_ENABLED]; } else if (starpilot_scene.always_on_lateral_active) { background_color = bg_colors[STATUS_ALWAYS_ON_LATERAL_ACTIVE]; } else if (starpilot_scene.conditional_status == 1) { background_color = bg_colors[STATUS_CEM_DISABLED]; } else if (experimental_mode) { background_color = bg_colors[STATUS_EXPERIMENTAL_MODE_ENABLED]; - } else if (starpilot_scene.switchback_mode_enabled) { - background_color = bg_colors[STATUS_SWITCHBACK_MODE_ENABLED]; } else if (starpilot_scene.traffic_mode_enabled) { background_color = bg_colors[STATUS_TRAFFIC_MODE_ENABLED]; } else { diff --git a/selfdrive/ui/ui b/selfdrive/ui/ui index 87f7f44f..08057383 100755 Binary files a/selfdrive/ui/ui and b/selfdrive/ui/ui differ diff --git a/selfdrive/ui/ui.cc b/selfdrive/ui/ui.cc index 51efb364..7fe1d664 100644 --- a/selfdrive/ui/ui.cc +++ b/selfdrive/ui/ui.cc @@ -97,10 +97,10 @@ void UIState::updateStatus(StarPilotUIState *fs) { if (state == cereal::SelfdriveState::OpenpilotState::PRE_ENABLED || state == cereal::SelfdriveState::OpenpilotState::OVERRIDING) { status = STATUS_OVERRIDE; + } else if (starpilot_scene.switchback_mode_enabled && (ss.getEnabled() || starpilot_scene.always_on_lateral_active)) { + status = STATUS_SWITCHBACK_MODE_ENABLED; } else if (starpilot_scene.always_on_lateral_active) { status = STATUS_ALWAYS_ON_LATERAL_ACTIVE; - } else if (starpilot_scene.switchback_mode_enabled && ss.getEnabled()) { - status = STATUS_SWITCHBACK_MODE_ENABLED; } else if (starpilot_scene.traffic_mode_enabled && ss.getEnabled()) { status = STATUS_TRAFFIC_MODE_ENABLED; } else { diff --git a/starpilot/common/starpilot_variables.py b/starpilot/common/starpilot_variables.py index 43f1dc93..bb5232fa 100644 --- a/starpilot/common/starpilot_variables.py +++ b/starpilot/common/starpilot_variables.py @@ -548,7 +548,7 @@ class StarPilotVariables: toggle.alert_volume_controller = self.get_value("AlertVolumeControl") toggle.below_steer_speed_volume = self.get_value("BelowSteerSpeedVolume", cast=float, condition=toggle.alert_volume_controller) - toggle.switchback_mode_cooldown = self.get_value("SwitchbackModeCooldown", cast=float, min=0, max=60) + toggle.switchback_mode_cooldown = self.get_value("SwitchbackModeCooldown", cast=float, conversion=60, min=0, max=1800) toggle.disengage_volume = self.get_value("DisengageVolume", cast=float, condition=toggle.alert_volume_controller) toggle.engage_volume = self.get_value("EngageVolume", cast=float, condition=toggle.alert_volume_controller) toggle.prompt_volume = self.get_value("PromptVolume", cast=float, condition=toggle.alert_volume_controller) diff --git a/starpilot/system/the_pond/assets/components/tools/device_settings.js b/starpilot/system/the_pond/assets/components/tools/device_settings.js index 8148f05b..f09b975d 100644 --- a/starpilot/system/the_pond/assets/components/tools/device_settings.js +++ b/starpilot/system/the_pond/assets/components/tools/device_settings.js @@ -202,7 +202,7 @@ function formatSliderValue(val, stepStr, precisionInt, key) { if (key === "SwitchbackModeCooldown") { if (v === 0) return "Off" - return v === 1 ? "1 sec" : `${v} sec` + return v === 1 ? "1 min" : `${v} min` } const volumeKeys = [ diff --git a/starpilot/system/the_pond/assets/components/tools/device_settings_layout.json b/starpilot/system/the_pond/assets/components/tools/device_settings_layout.json index 1eaa9d2e..c3b39606 100644 --- a/starpilot/system/the_pond/assets/components/tools/device_settings_layout.json +++ b/starpilot/system/the_pond/assets/components/tools/device_settings_layout.json @@ -1534,7 +1534,7 @@ "data_type": "int", "ui_type": "numeric", "min": 0.0, - "max": 60.0, + "max": 30.0, "step": 1.0, "parent_key": "AlertVolumeControl" }, diff --git a/starpilot/ui/qt/offroad/sounds_settings.cc b/starpilot/ui/qt/offroad/sounds_settings.cc index 08592f99..959354a6 100644 --- a/starpilot/ui/qt/offroad/sounds_settings.cc +++ b/starpilot/ui/qt/offroad/sounds_settings.cc @@ -52,10 +52,10 @@ StarPilotSoundsPanel::StarPilotSoundsPanel(StarPilotSettingsWindow *parent, bool soundsToggle = alertVolumeControlToggle; } else if (alertCooldownKeys.contains(param)) { std::map cooldownLabels; - for (int i = 0; i <= 60; ++i) { - cooldownLabels[i] = i == 0 ? tr("Off") : i == 1 ? tr("1 second") : QString::number(i) + tr(" seconds"); + for (int i = 0; i <= 30; ++i) { + cooldownLabels[i] = i == 0 ? tr("Off") : i == 1 ? tr("1 minute") : QString::number(i) + tr(" minutes"); } - soundsToggle = new StarPilotParamValueControl(param, title, desc, icon, 0, 60, QString(), cooldownLabels, 1); + soundsToggle = new StarPilotParamValueControl(param, title, desc, icon, 0, 30, QString(), cooldownLabels, 1); } else if (alertVolumeControlKeys.contains(param)) { std::map volumeLabels; for (int i = 0; i <= 101; ++i) { diff --git a/starpilot/ui/qt/onroad/starpilot_annotated_camera.cc b/starpilot/ui/qt/onroad/starpilot_annotated_camera.cc index 1048a002..c47e3b9f 100644 --- a/starpilot/ui/qt/onroad/starpilot_annotated_camera.cc +++ b/starpilot/ui/qt/onroad/starpilot_annotated_camera.cc @@ -738,14 +738,14 @@ void StarPilotAnnotatedCameraWidget::paintPathEdges(QPainter &p, int height) { gradient.setColorAt(1.0f, QColor(baseColor.red(), baseColor.green(), baseColor.blue(), 255.0f * 0.0f)); }; - if (starpilot_scene.always_on_lateral_active) { + if (starpilot_scene.switchback_mode_enabled) { + setPathEdgeColors(bg_colors[STATUS_SWITCHBACK_MODE_ENABLED]); + } else if (starpilot_scene.always_on_lateral_active) { setPathEdgeColors(bg_colors[STATUS_ALWAYS_ON_LATERAL_ACTIVE]); } else if (starpilot_scene.conditional_status == 1) { setPathEdgeColors(bg_colors[STATUS_CEM_DISABLED]); } else if (experimentalMode) { setPathEdgeColors(bg_colors[STATUS_EXPERIMENTAL_MODE_ENABLED]); - } else if (starpilot_scene.switchback_mode_enabled) { - setPathEdgeColors(bg_colors[STATUS_SWITCHBACK_MODE_ENABLED]); } else if (starpilot_scene.traffic_mode_enabled) { setPathEdgeColors(bg_colors[STATUS_TRAFFIC_MODE_ENABLED]); } else if (starpilot_toggles.value("color_scheme").toString() != "stock") {