From c8d77355eace6fbc1c0c1cfe13820293e111a5bc Mon Sep 17 00:00:00 2001 From: sveinmer Date: Tue, 26 May 2026 11:06:13 +0200 Subject: [PATCH 1/3] nap: add Tinkla Buddy IC integration toggle + opendbc bump Wires UI toggle for the Buddy IC feature added in opendbc companion PR. With this merged and a Tinkla Buddy R2S connected via EtherCAN bridge on Tesla OBD port, openpilot renders path / lanes / lead-car / target-speed / road-sign on the stock Tesla MCU1 instrument cluster. Default on: NAPTinklaICIntegration=1. Users without Buddy hardware see no IC change (the chassis-CAN traffic they don't tap is harmless). Changes: - NAPTinklaICIntegration param (PERSISTENT BOOL, default 1 = on) - NAPRoadSignFallbackKph param (PERSISTENT INT, default 0 = no sign rendered when Tesla GPS SNA) - selfdrive/ui/layouts/settings/nap.py: new toggle row under "Tinkla Buddy IC" section header - selfdrive/ui/mici/layouts/settings/nap.py: mirror toggle for mici UI - opendbc bump to buddy-ic-for-magzu HEAD (ac463ef2) - RELEASES.md entry Companion opendbc PR: MagZu/opendbc#1 Hardware required (end-user): comma 3/3X + Tinkla Buddy R2S + EtherCAN-bridge cable + 2014-2016 pre-AP Tesla Model S. Buddy firmware v1.44 or v1.49 (both verified). Co-Authored-By: Claude Opus 4.7 (1M context) --- RELEASES.md | 6 ++++++ common/params_keys.h | 2 ++ opendbc_repo | 2 +- selfdrive/ui/layouts/settings/nap.py | 15 +++++++++++++-- selfdrive/ui/mici/layouts/settings/nap.py | 5 +++++ 5 files changed, 27 insertions(+), 3 deletions(-) diff --git a/RELEASES.md b/RELEASES.md index a3a95ae6a8643f..5289d1a0c0ae59 100644 --- a/RELEASES.md +++ b/RELEASES.md @@ -1,3 +1,9 @@ +Version 0.11.2 (2026-05-26) +======================== +* Tinkla Buddy IC support: lane / target-speed / road-sign / lead-car + overlay on stock Tesla MS cluster (requires Buddy R2S hardware via + EtherCAN bridge on Tesla OBD port) + Version 0.11.1 (2026-04-08) ======================== * New driver monitoring model diff --git a/common/params_keys.h b/common/params_keys.h index 12b89d87e93f85..e52775168301bc 100644 --- a/common/params_keys.h +++ b/common/params_keys.h @@ -147,7 +147,9 @@ inline static std::unordered_map keys = { {"NAPRadarBehindNosecone", {PERSISTENT, BOOL}}, {"NAPRadarEnabled", {PERSISTENT, BOOL}}, {"NAPRadarOffset", {PERSISTENT, FLOAT, "0.0"}}, + {"NAPRoadSignFallbackKph", {PERSISTENT, INT, "0"}}, {"NAPScriptRunning", {CLEAR_ON_MANAGER_START, BOOL}}, + {"NAPTinklaICIntegration", {PERSISTENT, BOOL, "1"}}, {"TermsVersion", {PERSISTENT, STRING}}, {"TrainingVersion", {PERSISTENT, STRING}}, }; diff --git a/opendbc_repo b/opendbc_repo index affde530c0c1dc..ac463ef2a6b52c 160000 --- a/opendbc_repo +++ b/opendbc_repo @@ -1 +1 @@ -Subproject commit affde530c0c1dcd5eb845f9d31a43fbee7acba53 +Subproject commit ac463ef2a6b52cca3cb319ce1df36b6143b83e8f diff --git a/selfdrive/ui/layouts/settings/nap.py b/selfdrive/ui/layouts/settings/nap.py index 989d7ae2d1cfe4..c21ef7ceccf88e 100644 --- a/selfdrive/ui/layouts/settings/nap.py +++ b/selfdrive/ui/layouts/settings/nap.py @@ -227,7 +227,18 @@ def _build_items(self): self._brake_factor_buttons.action_item.set_enabled(False) self._all_items.append(self._brake_factor_buttons) - # ── Section 5: Advanced ── + # ── Section 5: Tinkla Buddy IC ── + self._all_items.append(section_header_item("Tinkla Buddy IC")) + + self._add_toggle( + NAPParamKeys.TINKLA_IC_INTEGRATION, + "Tinkla Buddy IC Integration", + "Render openpilot path, lanes and lead-car on the Tesla Instrument Cluster " + "via Tinkla Buddy. Only enable if you have a Tinkla Buddy installed with a " + "valid license. Display-only, has no effect on engage or safety.", + ) + + # ── Section 6: Advanced ── self._all_items.append(section_header_item("Advanced")) # Force Pre-AP is always on for now — grayed out in the ON position @@ -239,7 +250,7 @@ def _build_items(self): enabled=False, ) - # ── Section 6: Actions ── + # ── Section 7: Actions ── self._all_items.append(section_header_item("Actions")) self._backup_epas_btn = button_item( diff --git a/selfdrive/ui/mici/layouts/settings/nap.py b/selfdrive/ui/mici/layouts/settings/nap.py index c6ba0a213291dd..be8bc016edfae2 100644 --- a/selfdrive/ui/mici/layouts/settings/nap.py +++ b/selfdrive/ui/mici/layouts/settings/nap.py @@ -134,6 +134,10 @@ def __init__(self): ibooster_enabled = BigParamControl("ibooster enabled", NAPParamKeys.IBOOSTER_ENABLED) ibooster_enabled.set_enabled(False) + # ── Tinkla Buddy IC ────────────────────────────── + tinkla_ic_integration = BigParamControl( + "tinkla buddy ic integration", NAPParamKeys.TINKLA_IC_INTEGRATION) + # ── Advanced (locked on) ───────────────────────── force_pre_ap = BigParamControl("force pre-ap mode", NAPParamKeys.FORCE_PRE_AP) force_pre_ap.set_enabled(False) @@ -174,6 +178,7 @@ def __init__(self): calibrate_radar_btn, test_radar_btn, ibooster_enabled, + tinkla_ic_integration, force_pre_ap, backup_epas_btn, flash_epas_btn, From 88a49a8dcb81bd887577166259250b6306b9329d Mon Sep 17 00:00:00 2001 From: sveinmer Date: Tue, 26 May 2026 11:19:09 +0200 Subject: [PATCH 2/3] opendbc bump: cereal import fix for standalone build (CI green) Pulls in opendbc 644c7147 which replaces `from cereal import car` in hud_module.py with `from opendbc.car import structs`. Required because opendbc public CI builds the package standalone (no cereal installed) and was failing import. Co-Authored-By: Claude Opus 4.7 (1M context) --- opendbc_repo | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/opendbc_repo b/opendbc_repo index ac463ef2a6b52c..644c7147d82f20 160000 --- a/opendbc_repo +++ b/opendbc_repo @@ -1 +1 @@ -Subproject commit ac463ef2a6b52cca3cb319ce1df36b6143b83e8f +Subproject commit 644c7147d82f200fe48b525b6187f5b1ff15c19b From 930086a6c08573e57ceed7ec577abfee4a3cf7d1 Mon Sep 17 00:00:00 2001 From: sveinmer Date: Tue, 26 May 2026 11:21:44 +0200 Subject: [PATCH 3/3] opendbc bump: include cereal-import fix (CI green) Bumps opendbc submodule pointer to 90819d48 which replaces the `from cereal import car` with `from opendbc.car import structs` in preap/hud_module.py. Required for opendbc standalone CI builds where cereal is not installed. Co-Authored-By: Claude Opus 4.7 (1M context) --- opendbc_repo | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/opendbc_repo b/opendbc_repo index 644c7147d82f20..90819d48010285 160000 --- a/opendbc_repo +++ b/opendbc_repo @@ -1 +1 @@ -Subproject commit 644c7147d82f200fe48b525b6187f5b1ff15c19b +Subproject commit 90819d48010285d605427325cb868f199638d4b9