diff --git a/cereal b/cereal
index 3eca747334..5766e645f2 160000
--- a/cereal
+++ b/cereal
@@ -1 +1 @@
-Subproject commit 3eca747334ca2138bf35d70399d58d0706a3cbd2
+Subproject commit 5766e645f2ee2a131b145fb1ea9e3b7c55a4a740
diff --git a/panda b/panda
index 036e8dc234..e22371b7be 160000
--- a/panda
+++ b/panda
@@ -1 +1 @@
-Subproject commit 036e8dc2344d4ac658528a1091703bce4c162810
+Subproject commit e22371b7be91506ebc9b14bc1c78d0ecffd4b3b9
diff --git a/selfdrive/car/gm/interface.py b/selfdrive/car/gm/interface.py
index 22ea83759a..248828e757 100755
--- a/selfdrive/car/gm/interface.py
+++ b/selfdrive/car/gm/interface.py
@@ -212,7 +212,13 @@ class CarInterface(CarInterfaceBase):
if ret.cruiseState.standstill:
events.add(EventName.resumeRequired)
if ret.vEgo < self.CP.minSteerSpeed:
- events.add(car.CarEvent.EventName.belowSteerSpeed)
+ events.add(EventName.belowSteerSpeed)
+
+ if self.CP.networkLocation == NetworkLocation.fwdCamera and self.CP.pcmCruise:
+ # The ECM has a higher brake pressed threshold than the camera, causing an
+ # ACC fault when you engage at a stop with your foot partially on the brake
+ if ret.vEgoRaw < 0.1 and ret.brake < 20:
+ events.add(EventName.gmAccFaultedTemp)
ret.events = events.to_msg()
diff --git a/selfdrive/car/hyundai/values.py b/selfdrive/car/hyundai/values.py
index a42e5ef3ce..5f0b3feb08 100644
--- a/selfdrive/car/hyundai/values.py
+++ b/selfdrive/car/hyundai/values.py
@@ -1452,7 +1452,7 @@ CANFD_CAR = {CAR.KIA_EV6, CAR.IONIQ_5, CAR.TUCSON_HYBRID_4TH_GEN, CAR.SANTA_CRUZ
# The camera does SCC on these cars, rather than the radar
CAMERA_SCC_CAR = {CAR.KONA_EV_2022, CAR.TUCSON_HYBRID_4TH_GEN, CAR.SANTA_CRUZ_1ST_GEN, CAR.KIA_SPORTAGE_5TH_GEN}
-HYBRID_CAR = {CAR.IONIQ_PHEV, CAR.ELANTRA_HEV_2021, CAR.KIA_NIRO_PHEV, CAR.KIA_NIRO_HEV_2021, CAR.SONATA_HYBRID, CAR.KONA_HEV, CAR.IONIQ, CAR.IONIQ_HEV_2022, CAR.SANTA_FE_HEV_2022, CAR.SANTA_FE_PHEV_2022, CAR.IONIQ_PHEV_2019} # these cars use a different gas signal
+HYBRID_CAR = {CAR.IONIQ_PHEV, CAR.ELANTRA_HEV_2021, CAR.KIA_NIRO_PHEV, CAR.KIA_NIRO_HEV_2021, CAR.SONATA_HYBRID, CAR.KONA_HEV, CAR.IONIQ, CAR.IONIQ_HEV_2022, CAR.SANTA_FE_HEV_2022, CAR.SANTA_FE_PHEV_2022, CAR.IONIQ_PHEV_2019, CAR.TUCSON_HYBRID_4TH_GEN} # these cars use a different gas signal
EV_CAR = {CAR.IONIQ_EV_2020, CAR.IONIQ_EV_LTD, CAR.KONA_EV, CAR.KIA_NIRO_EV, CAR.KONA_EV_2022, CAR.KIA_EV6, CAR.IONIQ_5}
# these cars require a special panda safety mode due to missing counters and checksums in the messages
diff --git a/selfdrive/controls/lib/events.py b/selfdrive/controls/lib/events.py
index 91f1748ecb..5bfe89b31c 100644
--- a/selfdrive/controls/lib/events.py
+++ b/selfdrive/controls/lib/events.py
@@ -811,6 +811,10 @@ EVENTS: Dict[int, Dict[str, Union[Alert, AlertCallbackType]]] = {
ET.NO_ENTRY: NoEntryAlert("Cruise Faulted"),
},
+ EventName.gmAccFaultedTemp: {
+ ET.NO_ENTRY: NoEntryAlert("Cruise Temporarily Faulted"),
+ },
+
EventName.controlsMismatch: {
ET.IMMEDIATE_DISABLE: ImmediateDisableAlert("Controls Mismatch"),
ET.NO_ENTRY: NoEntryAlert("Controls Mismatch"),
diff --git a/selfdrive/ui/translations/main_pt-BR.ts b/selfdrive/ui/translations/main_pt-BR.ts
index 6a772a1f69..8f59bf4715 100644
--- a/selfdrive/ui/translations/main_pt-BR.ts
+++ b/selfdrive/ui/translations/main_pt-BR.ts
@@ -60,11 +60,11 @@
Cellular Metered
-
+ Plano de Dados Limitado
Prevent large data uploads when on a metered connection
-
+ Evite grandes uploads de dados quando estiver em uma conexão limitada
@@ -476,7 +476,7 @@ trabalho definido
PRIME FEATURES:
- APRIMORAMENTOS PRIME:
+ BENEFÍCIOS PRIME:
Remote access
diff --git a/tools/cabana/chartswidget.cc b/tools/cabana/chartswidget.cc
index e704dea95a..5dafd8ec37 100644
--- a/tools/cabana/chartswidget.cc
+++ b/tools/cabana/chartswidget.cc
@@ -305,8 +305,14 @@ void ChartView::mouseReleaseEvent(QMouseEvent *event) {
event->accept();
return;
}
+ } else if (event->button() == Qt::RightButton) {
+ // reset zoom
+ if (can->isZoomed()) {
+ can->resetRange();
+ event->accept();
+ return;
+ }
}
- // TODO: right-click to reset zoom
QChartView::mouseReleaseEvent(event);
line_marker->setVisible(true);
}