Commit Graph

19369 Commits

Author SHA1 Message Date
Jason Wen a9f252db8d bump 2026-11-06 17:20:45 -05:00
Jason Wen 411787f836 bump opendbc 2026-11-06 16:43:52 -05:00
Jason Wen 520762ff38 opendbc: bump 2026-11-05 08:06:44 -05:00
Jason Wen c01f0cd41d Merge branch 'hkg-angle-steering-2025' into hkg-adas-ecu-drv-interceptor-new
# Conflicts:
#	opendbc_repo
2026-11-05 06:40:21 -05:00
Jason Wen 5999ccede8 bump 2026-11-05 06:36:13 -05:00
Jason Wen 5610e9733c Merge branch 'master' into hkg-angle-steering-2025 2026-11-05 06:35:07 -05:00
James Vecellio-Grant 932ff06d93 modeld_v2: fix action curvature (#2091) staging/2026.003.000/2026.11.04-5003 2026-11-04 14:32:06 -08:00
Jason Wen a93347e453 bump opendbc 2026-11-04 16:18:58 -05:00
James Vecellio-Grant 8cf6ff9a33 controls: predictive accel boost (#2089)
* controls: predictive accel boost

* ew

* lower entry threshold for fade, pos still builds. brake_probs still triggers at same hyp

* ui: add MICI accel boost side-panel bar

* jason and kumar fought for hours to make this default so here we go

* controls: accel boost review fixes

* [MICI] ui: move accel boost ball swap out of stock

* ui: drop restating accel boost comments

* ui: drop accel boost onroad indicator

---------

Co-authored-by: rav4kumar <meetkumardesai@gmail.com>
Co-authored-by: Jason Wen <haibin.wen3@gmail.com>
staging/2026.003.000/2026.11.04-5001
2026-11-03 23:16:52 -05:00
Jason Wen 000bd5a637 bump opendbc 2026-11-02 14:53:35 -05:00
Jason Wen 6d7181132b send hda icon 2026-11-01 23:25:50 -05:00
royjr a86979d2b2 sunnylink: gate steering arc toggle on MICI (#2085)
sunnylink-hide-steering-arc-mici
staging/2026.003.000/2026.11.01-4996
2026-11-01 12:02:47 -05:00
Jason Wen c789ac0dff bump opendbc 2026-10-31 13:24:03 -04:00
Jason Wen f19f9d9b1d bump opendbc 2026-10-31 09:19:57 -04:00
Jason Wen a9901dd0fa bump opendbc 2026-10-31 08:52:18 -04:00
Jason Wen 091a36f2eb bump opendbc 2026-10-30 22:58:41 -04:00
Jason Wen d415348e81 bump opendbc 2026-10-30 17:21:20 -04:00
Jason Wen 1da526ad4c bump opendbc 2026-10-30 02:54:58 -04:00
Jason Wen 2761461dea bump opendbc 2026-10-29 23:40:17 -04:00
Jason Wen 2099cf035f all angle cars have ccnc 2026-10-29 23:18:09 -04:00
Jason Wen b9b043395b bump opendbc 2026-10-29 23:13:14 -04:00
Jason Wen ccbb7a171a bump 2026-10-29 20:15:35 -04:00
Jason Wen 28e9de33a9 Merge branch 'hkg-angle-steering-2025' into hkg-adas-ecu-drv-interceptor-new
# Conflicts:
#	opendbc_repo
2026-10-29 15:23:15 -04:00
Jason Wen 6484214fdd hyundai: gate interceptor long on alpha toggle 2026-10-29 12:51:01 -04:00
Jason Wen c8bc5858cf hyundai: send and check interceptor version 2026-10-29 12:28:09 -04:00
Jason Wen 30653bb0ab Merge branch 'master' into hkg-angle-steering-2025
# Conflicts:
#	opendbc_repo
2026-10-29 11:53:16 -04:00
github-actions[bot] 6f7a2c94c1 [bot] Update Python packages (#2068)
* Update Python packages

* no

---------

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Co-authored-by: Jason Wen <haibin.wen3@gmail.com>
staging/2026.003.000/2026.10.29-4993
2026-10-29 00:38:25 -04:00
Jason Wen 52600eccbf sunnylink: send car capability fields (#2082) staging/2026.003.000/2026.10.29-4991 2026-10-29 00:23:18 -04:00
Jason Wen 24f531b83c models: explain why Blendful is unavailable (#2081)
* models: explain why Blendful is unavailable

* [MICI] models: shorten Blendful unavailable text

* models: drop sunnylink capability fields
staging/2026.003.000/2026.10.29-4989
2026-10-29 00:17:44 -04:00
James Vecellio-Grant 97135965ef controls: Blendful lateral policy (alpha) (#2073)
* init

* settings

* simple

* modeld_v2: blended laneful using weighted stds

* red diff that

* default to 1.0 while i test variable weighting

* blended correction over .3 s

* decay trust when model intends to move plant off lane. think going around cones and stuff

* sharp curvies have some issues :O

* quicker entry

* blend 30% plan with action  projeciton

* blending 50% on sharp curvaruerqw

* jerk limiting correctin strength so that hecker doesnt spin spin yo wheel

* handle one line flicker by trust÷2

* less is more

* winner takes all trust system in lane lines

* Ui fix

* blendful

* sm logging + qlog logging

* Update modeld.py

* Update modeld.py

* relearn ideal sim pose

* interpolate smoothness on straights to reduce mr kumar and his mdv3 jiggle shennanigans

* let unwind be handled by laneless

* ffs

* blendful

* no tap

* use constants

* fade on trust

* use blendful trust

* dont guess

* white is model path

* match width

* fade out blue

* dead

* blue only

* sqrt bar

* ill take it from here thanks

* tizi

* move to models

* cleanup

* gate like rainbow

* tick on new data

* so I can sleep at night

* keep pill current

* fine

* smoother release authority

* satisfy royjr

* decay one line and give full authority in curvy curves; kappa=curv

* he does not like 1ms

* smoother

* force tg

* oop

* hold blue

* rm

* early return

* add custom model gate & Alpha tag

* more accurate

* more

* reduce

* better

* more accurate

* ci

* small regression test

* ui: tighten Blendful gating and settings copy

* ui: clarify Blendful toggle description

* ui: gate Blendful on the launched model runner

---------

Co-authored-by: royjr <royjr96@gmail.com>
Co-authored-by: nayan <nayan8teen@gmail.com>
Co-authored-by: Jason Wen <haibin.wen3@gmail.com>
staging/2026.003.000/2026.10.29-4987
2026-10-28 20:02:55 -04:00
royjr 90a541287f [TIZI/TICI] ui: fix steering arc (#2078)
fix tizi steering arc
staging/2026.003.000/2026.10.27-4985
2026-10-27 17:55:22 -04:00
amzoo db27a433fc Toyota TSS2: custom longitudinal tuning (#1774)
* TSS2-Smooth: add param, flag injection, UI toggle, and metadata

- Register TSS2-Smooth param in params_keys.h
- Add TSS2-Smooth to toyota keys in initialize_params()
- Update opendbc submodule to use CP_SP flag instead of direct Params import
- Add TSS2 Smooth Longitudinal toggle to Toyota settings UI
- Disable toggle when stock longitudinal is enforced
- Add TSS2-Smooth entry to params_metadata.json

* toyota: rework TSS2 smooth param and toggle

* bump opendbc

---------

Co-authored-by: Jason Wen <haibin.wen3@gmail.com>
staging/2026.003.000/2026.10.27-4981
2026-10-27 00:43:20 -04:00
Jason Wen a06366ce92 controls: decouple RELC from BSM blocking, allow nudge override (#2049)
* controls: decouple RELC from BSM blocking, allow nudge override

* nah
staging/2026.003.000/2026.10.26-4978
2026-10-25 22:48:26 -04:00
nitrobass24 861fd118a1 ci: scons cache test runs (#2074) staging/2026.003.000/2026.10.26-4976 2026-10-25 17:23:33 -07:00
Jason Wen 4e371fb488 Merge remote-tracking branch 'sunnypilot/sunnypilot/master' into hkg-angle-steering-2025 2026-10-25 09:53:27 -04:00
Jason Wen 8e740e0ac6 bump opendbc staging/2026.003.000/2026.10.23-4972 2026-10-22 22:20:29 -04:00
James Vecellio-Grant 9d029d683d models: self healing test for tg (#2072)
* models: self healing test for tg

* rm container

* ew

* set env

* set var
staging/2026.003.000/2026.10.22-4970
2026-10-22 13:43:42 -04:00
Amy Jeanes f78c6c2377 models: publish the download speed and derive the eta from it (#2052)
* models: publish the download speed and derive the eta from it

Fills in DownloadProgress.speed (bytes per second, declared with the parallel
downloader). The reporter measures the rate between its 0.5 s reports, smooths
it, and derives the eta from the bytes remaining at that rate instead of
extrapolating elapsed time. Speed is zeroed when a download ends, fails or is
cancelled and for a cached artifact, and copied across artifacts that share a
file like the other progress fields.

The big UI's Models page shows "12.3 MB/s" next to the progress bar and the
mici models panel shows it beside the percentage. Both take the max across a
bundle's artifacts, not the sum, since artifacts sharing a file mirror the same
transfer and only one file is ever in flight.

A stall decays the smoothed speed toward 0 without ever reaching it, so below
0.05 MB/s, which would only display as "0.0 MB/s", it snaps to 0. Both UIs
then show "--.- MB/s" while downloading with no rate (before the first reading
or during a stall) instead of a stuck "0.0 MB/s" or nothing, and the speed
recovers straight to the real rate once data flows again. The snap also keeps
the eta in range: without it a stall of about 25 s drove remaining / speed past
the capnp UInt32 eta, and the capnp error failed the download outright instead
of leaving the stall to the read timeout and retries. A test holds a piece
stalled until the published speed reaches exactly 0, and errors on that
overflow without the snap.

Assisted-by: Claude Code (Claude Opus 4.8)
Assisted-by: Claude Code (Claude Opus 5.5)

* remove unneeded comments

Assisted-by: Claude Code (Claude Opus 5.5)

* models: take the speed baseline before the workers start

The reporter took its starting byte count after the piece workers were
submitted, and starting each pool thread lets earlier workers run, so
bytes landed in that gap never counted toward a speed sample. Take the
baseline in _download_file before any worker exists and pass it in.

The test runs every piece inline in submit, so the whole file lands
before the reporter starts; with the late baseline the speed stays 0.

Assisted-by: Claude Code (Claude Opus 5.5)
staging/2026.003.000/2026.10.21-4967
2026-10-21 16:13:52 -07:00
James Vecellio-Grant 1aa3a430fb models: pin tg to @02e6981 (#2071) staging/2026.003.000/2026.10.21-4964 2026-10-21 11:11:24 -07:00
Amy Jeanes ddd7b14ebc models: download whole-file artifacts with parallel byte ranges (#2051)
* models: download whole-file artifacts with parallel byte ranges

HuggingFace's Xet CAS throttles each connection to roughly 1-2 MB/s but does
not limit connection count, so the single-stream _download_file left the link
idle most of the time. Replace it with a downloader that probes the size with
a one-byte Range request, creates the file at its final size and streams each
8 MB piece straight to its offset from one of 12 worker threads. The file is
never copied or assembled and only ever occupies its own size on disk. A
server that answers the probe with 200 gets one plain stream instead.
Every request sends Accept-Encoding: identity, because byte ranges count
encoded bytes while requests hands back decoded ones, so a compressed
response would land at the wrong offsets and fail as a short read.

Workers only write bytes; a reporter coroutine on the event loop publishes
progress every 0.5 s (instead of every 128 KB), re-raises the first worker
failure and polls the cancel ref. Transient errors (connection, timeout,
truncated body, HTTP 408/429/500/502/503/504) give a piece up to three
attempts; any other HTTP error fails the download at once. The whole-file
path now also publishes "verifying" while hashing before and after the
transfer, and the download is hashed against the manifest exactly as before.

A cancel has to wait for in-flight pieces to unwind (a blocked socket read
cannot be interrupted), so the row shows "canceling..." through a new
DownloadProgress.canceling flag instead of a frozen bar, and the mici cancel
button hides once the ref is gone, as it already does on the big UI.

DownloadProgress gains speed, canceling and resuming, appended to the capnp so
older readers are unaffected. All three are declared here so the wire format
lands in one place; speed and resuming are filled in by the follow-up speed
and resume changes.

Builds on #2050, which drops chunking and publishes models as whole files;
this makes that whole-file download parallel.

Measured on a comma 3X on WiFi: ~2 MB/s single stream, 17-24 MB/s steady and
30-60 MB/s peak with 12 range connections, the count picked from an on-device
sweep. Disk is not the bottleneck (eMMC writes at 56-67 MB/s with fdatasync).

Tests drive the real downloader against a local threaded range server: piece
tiling, actual parallelism (a stalled piece does not block the others), the
no-range fallback, per-piece retry, 4xx, cancel via ModelManager_DownloadRef
and mid-piece, verify/cached/downloaded state, a probe failure moving
past verifying, and hash mismatch cleanup.

Also drops two chunk-era leftovers in the tests: a stale "no chunks" note on
manifest_bundle and a one-item URL loop in the live manifest check.

Assisted-by: Claude Code (Claude Opus 4.8)
Assisted-by: Claude Code (Claude Opus 5.5)

* remove unneeded comments

* models: trim the manager tests to the regressions they catch

Each remaining test is there because a deliberate break in manager.py,
helpers.py or fetcher.py fails it. Tests that only re-checked what another
already catches are merged into a happy-path download or a table, and
checks of constants rather than behaviour are dropped. The fake server
now starts per test, keeps its state in one dataclass, and can cut a
response short.

Against 66 deliberate breaks, every one the old tests caught still fails,
and a 404 being retried, a short read and its retry, and the display
flags choosing the big model without a GPU are now caught too.

Assisted-by: Claude Code (Claude Opus 5.5)

* Update test_manager_download.py

* Update manager.py

---------

Co-authored-by: James Vecellio-Grant <159560811+Discountchubbs@users.noreply.github.com>
staging/2026.003.000/2026.10.21-4961
2026-10-21 09:35:43 -07:00
James Vecellio-Grant 922513f312 ci: lfs pointers survive gc (#2066)
* ci: lfs pointers survive gc

* comma got gc'ed

* format
staging/2026.003.000/2026.10.19-4955 staging/2026.003.000/2026.10.19-4959
2026-10-18 22:41:23 -07:00
Kumar 0dacd0eec4 Revert "mapd: disable map-based Smart Cruise Control and speed limit sources until mapd has a position source" (#2065)
This reverts commit b6170ac5e9.
staging/2026.003.000/2026.10.19-4953
2026-10-18 19:25:14 -07:00
Kumar 09b2f4bbe0 mapd: fix mapd GPS position handling (#2064)
* mapd: restore the position mapd reads from llk

* turn it on

* mapd ui

* Revert "mapd ui"

This reverts commit 857d430297.

* Revert "turn it on"

This reverts commit 2a5d9a62be.
staging/2026.003.000/2026.10.19-4951
2026-10-18 19:07:32 -07:00
Amy Jeanes 0120b66f05 modeld: set AM_PERF_LEVEL to high for perf (#2061)
set AM_PERF_LEVEL to high for perf

Co-authored-by: James Vecellio-Grant <159560811+Discountchubbs@users.noreply.github.com>
staging/2026.003.000/2026.10.18-4949
2026-10-18 16:16:49 -07:00
James Vecellio-Grant f09b04c267 ci: upload big model over lfs (#2063)
ci: push chestnut via lfs
staging/2026.003.000/2026.10.18-4948
2026-10-18 16:14:06 -07:00
James Vecellio-Grant f0617e11a6 ci: fix default models (#2062)
* ci: fix default models

* shouldnt of been deleted

* skip dm warp as well
staging/2026.003.000/2026.10.18-4944
2026-10-18 15:30:33 -07:00
Jason Wen 0739fe823d Sync: commaai/openpilot:master → sunnypilot/sunnypilot:master (#2059) 2026-10-18 15:39:49 -04:00
Jason Wen b6170ac5e9 mapd: disable map-based Smart Cruise Control and speed limit sources until mapd has a position source 2026-10-18 15:25:45 -04:00
James Vecellio-Grant e6864661c9 modeld_v2: create a compiled pkl -> gpu kernel artifact converter (#2053) 2026-10-18 15:25:45 -04:00
James Vecellio-Grant 4ff90ff8d0 modeld_v2: compile models to plain gpu memory artifact (#2050) 2026-10-18 15:25:45 -04:00