Commit Graph

195 Commits

Author SHA1 Message Date
mawei a4d3a1f06f volkswagen: match MQB EVO radar gating to the reference port 2026-10-08 09:31:40 +08:00
mawei 40941c801e volkswagen: ALT CRC for MQB EVO Gen2 and fingerprint-based radar availability 2026-10-08 09:31:40 +08:00
mawei 983e6ae360 updated: add missing time import 2026-10-08 09:20:19 +08:00
mawei a8736fdbcb volkswagen: read MQB EVO radar tracks from Strukturen_01 2026-10-08 09:20:19 +08:00
1okko 330d3f634d volkswagen: keep MQB EVO selectable outside dashcam mode 2026-10-07 19:55:49 +08:00
1okko 2b59d8e35b volkswagen: add Audi RS3 2026 MQB EVO Gen2
Add AUDI_A3_MK4 (Audi RS3 2026) on the MQB EVO Gen2 path, select vw_mqbevo_2024, and honor CLUSTER_NO_TA_LANES in the VW LKA HUD.
2026-10-07 19:48:33 +08:00
1okko 228227617b panda: rebuild prebuilt firmware for MQB EVO safety 2026-10-07 12:47:11 +08:00
1okko 409e1e2156 volkswagen: list MQB EVO platforms as non-tested cars 2026-10-07 12:45:28 +08:00
1okko 3a4021b124 volkswagen: port MQB EVO support
Port the infiniteCable2 MQB EVO car port: Golf Mk8 and SEAT Leon Mk4 platforms, MQB EVO DBC/generator sources, CarState/CarController/RadarInterface handling, and the Volkswagen MQB EVO safety mode.
2026-10-07 12:43:25 +08:00
1okko 7de66e4b48 ui: show temperature status instead of numeric value 2026-10-07 12:29:15 +08:00
1okko 8d0bf5ee0a tinygrad: sync vendored runtime to fe5d3169b
The current recompiled42 model catalog declares tinygrad_ref=fe5d3169b. The old vendored e837 runtime accepted the pkl but left policy outputs at zero, so sync the runtime package to the compiler version used by the downloaded models.
2026-10-07 12:00:37 +08:00
1okko 091fbfd351 tinygrad: tolerate empty rewrite timings 2026-10-07 11:50:13 +08:00
1okko b0c74b1a93 modeld_v2: add missing dynamic unpickler helpers 2026-10-07 11:48:34 +08:00
1okko 29123201ea Sync master-dev #2036 (2026-10-06)
Apply the commaai/openpilot -> sunnypilot master sync while preserving c3xl-dev customizations: bundled CD210 startup, model mirror fallback, pyserial launch fix, hidden UI controls, vendored tinygrad, and local vehicle changes. Keep the four modeld_v2 warp pkls; skip the 740MB chestnut big-model artifact.
2026-10-07 11:46:04 +08:00
Amy Jeanes e0ab1731be mici: add a refresh models button to the models panel (#2018)
models: add a refresh models button to mici, gate and show progress on both panels

Adds the refresh-models tile to the mici models panel (it was missing there),
factoring the sync-key trigger + in-progress check into refresh_model_list()
and refresh_in_progress() shared with the big UI.

On both UIs the refresh button is now gated on offroad + not-downloading +
not-refreshing (the manager runs offroad-only and its per-tick manifest fetch
sits above a blocking download loop, so a refresh queued in either state would
stick), and shows progress while the manager refetches: mici shows "fetching..."
on the tile, the big UI flips its button from REFRESH to "FETCHING..." to match
its FETCHING.../SELECT/CLEAR label style (as in the OSM panel), replacing the
old fire-and-forget popup.

Claude-Session: https://claude.ai/code/session_01EGMnVnSk5inGTrd7kuDVG9

Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Co-authored-by: James Vecellio-Grant <159560811+Discountchubbs@users.noreply.github.com>
(cherry picked from commit a5f44653d7f43ad57fef2f546f3916ec4cbf3c56)
2026-10-07 11:35:52 +08:00
1okko 985ef68d01 c3_client: improve websocket close and reconnect handling 2026-10-06 21:20:39 +08:00
1okko caba000215 ford: support Edge MK2 yaw counter step of 5 2026-09-30 20:16:26 +08:00
1okko b91742d4be ford: add Edge MK2 torque parameters 2026-09-30 19:32:53 +08:00
1okko 0433209ea9 ford: expose Edge MK2 in vehicle selector 2026-09-30 19:26:13 +08:00
1okko 670990b9a6 ford: add Edge MK2 platform with alternate steering angle 2026-09-30 19:20:46 +08:00
openpilot 97ad017081 carstate.py:硬编码福特carstate
(cherry picked from commit 4745c79357)
2026-09-30 19:15:59 +08:00
1okko 59f1adcd5a c3_client: support legacy and new cereal layouts 2026-09-29 20:38:50 +08:00
1okko 44153857aa docs: update changelog 2026-09-28 20:37:34 +08:00
1okko 57502cb445 updater: check for updates while online 2026-09-28 20:33:21 +08:00
1okko 718a417672 hardware: suppress boot-time temperature spike 2026-09-28 20:24:03 +08:00
1okko 7a244f3e1b updater: show download progress and speed 2026-09-28 19:59:00 +08:00
1okko a64e450718 ui: revise offroad update prompt translation 2026-09-27 15:26:05 +08:00
1okko b1a72b0f15 ui: clarify camera offset translation 2026-09-26 23:21:56 +08:00
1okko f0e2156b65 agnos: use patched 19.7-c3xl-dev system image from R2 2026-09-26 23:05:56 +08:00
1okko 6e9946a0dc ui: restore camera offset control in model settings 2026-09-26 13:54:33 +08:00
1okko 9938011315 honda: support Civic 2022 radar variants with HUD on ACC bus 2026-09-23 14:48:42 +08:00
1okko 8c81232959 honda: keep can_valid true when ACC_HUD and LKAS_HUD are omitted 2026-09-23 14:38:42 +08:00
Comma Device fafa5cd31b ui: add BeepEnabled toggle to visual settings 2026-09-19 10:26:30 +08:00
Comma Device 627c28695b honda: add UI opt-in for Bosch-A radar 2026-09-16 21:24:22 +08:00
Comma Device 1274eee61b honda: trigger the Bosch-A decoder on any main frame
Upstream triggers on 0x2FF, the slot-15 companion burst. A car only broadcasts
the object slots that hold a target, so on the 2018-22 Accord rlog (144k Bosch-A
frames, 80 ids) 0x2FF never appears and the decoder never evaluated: zero radar
points. Any Bosch-A main frame now drives evaluation; per-slot signal reads are
unchanged, so this only changes when we look.
2026-09-16 19:21:08 +08:00
Comma Device 757e0f0d53 honda: wire the Bosch-A radar DBC on every Bosch-A platform
Widening the enable gate to the whole HONDA_BOSCH_A family meant the other
platforms (N-Box, Accord, Civic Bosch Diesel, CR-V Hybrid, RDX 3G, Insight,
Honda e) still lacked a Bus.radar entry, so constructing the radar interface
raised KeyError: Bus.radar. Give each of them the hand-written Bosch-A DBC.
2026-09-16 19:16:48 +08:00
Comma Device 1fb5f7969e honda: update the radar tests for the wider enable gate 2026-09-16 19:15:52 +08:00
Comma Device a4eb1ef4e9 honda: enable the Bosch-A radar on every Bosch-A platform
Instead of the verified-subset allowlist (Civic Bosch / CR-V 5G only), clear
radarUnavailable for the whole HONDA_BOSCH_A hardware family so the decoder can
be tried on other Bosch-A cars. The sentinel-file kill switch still turns it
off, and HONDA_BOSCH_A_RADAR_VERIFIED is kept for reference.
2026-09-16 19:15:20 +08:00
Comma Device 8b1868bd52 honda: use the deprecated RadarPoint group for aRel/yvRel/measured
opendbc's RadarPoint keeps aRel, yvRel and measured inside the deprecated group
(the upstream fork had them at the top level), so assigning them raised
'struct has no such member; name = aRel'. Point at the group in the radar
interface and in the tests.
2026-09-16 19:08:15 +08:00
Comma Device 5fbf020db6 honda: pass CP_SP into the Bosch-A radar interface
sunnypilot's RadarInterfaceBase.__init__ takes (CP, CP_SP); the upstream file
only took CP, so constructing the radar interface raised
'RadarInterfaceBase.__init__() missing 1 required positional argument: CP_SP'.
Build CP_SP in the tests as well and pass it through.
2026-09-16 19:06:32 +08:00
Comma Device 3c4bc731c2 honda: add the Bosch-A radar unit tests
Ported from StarPilot together with the radar interface. The tests cover the
16-slot CAN id map, DBC bit geometry, range/azimuth/vRel conversion, object
lifecycle, fallback behaviour, stale-bus handling and the platform allowlists.

The tester toggle uses this fork's sentinel file
(/data/params/d/HondaBoschARadarOff) instead of the upstream HondaBoschARadar
params key, so the suite runs without a libparams rebuild.
2026-09-16 19:05:00 +08:00
Comma Device bc740bd0b3 honda: read the Bosch-A radar on verified platforms (RX-only)
Ported from StarPilot (mawei/StarPilot): the sunnypilot Honda radar interface
deliberately returns no points for Bosch cars, so radard never sees the stock
radar. This brings in the hand-written 16-slot Bosch-A decoder:

- radar_interface.py: full Bosch-A object bank decode (0x280-0x2FF main frames
  plus the 0x290-0x297 companion frames), range/rate/angle conversion and sweep
  triggering. Receive only - it never sends CAN, so factory AEB/CMBS/FCW stay
  live and no safety change or rebuild is required.
- dbc/honda_bosch_a_radar.dbc: the bit geometry the decoder parses.
- values.py: HONDA_CIVIC_BOSCH and HONDA_CRV_5G (the verified platforms) point
  Bus.radar at the new DBC; HONDA_BOSCH_A / HONDA_BOSCH_A_RADAR_VERIFIED sets
  describe which platforms may use it.
- interface.py: radarUnavailable is cleared for verified platforms unless a
  kill switch is present. The switch is a sentinel file
  (/data/params/d/HondaBoschARadarOff) instead of a params_keys.h entry, so no
  libparams rebuild is needed.

With radar points flowing, the existing sunnypilot longitudinal control can use
them; nothing in carcontroller or safety was touched.
2026-09-16 18:54:54 +08:00
dzid26 960f1c6c48 camera offset: use real horizon for the shear center (#2016) 2026-09-14 21:21:17 +08:00
Matt Purnell ade767538a modeld: set the valid flag on modelDataV2SP (#2017)
* modeld: set the valid flag on modelDataV2SP

modelDataV2SP was published with new_message's default valid=False, so
the message was permanently invalid. Nothing acts on that today because
selfdrived lists it under ignore_valid, but it shows up as invalid in
every commIssue dump and hides any real problem behind a false one.

Copy modelV2's flag, the same way fill_model_msg already does for
drivingModelData.

Assisted-by: Claude
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>

* modeld_v2: set the valid flag on modelDataV2SP

The sunnypilot model runner publishes the same message and had the same
gap. Copy modelV2's flag here too, so both daemons agree.

Assisted-by: Claude
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>

---------

Co-authored-by: Claude Fable 5.1 <noreply@anthropic.com>
Co-authored-by: James Vecellio-Grant <159560811+Discountchubbs@users.noreply.github.com>
2026-09-14 21:21:17 +08:00
Amy Jeanes 156149db28 models: don't freeze the ui on an unset LagdToggleDelay (#2026)
models: don't block the ui on an unset LagdToggleDelay

Params.get's second positional is `block`, not a fallback value, so
get("LagdToggleDelay", "0.2") passes block=True and does a blocking read.
When the param is unset this spins the ui thread until it appears, freezing
the models panel (the description is rebuilt every frame). Read it the same
way livedelay/lagd_toggle.py does.

Claude-Session: https://claude.ai/code/session_01EGMnVnSk5inGTrd7kuDVG9

Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Co-authored-by: James Vecellio-Grant <159560811+Discountchubbs@users.noreply.github.com>
2026-09-14 21:21:17 +08:00
fishop 9ae11af709 launch: auto-install pyserial on AGNOS before updater runs 2026-09-12 16:20:20 +08:00
Comma Device 7d262eb5fd registration: never skip into the OS until the backend authorizes the device
A fresh MR.ONE C3XL that was not yet authorized by the backend used to give
up after ~60s and boot into the OS with DongleId=UnregisteredDevice (the
60s hotfix return in the retry loop). From then on every boot skipped
registration entirely.

- remove the 60s give-up: keep retrying the registration screen until the
  backend returns a valid dongle id
- only treat HTTP 200 + a real dongle_id as authorized; 402/403, other
  statuses, bad JSON or a missing/unregistered dongle id all keep waiting
  on the registration screen (\ contact MR.ONE\)
- a device with no key pair is likewise not authorized and stays on the
  registration screen instead of booting in
2026-09-08 20:19:44 +08:00
Comma Device 4914609b2d bundle default CD210 pkl: usable on first boot without download
- replace the bundled openpilot/selfdrive/modeld/models/driving_tinygrad.pkl
  (compiled with an old tinygrad, unloadable by the current runtime) with the
  freshly compiled CD210 pkl (vision+policy split, run_policy format)
- modeld_v2: fall back to the bundled default pkl when no active bundle is
  selected, so a fresh install drives immediately even offline
- helpers: when no bundle is selected but the bundled default pkl exists, the
  active model runner is tinygrad (modeld_v2), not stock modeld (which requires
  a run_model-format pkl)
2026-09-07 20:42:32 +08:00
Comma Device d6bdf9e745 models: make default model reliable on first boot
- models_manager: always run so the first-boot/upgrade default model (CD210)
  download continues even when onroad (was only_offroad, stalling the download)
- modeld_v2: _pkl_exists now requires the pkl or every chunk file to exist; a
  bare chunkmanifest is written eagerly for all catalog models and must not be
  treated as downloaded (fixes loading half-downloaded models)
- models UI: only synthesize the Default row when the default model is not
  already listed in the catalog (avoids two CD210 entries)
2026-09-07 20:32:20 +08:00
Comma Device 20609763ea modeld_v2: realize frames on npy -> amd (#1993) 2026-09-06 15:52:21 +08:00