* modeld_v2: safe model validation
* fix string
* numpy
* dumb
* god use full attribute names please
---------
Co-authored-by: Jason Wen <haibin.wen3@gmail.com>
* bitrate controller
* ability to set the quality so a certain level, make message handler a switch case
* distinct bitrate levels and exponential backoff of raising bitrate
* add med level threshold
* fix
* fix
* simplify
* clean
* remove CarState.brake refs
Intending to deprecate this field since it's set incorrectly by
most car implementations, and (essentially) unused in openpilot.
Everything should be using CarState.brakePressed.
See https://github.com/commaai/opendbc/pull/3338.
* fix test_models.py
* hardware: read network info without NetworkManager DBus
* hardware: simplify wpa_cli SSID escape decoding
* hardware: restore cellular block in get_network_type to match master
* hardware: factor wpa_cli helper for key=value parsing
* hardware: comment SSID byte conversion for keyfile match
* hardware: comment NM metered enum values
* hardware: use check_output for ip route and wpa_cli helpers
* hardware: read default route iface from /proc/net/route
* hardware: simplify default route iface parsing
* hardware: only check for metered == 1
* hardware: also look for *.nmconnection in /data/etc/NetworkManager/system-connections
* hardware: use nmcli for runtime metered guess on wifi
* socket
* cleanup
* poor
* lil more
* mv that
---------
Co-authored-by: Adeeb Shihadeh <adeebshihadeh@gmail.com>
* initial codex
* remove ISP delay from encode ms
* try something simpler
* not allowing increase bug
* decrease bitrate increase rate
* upsample only on consecutive good checks
* rearrange
* clean
* Revert frame timing processing time change
* clean
* remove bitrate option and just do it on --stream
* make set_bitrate a lot more simple
* clean default impl
* further cleaning
* struct for bitrate to pass ci
* refactor a bit
* add comment
* small clean
* add init()
* increase bitrate
* update ffmpeg message
* remove unnecessary include
* modify set_bitrate
* change to Param
* remove getInt helper; add back in diff pr
* reword unclear error message
* move webrtcd change to new branch
* Reapply "modeld: split warp" (#38085)
This reverts commit d489dd8909.
* don't time make_random_inputs
* depend on chunk targets
* also depend on compile_modeld's dependencies
* athenad and webrtcd updates
* remove feature stream services from webrtcd split
* stream encoder thread
* reduce diff
* wire webrtc to livestream camera encoder
* request livestream camera switch service
* add frame timing headers
* rfctr
* diff
* clean
* remove camera list in favour of init camera field
* remove cors
* clean
* remove unused
* remove extra try except
* remove video_tracks unused
* add back exception trace
* add stream road camera info to stream cameras
* fix
* add back assert
* clean diff
* clean diff
* add testJoystick only on body
* fix camera list
* remove reference to future service
* video_tracks list add back
* encode all cameras and swap in video track in webrtc
* clean
* explicitly gate bridge send
* clean leftover
* rearrange video.py
* fix lint
* athenad and webrtcd updates
* remove feature stream services from webrtcd split
* stream encoder thread
* reduce diff
* wire webrtc to livestream camera encoder
* request livestream camera switch service
* remove camera list in favour of init camera field
* remove cors
* clean
* remove unused
* remove extra try except
* add back exception trace
* add stream road camera info to stream cameras
* fix
* clean diff
* clean diff
* add testJoystick only on body
* fix camera list
* remove reference to future service
* encode all cameras and swap in video track in webrtc
* clean
* explicitly gate bridge send
* clean leftover
* make local bodyteleop work still
* athenad and webrtcd updates
* remove feature stream services from webrtcd split
* remove cors
* clean
* remove unused
* remove extra try except
* add back exception trace
* clean diff
* clean diff
* add testJoystick only on body
* fix camera list
* remove reference to future service
* zero ll patched big model
* probe in a subprocess so usbgpu lock gets released
* compiles
* runs
* num_jobs gets overwritten, use side effect
* poll tg devices
* make sure build crashes on missing gpu
* fine not to rely on Device.default
* seperate tg env for each model runner
* comment
* Revert "seperate tg env for each model runner"
This reverts commit f6470cc4258eaeb3e8e37907ef370871c9af5aa4.
* env is shared, gate on flag
* no fallback warp dev must be set
* build for current device only, unless pc/release
* comment
* list
* listen for plug in
* add icon to status bar, read params on every frame (?)
* log available devices
* try copy out when loading?
* Revert "log available devices"
This reverts commit e8c52a5d59456d4820ecb13b99a6c46ea1386a20.
* Revert "try copy out when loading?"
This reverts commit 518f403aa03faeda1950fe3dbce0d9e4c1584455.
* don't trigger device probe/caching on modeld prepare
* re-export with ll and road edges
* dont cache devices in manager process
* get USBGPU from params
* no usbgpu env
* missed one
* sconscript don't poll
* unconditional env
* always explicitely set devices on input tensors
* set DEV so amd uses right compiler and iface??
* fix flag
* bump tg
* rm xdg_cache_home
* tg don't bump all the way
* missing gmmu=0 at compile time
* dm set dev
* tg backend
* update gitignore
* missing import
* unused imports
* rely on Device.DEFAULT at compile time (already the case bc onnxrunner)
* comments
* dm warp needs DEV set too
* build both smol and big
* misc typos
* set dev at compile time
* don't need
* DEV=CPU when getting metadata, ensure we don't grab gpu lock
* this would also grab lock
* put bool
* warp compile always prepare only
* missed one
* poll ui
* missing here
* don't force usbgpu at build time
* tmp patch fetch_fw
* catch all, follow hardwared patterns
* simpler
* compile make input queues
* revert this
* group this more readable
* rm empty line
* make dummy frame using numpy
* revert compile make input queues
* no compiler at runtime
* cleanup
* fine to rebuild all on change to device node for now
* fix usbgpu_present
* fix sconscript
* no size in header stream decompress
* DEBUG=2
* minimal viable feedback
* egpu gray
* oops
* gotta do this actually
* modeld build only depends on modeld devices
* don't ship onnx to release? or chunk
* don't need
* can only set compiler on dev=
* none device works, will use default
* make linter happy
* chunk agnostic onnx input to compile_modeld
* chunk big onnx
* +x chunker
* fix #!
* and don't ship chunked onnx to release
* firmware now in correct location
* better err on missing onnx/chunk
* SConscript also need to accept chunked onnx
* metadata also need to load maybe chunked
* dedupe cmd
* this needs to be on cpu
* devices are set in the tgflags, we already depend on them
* rebuilding on changed order is fine
* read file chunked can already load either chunked or not
* chunk all big onnx
* less confusing
* unused import
* python device to load onnx bytes
* default device for runners, python for metadata
* why not
* chunked to shm
process_replay/migration: drop transitive dep on long_mpc/acados
migrate_longitudinalPlan only needs get_accel_from_plan + CONTROL_N_T_IDX,
both available from drive_helpers + ModelConstants directly. Importing
from longitudinal_planner instead pulled in long_mpc -> libacados.so as
an eager side-effect, which downstream log-migration consumers (e.g.
commaai/xx pipeline) shouldn't pay for.
Brand-specific capabilities (hyundai_alpha_long_available,
subaru_has_sng) only resolved from CarPlatformBundle, which requires
manual car selection. Auto-fingerprinted vehicles had no bundle,
leaving these capabilities at default false — hiding vehicle settings
on the dashboard despite working on the device UI.
Add _resolve_brand_capabilities() with bundle-first, CP-fallback
pattern matching the device UI layouts (hyundai.py, subaru.py).
Fixes https://community.sunnypilot.ai/t/5126
* serverless code sync
* rm stuff
* we have ls-files for this
* rm
* no debounce
fix
* fix
* no del
* no init
* clean up
* clean up
* smol
* fixup
* rm
* clean up
* any change
* rm arg
* rm
* rm
* speedup slowest
* less setup
* rm som reset logging
* simpliy a lil more
* lil more
* down to 36s
* sleeeeeeep
* finishing touches
* oopsie
* ty fix
---------
Co-authored-by: Comma Device <device@comma.ai>
* filter lead prob
* rename
* try correcting model bias
* Revert "try correcting model bias"
This reverts commit b5e9b7147e58f200ca2e02ccea8adf88be99e206.
* fast gain slow lose
* cmt
* deb
* rename
* rename
* end
* py py py
* sunnylink too
* refactor
* this is not needed anymore
* mici mici
* ugh
* retry CI
* ui: refactor default model name handling
Move DEFAULT_MODEL constant into sunnypilot/models/default_model.py
and remove the one-liner common/model.py. Strip the hardcoded
" (Default)" suffix from the constant value so each UI site appends
it contextually, keeping the raw model name clean for the schema
payload to sunnylink.
Replace the DefaultModel param approach with schema["default_model"]
injected at schema assembly time, eliminating a redundant param write
on every sunnylinkd start. Remove DefaultModel from params_keys.h and
params_metadata.json.
Update update_default_model_name() to do a targeted regex replacement
instead of overwriting the whole file, since the constant now lives in
a module with other code.
---------
Co-authored-by: Jason Wen <haibin.wen3@gmail.com>
* ci: simplify cereal validation to sparse-checkout + pycapnp, drop scons build
Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
* more
* fix: resolve cereal_dir to absolute path before passing to capnp.load
Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
* ci: init opendbc submodule after sparse checkout to resolve car.capnp symlink
Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
* try to break it
* Revert "try to break it"
This reverts commit 79ce135c5f.
* try to break it
* Revert "try to break it"
This reverts commit 1eaa9e79e6.
---------
Co-authored-by: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
ui: nonblocking writes for ExperimentalMode + DriverView toggles + cycle-restart
All four put calls fire from the main render thread on user interaction
and block on disk fsync, causing visible UI frame spikes.
Each consumer is safe under nonblocking:
- onboarding inactivity_callback: write-and-forget (~25 ms saved)
- home long-press exp toggle: ui_state.experimental_mode owns visual state (~10 ms)
- onroad exp_button: $held_mode + selfdriveState owns visual state
- restart_needed_callback (OnroadCycleRequested): cross-process signal,
consumer is selfdrived which polls the param
BigParamControl-driven toggles in settings (developer.py, toggles.py)
are intentionally left blocking — those widgets refresh visual state
from disk every frame to mirror external changes, which would race a
nonblocking write.
* snap logic in scroll panel
* match previous snap speed
* velocity lookahead makes scrolling on main layout super easy
* turn off
* remove velocity lookahead
* cmts
* remove handle out of bounds
* cmts
* old style
* back
* clean up
* re-use
* revert
* finish snap when settings is clicked while moving
* rm cmt
* log raylib fps
* log fps from frame time
* whitespace
* or just log frame time?
* init pubmaster in init window
* yield timings
* bump ordinal
* dont log on screen off
* UInt
* lint
* /0
* oops
* oops2
* more precise raylib frame time, can get fps with 1/ft
* don't crash on screen off
* NL
* no _
---------
Co-authored-by: Shane Smiskol <shane@smiskol.com>
* 1
* fix
* uh
* more
* for now
* v2
* update
* more subs
* readme
* vehicle
* cycle init
* options
* new
* combine
* new
* dynamic unit
* default
* move it
* syncing more
* more
* boom shakalaka
* rearrange
* partial availability
* move
* more
* more
* hide
* move
* revert
* more
* new
* set
* sync
* dynamic
* slightly more
* update
* update
* less
* in another pr
* more
* move and fix
* device type
* order
* order
* order
* fixes
* ew
* Revert "fixes"
This reverts commit 53a2adb45a.
* sunnylink: bundle-first capabilities + protocol_version
Bundle-first brand resolution, fix steer_control_type to use
CP.steerControlType (physical) not lateralTuning.which() (tuning class),
add Subaru/Hyundai opaque per-platform flags from CarPlatformBundle, and
embed PROTOCOL_VERSION in the capabilities payload.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
* sunnylink: tighten settings_ui gates against Raylib parity
Brand gates on MadsMainCruiseAllowed/MadsUnifiedEngagementMode (rivian +
tesla-no-bus); convert enablement->visibility on items Raylib hides
(DisableUpdates, EnableGithubRunner, EnableCopyparty, QuickBootToggle,
HyundaiLongitudinalTuning, LaneTurnValue, LagdToggleDelay); drop spurious
offroad_only on DynamicExperimentalControl + DisengageOnAccelerator and
SpeedLimit policy/offset over-gates; replace offroad_only with not_engaged
on AlphaLongitudinalEnabled/Toyota long toggles; extend release-branch
NOTs with is_sp_release; add Test Maneuvers section with attestation,
move LongitudinalManeuverMode in alongside new LateralManeuverMode.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
* sunnylink: extend settings_ui validator for new fields
Add SchemaItem fields title_param_suffix (object form), needs_onroad_cycle,
blocked, requires_attestation; add option-level enablement to SchemaOption;
add visibility/enablement/attestation_required to PanelSection; add
not_engaged Rule type; replace vehicle_settings inline shape with
VehicleBrandSettings def (title/description/items).
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
* sunnylink: inject torque tune options from versions JSON
Read latcontrol_torque_versions.json at schema generation time and
override TorqueControlTune options so adding a version to the JSON
flows to the dashboard without editing settings_ui.json by hand.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
* sunnylink: per-bug regression tests for settings_ui parity
Cover the audit findings end-to-end: MADS brand gates, Test Maneuvers
section + attestation, validator accepts the JSON, dynamic torque
options match the versions JSON, SP dev items gate on is_sp_release as
well as is_release, spurious offroad_only dropped from
DisengageOnAccelerator and DynamicExperimentalControl, and offroad_only
replaced with not_engaged on AlphaLongitudinalEnabled and the Toyota
long toggles. Validator test skips when jsonschema is unavailable.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
* sunnylink: protocol_version sentinel + opaque-flag tests
Pin PROTOCOL_VERSION to KNOWN_PROTOCOL_VERSIONS so a bump shows up in
review, and assert subaru_has_sng / hyundai_alpha_long_available are
declared with safe False defaults.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
* schema: convert ShowAdvancedControls visibility to enablement
Items previously hidden when ShowAdvancedControls is off now render
as disabled with an ADVANCED tooltip. Same treatment for dependency-
based hides (LagdToggleDelay, LaneTurnValue) so users see what's
available and why it's locked. CameraOffset gets the Advanced gate it
was missing.
Affected: DisableUpdates, EnableGithubRunner, EnableCopyparty,
QuickBootToggle, LaneTurnValue, LagdToggleDelay, CameraOffset, and the
test_maneuvers section.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
* sunnylink: route resume_queued to athena direct
Backend is retiring the CloudFront proxy on stg.api.sunnypilot.ai that
currently forwards ws|settings|navigation to athena.sunnylink.ai. Once
retired, /ws/{id}/resume_queued only resolves via athena.sunnylink.ai.
SunnylinkApi.resume_queued now temporarily swaps self.api_host to
ATHENA_HOST while re-entering api_get (preserves the SunnylinkEnabled
gate and existing JWT/UA header handling). Other device calls
(device/{id}/roles, device/{id}/users, v2/pilotauth/, backups) continue
to hit the sunnylink main API host unchanged.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
* legacy code
* no
* new
* tests
* lint
* fix
* too verbose
* sunnylink: per-page YAML authoring for settings_ui + named rule macros
Replace hand-edited 2200-line settings_ui.json with a per-page YAML source
tree under settings_ui_src/, plus named rule fragments (`$ref` macros) so
the same condition isn't repeated verbatim across items.
Authoring surface (settings_ui_src/):
pages/<page>.yaml one file per panel; sections/items/sub_panels inline
pages/vehicle.yaml per-brand settings (kind: vehicle -> vehicle_settings)
_macros.yaml named rule fragments referenced via {$ref: "#/macros/<name>"}
_schemas/*.json JSON Schemas for IDE autocomplete + CI validation
Pages today: steering, cruise, display, visuals, toggles, device, software,
developer, models, vehicle (10).
Tools:
compile_settings_ui.py read src tree, resolve $refs, emit settings_ui.json
(--check mode for CI to fail on hand-edits)
extract_settings_ui.py one-shot: settings_ui.json -> per-page YAML
apply_macros.py one-shot: substitute matching rule blocks with $ref
Rule-block dedup wins (top duplicates collapsed to single macros):
offroad (9x), longitudinal (4x), longitudinal_and_icbm (5x),
hide_on_mici (4x), advanced_only (3x), mads_full_platforms (4x ~30-line
nested any/all/not -> 1 macro + 4x one-line $ref).
Validator drift fixes:
- Accept not_engaged rule type (already in schema.json + used by
AlphaLongitudinalEnabled, ToyotaEnforceStockLongitudinal,
ToyotaStopAndGoHack, LateralManeuverMode, LongitudinalManeuverMode).
- Enforce {title, description, items} shape on every vehicle brand
instead of allowing bare-list variants.
Wire format unchanged: compiled settings_ui.json structurally identical to
the prior hand-edited file, so the device generator (generate_settings_schema.py),
SettingsCapabilities, and frontend renderer all keep working without changes.
Tests: 16 new compiler tests (roundtrip, $ref semantics, depth/cycle limits,
page-tree integrity, vehicle kind routing). Existing 42 regression tests in
test_settings_changes.py and test_settings_schema.py remain green.
README rewritten for the new flow:
- Decision table for offroad_only / not_engaged / param / capability
- Multi-condition composition examples (AND/OR/mixed/3-way/negation)
- Full feature walkthrough (multi-toggle + sub_panel + new macro)
- Workflows for changing rules, widget type, deprecating an item
- All How-To examples migrated from JSON to YAML
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
* sunnylink: add `details` field for popover/modal help text
Adds an optional `details` field on settings items, distinct from the inline
`description`. When present, the frontend renders an info ("i") button on the
row that opens a modal with this content. Either field may be present alone,
or both together; an item with only `details` and no `description` shows just
the title + info button (no inline body).
Migrates `AutoLaneChangeTimer` as the first user: the safety caveat
("Please use caution when using this feature. Only use the blinker when
traffic and road conditions permit.") moves out of the inline description
into `details`, leaving the description focused on what the timer actually
does.
Schema changes:
- settings_ui.schema.json: SchemaItem.details (string, optional)
- settings_ui_src/_schemas/page.schema.json: Item.details (mirror)
- compile_settings_ui.py / extract_settings_ui.py: ordered after description
Frontend support lands in sunnylink-frontend on the design-overhaul branch.
Old frontends ignore the unknown key.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
* ui: refactor UIStateSP init to eliminate getattr and double update_params
- Remove update_params() and reset_onroad_sleep_timer() from UIStateSP.__init__;
__init__ is now pure attr initialization with no I/O or side effects
- Add _sp_initialized flag to UIStateSP.update_params() to fire
reset_onroad_sleep_timer() exactly once after first real param load,
keeping the call in SP territory and out of stock _initialize()
- Replace getattr(self, 'has_longitudinal_control') / getattr(self, 'CP')
in _enforce_constraints with direct attr access; safe because
_enforce_constraints is only called from update_params(), which only
runs after UIState._initialize() has set both attrs
- Rename _enforce_sp_constraints → _enforce_constraints
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
* fix
* exec
* more exec
* humanize
* sync
---------
Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
modem.py: retry identity read until valid; stay in INIT on partial reads
Under rapid SIM hot-swap stress, AT identity reads (CGSN/QCCID/CIMI/GMR) can return
empty values or echo the command itself. Validate each field before accepting it,
retry the whole sequence in a loop, and stay in INITIALIZING (rather than progressing
to SEARCHING) until imei and iccid are populated. Prevents stale/empty identity from
being published to /dev/shm/modem after a glitchy reinit.
* ui: speed up `mici/AugmentedRoadView` by optimizing _calc_frame_matrix caching (#36669)
speed up AugmentedRoadView by optimizing _calc_frame_matrix caching
* ui: apply rect.x/y as a 2D screen offset post-projection
Removes the parent rect's screen position from the cached
video_transform passed to ModelRenderer. Instead, ModelRenderer
applies (rect.x, rect.y) as a 2D offset to projected_points at draw
time.
Why this works: the rect.x/y term in video_transform gets multiplied
by P_calib[2] before the perspective divide, then divided by the same
value, which cancels out to a simple additive shift on the final
screen coordinate. So adding x to video_transform[0,2] is equivalent
to adding x to screen_x post-projection.
Net effect: the cache key in _calc_frame_matrix no longer needs to
include rect.x/y. Cache stays hot under translation (e.g. swiping
between layouts), and the model overlay tracks the camera at 60Hz
because the offset is updated cheaply each frame.
This addresses the original revert reason for #36669 (model overlay
visually desyncs from camera during a home<->onroad swipe).
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
* ui: update model screen offset every frame, not just on cache miss
set_screen_offset() was called inside the cache-miss path of
_calc_frame_matrix, so the offset only updated at ~20Hz (calib publish
rate). The model overlay visibly lagged the camera during a swipe.
Move it out of the cached path so it updates each frame.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
* fully clean up
* shorter cmts
* make non
* clean up
* fix ty
---------
Co-authored-by: Dean Lee <deanlee3@gmail.com>
Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
* ui: keep arc_bar_pts cache hot when bar is translated
The LRU cache key included (cx, cy), which change every frame when
the parent widget's rect translates (e.g. during a scroll animation
in MainLayout). That made every cache lookup miss, recomputing the
arc geometry twice per frame and dropping fps.
Compute the shape at origin (so the cache key only depends on the
geometry: radius, thickness, angles), then translate to (cx, cy)
after. Cache stays hot under translation.
Measured on comma four (engaged, scrolling): ~5fps recovered while
moving between layouts.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
* fully clean up
* fully clean up
---------
Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
* fix frame under text
* claude always taking the hard path
* cmt
* it still shows on start
* revert
* fix
* wait to show
* already a bug, don't fix here
* cmt
* cmt
remove ws_queue thread and associated api endpoint
- Simplified thread management by removing unused `ws_queue`.
- Eliminated `resume_queued` API call for better maintainability.
* update blob
* fixed
* didnt catch this
* add back
* needs BLC built in
* for real
* attempt2
* clean up override
* this should keep ox as was
* disable for OX
* update descs
---------
Co-authored-by: Comma Device <device@comma.ai>
* spellings
* unused
* no roll
* lil more
* lil more
* one more
* policy enum
* better trans
* set_timer -> set_policy
* set_timer -> set_policy
* no yaonet
* del redundant code
---------
Co-authored-by: ZwX1616 <zwx1616@gmail.com>
* c4 body ui
* clean up diff
* clean up
* default bodyview debug with True
* remove battery indicator and fix close settings bug
* organize debug file
* clean
* clean up frame index
* remove unneccessary is body check
* update bodyview
* remove joystick_debug_mode based events
* remove debug script
* apply suggestions
* clean diff
* clean diff
* move ignition message
* save a line
* remove visibility set and fix tici body face when sidebar open
* remove explicit textColor offroad message
* remove unused imports
* revert pairing dialog
* apply suggestions
* add body specific icon
* add body icon for homescreen
* set mode for state on tici after on body changed
* tiny
* tweak
* v
* tweaks
* icon ratio was wrong!
* same order
* rm
* apply suggestions
* remove commented lines in animation
* onroad click callback was on home bug and fix setup widget settings call back hack
* fix body changed
* one liner
* clean up
* formatting
* if false
* revert to master + reimplement
* close sidebar on body home tici
* make ignition message bigger on c3
* flip eye direction when turning
---------
Co-authored-by: Nick <nickorie@gmail.com>
Co-authored-by: Shane Smiskol <shane@smiskol.com>
* compile_modeld.py
* update estimates
* missing image=2?
* Revert "missing image=2?"
This reverts commit 2f5952eb63ba1e3f24cbf5769e6b5e9170d7f0a6.
* Revert "update estimates"
This reverts commit 1f72feef2ffdec6126e3c941e899b46ace7b4b65.
* Revert "compile_modeld.py"
This reverts commit f10541502efca02725f368deda2a21d1f786f57d.
* load warp in ModelState init
* dead code
* prep
* compile modeld
* update SConscript
* tmp save plot locally
* Revert "tmp save plot locally"
This reverts commit ec22f15161ad3b0241a097546b35860f989219f5.
* openpilot hacks?
* no float16
* tmp more chunks
* Revert "tmp more chunks"
This reverts commit 9e1d9b4d0dc36ff530d2a70b565fbfabd7afb00d.
* Revert "no float16"
This reverts commit 6204956e98e3c0818ed1985ede8eeccb810f63e3.
* realize boundaries
* Revert "realize boundaries"
This reverts commit ffaa19259eba70944e7793e8f51a0f87089531b3.
* prune=False?
* Reapply "tmp more chunks"
This reverts commit 2599c41cea93b4a6b4e946cdffc6a617663a7d23.
* tg bug?
* load first?
* Revert "load first?"
This reverts commit f643d082d76a424b23295e254179eb111e936e61.
* revert
* Reapply "tmp save plot locally"
This reverts commit 1b95b82ee58654bd908b1cb04ab0ddbcd1a5955d.
* 0 tol pc
* warp -> modeld
* rename
* bypass chunking?
* dont chunk
* Revert "dont chunk"
This reverts commit cc97fc67b3203456e123f02babe5c83b87c7e264.
* dont chunk
* debug
* Revert "debug"
This reverts commit b3c2f2e7a095fd32f8d8562a68fd1cca42357eac.
* Revert "dont chunk"
This reverts commit 42bd9b6f6ad0722c50348ba11ba7e2a64fdf997d.
* Revert "bypass chunking?"
This reverts commit ad5422a93483ffd8a59ba62e5fb72ced3b5d04d0.
* corrupt model outputs
* Revert "corrupt model outputs"
This reverts commit 245feb94480e02f83a20b65a9488652bcbfc88b0.
* image=0 for warp, match master
* dedupe enqueue
* pass traffic convention
* tg buffer for desire
* dedupe buffer creation
* compile_modeld: nuke stale cached pkl before compiling
The UNSAFE CI checkout keeps gitignored files (.pkl, .sconsign.dblite),
so stale pkl files from previous commits can persist and be reused
instead of being recompiled. Delete them explicitly before compiling.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
* test vs compile
* all outputs need to be different on different inputs
* randomize numpy inputs
* randomize on every step
* SConscript: nuke stale pkl+chunks before compile_modeld
Move the stale artifact cleanup from compile_modeld.py into the
SConscript build command. This ensures stale gitignored pkl and chunk
files are deleted even if scons decides to skip the compile step
(due to a stale .sconsign.dblite from UNSAFE CI checkout).
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
* compile_modeld: restore Context(IMAGE=0) for warp
The warp operations must run under IMAGE=0 to avoid QCOM image texture
optimizations that corrupt the output buffer after ~33 frames.
This was accidentally commented out in a855173.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
* modeld: create SubMaster before model loading
Move PubMaster/SubMaster creation before the model loading step.
During model loading (3.5s+), process_replay may send liveCalibration.
If SubMaster doesn't exist yet, the message is dropped and the warp
transform stays as zeros, producing garbage warped images.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
* Revert "modeld: create SubMaster before model loading"
This reverts commit 968c987c2fbb3fce141c4e345d10ddea559b6c50.
* stale metadata?
* claude debug
* Revert "claude debug"
This reverts commit 49e754c6affa45a8ea8834588a00227b8090b17a.
* Revert "stale metadata?"
This reverts commit 870388513c0d4a67dcf970cd277b6db56cb2b478.
* modeld: realize jit outputs before parsing
* Update modeld.py
* modeld: fix NameError by removing redundant MODELS_DIR definition
* test buffers in test vs. compile
* 2x inputs before running
* fixup 2x inputs test
* realize onnx weights?
* Revert "realize onnx weights?"
This reverts commit 49c8b9a505db38ff22f342db011a3a6b6526d398.
* move openpilot_hacks flag to sconscript
* stricter test vs compile
* correct timings
* more run more fail?
* Revert "more run more fail?"
This reverts commit 9e94bb63940751ec29e81b634c42449113e1f2e5.
* numpy shenanigans
* correct shapes
* dont assert timings for now
* Revert "correct shapes"
This reverts commit 5b9ff6c84c0022327d21801d179e9e51c39e8f78.
* Revert "numpy shenanigans"
This reverts commit b4f6fb3078d7e9b09698895b88728fd8eea8c8a8.
* no need to nuke
* comment unused
* don't use NPY device
* copy instead of from_blob
* to device before jit
* Revert "to device before jit"
This reverts commit 7a59ed9b1ac88657b5a3917986b6ff92e59a2ee3.
* Revert "copy instead of from_blob"
This reverts commit 196c4892a06ffba89ef631876372cecf137cc1b4.
* Revert "don't use NPY device"
This reverts commit 18abf43bbac46ad47a60c03dd8d1ef40b3f59227.
* 3 runs is enough
* no_memory_planner=1
* lint
* restore model_replay.py
* on policy -> policy
* unused
* prepare only enqueues full images
* warp with image=2?
* unused args
* test vs compile, check different inputs different outputs
* avoid uop cache collision
* dont need realize here
* misc
* input queues diverged
* strict zip
* monkey patch for now
* memory planner
* prev desire correct order
* dedupe pkl paths / compile targets
* don't change behavior, warp and enqueue frames when skipping model eval
* actually prepare only
* warm up warp jit
* correct path
* oops
* explicit warmup
* need continuous + can't have dupplicate jit inputs
* whitespace
* bufs -> input_queues
* master tg
* /N_RUNS
* bump tg, remove uop cache patch
* more readable
* Revert "bump tg, remove uop cache patch"
This reverts commit 499acca2591becd389de4025943f9e776a5b337c.
* missing dep
---------
Co-authored-by: Bruce Wayne <harald.the.engineer@gmail.com>
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
* always offroad ui
* remove
* lint
* better
* fix sync issues
* fix sync issues
* update for upstream sync
* move it all to top settings panel
* not red
* no home screen, just buttons
---------
Co-authored-by: Jason Wen <haibin.wen3@gmail.com>
* turn off ir leds on notCar
* reduce startup time on notCar
* fix: check notCar once after onroad is true
* save a disk read by using existing is_onroad
* [TIZI/TICI] ui: remove per-frame param sync
* fix: prevent params.put skip in OptionControlSP by deferring mutation to set_value
The idempotent guard added in the previous commit was being bypassed because
_handle_mouse_release mutated self.current_value before calling set_value(),
making the check always return early. Now we calculate the new value and pass
it to set_value, allowing the guard to work correctly and params to persist.
* fix: enable touch validation for visible items in TreeOptionDialog during scrolling
* rebuild scroller and call add_widget instead
---------
Co-authored-by: Jason Wen <haibin.wen3@gmail.com>
* model panel - give it some love
* fix sync issues
* update for upstream sync
* fix label
* not red
* fav models
* uhh, yeah
* handling for downloading state
---------
Co-authored-by: Jason Wen <haibin.wen3@gmail.com>
* NNLC: restore pre-v1 PID gains in torque extension
When the torque lateral controller was refactored for v1 (VERSION=1),
the NNLC extension's PID gains were inadvertently changed from the
per-vehicle defaults (kp=1.0, ki=0.3, kf=1.0) to the new base
controller values (kp=0.8, ki=0.15, no kf with speed interpolation).
The NNLC extension operates in torque space with its own PID loop
that is independent of the base controller's lateral acceleration PID.
Coupling these gains to the base controller's values results in
noticeably weaker steering response and ping-pong oscillation for
NNLC users, with no workaround since Enforce Torque Lateral Control
and NNLC are mutually exclusive.
This restores the original PID gains that were used before the v1
refactor, matching the behavior from v2025.003.000 and earlier.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
* Remove k_f from PIDController init
k_f was removed from PIDController in the v1 refactor. The old
k_f=1.0 was a no-op (feedforward scale of 1.0), and the current
PIDController applies feedforward unscaled via update(), so
behavior is unchanged.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
---------
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-authored-by: Jason Wen <haibin.wen3@gmail.com>
* Revert "OP model 7 (#37760)"
This reverts commit 052692b25d.
* Revert "OP model (#37740)"
This reverts commit cb32793300.
* dead
* parse_model_outputs: drop extra space
The plural `git/refs/heads/{bucket}` endpoint does prefix matching
and returns a list when multiple refs share the prefix, which makes
`r.json()['object']` raise TypeError. Switch to the singular
`git/ref/heads/{bucket}` endpoint so we only match the exact bucket
and get a clean 404 otherwise.
* services: increase logMessage queue size
logMessage and errorLogMessage defaulted to SMALL (250KB) after
bcdeec3133, but logmessaged allows messages up to 2MB. The msgq
assert requires 3 messages to fit in the queue, so any log message
over ~83KB crashes logmessaged. This happens on dirty devices when
updated logs the full git diff output.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
* use BIG queue size to fully cover 2MB cap
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
---------
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
* Update Python packages
* need this
---------
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Co-authored-by: Jason Wen <haibin.wen3@gmail.com>
* bump tg
* bump tg
* assign
* bump
* cpu llvm
* frame buffer updated in place, no need to return
* don't bake in stale pointers
* fix update image output indices
* lint
* bump
* replay: add dragging gesture support
* update dragging to support distance and duration; update mici script to go through settings
* refactor
* fix and add network
* add more
* interact device
* fix
* match statements
* more
* improve
* simplify script
* add keyboard test
* format
* simplify
* improve
* comment
* improve
* clarify
* clean
* simplify
* simplify
* move
* improve
* more delay
* simplify keyboard test
* simplify
* comment
* add onroad alert tests to mici
* scroll less
* test offroad alerts
* remove space
* scroll faster
* more toggle tests
* back to home
* test settings onroad
* fix pairing qr code
* add replay progress bar
* add replay progress bar
* simplify
* correct comment
* remove _
* we don't need this
* change click
* add return types
* fast typing
* use frames instead
* use frames instead
* update
* disable in CI
* +1
* fix script
* refactor how mici replay script cases are built
* refactor
* refactor: rename helper function for exploring settings in build_mici_script
* remove onroad settings check
* refactor
* simplify
* refactor: use explore_setting in more places to reduce duplication
* add type
* refactor: simplify explore_cases function by removing swipe_wait parameter
* add case to open wifi selection
* refactor: enhance run_actions to support after_each callback for interaction tests; rename explore_cases to scroll_through_cases
* add review training guide
* update comment
* comments
* comment
* fix swipe back
* scroll: use iOS-style weighted velocity averaging for fling
Weight older velocity samples more heavily on finger release to produce
more consistent fling velocities. The last touch samples before lift are
noisy (finger decelerating, rotating, jittering), so we trust the earlier
steadier samples more: 60% oldest, 35% middle, 5% newest.
Reverse-engineered from iOS UIScrollView by the Flutter team.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* Update system/ui/lib/application.py
* Apply suggestions from code review
---------
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
* modeld: quiet do_chunk output during scons build
SCons default-prints Python function actions with all their args.
The do_chunk function has 1259 tinygrad source files as deps, causing
a wall of text during builds. Wrap in SAction with a short strfunction.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* split compile and chunk into separate Commands
cleaner fix: do_chunk only depends on the pkl, not tinygrad files
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
---------
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
* actually epic
* use child
* inside label
* revert other stuff
* no reset_shimmer: bool
* try 2 char
* not worth dynamic chunking
* bring back
* rm
* no emoji support on shimmer
* pandad: filter out external panda
* fix
* internal panda
* move it even higher
* this
* should be this still
* anoter
* more
* 1 more time
* bruh
* try this out
* revert
* gotta do this after
* filter
* fix pairing qr code
* test pair device
* merge and pick from explore-more
* key
* fast click
* again
* add branch selection test
* click uninstall
* test prime states
* view regulatory
* test expand calibration desc
* override interactive timeout
* reorder
* remove todo
* update
* clarify
* test reset calibration
* update
* add calibration params test
* comments
* reorganize
* clarify
* add click through training guide
* this wasn't atomic!
* start mici
* always require internet to download installer
* this made it never use cached fetch!
* this skipped installer when it wrote it raced trying to run
* entirely remove
* clean up mici
* fix tici setup
* inline
* works
* more explicit pass texture like everything else, esp since sizes are not all same
* fix some confirmation dialog images
* fix image sizes
* do bigbutton
* fix
* static
* try this
* clean up and use it
* clean up
* simpler
* do this later
* do onboarding & reset
* do setup
* temp
* Revert "temp"
This reverts commit 22fbbf5c813b4915e784b9ee235ed3bde2229048.
* simpler again
* missing size
* fix
* Revert "fix"
This reverts commit 53c4e29e614181029dc8e9a2baea7694957dc8fb.
* nl
* Smooth
* Min lat accel range
* Make the moving average masked
* Bring back the range
* Update test
* Smooth desired signal too
* Diff
* Gaussian
* Fix fmt
* Remove newline
_shake_start defaults to None, but `None or 0.0` treated it as
time zero, so any button rendered within 0.5s of window creation
would play the shake animation.
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
* try this
* try this
* fix
* delay hide on wifi/internet
* 0.5
* fix flash on forgetting
* also reset
* fix
* todo
* dupl
* wifi after
* bring back cmts
* fix spotty internet check while downloading!
* cmt
* cmt
* todo
* resort
* more delay
* redundtant
* nl
* scroll over for wifi (waiting) OR internet (continue)
* fix scroll
* fix scroll
* show_event fully manages its scroll over, not some weiird delay mixed with other triggers via fake rising edge
* instant if not popping
* cmt
* better update flow
* clean up
* clean up
* cmt
* clean up
* todo
* failed scroller
* fix for setup
* show wrong url
* setup failed is red not orange
* clean up and fix all flashing in setup
* new updater zipapp
* fix deadlock from agnos.py throwing timeout errors, never hitting failed screen! + try catch the whole process for errors while starting process
* add todo
* set core affinity like setup in updater
* fix import
* rezip
The Python file downloader was making a separate HTTP Range request per
1MB chunk via URLFile.read(), causing massive latency overhead. Use a
single streaming GET request instead, matching the old C++ behavior.
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
* pressed state for larger sliders
* wifibutton
* fix
* clean up
* some work
* don't nee this now
* stash
* more
* new pressed bigcircle
* black
* interp
* just check position
* clean up and fix slider reset
* fix custom
* no speed
* stash
* even chatter couldn't figure this one out
* makes sense to combine together, less split mentality
* clean that up
* fix lag
* match ui.py prio to eliminate lag on wifiui show event. separately, why is this slow?
* night mode
* delay scroll over
* fix auto scrolling
* stash
* waiting looks disabled
* clean up and don't reset sliders until user goes back
* rm
* fix
* add termsheader back
* fix callbacks
* ctrl alt l
* fix text spacing
* clean up
* stash
* fix style
* i want to go back
* guard on exit
* kinda useless stuff
* Revert "kinda useless stuff"
This reverts commit a4acbac31523408f358c5f68262cb630aa13ad8e.
* Revert "guard on exit"
This reverts commit 63ccfbf64edfbe1a144a441681f5ec78d8021ff7.
* wide
* setup pressed!
* grow animation
* 10s after initial
* slow fast
* start onboarding (terms)
* rm duplicate page
* add qr code
* final grey
* fix visual lag on first start
* clean up dead code
* dont exit from cancel
* revert grey
* clean up, REVIEW ME
* Revert "clean up, REVIEW ME"
This reverts commit c66fa60947c5f922520e7cf58c630b4bbe2d0177.
* reboot slider
* kb fix
* Revert "kb fix"
This reverts commit 883039448e6c37ae1d25d4f75ada6e96b6736358.
* ./ goes to letters
* Revert "./ goes to letters"
This reverts commit 0d97442427edb1a000638863a3f2181204ddc160.
* clean up
* some more clean up
* more
* clean up
* rename block
* reset pending scroll so it can't use stale data in rare sequence
* remove unused assets
* clean up imports
* fix updater
* clean up
* fix double reboot
* demo time - reset to setup on reboot
* let manager restart
* Revert "demo time - reset to setup on reboot"
This reverts commit 9468657e8438a1ce8fcb5266403b7bb3539f131f.
* url... and no grow animation on start button
* one next button
* grow instead of shake wifi button
* 36 pt font size in setup
* touch up onboarding a lil
* Revert "rm cpp bz2 (#37332)"
This reverts commit f4a36f7f74.
* more onboarding and clean up
* clean up
* wow what an amazing future clean up
* back to software select
* fix
* copy
* fix dm confirmation dialog not disabling widget underneath, all fixed with real nav stack in here
* uploading
* lint
* add review terms to device w/ close button
* todo
* remove old Terms vertical scrolling classes
* use new Scroller!
* installer
* tweak to match figma exactly
* revert
* fixup updater
* demo day
* demo day v2
* ... for percent while finishing setup
* demo day v3
* demo day v4
* remove ...
* demo day v6 -- "why does it do that!!"
* demo day v7 -- no flash
* hmm
* demo day v7
* prebuilt
* revert demo day
* scroll after pop animation
* back -> retry
* stash fixes
* damn, need back_callback
* scroll over immediately if already in network setup
* tweaks
* going down is confusing
* more
* Revert "more"
This reverts commit 29ce75b1f81eb40e7527a71d27842d9a66802206.
* Revert "going down is confusing"
This reverts commit 0cd2ae30d4135db1ccba6478429b45e886714e9c.
* dupl
* nl
* sort functions
* more clean up from merge
* move
* more
* dismiss to download (hack)
* Revert "dismiss to download (hack)"
This reverts commit 53c45ed1f63db1f0cebbce0dfab1777c8658f505.
* onboarding work
* set brightness and timeout in root onboarding only
* clean up
* type
* keep 5m for settings preview
* switch back to letters on . or /
* reset first step scroller
* custom software warning goes down network comes up and back cb fix
* clean up
* smaller qr
* ReviewTermsPage just for device as NavWidget
* clean up
* installer: stay on 100%
* reset has internet while in wifiui
* try this
* try this
* see what error we get exactly
see what error we get exactly
* not final solution but see how good
* rm
* copy changes
* reset on disconnect
* for separate pr
* Revert "reset on disconnect"
This reverts commit 552372fa4d497ba7d9de7f2edb730ee63798ffa4.
* revert this, too buggy
* fix for updater
* sort
* fix test
* minor cleanup
* more leaks than this rn
* onboarding clean up
* clean up application
* click delay to small button
* clean up
* reset more state
* fix training guide not cleaning up driverview
* Revert "fix training guide not cleaning up driverview"
This reverts commit cac7c5f436056cc9e747f80905d390790fb83c22.
* simpler fix :(
* nice catch, if you go back to terms it will reset 300s timeout and brightness
* duplicate show
* unused
* vendor libyuv from dependencies
* relock libyuv to latest vendor branch
* install cmake in macOS setup when missing
* lock
* unused?
* rm that
* no yuv for the larch
* pressable
* slow
* fast and looks great
* 0.075
* clean up
* fix missing
* clean up
* mici setup use nav stack!
* remove flat state!
* todo
* clean up
* clean up ordering
* clean up
* reset progress on show, dont mutate nav stack from thread
* reset text on show too
* rename
* clean up
i18n(fr): Add French translations for sunnypilot UI
Update 36 existing French translations with corrections and add
369 new sunnypilot-specific translation entries.
Co-authored-by: Jason Wen <haibin.wen3@gmail.com>
Handle exceptions in `getParamsAllKeysV1` to prevent crashes
- Added `try-except` block to improve error handling during key parsing.
- Ensures robustness by logging exceptions and re-raising them.
Co-authored-by: Jason Wen <haibin.wen3@gmail.com>
* jenkins: move panda tests before camera tests
* force this time
* Revert "force this time"
This reverts commit 53508225d39d63b97ff7ecc3a0181a27b5948d1b.
* mici init
* obv
* hybrid
* adapt
* less
* consolidate
* oops
Refactor speed limit alert function to use car state directly.
* no event border for tizi/tici
* abstract it
* less
* nah
* mici init
* obv
* hybrid
* adapt
* less
* consolidate
* oops
Refactor speed limit alert function to use car state directly.
* no event border for tizi/tici
* abstract it
* too soon junior
* refactor
* i like this better
* clean up
* debug
* fix able to click navwidgets that are closing (tested at rc 10)
* add dismiss guards
* fix keyboard so it unselects
* pairing: use dismiss
* main todo
* rm pop_widgets_to!
* reset dismiss state on show event
* debug pop animation bugs
* Revert "debug pop animation bugs"
This reverts commit 9239f2e12cf79b1f75d15d39262fdd15ff5a5200.
* revert
* cmt
* type
* clean up
* now do the todo
* treat using widgets, not idxs, as a separate clean up for later
* actually if not navwidget this is buggy
* fix
* short
* simpler
* clean up
* more
* great clean ups
* better name
* remove useless _can_swipe_away
* reorder
* rename
* state machine is nice but might be too much
* Revert "state machine is nice but might be too much"
This reverts commit f8952969243a2eac3ed5f84793ba7b0c0cdf24bf.
* got a better name out of it though
* clean up
* clean up
* rm!
* rm
* and this
* and
* clean up
* stash
* widgets animate out
* Revert "stash"
This reverts commit eac3493509cff6f2c64111d803c7fef21a1aa2dd.
* abstract
* works also
* works also
* support pop_widget
* only animate top
* callback in request pop
* tune it
* fix
* fix
* try this
* Revert "try this"
This reverts commit 191373a1b35917ee3a361afe73b16eeb60d0a20e.
* debug
* debug
* clean up
* simple test
* clean up
* clean up
* clean up
* clean up
* clean up
* clean up
* clkean up
* re sort
* fine
* yes
* ui sync conflicts with upstream
* md
* ref
* ci
* lint
* more
* more ci
* new new
* tools: block `manage_sunnylinkd` in sim startup script
* try this out
* unbump
* chore: sync tinygrad
Runs great in sim. now we need to rebuild some models
* oops forgot to unblock this after testing
* helpers
* oh yeah
* latest tg
* this wont do anything empriically
* reduce complexity
* okay lint
* Update tinygrad_runner.py
* Update modeld.py
* Update build-all-tinygrad-models.yaml
* tinygrad bump
* Update modeld.py
* Update tinygrad_runner.py
* bump
* Update SConscript
* Update SConscript
* com
* Update fetcher.py
* Update helpers.py
* life is froughtless, when you're thoughtless
* lint
* ozdust ballroom
* shiz
* Update tinygrad_runner.py
* Update tinygrad_runner.py
* slough it off as i do
* try old support one last time
* support mixed input dtypes
* use internal
* dont need that shiz
* Update fill_model_msg.py
* Update onnx_runner.py
* Update onnx_runner.py
* Update model_runner.py
* see if this speeds up execution
if not, revert me
* no
* Update helpers.py
* rebase
* more
* planplus
---------
Co-authored-by: Jason Wen <haibin.wen3@gmail.com>
* add back bz2 support with vendored bzip2
Reverts f4a36f7f7 ("rm cpp bz2") to restore bzip2 decompression
support in replay/cabana tools, and replaces the system libbz2-dev
with a vendored bzip2 package from commaai/dependencies.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* relock bzip2 from releases branch
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
---------
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
* test wifi state machine
* clean up and another few tests
* no unittest :((
* clean up
* clean up
* try to repro on device
* try to repro on device
* nice, the flicker is covered by test_user_initiated_skips_dbus_lookup!
* add todo soon to be all fixed
* documentaiton
* test the thread races too
* _fire -> fire
* duplication
* new state
* fix some tests
* format
* combine similar tests
* use process_callbacks
* clean up
* collapse two tests
* rm nl
* previous messy test
* delete old
* asked another to ask questions
* flasher for Rivian long upgrade
* self-contained no dependency on Panda.F4_DEVICES
* standalone flasher
* move to sp module
* use brand field directly
* use brand field directly
* use brand field directly
* bump
* add some logging
---------
Co-authored-by: Jason Wen <haibin.wen3@gmail.com>
* soundd: trigger timeout warning during MADS lateral-only
The selfdrive timeout alert (warningImmediate) only fires when
selfdriveState.enabled is True. During MADS lateral-only mode,
enabled is False even though the system is actively steering.
If selfdrived stops publishing while MADS lateral is active, the
driver gets no audible warning that steering has become unresponsive.
Add selfdriveStateSP to the SubMaster and check mads.active alongside
selfdriveState.enabled so the timeout alert fires whenever the system
is actuating steering.
* test_soundd: add MADS lateral-only timeout test
Test that the selfdrive timeout warning fires when selfdriveState.enabled
is False but selfdriveStateSP.mads.active is True.
---------
Co-authored-by: Jason Wen <haibin.wen3@gmail.com>
The `steer_limited_by_safety` update in `publish()` is gated by
`selfdriveState.active`, which is False during MADS lateral-only
control. This causes the flag to never update once cruise deactivates
— it stays stuck at whatever value it had during the last ramp-up
(typically True), permanently suppressing the saturation timer in
`_check_saturation` and preventing the "Turn Exceeds Steering Limit"
alert from firing.
Use `CC.latActive` instead, which already accounts for MADS via
`get_lat_active()` in ControlsExt.
Bug was introduced in #446 (MADS), which updated `CC.latActive` to
use `mads.active` but missed updating the `steer_limited_by_safety`
gate in `publish()`.
* should fail
* this works but i think i know a better way
* something like this
* hmm
* this works
* rm useless test
* good stash
* Revert "good stash"
This reverts commit c2dddf0810286cb56e2418dd6f7085c2239e5109.
* replace python3-dev apt install with vendored package
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* keep for agnos
* cleaner
---------
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
* Reapply "feat(lpa): `at` client + list profiles (#37271)" (#37322)
This reverts commit ddf8abc14a.
* lpa: fall back to ModemManager D-Bus when serial port unavailable
On older devices, ModemManager still claims /dev/ttyUSB2, so the
direct serial open fails. Try serial first; if it can't be acquired,
transparently route AT commands through MM's D-Bus Command() interface.
Co-authored-by: Cursor <cursoragent@cursor.com>
* lpa: add serial/dbus transport labels to debug logs
Co-authored-by: Cursor <cursoragent@cursor.com>
* no
* lint
* here
* const
---------
Co-authored-by: Cursor <cursoragent@cursor.com>
* disable forget for tethering
* nets
* put in wifiman
* batch
* Revert "batch"
This reverts commit 9af20c1c7513c22bf9283b2f02514373fa981f50.
* clean up
* more
* more
* use vendored eigen from dependencies repo
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* lock
---------
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
* use vendored zeromq from dependencies repo
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* lock
* rm more crap
* use vendored git-lfs from dependencies repo
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* from releases
---------
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
* rm extra LLVM install on macOS
* update that
* rm brew cache
* no cache
* Revert "no cache"
This reverts commit a3f8eff234935d4bb27d4bd785ad8a710496a159.
* use vendored zeromq from dependencies repo
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* lock
* rm more crap
---------
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
* start
* start
* lil more
* add forget
* fix forget button scrolling
* push right a bit
* fix forget press
* add divider
* fix scroll panel
* better forget and overriding
* revert this
* check icon
* cursor merge conflict fix
* fix rounding and forget btn placement
* scroll indicator
* 65%
* calibrate
* try loading animation
* push to device
* top right
* bottom right
* no red
* top left
* bottom left
* down 2px
* WHY DOES NETWORK MANAGER KEEP CRASHING AHHH
* reduce round trip calls in update_networks
* clean up and combine getallaccesspoint and activeaccesspoint
* cmt
* animate big button over smoothly. super hacky, need to clean up
* animate
* remove old widgets and images
* remove status label, tune loading animation opac back
* connecting is a little buggy still
* add back missing network and don't pop
* some fixes
* "clean up"
* fix lag in animation
* fix adding saved connection to start
* remove saved network to start, divider
* animate up, over, and down
* revert for now
* remove fancy complex animation for now, sorry nick
* remove divider + clean up
* more clean up
* more clean up
* fix forget button press
* cmt
* tweak loading animation behavior
* new lock fix wifi
* rm old lock
* great catch by opus
* clean up
* debug
* fix touch events that are down -> up in one frame (why it only bugged on mici)
* clean up
* eager forgetting
* this SHOULD be full eager forget, more than i thought
* fix wifi slash positioning
* move forgotten networks after saved networks
* temp keep
* test on device
* fix
* see 65
* 5 best
* fix double render double brightness
* can click bottom right now
* disable touch while animating
* fix animation
* can scroll while animating, not tap
* not great yet
* clean up
* didn't work
* always update networks after activation
* stash
* move to update_state
* debug
* debug
* temp
* fix ip and metered flickering when updating at high freq (or rare race condition)
* fix
* if you give it less than 8 chars it never clears connecting
* lock no int
* better wrong password handling
* shake when wrong password
* nm set connecting when it connects on its own
* loading bottom right
* sort connecting first
* sort by unquantized to put strongest first
* clean up
* clean up nm
* clean up nm
* shorter
* fix crash
* 0.5s
* debug
* revert and try something else
* stash
* no
* rev
* use signals
* more
* not wrong password if ever connected after wrong
* similar to gnome shell, don't save connection that never successfully activated.
we do this by creating temporary memory connection with persist: volatile that deletes itself if failed, and then only write to disk when activated
* clean up
* cover all states
* clear if connecting too
* remove pritn
* might need this for CoxWifi
* whoops
* save last pass
* Revert "whoops"
This reverts commit 83a133955246ce32dcf119ededd8b01b3162a866.
* Revert "might need this for CoxWifi"
This reverts commit cddb8b35be152ed154462b188283f9d5a844583d.
* this may be less noisy for low strength networks, but less accurate as previous was reflecting nm state better
* Revert "this may be less noisy for low strength networks, but less accurate as previous was reflecting nm state better"
This reverts commit 740286c846556f32125a96bfe6ecf128300af0d8.
* race condition with volotile not removing conn fast enough/update networks not firing fast enough
* Revert "save last pass"
This reverts commit 7249a58a18b11487fd0370cee36e40a17f7ac521.
* revert some wifiman stuff to master
* not needed
* rm active ap
* remove old dead code
* do after
* always send forgotten callback so we can't be stuck in forgetting state forever
* reproduce race condition where connection removed signal takes a while to remove, then update networks keep is_saved true
* fix from merge
* nice, we can remove some eager code now for treating is_saved as not saved after forgot since it's live
* more
* rm
* simplify passed in callbacks
* clean up
* need this one check back for wrong password to hide forget for a split second
* opus says this is simpler 🤔
* Revert "opus says this is simpler 🤔"
This reverts commit 71472e5b383d7f2083d95ba1188070f41ae14775.
* another attempt
* Revert "another attempt"
This reverts commit 31f30babe656f9cad24399bc2196bb6e7ab79bbd.
* fix from merge
* some lcean up
* fix
* fixes to make work with new animation
* clean up
* this works too
* simplify loading animation behavior for now, revert wifi scan time
* clean up
* temporary fix
* stash
* Revert "stash"
This reverts commit 7471dbdc452807b33b4868a98dd8565681b2e44d.
* stash
* Revert "stash"
This reverts commit e0e5e6e861734320ce5dea5626086784577cb334.
* this check was because is_connected could have been stale from Network as the source
* nm can show connected/connecting to network with 0 aps for a while if strength is low, move out of range under those states
* stash
* Revert "stash"
This reverts commit 5ec3b454d54392523947f6477f551657d3863a6d.
* todo
* todo
* order
* don't need temporary fix anymore
* cmt
* order
* unused i
* stash
* test seemed to work
* simplify
* clean up
* move under
* Revert "move under"
This reverts commit ce940cffb32378cbe5a69edaf6fc9d9cec202e54.
* back
* fix
* already 90% of the way there and not 144 lines
* nice
* lift properly
* lift, wait, move, wait, drop!
* some clean up
* epic, he ran a simulation to turn opacity filter into pixels
* scroll independant move animation without layout!
* move into function
* clean up
* rm
* overlay behind moving item
* Revert "overlay behind moving item"
This reverts commit 598e22363eb66af6496fe5f1eea8e643d4c2adbb.
* simpler overlay under lifted item
* support multiple animations at once
* Revert "support multiple animations at once"
This reverts commit 3ce6c8281053ee4831ceb88cacf66c343fc7d7ff.
* clean up
* cmt
* clean up
* kinda works
* Revert "kinda works"
This reverts commit ff050c6afc058788b3189a0acc202ada17353504.
* clean up
clean up
* clear overlay
* diff report
* don't break more
* split nav widget out
* clean up
* clean up
* fix
* work
* small enough to not be function
* nah we want intflag
* clean up
* always runs
* more clean up
* prep for scroller
* opacity for settings
* clean up layout
* set enabled
* rm
* initial
* start to support nav stack in settings panels + fix some navwidget bugs
* add deprecation warning and move more to new nav stack
* fix overriding NavWidget enabled and do developer panel
* fix interactive timeout and do main
* more device, not done yet
* minor network fixes
* dcam dialog
* start onboarding
* fix onboarding
* do mici setup
* remove now useless CUSTOM_SOFTWARE
* support big ui with old modal overlay
* reset can be old modal overlay, but updater needs new since it uses wifiui
* flip name truthiness to inspire excitement
* all *should* work, but will do pass later
* clean up main
* clean up settiings
* clean up dialog and developer
* cleanup mici setup some
* rm one more
* fix keyboard
* revert
* might as well but clarify
* fix networkinfopage buttons
* lint
* nice clean up from cursor
* animate background fade with position
* fix device overlays
* cursor fix pt1
cursor fix pt2
* rm print
* capital
* temp fix from cursor for onboarding not freeing space after reviewing training guide
* fix home screen scroller snap not resetting
* stash
* nice gradient on top
* 40
* 20
* no gradient
* return unused returns and always show regulatory btn
* nice!
* clean up
* new_modal is always true!
* more clean up
* clean up
* big only renders top 1
* fixup setup and updater
* stash
* Revert "stash"
This reverts commit 3cfb226ccb51869ed1f7d630b5fdd6725ad094d5.
* fix mici keys coming in from top
* clean up
* fix mici dialogs like tici, pop first incase call back pushes
* clever way but not not
* Revert "clever way but not not"
This reverts commit f69d106df61262f049df20cc1a9064ca1e6feeb7.
* more setup
* mici keyboard: fix not disabling below
* cmt
* fix wifi callbacks not running in rare case
* clean up network
* clean up network
* clean up dialog
* pairing
* rm
* todo
* fix replay
* they push themselkves!
* clean up ui_state
* clean up application
* clean up
* stash
* Revert "stash"
This reverts commit 07d3f5f26c99ef891086b6fe03095d53a62b8631.
* typing
* lint
* Chunk tinygrad pkl below GitHub max size
* pull that out
* rm glob
* make work
* Single name def
* unused comment
* more cleanups
* revert that
* 10MB overhead
---------
Co-authored-by: Adeeb Shihadeh <adeebshihadeh@gmail.com>
* feat(lpa): implement list_profiles in TiciLPA
Add AT command serial interface, TLV parsing, and ES10x transport
to support listing eSIM profiles (SGP.22 v2.3). TiciLPA is a
singleton that maintains a persistent connection to the modem.
* feat(lpa): close TiciLPA serial connection on exit
Register atexit cleanup so the logical channel and serial port are
released when the process exits, even on crashes or early exits.
* feat(lpa): close stale logical channels on init to prevent timeouts
* trying to brick it
* Revert "trying to brick it"
This reverts commit 46a0467314479c92d2cf331280521a1263f6cc43.
* feat(lpa): remove ensure_capabilities check on init
Target devices are known to support the required AT commands,
so skip the capability probes and stale channel cleanup to
speed up initialization.
* feat(lpa): enable debug logging via DEBUG=1 env variable
* muuuch better
* revert
* cleanup
* constant
* initial
* start to support nav stack in settings panels + fix some navwidget bugs
* add deprecation warning and move more to new nav stack
* fix overriding NavWidget enabled and do developer panel
* fix interactive timeout and do main
* more device, not done yet
* minor network fixes
* dcam dialog
* start onboarding
* fix onboarding
* do mici setup
* remove now useless CUSTOM_SOFTWARE
* support big ui with old modal overlay
* reset can be old modal overlay, but updater needs new since it uses wifiui
* flip name truthiness to inspire excitement
* all *should* work, but will do pass later
* clean up main
* clean up settiings
* clean up dialog and developer
* cleanup mici setup some
* rm one more
* fix keyboard
* revert
* might as well but clarify
* fix networkinfopage buttons
* lint
* nice clean up from cursor
* animate background fade with position
* fix device overlays
* cursor fix pt1
cursor fix pt2
* rm print
* capital
* temp fix from cursor for onboarding not freeing space after reviewing training guide
* fix home screen scroller snap not resetting
* stash
* nice gradient on top
* 40
* 20
* no gradient
* return unused returns and always show regulatory btn
* nice!
* revert selfdrive/ui
* let's do tici first
* bring back ui
* not sure why __del__, SetupWidget was never deleted?
* device "done"
* network "done!!"
* toggles "done"
* software "done"
* developer "done"
* fix onboarding
* use new modal for debug windows
* and aug
* setup "done"
* clean up
* updater "done"
* reset "done"
* pop first before callbacks in case callbacks push
* fix cmt
* not needed
* remove two commented functions for mici
* clean up application
* typing
* static
* not sure what this means
* fix big
* more static
* actually great catch
* fix cmt
* fix
* meh
* unclaud test is best
* yess
* try
* works!
* remove dict handling
* clean up
* more clean up
* remove trash
* fixup
* fix up onboarding again
* fix drivercameradialog
* don't show test window
* more widgets
* fix all
* Revert "fix all"
This reverts commit 42d3537c9314af382961a16443a63faed202b157.
* move and whitelist
* clean up
* more test + ignore
* to fix
* temp
* Revert "temp"
This reverts commit 215ecbb8a8fc0e6826d45b2c0d57999c7a19a400.
* temp
* rev
* reproduce race condition where connection removed signal takes a while to remove, then update networks keep is_saved true
* fix
* Revert "reproduce race condition where connection removed signal takes a while to remove, then update networks keep is_saved true"
This reverts commit cf7044ee955777db16434ab81c520bbe798c9164.
* not anymore
* more clear
* safe guards
nl
* signal driven wifi state
* copy exactly
* copy signal handler
* remove is_connected
* Revert "remove is_connected"
This reverts commit f2246a70f4a29e9f3405947ca43d9404578c9d2d.
* do 3 network
* missing reason
* do wifiui
* clean up mici updater
* rest
* or not connecting
* clean up is_connected
* clean up wifiui
* match wifiui state more exactly in network panel for wifi button
* update active connection info after activation (used to do in _update_networks)
* clean up prints
* more
* rm
* not needed
* clean up state machine a bit
* more
* more
* indent
* final clean up
* debug
* debug
* wait for ip?
* more
* revert
* just to see
* ensure we emit activated even if we fail to get conn path from dbus
* hmm
* fine
* back
* back
* Revert "back"
This reverts commit 6464abe243c2a3bbf62b8f9a109b72ec3ddb3817.
* debug flickering on forget then connect to another. commit before this is good
* fix rare flicker when forgetting network and immediately connecting to
another
* clean up
* clean up router stuff now
* ugh wtf
* stash -- wtf
* Revert "stash -- wtf"
This reverts commit 756a92a9c0530a16917303424e26447f258f17e4.
* Revert "fix rare flicker when forgetting network and immediately connecting to"
This reverts commit 90c5fc14551726765ab2524e7866ee8b3c5dee7c.
* remove debug
* fix
* add issues
* add flow
* match previous behavior
* it doesn't fix the flikcer
* more atomic
* Revert "more atomic"
This reverts commit ead87c5a7a4030719b64138c12b9154ec82e73d9.
* last test!
last test!
* really the race is here?
* atomic wifi_state replace
* not slow
* clean up
* WifiManager: fix all networks showing as connected when no active connection
When there's no active WiFi connection, _get_active_wifi_connection()
returns None. This caused `self._connections.get(ssid) == None` to be
True for all unsaved networks, marking them all as connected.
Co-authored-by: Cursor <cursoragent@cursor.com>
* ltl
---------
Co-authored-by: Cursor <cursoragent@cursor.com>
* ui: add edge shadow effect to horizontal scrollers in settings
Adds a black gradient falloff shadow (20x240, 100%→0% opacity) on the
left and right edges of horizontal Scroller panels. Enabled via an
opt-in `edge_shadows` parameter on Scroller for easy per-screen control.
Enabled on: settings menu, toggles, network, device, developer.
Not enabled on: home screen carousel, vertical scrollers, setup screens.
Co-authored-by: Cursor <cursoragent@cursor.com>
* ui: reduce edge shadow opacity to 80%
Co-authored-by: Cursor <cursoragent@cursor.com>
* what on earth is this
* some lines are ok
---------
Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: Shane Smiskol <shane@smiskol.com>
* init
* no
* more
* tree it
* final
* comment
* only with enforce torque
* only with enforce torque
* missed
* no
* lint
* Apply suggestion from @sunnyhaibin
* sunnylink metadata sync
* Apply suggestion from @sunnyhaibin
---------
Co-authored-by: nayan <nayan8teen@gmail.com>
* refactor: improve video synchronization logic in HTML report generation
* feat: include description of which video is longer in report; refactor stuff and add types
* refactor: simplify HTML report generation and remove extra formatting
* reduce diff
* fix video name
* reduce diff
* reduce diff
* fix
* parentheses
* fix I guess
* Remove gcc@13 installation from mac_setup.sh
Removed installation of gcc@13 from mac_setup.sh.
* no cache
* Revert "no cache"
This reverts commit fc27f7dc9e6dab4b61703433130531f12dbe334b.
Widen the hint label rect so it doesn't reserve right-side space for the
hidden backspace button, preventing unnecessary text eliding. Also show
the blinking cursor over the hint and add trailing ellipsis to hint
strings for consistency.
Co-authored-by: Cursor <cursoragent@cursor.com>
* debug why so slow
* forget after
* i'm not sure why this is a thing
* better forget connecting reset
* ????
* has lag
* fix
* clean up
* should be fine
* Delay lateral reengagement
* UI elements
* Add tests
* Update title and description
* Update params_metadata
* Didn't mean to pass this to int()
* Keep sentry happy
* Title and description update
* always 100 hz
---------
Co-authored-by: Jason Wen <haibin.wen3@gmail.com>
* add networks to end, remove bad scroller restore logic that sometimes starts in the middle
* works
* almost
* wifi slash
* clean up
* clean up
* opactiy
* more clean up
* more clean up
* set enabled and network missing on regain network
* cmt
* Revert "Revert tgwarp again (#37161)"
This reverts commit 45099e7fcd.
* Weird uv sizes
* Fix interleaving
* Fix on CPU
* make CPU safe
* Prevent corruption without clone
* Claude knows speeed
* fix interleaving
* less kernels
* blob caching
* This is still slightly faster
* Comment for blob cache
* like c++ wifiman
* rename to scan
* can do this
can do this
* Revert "can do this"
This reverts commit 295f7f49d448c6aacdde2ef810904df86357840b.
* kinda useless now
* clean up
* fix recent connect regression from connection not being known yet
* always update connections in background, keep track via signals only. no getallconnections each time one is added/deleted. matches c++
* works
* clean up
* clean up
* clean up
* clips: allow mici UI (now default) (#37070)
fix: make big false by default and remove assertion
* comma four: new keyboard enter button (#37072)
* works
* enter dis
* clean up
* clean up
* no debug
* useless
* poadding
* tools: fix Python version comparison using normalized semantic version format (#37075)
* Back to tethering BigButton (#37082)
Back to tethering big button
* Stock LKAS: remove permanent alert (#37083)
rm perm
* BigButton: remove unused scrolling (#37085)
* BigButton: remove unused scrolling
* clean up
* BigButton: use UnifiedLabel (#37086)
* BigButton: remove unused scrolling
* start
* debug
* stash
* actually removing the hardcoded size for multioption fixes it
* back
* cursor does sub label
* clean up
* more
* more
* try this for now
* nick suggest
* clean up
* more
* more
* Network menu improvements (#37077)
* try this
* that's handy
* todo, not sure what happens here
* set_text
* normalize
* scroll wifi
* clean up
* more
* better check
* UI: only show `onroad_fade.png` when engaged (#37051)
* only show when engaged
* retrigger CI
* fade animation 0.1
* nl
---------
Co-authored-by: Shane Smiskol <shane@smiskol.com>
* NavBar: fix no show animation (#37090)
* 1.5 not enough time on small screen
* ohhhh
* clean up
* translations: remove arabic (#37087)
* remove arabic
* more
* bump opendbc (#37091)
* long_mpc: use log.capnp source enum instead of list (#37093)
* Revert "long_mpc: use log.capnp source enum instead of list" (#37095)
Revert "long_mpc: use log.capnp source enum instead of list (#37093)"
This reverts commit 7e959c5a3e.
* mici setup: remove unused functions
* fix mici setup int enum
* clips: improve overlays for mici (#37088)
* adjust overlay sizes and wrap metadata text for mici
* comment
* adjust overlay rendering to dynamically calculate line height for wrapped metadata text
* render time first so we can use width in margin calculation
* update comment (to retry failed CI actually)
* increase metadata size on mici
* longitudinal mpc tuning: behind if main (#37099)
* longitudinal mpc tuning report: add sinusoidal oscillation scenario (#37100)
* long_mpc: use log.capnp source enum (#37096)
* Calibrate in tg (#36621)
* squash
* bump tg
* fix linmt
* Ready to merge
* cleaner
* match modeld
* more dead stuff
* long mpc: state name before subscript (#37101)
* clip: clean up imports (#37104)
* wtf is this
* don't break import timing
* they are the same
* clean up
* good catch
* rm common/mat.h
* Remove all the OpenCL (#37105)
* Remove all the OpenCL
* lil more
* bump msgq
* clip: use wrap_text helper (#37102)
* they are same
* no duplication!
* rm rstrip
* bump opendbc (#37108)
bump
* Delete less dialogs (#37111)
* try
* revert
* this is fine
* revert tg calib and opencl cleanup (#37113)
* Revert "Remove all the OpenCL (#37105)"
This reverts commit d5cbb89d84.
* Revert "rm common/mat.h"
This reverts commit 4ce701150a.
* Revert "Calibrate in tg (#36621)"
This reverts commit 593c3a0c8e.
* fix: route fetch metadata when first log isnt uploaded (#37114)
* fix: route fetch metadata when first log isnt uploaded
* default
* simple
---------
Co-authored-by: Trey Moen <treymoen@amazon.com>
* gitignore .context/
* ui diff replay: remove unused frame_data list for individual frame display (#37117)
Remove unused base64 encoding and simplify frame data handling in diff video report
* bridge: move ZMQ handling over (#37118)
* replace tabulate with simple helper (#37122)
* Better memory usage debugging (#37120)
* Revert "revert tg calib and opencl cleanup (#37113)" (#37115)
* Revert "revert tg calib and opencl cleanup (#37113)"
This reverts commit 51312afd3d.
* power draw is a lil higher
* just don't miss a cycle
* fix warp targets
* fix tinygrad dep
* CI: garbage collect tmp jenkins branches (#37125)
* Build vendored artifacts in CI (#37127)
* Build vendored artifacts in CI
* parallel
* deterministic
* fix up
* fix gitignores
* lil more
* lil more consistency
* remove get_mcu_type from pandad.py (#37132)
* Chunk big model files (#37134)
* file chunking
* try this
* more cleanup
* cleaner
* ui: delay nav bar animation (#37137)
* from da bounce
* try this
* you can get it to clean up wow
* modeld: simplify model run processing (#37138)
Hi! The point of this pr is to make the model run easier to read. On the latest tinygrad numpy().flatten() empirically does the same thing as the internal contiguous().realize().uop.base.buffer.numpy(). numpy() is also documented (docstrings), which can assist new contributors in learning what each potential execution does. Torq_boi or yassine, I know you want proof in the code base, so here it is. As of tinygrad commit 2f55005:
in tinygrad_repo/tinygrad/tensor.py
Lines 316-318 (def _buffer): ensure the tenso is contiguous() and realized() before accessing the raw buffer.
Line 378 (def numpy): Wraps the buffer access and adds a reshape to match the tensor shape.
self._buffer() is what executes contiguous().realize() and returns the buffer object.
Calling numpy() on that buffer object returns a 1D array (defined in tinygrad/device.py:193 via np.frombuffer).
The reshape(self.shape) at the end of Tensor.numpy() then adds dimensions to that 1D array. The added .flatten() removes those dimensions, flattening it back to a 1D array. Effectively the same as what is currently done, but less complex.
* Revert "Chunk big model files (#37134)" (#37139)
This reverts commit a941e8f78f.
* Process replay: move refs to ci-artifacts (#37049)
* rm upload
* use ci-artifacts
* sanitize
* rm ref_commit
* add ci
* handle exept
* bootstrap
* always
* fix
* replay
* keep ref_commit fork compatibility
* remove upload-only
* apply comments
* safe diffs in master
* Revert "safe diffs in master"
This reverts commit 369fccac786a67799193e9152488813c6df20414.
* continue on master diff
* Update .github/workflows/tests.yaml
Co-authored-by: Shane Smiskol <shane@smiskol.com>
---------
Co-authored-by: Shane Smiskol <shane@smiskol.com>
* fix first-interaction action inputs for v3 (#37144)
v3 renamed inputs from kebab-case to snake_case (repo-token -> repo_token,
pr-message -> pr_message). The old names were silently ignored, causing
"Input required and not supplied: issue_message" errors.
* bump create-pull-request action to v8.1.0 (#37143)
The pinned SHA was v6.0.4, which is incompatible with actions/checkout@v6
and causes a "Duplicate header: Authorization" 400 error during git
remote operations. See peter-evans/create-pull-request#4272.
* bump numpy to 2.4.2 (#37145)
* show dependency tree in weekly uv lock job (#37146)
* Revert "DM: Ford GT model" (#37148)
Revert "DM: Ford GT model (#37013)"
This reverts commit 1459d3519d.
* remove dead multilang for mici (#37150)
* ui: remove dead side button (#37151)
* rm side button
* fix
* fix
* BigButton: fix alignment and style (#37153)
* correct from bottom alignment
* temp
* fix scale animation w/ btn_y
* home settings are always 64
* cleanup
* some clean up
* make 23 const
* rev
* more
* remove azure deps (#37084)
* remove azure deps
* fix lint
* restore scripts
* [bot] Update Python packages (#37147)
* Update Python packages
* fix
* bump panda
* revert tinygrad
---------
Co-authored-by: Vehicle Researcher <user@comma.ai>
Co-authored-by: Adeeb Shihadeh <adeebshihadeh@gmail.com>
* remove pytest-repeat (#37156)
* BigButton: push up all content when pressed (#37157)
clean implementation
* ui.py: fix stride (#37159)
fix uii.py
* BigButton: don't round drawn content (#37158)
* unround icons
* unround rest
* Revert tgwarp again (#37161)
* Reapply "revert tg calib and opencl cleanup (#37113)" (#37115)
This reverts commit 667f3bb32f.
* revert msgq too
* msgq on master
* newline in updater error
* Remove vertical scroll bar
* Simple scroll indicator (#37162)
* scroll indicator
* 65%
* calibrate
* margin
* cleaner?
* manual clean up
* clean up
* full scroll bar
* look
* looks
* unlook
* no fade, looks good but "too much"
* clean up
* cmt
* Scroll panel: adapt to content size shrinking (#37163)
fix
* WifiManager: sort by known networks (#37164)
sort by known
* mpc tuning report: minor improvements (#37167)
---------
Co-authored-by: David <49467229+TheSecurityDev@users.noreply.github.com>
Co-authored-by: Shane Smiskol <shane@smiskol.com>
Co-authored-by: ugtthis <142481257+ugtthis@users.noreply.github.com>
Co-authored-by: royjr <royjr96@gmail.com>
Co-authored-by: Jason Young <46612682+jyoung8607@users.noreply.github.com>
Co-authored-by: felsager <76905857+felsager@users.noreply.github.com>
Co-authored-by: Harald Schäfer <harald.the.engineer@gmail.com>
Co-authored-by: Adeeb Shihadeh <adeebshihadeh@gmail.com>
Co-authored-by: Trey Moen <50057480+greatgitsby@users.noreply.github.com>
Co-authored-by: Trey Moen <treymoen@amazon.com>
Co-authored-by: Andi Radulescu <andi.radulescu@gmail.com>
Co-authored-by: James Vecellio-Grant <159560811+Discountchubbs@users.noreply.github.com>
Co-authored-by: Daniel Koepping <elkoled@gmail.com>
Co-authored-by: ZwX1616 <zwx1616@gmail.com>
Co-authored-by: commaci-public <60409688+commaci-public@users.noreply.github.com>
Co-authored-by: Vehicle Researcher <user@comma.ai>
* new/removed conns signal
* clean up
* only get connections when adding/removing not every refresh
* add debug
* block
* Revert "block"
This reverts commit 30bbffca8d2db21c53d7a3601ae46bf05e2a7cd5.
* rm debug
* block on any new message, faster conn rem/add reaction
* better names
* correct from bottom alignment
* temp
* fix scale animation w/ btn_y
* home settings are always 64
* cleanup
* some clean up
* make 23 const
* rev
* more
The pinned SHA was v6.0.4, which is incompatible with actions/checkout@v6
and causes a "Duplicate header: Authorization" 400 error during git
remote operations. See peter-evans/create-pull-request#4272.
v3 renamed inputs from kebab-case to snake_case (repo-token -> repo_token,
pr-message -> pr_message). The old names were silently ignored, causing
"Input required and not supplied: issue_message" errors.
Hi! The point of this pr is to make the model run easier to read. On the latest tinygrad numpy().flatten() empirically does the same thing as the internal contiguous().realize().uop.base.buffer.numpy(). numpy() is also documented (docstrings), which can assist new contributors in learning what each potential execution does. Torq_boi or yassine, I know you want proof in the code base, so here it is. As of tinygrad commit 2f55005:
in tinygrad_repo/tinygrad/tensor.py
Lines 316-318 (def _buffer): ensure the tenso is contiguous() and realized() before accessing the raw buffer.
Line 378 (def numpy): Wraps the buffer access and adds a reshape to match the tensor shape.
self._buffer() is what executes contiguous().realize() and returns the buffer object.
Calling numpy() on that buffer object returns a 1D array (defined in tinygrad/device.py:193 via np.frombuffer).
The reshape(self.shape) at the end of Tensor.numpy() then adds dimensions to that 1D array. The added .flatten() removes those dimensions, flattening it back to a 1D array. Effectively the same as what is currently done, but less complex.
* init
* more
* change
* exist
* better title
* adjust
* more
* seems better
* slightly more
* slightly more
* center it
* final
* move
* no bc ew
* more less
* commaai/openpilot:d05cb31e2e916fba41ba8167030945f427fd811b
* bump opendbc
* bump opendbc
* bump opendbc
* bump opendbc
* bump opendbc
* sunnypilot: remove Qt
* cabana: revert to stock Qt
* commaai/openpilot:5198b1b079c37742c1050f02ce0aa6dd42b038b9
* commaai/openpilot:954b567b9ba0f3d1ae57d6aa7797fa86dd92ec6e
* commaai/openpilot:7534b2a160faa683412c04c1254440e338931c5e
* sum more
* bump opendbc
* not yet
* should've been symlink'ed
* raylib says wut
* quiet mode back
* more fixes
* no more
* too extra red diff on the side
* need to bring this back
* too extra
* let's update docs here
* Revert "let's update docs here"
This reverts commit 51fe03cd51.
* param to control stock vs sp ui
* init styles
* SP Toggles
* Lint
* optimizations
* multi-button
* Lint
* param to control stock vs sp ui
* init styles
* SP Toggles
* Lint
* optimizations
* Panels. With Icons. And Scroller.
* patience, grasshopper
* more patience, grasshopper
* sp raylib preview
* fix callback
* fix ui preview
* add ui previews
* introducing ui_state_sp for py
* param to control stock vs sp ui
* better
* add ui_update callback
* better padding
* init
* revert padding to 20
* new line, who dis
* this
* support for next line multi-button
* use inline=false
* uhh
* disabled colors
* hide em all
* lambdas
* NOT inline
* final touches
* hide HIDE
* ruff.. RUFF.. WHY RUFF
* listitem -> listitemsp
* Revert "add ui_update callback"
This reverts commit 4da32cc009.
* add show_description method
* remove padding from line separator.
like, WHY? 😩😩
* scroller -> scroller_tici
* scroller -> scroller_tici
* remove line separator padding
* ui: `GuiApplicationExt`
* add to readme
* use gui_app.sunnypilot_ui()
* use gui_app.sunnypilot_ui()
* use gui_app.sunnypilot_ui()
* uhhh. nope
* optimizations
* I THINK this is not needed, i don't see it used on the visuals panel...
* unhide for now... Why hidden tho?
* refresh controls
* missing
* blindspot
* standstill timer
* road name toggle
* more descriptions
* more descriptions
* update desc
* param turn signals
* sort
* fix
* always show desc if not available
* should be bool
* rocket fuel
* steering arc
* lint
---------
Co-authored-by: Jason Wen <haibin.wen3@gmail.com>
Co-authored-by: DevTekVE <devtekve@gmail.com>
* init
* lint
* add toggle
* Update params_keys.h
* Update params_metadata.json
* Update params_keys.h
* bool
* decouple
* no
* make it perfect
* fade it
* only with torque bar
* dynamic
* in another PR
---------
Co-authored-by: Jason Wen <haibin.wen3@gmail.com>
* Revert "revert tg calib and opencl cleanup (#37113)"
This reverts commit 51312afd3d.
* power draw is a lil higher
* just don't miss a cycle
* fix warp targets
* fix tinygrad dep
* Revert "Remove all the OpenCL (#37105)"
This reverts commit d5cbb89d84.
* Revert "rm common/mat.h"
This reverts commit 4ce701150a.
* Revert "Calibrate in tg (#36621)"
This reverts commit 593c3a0c8e.
* adjust overlay sizes and wrap metadata text for mici
* comment
* adjust overlay rendering to dynamically calculate line height for wrapped metadata text
* render time first so we can use width in margin calculation
* update comment (to retry failed CI actually)
* increase metadata size on mici
* BigButton: remove unused scrolling
* start
* debug
* stash
* actually removing the hardcoded size for multioption fixes it
* back
* cursor does sub label
* clean up
* more
* more
* try this for now
* nick suggest
* clean up
* more
* more
* always check, no flickering from has inter -> waiting -> has inter from the reset
* 1s interval. i see read timeouts at 0.5s sometimes
* clean up
* cursor
* Revert "cursor"
This reverts commit 13ec6312aa7f71b58771f8789456e97c4481856a.
* clean up
* fix non-determinism in selfservice model build
also trim down model compile dependencies to the minimum required
* Apply suggestions from code review
---------
Co-authored-by: Shane Smiskol <shane@smiskol.com>
* sla ui
remove dub
debug ahead
postition
maybe
posttion
think
* sunny will be mad
Reapply "test"
This reverts commit 7a35fd3053425b06c1e4cebf68b6c9676eb6e279.
Revert "test"
This reverts commit 1a79155d3cfc8e6e09a6fc38d13747883745ef6a.
test
* road name
* Revert "road name"
This reverts commit 02e69b008603c357f14b4793e8fc893e00b3d3a0.
* decouple
* dial it in
* match cur
* no magic numbers
* cleanup
* more cleanup
* match
* always draw ahead
* Revert "always draw ahead"
This reverts commit f695e00078.
* new
* type
* Revert "type"
This reverts commit 2dafa02407.
* default
---------
Co-authored-by: Jason Wen <haibin.wen3@gmail.com>
* mici turn signal for c3x
* sp dir
* decouple
* more
* ty
* refactor and slim down
* bigger
---------
Co-authored-by: Jason Wen <haibin.wen3@gmail.com>
* Give this a try
* can codex debug?
* simpler
* Revert "simpler"
This reverts commit 572335008c1c719aa985d14bd740253ff94b94a9.
* better
* cleanup
* try again
* tie
* try this
* try this
* do tests fail without this?
* doesn't seem needed
* unused
* don't need duplicate
* passes CI?
* try this
* try this
* try this
* I don't understand this, so back to before
* keep that alignment
* set uv_height
---------
Co-authored-by: Adeeb Shihadeh <adeebshihadeh@gmail.com>
* param to control stock vs sp ui
* init styles
* SP Toggles
* Lint
* optimizations
* Panels. With Icons. And Scroller.
* patience, grasshopper
* more patience, grasshopper
* sp raylib preview
* fix callback
* fix ui preview
* add ui previews
* Option Control
* Need this
* introducing ui_state_sp for py
* param to control stock vs sp ui
* better
* add ui_update callback
* better padding
* this
* listitem -> listitemsp
* Revert "add ui_update callback"
This reverts commit 4da32cc009.
* add show_description method
* remove padding from line separator.
like, WHY? 😩😩
* simplify
* I. SAID. SIMPLIFY.
* AAARGGGGGG.....
* init
* option control value fix
* add all controls
* hide all controls
* lint
* scroller -> scroller_tici
* scroller -> scroller_tici
* ui: `GuiApplicationExt`
* add to readme
* use gui_app.sunnypilot_ui()
* use gui_app.sunnypilot_ui()
* use gui_app.sunnypilot_ui()
* optimizations
* Removed hide for now
* refresh controls
* ugh
* global brightness
* initialize
* inline everything again
* change name
* Onroad Brightness reimpl
* Custom Interactive Timeout reimpl
* Global Brightness Override reimpl
* keep stock
* ui: Custom Interactive Timeout
* rename
* ui: Customizable Onroad Brightness
* lint
* lint
* Revert "Global Brightness Override reimpl"
This reverts commit 53522da4f8.
* Revert "Custom Interactive Timeout reimpl"
This reverts commit 459863a9bb.
* Revert "Onroad Brightness reimpl"
This reverts commit 4092d23e57.
* fixes
* lint
* reset on show/hide
* reset on show/hide for mici
* only set if true
* wrong var
* try this out
* use clear
* starts cleanup
* wake for all visual alerts and handle timeouts
* fixup: wake for all visual alerts and handle timeouts
* handle always wake if there's an event properly
* some
* slightly more
* need this back
* Reapply "ui: Global Brightness Override (#1579)"
This reverts commit a0c10be1ff.
* do not touch light sensor logic
* override properly and clip to 30% minimum
* wrap
* lint
* update immediately
* read
* max global brightness
* rename
* gotta do it for mici too lol
* update metadata
* desc
---------
Co-authored-by: Jason Wen <haibin.wen3@gmail.com>
Co-authored-by: DevTekVE <devtekve@gmail.com>
* ui: Customizable Onroad Brightness
* fixes
* lint
* reset on show/hide
* reset on show/hide for mici
* only set if true
* wrong var
* try this out
* use clear
* starts cleanup
* wake for all visual alerts and handle timeouts
* fixup: wake for all visual alerts and handle timeouts
* handle always wake if there's an event properly
* some
* slightly more
* need this back
* Reapply "ui: Global Brightness Override (#1579)"
This reverts commit a0c10be1ff.
* do not touch light sensor logic
* override properly and clip to 30% minimum
* wrap
* lint
* update immediately
* read
* max global brightness
* rename
* gotta do it for mici too lol
* revert
* Revert "revert"
This reverts commit 121a082de1.
* no more
* ui
* more
* intenum
* simplify ONROAD_BRIGHTNESS_TIMER_VALUES
* no more toggle
* 15 seconds countdown for auto dark regardless
* auto dark refinement
* only consume if expired
* immediately set
* rename
* update sl metadata
* no more
---------
Co-authored-by: nayan <nayan8teen@gmail.com>
Co-authored-by: DevTekVE <devtekve@gmail.com>
* Remove cython for transformations
* Add new test
* Switch back to program to fix mac builds
* Convert to Python instead
* Fix failing builds
* lint
* Implement conversion in pure python/numpy
* Add more tests
* Fix bugs in tests
* modeld: configurable camera offset
Negative Values: Shears the image to the left, moving the models center to the Right.
Positive Value: Shears the image to the right, moving the models center to the Left.
* modeld: camera offset class
* verify zero offset I @ A = A
* slithered and slunked
* Update params_metadata.json
* wait
* Update model_renderer.py
* Update model_renderer.py
* requested changes
* stricter
* Update model_renderer.py
* more
* return default
* Update params_metadata.json
* final
---------
Co-authored-by: Jason Wen <haibin.wen3@gmail.com>
* ui: improve layout and centering of bottom developer UI elements
* int
* less is more, y'all
* always show actual lat for all cars
* lint
* perfect
* cleanup
* too long
* inherit
* remove unused
* inir
* need to fix
* final
---------
Co-authored-by: Jason Wen <haibin.wen3@gmail.com>
* tos reimpl
* nah
* simpler
* check consent on sunnylink panel - mici
* slight cleanup
* rename
* keep it off
* decouple
* more rename
* more decouple
* a bit more
* fix state
* decouple more
* a bit more
* wrong type
* rearrange
* don't do that
* final
* lint
* include
* more
---------
Co-authored-by: nayan <nayan8teen@gmail.com>
* tools: add LRU for log cache
* lil more
* cleanup:
* less syscall
* manifest
* cleanup
* cleanup
* lil more
* cleanup
* lil more
* simpler
* lil more
* commaai/openpilot:d05cb31e2e916fba41ba8167030945f427fd811b
* bump opendbc
* bump opendbc
* bump opendbc
* bump opendbc
* bump opendbc
* sunnypilot: remove Qt
* cabana: revert to stock Qt
* commaai/openpilot:5198b1b079c37742c1050f02ce0aa6dd42b038b9
* commaai/openpilot:954b567b9ba0f3d1ae57d6aa7797fa86dd92ec6e
* commaai/openpilot:7534b2a160faa683412c04c1254440e338931c5e
* sum more
* bump opendbc
* not yet
* should've been symlink'ed
* raylib says wut
* quiet mode back
* more fixes
* no more
* too extra red diff on the side
* need to bring this back
* too extra
* let's update docs here
* Revert "let's update docs here"
This reverts commit 51fe03cd51.
* param to control stock vs sp ui
* init styles
* SP Toggles
* Lint
* optimizations
* multi-button
* Lint
* param to control stock vs sp ui
* init styles
* SP Toggles
* Lint
* optimizations
* sp raylib preview
* fix callback
* fix ui preview
* better padding
* this
* support for next line multi-button
* uhh
* disabled colors
* listitem -> listitemsp
* listitem -> listitemsp
* add show_description method
* remove padding from line separator.
like, WHY? 😩😩
* ui: `GuiApplicationExt`
* simple button
* simple button
* add to readme
* use gui_app.sunnypilot_ui()
* i've got something to confessa
* init
* more init
* power buttons always visible
* uh, nope
* add reset to offroad only
* support wake up offroad
* flippity floppity
* dual button item sp
* use dual button item sp
* lint
* keep @devtekve from going blind
* more round
* some
* revert
* slight diff
* should've been inline
* cleanup power btns and offroad transitions
* bruh
* 1st row red diff
* 2nd row red diff
* 3rd row red diff
* slight diff
* move around
* more diff
* only when onroad we move to the top, not the toggle
* nah
* sort
---------
Co-authored-by: Jason Wen <haibin.wen3@gmail.com>
Co-authored-by: DevTekVE <devtekve@gmail.com>
Co-authored-by: James Vecellio-Grant <159560811+Discountchubbs@users.noreply.github.com>
Co-authored-by: discountchubbs <alexgrant990@gmail.com>
* chevron info
* sp dir
* rename
* decouple from stock model renderer
* pain
* RED DIFF: get from ui state directly
* built in
* banned
* no magic
* space
---------
Co-authored-by: Jason Wen <haibin.wen3@gmail.com>
* rainbow
* use monotonic
* sp dir
* lint
* decouple from stock model renderer
* call in ui state directly
* it's a boolean
* too long
* nope
---------
Co-authored-by: Jason Wen <haibin.wen3@gmail.com>
* feat: add blocked parameter names
* add unit test to validate
* test: use cached method
* move it out
---------
Co-authored-by: Jason Wen <haibin.wen3@gmail.com>
* support ecdsa for mici
* lint
* ugh
* ugh ughain
* more
* symmetrical AES key derivation and some missing key handling
* cleanup
---------
Co-authored-by: Jason Wen <haibin.wen3@gmail.com>
* init
* add only colors
* fix LAT_ONLY on mici
* better ball
* hide wheel on LONG_ONLY
* hide torquebar on LONG_ONLY
* simpler
* dont block demo
* path only on long
* lanelines only on lat
* hide on override
* better
* same LANE_LINE_COLORS for mads
* use mads colors
* Revert "use mads colors"
This reverts commit 556321e5debe44e33d4ad98f440f0ed9f961fdf5.
* slight decouple confidence ball
* slight decouple model renderer
* slight decouple augmented road view
* decouple status update
* decouple and override with our own, no overriding with steering if long only
* fix
* fix it
---------
Co-authored-by: Jason Wen <haibin.wen3@gmail.com>
* devui
* clean up
* clean up
* optimize text measurement for better rendering performance
* sp dir
* decouple from stock HudRenderer
* rename
* fetch mode in _update_state
* wrong type
* start decoupling elements
* decouple elements
* un-ew this pls
* fully decouple developer UI elements
* rename
* more decouple
* full send
* final
---------
Co-authored-by: Jason Wen <haibin.wen3@gmail.com>
This PR aims to fix sunnypilot pytest that was broken on MacOS due to calling capnp to_dict, which isn't supported on pycapnp library for Mac.
Co-authored-by: Jason Wen <haibin.wen3@gmail.com>
* comma four: fix missing WiFi show_event (#36858)
* can't do this
* can do this
* comma four: rm duplicate wifi show_event
* comma four: fix WiFi panel not starting at the top (#36859)
* fix
* fix
* NavWidget: disable nav bar for vertical scrollers (#36857)
* disable nav bar vert scroller
* cmt
* ui: improve network sort (#36855)
* better sort
* clean up
* comma four: reset WiFi SSID scroll on show (#36861)
reset scroll
* WifiUi: fix infinite wraps (#36863)
* fix infinite wrap
* fix selection
* Revert "fix selection"
This reverts commit 555c57922409312bf5d9efedf571994f157b9e44.
* revert
* revert
* revert
* revert
* cleaner
* cleaner
* mypy!!
* WifiUi: remove delayed network panel open (#36865)
not used
* comma four: fix WiFi scroll to (#36864)
* fix selection
* stash
* Revert "stash"
This reverts commit d04ed66b090641072c86b8ed7ed86dbdbf67fbd9.
* clean up
* clean up
* move
* fix
* WifiUi: pause updates while user is scrolling (#36866)
* pause updates while user is scrolling
* clean up
* WifiUi: pause updates while user is interacting (#36868)
int not scroll
* Widget: implement layout function (#36869)
* we can implement layout to fix flashing
* reorder
* fix faster than normal snap and reduce duplicate calculations
* yes
* comma four: follow current network (#36862)
* stay
* whoops
* whoops
* fix
* fix div by z
* we can implement layout to fix flashing
* Revert "we can implement layout to fix flashing"
This reverts commit 7278a1e2a6117aec775ef4fabee2fd68b3d064f3.
* random
* clean up
* wtf
* rev
* smooth
* we can implement layout to fix flashing
* snap looks so much better
* fix
* rev
* better name
* cmt
* less random
* even less random
* simpler
* cmt
* clean up
* clean up
* clean up
* GuiScrollPanel2: fix possible crash (#36870)
fix crash
* WifiUi: tweak unselected button size (#36871)
looks too spaces
* rm dead unlog_ci_segment.py
* joystickd: add cruise control resume (#36876)
* Add cruise control resume logic based on conditions
* simple
* bump opendbc (#36878)
* bump
* update docs
* bump
* gotta go fast
* sensord: remove last of dual IMU support (#36881)
* Toyota: prevent roll in ICE after pressing resume while wanting to stay stopped (#36877)
* bump
* only show alert when user can leave standstill
* cmt
* stash
* bump
* bump to master
* test_onroad: absolute memory usage test (#36885)
* test_onroad: absolute memory usage test
* show msgq size
* reduce a little
* bump msgq
* Revert "bump msgq"
This reverts commit 683d0ae9fc754f7b72e2bc4b256e9a3b0a60a127.
* Reduce pub-sub memory usage by 10x (#36884)
less mem
* four: hide untoggleable toggles (#36890)
* hide toggles
* enabled is redundant
* bump msgq (#36891)
* bump msgq
* update prefix
* ui: generic hold gesture (#36893)
* generic
* fix
* use in home
* clean up
* rm
* clean up
* four: simpler steer saturated alert (#36894)
* looks good
* fix
* cleanup
* test_onroad: relax memory threshold (#36895)
* Update RELEASES.md for version 0.10.3
* Update RELEASES.md
* ui: override default interactive timeout (#36898)
* impl
* fix one place
* don't need in setup
* fix onboarding
* need here too
* ui: default text color 90% white (#36899)
default 90%
* onboarding: fixup DM RHD detection (#36900)
* helper
* fix
* use it
* prop
* bigger box
* huh
* comma four: simpler DM onboarding (#36896)
* rm confirm mode
* kinda works
* how
* disabled
* do this
* do this
* wait
* here
* something
* fade in
* 4s
* clean up
* copy
* help
* 30deg center
* stuff
* reset_interactive_timeout
* rm
* simple
* simple
* copy
* 1.5x
* smooth opacity
* power off slider
* fix
* new icons and gradient and rounded
* final check
* fix
* how the hell did this work
* clean up
* clean up
* flip
* cmt
* uh yeah
* remove this
* revert this
* lint
* 45
* clean up
* fix
* no show time
* question
* rm
* no use
* ()
* lint
* call
* ui: fix not showing networks if viewing right after startup
* Fix tici DM dialog memory leak (#36790)
* not finished
* no
* debug
* clean up
* clean up
* Revert "ui: generic hold gesture (#36893)"
This reverts commit 9768109ec1.
* setup: go back to main page once connected (#36902)
* call
* break
* print
* fix
* rm
* debug
* fix
* yeah ideally wifiui has no clue about this
* clean up
* clean up
* clean up
* only need this
* cu
* rm
* fix
* CI: tmp disable macOS due to brew bug (#36906)
* need update?
* try this
* x
* just disable it
* lil more release notes
---------
Co-authored-by: Shane Smiskol <shane@smiskol.com>
Co-authored-by: Adeeb Shihadeh <adeebshihadeh@gmail.com>
Co-authored-by: YassineYousfi <yyousfi1@binghamton.edu>
* call
* break
* print
* fix
* rm
* debug
* fix
* yeah ideally wifiui has no clue about this
* clean up
* clean up
* clean up
* only need this
* cu
* rm
* fix
* rm confirm mode
* kinda works
* how
* disabled
* do this
* do this
* wait
* here
* something
* fade in
* 4s
* clean up
* copy
* help
* 30deg center
* stuff
* reset_interactive_timeout
* rm
* simple
* simple
* copy
* 1.5x
* smooth opacity
* power off slider
* fix
* new icons and gradient and rounded
* final check
* fix
* how the hell did this work
* clean up
* clean up
* flip
* cmt
* uh yeah
* remove this
* revert this
* lint
* 45
* clean up
* fix
* no show time
* question
* rm
* no use
* ()
* lint
* call
* test_onroad: absolute memory usage test
* show msgq size
* reduce a little
* bump msgq
* Revert "bump msgq"
This reverts commit 683d0ae9fc754f7b72e2bc4b256e9a3b0a60a127.
* stay
* whoops
* whoops
* fix
* fix div by z
* we can implement layout to fix flashing
* Revert "we can implement layout to fix flashing"
This reverts commit 7278a1e2a6117aec775ef4fabee2fd68b3d064f3.
* random
* clean up
* wtf
* rev
* smooth
* we can implement layout to fix flashing
* snap looks so much better
* fix
* rev
* better name
* cmt
* less random
* even less random
* simpler
* cmt
* clean up
* clean up
* clean up
* ui: developer panel
* comment out
* double translate
* quickboot and more efficient file checking
* use HtmlModalSP!
* ui: `HtmlModalSP`
* less
* lint
* less
* just use existing dir on PC
* grammar
* match official
* rename
* biiig
---------
Co-authored-by: Jason Wen <haibin.wen3@gmail.com>
* param to control stock vs sp ui
* init styles
* SP Toggles
* Lint
* optimizations
* sp raylib preview
* fix callback
* fix ui preview
* dialog txt
* compare vs what used to be done before InputDialog
* merge origin raylib toggles
* tree dialog
* less trees for the planet
* the heck
* save the trees we got icons
* Update process.py
* Remove 'sunnypilot_ui'
Removed 'sunnypilot_ui' parameter from params_keys.h
* Update raylib_screenshots.py
Removed the parameter setting for 'sunnypilot_ui' in the test.
* ui: fuzzy search helper
* better tree. fully dynamic and stuff
* rm
* more indent
* Squashed commit of the following:
commit 6b5b686fa5
Author: discountchubbs <alexgrant990@gmail.com>
Date: Mon Nov 24 17:16:17 2025 -0800
more indent
commit 76bc538ac7
Merge: 53eb821dc4c53e2134e2
Author: James Vecellio-Grant <159560811+Discountchubbs@users.noreply.github.com>
Date: Mon Nov 24 17:15:48 2025 -0800
Merge branch 'master' into rl-tree-dialog
commit 53eb821dc4
Merge: 82e1ebe97e844f4cbc74
Author: James Vecellio-Grant <159560811+Discountchubbs@users.noreply.github.com>
Date: Mon Nov 24 11:54:55 2025 -0800
Merge branch 'master' into rl-tree-dialog
commit 82e1ebe97e
Author: discountchubbs <alexgrant990@gmail.com>
Date: Mon Nov 24 10:23:35 2025 -0800
rm
commit da3ff45bb6
Merge: 41da513fcaa829a1b972
Author: discountchubbs <alexgrant990@gmail.com>
Date: Mon Nov 24 10:19:08 2025 -0800
Merge remote-tracking branch 'origin/rl-tree-dialog' into rl-tree-dialog
commit 41da513fca
Author: discountchubbs <alexgrant990@gmail.com>
Date: Mon Nov 24 10:18:43 2025 -0800
better tree. fully dynamic and stuff
commit b2950149fb
Merge: 4fb8e4beed924e5a3211
Author: discountchubbs <alexgrant990@gmail.com>
Date: Mon Nov 24 10:17:51 2025 -0800
Merge remote-tracking branch 'origin/input-dialog' into rl-tree-dialog
commit a829a1b972
Merge: 848290d07e9edc36ca66
Author: James Vecellio-Grant <159560811+Discountchubbs@users.noreply.github.com>
Date: Mon Nov 24 10:16:28 2025 -0800
Merge branch 'master' into rl-tree-dialog
commit 4fb8e4beed
Merge: 848290d07eaf4f0f8372
Author: discountchubbs <alexgrant990@gmail.com>
Date: Mon Nov 24 10:16:20 2025 -0800
Merge remote-tracking branch 'origin/fuzzy-dialog' into rl-tree-dialog
commit af4f0f8372
Merge: 1d5f0ab2823cd55260d9
Author: James Vecellio-Grant <159560811+Discountchubbs@users.noreply.github.com>
Date: Mon Nov 24 06:39:29 2025 -0800
Merge branch 'master' into fuzzy-dialog
commit 1d5f0ab282
Author: discountchubbs <alexgrant990@gmail.com>
Date: Sun Nov 23 11:28:59 2025 -0800
ui: fuzzy search helper
commit 848290d07e
Author: James Vecellio-Grant <159560811+Discountchubbs@users.noreply.github.com>
Date: Fri Nov 21 21:08:07 2025 -0800
Update raylib_screenshots.py
Removed the parameter setting for 'sunnypilot_ui' in the test.
commit 6694928a46
Author: James Vecellio-Grant <159560811+Discountchubbs@users.noreply.github.com>
Date: Fri Nov 21 21:06:57 2025 -0800
Remove 'sunnypilot_ui'
Removed 'sunnypilot_ui' parameter from params_keys.h
commit b3c90ef7b2
Merge: 0d3bc959c8457b6634fd
Author: James Vecellio-Grant <159560811+Discountchubbs@users.noreply.github.com>
Date: Fri Nov 21 21:06:04 2025 -0800
Merge branch 'master' into rl-tree-dialog
commit 924e5a3211
Merge: a4ee4ba76dd92d2cb683
Author: James Vecellio-Grant <159560811+Discountchubbs@users.noreply.github.com>
Date: Fri Nov 21 19:33:18 2025 -0800
Merge branch 'master' into input-dialog
commit a4ee4ba76d
Merge: e911de59684f13a0f775
Author: James Vecellio-Grant <159560811+Discountchubbs@users.noreply.github.com>
Date: Fri Nov 21 16:24:31 2025 -0800
Merge branch 'master' into input-dialog
commit e911de5968
Merge: cea6e008190ba5cbea91
Author: James Vecellio-Grant <159560811+Discountchubbs@users.noreply.github.com>
Date: Fri Nov 21 13:50:33 2025 -0800
Merge branch 'master' into input-dialog
commit cea6e00819
Merge: d7b8ce86ed8184cd8a6a
Author: James Vecellio-Grant <159560811+Discountchubbs@users.noreply.github.com>
Date: Fri Nov 21 12:01:45 2025 -0800
Merge branch 'master' into input-dialog
commit 0d3bc959c8
Author: James Vecellio-Grant <159560811+Discountchubbs@users.noreply.github.com>
Date: Wed Nov 19 20:29:30 2025 -0800
Update process.py
commit 4f3c19ffb5
Author: James Vecellio <alexgrant990@gmail.com>
Date: Wed Nov 19 20:28:59 2025 -0800
save the trees we got icons
commit ae5c44355d
Author: discountchubbs <alexgrant990@gmail.com>
Date: Wed Nov 19 13:38:04 2025 -0800
the heck
commit 066438ad10
Merge: 9532675814e74460f3a8
Author: discountchubbs <alexgrant990@gmail.com>
Date: Wed Nov 19 12:18:17 2025 -0800
Merge remote-tracking branch 'origin/rl-tree-dialog' into rl-tree-dialog
commit 9532675814
Author: discountchubbs <alexgrant990@gmail.com>
Date: Wed Nov 19 12:17:52 2025 -0800
less trees for the planet
commit e74460f3a8
Merge: c347db376a423a7d2ed0
Author: James Vecellio-Grant <159560811+Discountchubbs@users.noreply.github.com>
Date: Wed Nov 19 09:37:44 2025 -0800
Merge branch 'rl-sp-toggles' into rl-tree-dialog
commit c347db376a
Author: discountchubbs <alexgrant990@gmail.com>
Date: Wed Nov 19 09:36:33 2025 -0800
tree dialog
commit c9bd67b261
Author: discountchubbs <alexgrant990@gmail.com>
Date: Wed Nov 19 09:34:08 2025 -0800
merge origin raylib toggles
commit d7b8ce86ed
Author: discountchubbs <alexgrant990@gmail.com>
Date: Mon Nov 17 20:21:33 2025 -0800
compare vs what used to be done before InputDialog
commit 2d3d104658
Merge: ded02895f4f1025f6ee9
Author: James Vecellio-Grant <159560811+Discountchubbs@users.noreply.github.com>
Date: Mon Nov 17 19:24:20 2025 -0800
Merge branch 'master' into input-dialog
commit ded02895f4
Author: discountchubbs <alexgrant990@gmail.com>
Date: Mon Nov 17 19:22:01 2025 -0800
dialog txt
commit 9778a925b0
Merge: cb03d0839708e85808c5
Author: Jason Wen <haibin.wen3@gmail.com>
Date: Sun Nov 16 03:16:58 2025 -0500
input dialog
commit 423a7d2ed0
Author: nayan <nayan8teen@gmail.com>
Date: Sun Nov 16 11:15:28 2025 -0500
fix ui preview
commit e4e10d4b87
Author: nayan <nayan8teen@gmail.com>
Date: Sun Nov 16 11:15:22 2025 -0500
fix callback
commit 362e9ce04b
Author: nayan <nayan8teen@gmail.com>
Date: Sun Nov 16 09:53:28 2025 -0500
sp raylib preview
commit 3946e643f6
Author: nayan <nayan8teen@gmail.com>
Date: Sat Nov 15 20:24:20 2025 -0500
optimizations
commit 0c37a38596
Author: nayan <nayan8teen@gmail.com>
Date: Sat Nov 15 09:42:12 2025 -0500
Lint
commit 9c5acf61c0
Author: nayan <nayan8teen@gmail.com>
Date: Sat Nov 15 09:29:07 2025 -0500
SP Toggles
commit 121b304fe0
Author: nayan <nayan8teen@gmail.com>
Date: Sat Nov 15 09:28:58 2025 -0500
init styles
commit 47d848293b
Author: nayan <nayan8teen@gmail.com>
Date: Sat Nov 15 09:28:43 2025 -0500
param to control stock vs sp ui
* Squashed commit of the following:
commit 70ad001add
Merge: 142663c490844f4cbc74
Author: James Vecellio-Grant <159560811+Discountchubbs@users.noreply.github.com>
Date: Mon Nov 24 11:54:58 2025 -0800
Merge branch 'master' into rl-progress-bar
commit 142663c490
Author: discountchubbs <alexgrant990@gmail.com>
Date: Sat Nov 22 20:12:44 2025 -0800
smoother updating
commit 4476e418dd
Author: discountchubbs <alexgrant990@gmail.com>
Date: Sat Nov 22 09:55:17 2025 -0800
easier to see
commit ad66c22e88
Merge: 0c46ef5948457b6634fd
Author: James Vecellio-Grant <159560811+Discountchubbs@users.noreply.github.com>
Date: Sat Nov 22 07:45:05 2025 -0800
Merge branch 'master' into rl-progress-bar
commit 0c46ef5948
Author: discountchubbs <alexgrant990@gmail.com>
Date: Sat Nov 22 07:42:59 2025 -0800
freaking test dir
commit 11c19aad24
Merge: 7785238d548184cd8a6a
Author: James Vecellio-Grant <159560811+Discountchubbs@users.noreply.github.com>
Date: Fri Nov 21 12:01:36 2025 -0800
Merge branch 'master' into rl-progress-bar
commit 7785238d54
Author: discountchubbs <alexgrant990@gmail.com>
Date: Wed Nov 19 07:47:10 2025 -0800
raylib: progress bar
* OSM panel
* fetching
* only show if fav_param is used in the call
* flattened and custom search query
* conditional for mypy
* sunny's new x,y makes this even easier!
* download all
* add back the rough estimate
* not sure i like the 'Download'
* simplify the path
* actual size as of today
* format
* more simple
* only show on download or delete
* loathing loathing, unadulterated loathing, i loathe it all
* loathing loathing, unadulterated loathing, i loathe it all
* # Conflicts:
# system/ui/sunnypilot/lib/styles.py
# system/ui/sunnypilot/widgets/tree_dialog.py
* search
* st
* Update osm.py
* one second updates:
its heavy process, which isnt really noticeable during downloads ayways. the once a second ensures responsiveness on the ui, while also maintaining 20fps on device for country/state downloads.
* efficient? i hope
* big boi texts
* big boi texts
* use our own classes
* need to clear all params when delete all
* more
* collateral lol
* do not behave as selected if canceled during US->States dialog
* more
* instead of timestamp, let's just show formatted time
* disable button when downloading dbs
* should be the buttons being disabled
* well gotta re-enable them too
* empty country
* might be bigger now
* fixes for mapd manager
* should stay as a json
* sanitize it a bit
* revert
* only nuke if the cancel button is called
* always try to update the labels
* Revert "always try to update the labels"
This reverts commit ba0988fc06.
* re-enable button after download is complete
* disable all while downloading (till we could cancel and re-download)
* fix progress bar not filling up as intended for smaller total counts
* revert
* use new
---------
Co-authored-by: nayan <nayan8teen@gmail.com>
Co-authored-by: Jason Wen <haibin.wen3@gmail.com>
* Brand Extra Gears Dict added. Gear data removed from CarSpecificEvents Update method, data now held in global variable.
* Added elif for Ford and Nissan events creation. BRAND_EXTRA_GEARS now extracted from CarSpecificEvents
* Amended Chrysler and Toyota create_common_events calls.
* format
* can do this!
* consis
* whoops
* type
---------
Co-authored-by: RJ <ryan@DESKTOP-4S0L5O5.localdomain>
Co-authored-by: Shane Smiskol <shane@smiskol.com>
* video diff
* format
* duplicate
* try
* WINDOWED
* ?
* correct res
* Revert "correct res"
This reverts commit f90991192fce93a31d1b581a4f0ff93a7a972337.
* save to report/
* add duplicate
* work?
* fix
* more
* more
* and this
* ffmpeg
* branch
* uncmt
* test preview
* Revert "uncmt"
This reverts commit b02404dbbe515fd861717f831c7bb0243442ddbc.
* create openpilot_master_ui_mici_raylib
* ahh
* push to master
* copy and always run
* test
* does cmt break it?
* who did this
* fix?
* fix that
* hmm
* hmm
* ah this was moving it, and then the job below didn't run on master
* google ai overview lied to me
* use markdown to start
* need to add to one branch
* ????
* oof
* no
* this work?
* test
* try this
* clean up master branch name
* more cleanup
more cleanup
* don't fail for no diff!
don't fail for no diff!
* back
* add to cmt
* test it
* should work
* fix that
* back
* clean up
* clean up
* save to report
* pull_request_target
* sort
---------
Co-authored-by: Shane Smiskol <shane@smiskol.com>
* Add Ukrainian lang
* update_translations.py
* Add Ukrainian strings
* Small patch to display translated update states
* Revert "Small patch to display translated update states"
This reverts commit b0545f4e109f451a21e4e5884259dbb881d7a58e.
* Revert "update_translations.py"
This reverts commit 79eea20c33f1b1d542b62a782ab1b67bc9277026.
* fix so these meaningless edits
* param to control stock vs sp ui
* init styles
* SP Toggles
* Lint
* optimizations
* sp raylib preview
* fix callback
* fix ui preview
* dialog txt
* compare vs what used to be done before InputDialog
* introducing ui_state_sp for py
* raylib: input dialog
* raylib: SP Toggles
* raylib: SP Panels
* raylib: Option Control
* init
* param to control stock vs sp ui
* better
* tree dialog, progress bar widget cool stuff
* merge origin raylib toggles
* tree dialog
* less trees for the planet
* the heck
* add ui_update callback
* save the trees we got icons
* Update process.py
* yesssssssssss
* utilize ON_COLOR constant form op system
* Revert "add ui_update callback"
This reverts commit 4da32cc009.
* # Conflicts:
# system/ui/sunnypilot/widgets/list_view.py
# system/ui/sunnypilot/widgets/option_control.py
* Merge remote-tracking branch 'openpilot/master' into nov-19-sync
* ui: `GuiApplicationExt`
* add to readme
* scroller_tici :)
* use gui_app.sunnypilot_ui()
* # Conflicts:
# selfdrive/ui/layouts/main.py
# selfdrive/ui/sunnypilot/layouts/settings/cruise.py
# selfdrive/ui/sunnypilot/layouts/settings/display.py
# selfdrive/ui/sunnypilot/layouts/settings/models.py
# selfdrive/ui/sunnypilot/layouts/settings/navigation.py
# selfdrive/ui/sunnypilot/layouts/settings/osm.py
# selfdrive/ui/sunnypilot/layouts/settings/steering.py
# selfdrive/ui/sunnypilot/layouts/settings/sunnylink.py
# selfdrive/ui/sunnypilot/layouts/settings/trips.py
# selfdrive/ui/sunnypilot/layouts/settings/vehicle.py
# selfdrive/ui/sunnypilot/layouts/settings/visuals.py
# system/ui/sunnypilot/widgets/option_control.py
* init value
* Remove 'sunnypilot_ui'
Removed 'sunnypilot_ui' parameter from params_keys.h
* Update raylib_screenshots.py
Removed the parameter setting for 'sunnypilot_ui' in the test.
* easier to see
* Update progress_bar.py
* try something
* adjust placement
* more simple
* smoothing updating components
* ui: fuzzy search helper
* ui_state_sp
* description!
* fuzzy af searching
* better tree. fully dynamic and stuff
* rm
* rearrange
* license
* idk how maybe the merge
* more indent
* more indent
* cleanup
* temporaily revert ui_state_sp
* only show if fav_param is used in the call
* conditional for mypy
* mypy
* conditional for mypy
* str concatenation to reduce line len
* level
* sunny's new x,y makes this even easier!
* refreshing half a second seems legit.
* software stuffs
* rm
* add
* loathing loathing, unadulterated loathing, i loathe it all
* loathing loathing, unadulterated loathing, i loathe it all
* # Conflicts:
# system/ui/sunnypilot/lib/styles.py
# system/ui/sunnypilot/widgets/tree_dialog.py
* search
* ds
* hide on advanced controls
* some
* handle toggle confirmation
* sunny, NO
* nayan, NO !!
* easier
* move
* move it!
* add more
* need to show current branch
---------
Co-authored-by: nayan <nayan8teen@gmail.com>
Co-authored-by: Jason Wen <haibin.wen3@gmail.com>
* param to control stock vs sp ui
* init styles
* SP Toggles
* Lint
* optimizations
* sp raylib preview
* fix callback
* fix ui preview
* dialog txt
* compare vs what used to be done before InputDialog
* introducing ui_state_sp for py
* raylib: input dialog
* raylib: SP Toggles
* raylib: SP Panels
* raylib: Option Control
* init
* param to control stock vs sp ui
* better
* tree dialog, progress bar widget cool stuff
* merge origin raylib toggles
* tree dialog
* less trees for the planet
* the heck
* add ui_update callback
* save the trees we got icons
* Update process.py
* yesssssssssss
* utilize ON_COLOR constant form op system
* Revert "add ui_update callback"
This reverts commit 4da32cc009.
* # Conflicts:
# system/ui/sunnypilot/widgets/list_view.py
# system/ui/sunnypilot/widgets/option_control.py
* Merge remote-tracking branch 'openpilot/master' into nov-19-sync
* ui: `GuiApplicationExt`
* add to readme
* scroller_tici :)
* use gui_app.sunnypilot_ui()
* # Conflicts:
# selfdrive/ui/layouts/main.py
# selfdrive/ui/sunnypilot/layouts/settings/cruise.py
# selfdrive/ui/sunnypilot/layouts/settings/display.py
# selfdrive/ui/sunnypilot/layouts/settings/models.py
# selfdrive/ui/sunnypilot/layouts/settings/navigation.py
# selfdrive/ui/sunnypilot/layouts/settings/osm.py
# selfdrive/ui/sunnypilot/layouts/settings/steering.py
# selfdrive/ui/sunnypilot/layouts/settings/sunnylink.py
# selfdrive/ui/sunnypilot/layouts/settings/trips.py
# selfdrive/ui/sunnypilot/layouts/settings/vehicle.py
# selfdrive/ui/sunnypilot/layouts/settings/visuals.py
# system/ui/sunnypilot/widgets/option_control.py
* init value
* Remove 'sunnypilot_ui'
Removed 'sunnypilot_ui' parameter from params_keys.h
* Update raylib_screenshots.py
Removed the parameter setting for 'sunnypilot_ui' in the test.
* easier to see
* Update progress_bar.py
* try something
* adjust placement
* more simple
* smoothing updating components
* ui: fuzzy search helper
* ui_state_sp
* description!
* fuzzy af searching
* better tree. fully dynamic and stuff
* rm
* rearrange
* license
* idk how maybe the merge
* more indent
* more indent
* cleanup
* temporaily revert ui_state_sp
* only show if fav_param is used in the call
* conditional for mypy
* mypy
* conditional for mypy
* str concatenation to reduce line len
* level
* sunny's new x,y makes this even easier!
* refreshing half a second seems legit.
* loathing loathing, unadulterated loathing, i loathe it all
* loathing loathing, unadulterated loathing, i loathe it all
* # Conflicts:
# system/ui/sunnypilot/lib/styles.py
# system/ui/sunnypilot/widgets/tree_dialog.py
* Update models.py
* Change BUTTON_DISABLED_BG_COLOR to a lighter shade
* I think this is it
* Update tree_dialog.py
* Update models.py
* Update models.py
* oops, angry f string
* bool
* Update ui_state.py
* Update ui_state.py
* wtf where'd the end quote go lol
* some
* more
* quick test
* Revert "quick test"
This reverts commit fb97afa54c.
* try this out
* use sp's
* cap
* how weird?
---------
Co-authored-by: nayan <nayan8teen@gmail.com>
Co-authored-by: Jason Wen <haibin.wen3@gmail.com>
* param to control stock vs sp ui
* init styles
* SP Toggles
* Lint
* optimizations
* sp raylib preview
* fix callback
* fix ui preview
* sunnylink state
* introducing ui_state_sp for py
* poll from ui_state_sp
* cloudlog & ruff
* param to control stock vs sp ui
* better
* better padding
* this
* listitem -> listitemsp
* add show_description method
* remove padding from line separator.
like, WHY? 😩😩
* ui: `GuiApplicationExt`
* add to readme
* use gui_app.sunnypilot_ui()
* use gui_app.sunnypilot_ui()
* fetch only when connected to network
* sponsor & pairing qr
* init panel elements
* backup & restore
* fruit loops
* update
* enable, disable, enable, disable
* handle layout updates
* not needed
* change it up
* better
* scroller -> scroller_tici
* optimizations
* remove Params
* fix button disablement
* ui_state_sp changes
* keep enabled
* add header text
* dad jokes?
* no
* lint? Lint!
* final touches
* add sp font
* use sp font
* some
* ui: add right-aligned value display support in `ListItem` (in another pr)
* display sunnylink device id
* display sunnylink device id and sponsor tiers
* ui: add right-aligned value display support in `ListItemSP`
* lint
* styles
* lint
* ui: introduce customizable value colors for `ButtonActionSP` and `ListViewSP`
* support
* convert to str
* disable if paired
* colored sponsors
* hide and disable pairing button if paired
* texts
* ui: sunnypilot sponsor tier color mapping
* lint
* dongle id for ui preview
---------
Co-authored-by: Jason Wen <haibin.wen3@gmail.com>
Co-authored-by: James Vecellio-Grant <159560811+Discountchubbs@users.noreply.github.com>
* commaai/openpilot:d05cb31e2e916fba41ba8167030945f427fd811b
* bump opendbc
* bump opendbc
* bump opendbc
* bump opendbc
* bump opendbc
* sunnypilot: remove Qt
* cabana: revert to stock Qt
* commaai/openpilot:5198b1b079c37742c1050f02ce0aa6dd42b038b9
* commaai/openpilot:954b567b9ba0f3d1ae57d6aa7797fa86dd92ec6e
* commaai/openpilot:7534b2a160faa683412c04c1254440e338931c5e
* sum more
* bump opendbc
* not yet
* should've been symlink'ed
* raylib says wut
* quiet mode back
* more fixes
* no more
* too extra red diff on the side
* need to bring this back
* too extra
* let's update docs here
* Revert "let's update docs here"
This reverts commit 51fe03cd51.
* param to control stock vs sp ui
* init styles
* SP Toggles
* Lint
* optimizations
* multi-button
* Lint
* param to control stock vs sp ui
* init styles
* SP Toggles
* Lint
* optimizations
* Panels. With Icons. And Scroller.
* patience, grasshopper
* more patience, grasshopper
* sp raylib preview
* fix callback
* fix ui preview
* add ui previews
* dialog txt
* compare vs what used to be done before InputDialog
* introducing ui_state_sp for py
* param to control stock vs sp ui
* better
* add ui_update callback
* better padding
* this
* support for next line multi-button
* uhh
* disabled colors
* listitem -> listitemsp
* listitem -> listitemsp
* Revert "add ui_update callback"
This reverts commit 4da32cc009.
* add show_description method
* remove padding from line separator.
like, WHY? 😩😩
* scroller -> scroller_tici
* scroller -> scroller_tici
* ui: `GuiApplicationExt`
* add to readme
* use gui_app.sunnypilot_ui()
* use gui_app.sunnypilot_ui()
* use gui_app.sunnypilot_ui()
* lint
* no fancy toggles :(
* match them
* mici scroller - no touchy
* no
* more
* size adjustments
* fix scroller. yay
* ui vehicle panel: platform selector
* some brands
* platform selector
* bruh
* ui_state_sp
* o
* is_offroad() and format
* huh
* use in toggles panel
* ugh. no
* better & animated
* lint
* cleanup
* lint. LINT
* slight
* rebase
* no more
* rebae
* vic
* v
* # Conflicts:
# system/ui/sunnypilot/lib/styles.py
# system/ui/sunnypilot/widgets/helpers/fuzzy_search.py
* loathing loathing, unadulterated loathing, i loathe it all
* more changes!
* Update styles.py
* set visibility
* Update hyundai.py
* add padding
* use symlink on sp side
* use make from json and show all actual makes
* all done!
* Revert "all done!"
This reverts commit 595c45f057.
* reimpl onroad/offroad confirmation
* use global offroad directly
* ui: highlight on pressed, and less indent
* inherit MultiOptionDialog main buttons
* align top level folders to the edge properly
* lint
* lint
* handle folder presses too
* ui: overridable title and subtitle for `TreeOptionDialog`
* override TreeOptionDialog title and subtitle
* lint
* more
* ui: magnifying glass icon and new search bar style in `TreeDialog`
* cleanup
* ui: recreate search dialog with the latest query
* make model year but display as platform
* move into settings directory
* move into dir
* sync
* equality
* use singleton directly
* also use singleton directly
* inherit from base class
* include all brands
* added refresh
* always assume it's subaru
* slight
* split get brand
* hyundai changes
* tesla changes
* do not allow while offroad
* fix
---------
Co-authored-by: Jason Wen <haibin.wen3@gmail.com>
Co-authored-by: nayan <nayan8teen@gmail.com>
* param to control stock vs sp ui
* init styles
* SP Toggles
* Lint
* optimizations
* Panels. With Icons. And Scroller.
* patience, grasshopper
* more patience, grasshopper
* sp raylib preview
* fix callback
* fix ui preview
* add ui previews
* dialog txt
* compare vs what used to be done before InputDialog
* introducing ui_state_sp for py
* param to control stock vs sp ui
* better
* add ui_update callback
* better padding
* this
* listitem -> listitemsp
* Revert "add ui_update callback"
This reverts commit 4da32cc009.
* add show_description method
* remove padding from line separator.
like, WHY? 😩😩
* scroller -> scroller_tici
* scroller -> scroller_tici
* ui: `GuiApplicationExt`
* add to readme
* use gui_app.sunnypilot_ui()
* use gui_app.sunnypilot_ui()
* use gui_app.sunnypilot_ui()
* lint
* no fancy toggles :(
* match them
* mici scroller - no touchy
* no
* more
* size adjustments
* fix scroller. yay
* ui vehicle panel: platform selector
* platform selector
* bruh
* ui_state_sp
* huh
* rebase
* rebae
* vic
* # Conflicts:
# system/ui/sunnypilot/lib/styles.py
# system/ui/sunnypilot/widgets/helpers/fuzzy_search.py
* loathing loathing, unadulterated loathing, i loathe it all
* more changes!
* Update styles.py
* add padding
* use symlink on sp side
* use make from json and show all actual makes
* all done!
* Revert "all done!"
This reverts commit 595c45f057.
* reimpl onroad/offroad confirmation
* use global offroad directly
* ui: highlight on pressed, and less indent
* inherit MultiOptionDialog main buttons
* align top level folders to the edge properly
* lint
* lint
* handle folder presses too
* ui: overridable title and subtitle for `TreeOptionDialog`
* override TreeOptionDialog title and subtitle
* lint
* more
* ui: magnifying glass icon and new search bar style in `TreeDialog`
* cleanup
* ui: recreate search dialog with the latest query
* make model year but display as platform
* move into settings directory
* move into dir
---------
Co-authored-by: nayan <nayan8teen@gmail.com>
Co-authored-by: Jason Wen <haibin.wen3@gmail.com>
* ui: highlight on pressed, and less indent
* inherit MultiOptionDialog main buttons
* align top level folders to the edge properly
* lint
* handle folder presses too
---------
Co-authored-by: Jason Wen <haibin.wen3@gmail.com>
* ui: add real-time video recording functionality with ffmpeg support
* fix: record at consistent frame rate
* add spaces
* fix type
* refactor: RECORD_FRAMES variable and related logic
* fix: remove unnecessary texture check
* support missing output extension
* add wait for close with timeout
* fix: ensure RECORD_OUTPUT has the correct file extension
* flush on close and terminate if times out closing
* ffmpeg hide banner
* reduce ffmpeg spam
* refactor: streamline ffmpeg arguments for video encoding
* refactor: move size arg to variable and add yub420p conversion for native support
* use render_width and render_height for size
* fix: ensure even dimensions for video encoding when recording
* rm itertools
* simple
* cleanup
* docs
---------
Co-authored-by: Adeeb Shihadeh <adeebshihadeh@gmail.com>
* param to control stock vs sp ui
* init styles
* SP Toggles
* Lint
* optimizations
* sp raylib preview
* fix callback
* fix ui preview
* dialog txt
* compare vs what used to be done before InputDialog
* merge origin raylib toggles
* tree dialog
* less trees for the planet
* the heck
* save the trees we got icons
* Update process.py
* Remove 'sunnypilot_ui'
Removed 'sunnypilot_ui' parameter from params_keys.h
* Update raylib_screenshots.py
Removed the parameter setting for 'sunnypilot_ui' in the test.
* ui: fuzzy search helper
* better tree. fully dynamic and stuff
* rm
* more indent
* only show if fav_param is used in the call
* conditional for mypy
* sunny's new x,y makes this even easier!
* loathing loathing, unadulterated loathing, i loathe it all
* more changes!
* more changes!
* Update BUTTON_DISABLED_BG_COLOR to a lighter shade
* Update tree_dialog.py
* final
---------
Co-authored-by: nayan <nayan8teen@gmail.com>
Co-authored-by: Jason Wen <haibin.wen3@gmail.com>
* introducing ui_state_sp for py
* param to control stock vs sp ui
* better
* add ui_update callback
* Revert "add ui_update callback"
This reverts commit 4da32cc009.
* ui: `GuiApplicationExt`
* add to readme
* use gui_app.sunnypilot_ui()
* add cp_sp to ui_state_sp
* fix ui crash
* update params
* more
* slightly more
* add directly to the list
* nah
* move around
* rename
* call before param time tracker is updated
---------
Co-authored-by: Jason Wen <haibin.wen3@gmail.com>
* almost
* works!
* clean up
* fix
* trash
* Revert "trash"
This reverts commit 951d63382810d444fe08103f406a8c490cfcbe25.
* fix some bugs and use
* clean up
* clean up
* fix clipping
* clean up
* fix
* feat(params): add support for parameter metadata retrieval
- Introduced `getKeyMetadata` method for accessing metadata associated with params.
- Enhanced `getParamsAllKeysV1` to include metadata parsing and optional dynamic enum generation.
- Extended unit tests to verify metadata parsing, enum mapping, and edge cases.
* Revert "feat(params): add support for parameter metadata retrieval"
This reverts commit 865b695ff9.
* update: integrate params metadata management and unit tests
- Added `update_params_metadata.py` to manage and update parameters metadata.
- Enhanced `getParamsAllKeysV1` to include metadata for params.
- Created comprehensive tests (`test_params_metadata.py`, `test_params_sync.py`) to validate metadata integrity and params consistency.
* update: improve params metadata readability and enhance enums
- Renamed params titles for clarity and consistency.
- Added enum options and mappings to selected params for better usability.
* update: enhance params metadata with improved enum structures
- Replaced plain enum lists with detailed objects (`value`, `label`) for clarity.
- Standardized parameter options for consistency across metadata.
* update: add validation constraints to params metadata
- Introduced `min`, `max`, and `step` attributes for improved parameter range validation.
- Enhances user input handling and ensures consistency in metadata.
* lint
* more lint stuff and permissions
* does this suffice?
* more lint
* update: refine params type hinting and remove unused shebang
- Adjusted type annotation in `params_dict` for better compatibility.
- Removed unnecessary shebang from `test_params_metadata.py`.
* update: expand test coverage for params metadata validation
- Added detailed test cases to ensure metadata consistency (`options`, `constraints`, `titles`).
- Validates API response alignment with `params_metadata.json`.
* the finals
* names
---------
Co-authored-by: Jason Wen <haibin.wen3@gmail.com>
* ci: add conditional swap creation to prebuilt workflow
- Dynamically creates an 8GB swap file on systems with less than 8GB RAM.
- Ensures builds complete reliably on low-memory environments.
- Introduced cleanup step to remove swap after workflow execution.
* Nice save
* clean
* reduce swap size in prebuilt workflow
- Adjusted swap file size from 8GB to 4GB to optimize resource usage.
* remove swap creation from prebuilt workflow
- Simplified workflow by removing dynamic swap file creation and cleanup.
- Adjusted resource management to rely on existing system resources.
* update sunnypilot build workflow to use explicit script calls
- Replaced `op` commands with explicit `/data/openpilot/tools/op.sh` script calls for better reliability and clarity.
* update sunnypilot build workflow to use systemd for process management
- Replaced `/data/openpilot/tools/op.sh` script calls with `systemctl` commands for improved compatibility and reliability.
- Ensures consistent resource management during start and stop operations.
* Splitting a bit the build then?
* split build steps in sunnypilot prebuilt workflow
- Added separate build steps for `modeld`, `modeld_v2`, and `locationd` with descriptive messages.
- Improves logging and clarity during the build process.
* limit locationd parallel processes aiming to help with resource consumption
* typo
* adding op's location d AND bumping to 4 cores for them
* Apply suggestion from @sunnyhaibin
---------
Co-authored-by: Jason Wen <haibin.wen3@gmail.com>
* fix arc artifacts
* works but how
* also this
* Revert "also this"
This reverts commit e8d5ed9af15568dcb178dd6da7a14d2c6191010e.
* clean up
* nl
* clean up
* more
* print
* print
* intern
* start
* move
* common caching
* use constant for slep
* works
* add gating back
* clean up
* more
* match cache logic
* hate this circular
* not needed since sync
* no need for lock?
* even qt had something like _load_initial_state for tests, keep
* clean up
* clean up
* clean up
* loading json as string works, else it will fail to parse json, catch that and log, and next api call will overwrite
* move over firehose
* clean up
* fix test
* no
* flip
* more
* match qt
* consistent
* clean up
* cmt
* fix test!
* ui: add debug to display mouse coordinates
* cleanup
* use mouse x and y directly
* even less
* try this out
* ui: increase `scroll` delay in UI Preview
* sleep for clicks too
* don't lol
* try 1 secs
* try this out
* wait a sec before doing a screenshot
* nah
* ui: increase `scroll` delay in UI Preview
* sleep for clicks too
* don't lol
* try 1 secs
* try this out
* wait a sec before doing a screenshot
* nah
* commaai/openpilot:d05cb31e2e916fba41ba8167030945f427fd811b
* bump opendbc
* bump opendbc
* bump opendbc
* bump opendbc
* bump opendbc
* sunnypilot: remove Qt
* cabana: revert to stock Qt
* commaai/openpilot:5198b1b079c37742c1050f02ce0aa6dd42b038b9
* commaai/openpilot:954b567b9ba0f3d1ae57d6aa7797fa86dd92ec6e
* commaai/openpilot:7534b2a160faa683412c04c1254440e338931c5e
* sum more
* bump opendbc
* not yet
* should've been symlink'ed
* raylib says wut
* quiet mode back
* more fixes
* no more
* too extra red diff on the side
* need to bring this back
* too extra
* let's update docs here
* Revert "let's update docs here"
This reverts commit 51fe03cd51.
* del snpe
* reset min for safety catch as we killed snpe
* uhhh
---------
Co-authored-by: Jason Wen <haibin.wen3@gmail.com>
* checkpoint
* door states, notes
* updates
* not worth it yet
* wordsmith
* more
* more reverse engineering script content
* Revise stationary ignition-only test steps
Updated the steps for stationary ignition-only tests to include closing the driver's door and fastening the seatbelt before pressing the accelerator and brake pedals.
* fix numbering
refactor(sunnylink): defer `SunnylinkApi` initialization to function scope
- Moved `SunnylinkApi` object creation into individual functions as needed.
- Prevents unnecessary initialization when the object isn't used.
* sunnylink: add statsd process and related telemetry logging infrastructure
- Introduced `statsd_sp` process for handling Sunnylink-specific stats.
- Enhanced metrics logging with improved directory structure and data handling.
* sunnylink: re-enable and refine stat_handler for telemetry processing
- Reactivated `stat_handler` thread with improved path handling.
- Made `stat_handler` more flexible by allowing directory injection.
* statsd: fix formatting issue in telemetry string generation
- Corrected missing comma between `sunnylink_dongle_id` and `comma_dongle_id`.
* update statsd_sp process configuration for enhanced readiness logic
- Modified `statsd_sp` initialization to include `always_run` alongside `sunnylink_ready_shim`.
- Ensures robust process activation conditions.
* refactor(statsd): enhance and unify StatLogSP implementation
- Replaced custom `StatLogSP` in sunnylink with centralized implementation from `system.statsd`.
- Ensures consistent logic for StatLogSP handling across modules.
* fix
* refactor(statsd): add intercept parameter to StatLogSP for configurable logging
- Introduced optional `intercept` parameter to `StatLogSP` to manage `comma_statlog` initialization.
- Updated usage in `sunnylink` to disable interception where unnecessary.
* Dont complain
* feat(statsd): add raw metric type and SunnyPilot-specific stats collection
- Introduced `METRIC_TYPE.RAW` for base64-encoded raw data metrics.
- Added `sp_stats` thread to export SunnyPilot params as raw metrics.
- Enhanced telemetry handling with decoding and serialization updates.
* refactor(statsd): improve `sp_stats` error handling and param processing
- Enhanced exception handling for `params.get` to prevent crashes.
- Added support for nested dict values to be included in stats.
* refactor(statsd): adjust imports and minor code formatting updates
- Updated `Ratekeeper` import path for consistency with the `openpilot` module structure.
- Fixed minor formatting for improved readability.
* refactor(statsd): update typings and remove unused NoReturn annotation
- Removed unnecessary `NoReturn` typing for `stats_main` to simplify function definition.
- Adjusted `get_influxdb_line_raw` to refine typing for `value` parameter.
* cleanup
* init
* init
* slightly more
* staticmethod
* handle them all
* get them models
* log with route
* more
* car
* Revert "car"
This reverts commit fe1c90cf4d.
* handle capnp
* Revert "handle capnp"
This reverts commit c5aea68803.
* 1 more time
* Revert "1 more time"
This reverts commit a364474fa5.
* Cleaning to expose wider
* feat(interfaces, statsd): log car params to stats system
- Added `STATSLOGSP` import and logging to capture `carFingerprint` in metrics.
- Improved error handling in `get_influxdb_line_raw` for robust metric generation.
* refactor(interfaces): streamline car params logging to stats
- Simplified logging by directly converting `CP` to a dictionary.
- Removed legacy stats aggregation for clarity.
* feat(sunnylink): enable compression for stats in SunnyLink
- Added optional compression for stats payload to support large data.
- Updated `stat_handler` to handle compression and base64 encoding.
* fix(statsd): filter complex types in `get_influxdb_line_raw`
- Skips unsupported types (dict, list, bytes) to prevent formatting errors.
- Simplifies type annotation for `value` parameter.
* fix(statsd): use `json.dumps` for string conversion in `get_influxdb_line_raw`
- Ensures proper handling of special characters in values.
- Prevents potential formatting issues with raw `str()` conversion.
* refactor(interfaces, statsd): update parameter keys for stats logging
- Renamed logged keys for better clarity (`sunnypilot_params` → `sunnypilot.car_params`, `device_params`).
- Ensures consistency across data logs.
* bet
---------
Co-authored-by: Jason Wen <haibin.wen3@gmail.com>
* Use sunnypilot CARS.md, update number of supported cars, add comma
* Update device reference
* Update discord links to forum links
* Update references to -c3-new branches and release
* Update broken link to branches table
* Update README.md
---------
Co-authored-by: DevTekVE <devtekve@gmail.com>
* sunnylink: introduce community popup with QR code embedding
- Added `SunnylinkCommunityPopup` widget to promote the sunnypilot Community Forum.
- Integrated a QR code generator and display for quick access.
- Updated `WiFiPromptWidget` to include a "Learn More" button triggering the community popup.
* sunnylink: adjust community popup styling for better layout
- Reduced font size of description text slightly for consistency.
- Decreased QR code dimensions to improve visual balance.
* Making more space out of thin air
* sunnylink: update community references to use forum links
- Replaced Discord links with Community Forum URLs for better alignment.
- Improved clarity in sponsorship instructions.
* sunnylink: update uploader button logic to support novice tier and above
- Adjusted the enable condition to include SponsorTier::Novice and above.
* sunnylink: improve uploader button visibility and accessibility logic
- Made uploader button conditionally visible based on user tier and settings.
- Clarified button label to specify testing purposes only.
* ci: use environment variable for PR label in query
- Replaced static `PR_LABEL` references with `${{ env.PR_LABEL }}` for consistency.
- Ensures flexibility and reduces hardcoded values in the workflow.
* does this work better?
* fuck this
* aight
* ci: integrate Discourse notifications and refactor notification logic
- Replaced Discord webhook notifications with Discourse topic updates.
- Introduced reusable `post-to-discourse` composite action.
- Added `test-discourse.yaml` workflow for debugging and verification.
* ci: adjust notification dependencies and prepare_strategy reference
- Updated `notify` step to depend on `prepare_strategy` instead of `build`.
- Adjusted variable references to use `prepare_strategy` outputs.
* Forcing debug
* ci: update environment variable references and add commit information
- Switched `PUBLIC_REPO_URL` source to environment variable for consistency.
- Added commit SHA variables to enhance template generation logic.
* more tweaks!
* more tweaks!
* bad bot lmao
* Test?
* i mean....
* i mean....
* getting there
* testing the if
* testing the if
* ci: re-enable notify steps for prebuilt workflow
- Uncommented `build` and `publish` dependencies.
- Restored conditional logic to trigger only for relevant events.
* ci: enhance Discourse action to support new topic creation
- Added support for creating new topics with `category-id` and `title`.
- Improved input validation and response handling for flexibility.
* ci: improve conditions for prebuilt workflow notifications
- Refined `if` clause to ensure branches in `DEV_FEEDBACK_NOTIFICATION_BRANCHES` are targeted.
- Adjusted logic for accurate topic ID mapping in Discourse integration.
* forgot to rename
* Update developer_panel.cc
Changed mentions of "openpilot Longitudinal Control" to "sunnypilot Longitudinal Control" to align with other UI elements pointing users towards enabling "sunnypilot Longitudinal Control"
* Update warning message for longitudinal control
* more
* a bit more
* slightly more
---------
Co-authored-by: Jason Wen <haibin.wen3@gmail.com>
* Speed Limit Assist: Disable for Tesla in release
* add test
* unused
* use constant
* eh
* flip
* universal it
* check release state and align in tests
* use this
* eh
* update changelog
* Speed Limit Assist: Disable for Rivian
* desc
* changelog
* Speed Limit Assist: Disable for Tesla in release
* add test
* unused
* use constant
* eh
* flip
* universal it
* check release state and align in tests
* use this
* eh
* update changelog
* add rest of langs
* unifont
* all langs are supported
* add japanese translations
* fix strip!
* add language name chars
* use unifont in lang selection
* add korean
* test all langs
* doesn't work
* unifont font fallback for multilang
* add ar translations
* fix labels not updating until scrolling
* t chinese
* more chn
* we already default
* wrap
* update
* fix thai
* fix missing chinese langs and all are supported!
* clean up
* update
* ??? mypy r u ok ???
* fix default option font weight
* it's adversarial
* try 2
* just do this
* kinda works but doesn' tmatch
* fine
* qt is banned word
* test
* fix test
* add elide support to Label
* fixup
* Revert "add elide support to Label"
This reverts commit 28c3e0e7457345083d93f7b6a909a4103bd50d55.
* Reapply "add elide support to Label"
This reverts commit 92c2d6694146f164f30060d7621e19006e2fe2df.
* todo
* elide button value properly + debug/stash
* clean up
* clean up
* yep looks good
* clean up
* eval visible once
* no s
* don't need
* can do this
* but this also works
* clip to parent rect
* fixes and multilang
* clean up
* set target branch
* whops
* fix multilang dialog height
* split to file
* stash
* Revert "stash"
This reverts commit deb4239fe69f0260420fad03f2350e622e31542f.
* add updater
* add files
* stuff
* try
rev
* stash
* works!
* works!
* this should be the flow?
* cursor wrapping -- it missed entire sections, changed formatting, and didn't use trn properly!!!!!!!!!!!!!!!!!
* update translations
* learned my lesson
* this should be the one thing it's good at
* update trans
* onroad wrap
* spanish
* rename
* clean up
* load all
* Revert "load all"
This reverts commit 6f2a45861c914ffb9d40a5edd15751afd798d614.
* jp translations
* try jp
* Revert "try jp"
This reverts commit d0524b10110104baafcdc1ec385c3d57bc5ef901.
* remove languages we can't add rn
* tr
* pt and fr
* ai cannot be trusted
* ai cannot be trusted
* missing trans
* add fonts
* Revert "remove languages we can't add rn"
This reverts commit 73dc75fae2b9e347d867b6636dab6e2b5fe59da7.
* painfully slow to startup
* only load what we need
* Reapply "remove languages we can't add rn"
This reverts commit 52cb48f3b838520a421f9b90e5ea4409c27d4bd0.
* add system
* that's sick that this just works (dynamic)
* fix description falling back to first str + support callable titles in list items
* device is now live!
* make firehose live
* developer
* network live
* software live
* and that
* toggles live
* regen
* start to clean up gpt
* revert op sans
* bruh
* update translations
* rm old script
* add noops for descriptions to fix translating away from non-english after startup
* missing de
* do filtering in multilang.py
* clean up
clean up
* codespell: ignore po
* fix update
* should not depend
* more live
* sidebar and offroad alert panel live
* fix issues with offroad alerts
* fix firehose live
* fix weird tr("") behavior
* sh key live bugfix
* setup.py live
* update
* update
* no fuzzy matching -- breaks dynamic translations
* rm this
* fix calib desc live trans
* change onroad
* rm dfonts
* clean up device
* missing live
* update
* op lint
* not true
* add to gitignore
* speed up startup by reducing chars by ~half
* fix scons
* fix crash going from qt
* preserve original lang
* cancel kb live translate
* no preserve
* fix lint
* version: a new beginning
* changelog
* singular
* show ours
* actual
* readjust
* updated
* more
* official spelling
* more
* sync
* fix
* send it
* push
* we never had this lol
* syncs
* fix multilang dialog height
* split to file
* stash
* Revert "stash"
This reverts commit deb4239fe69f0260420fad03f2350e622e31542f.
* add updater
* add files
* stuff
* try
rev
* stash
* works!
* works!
* this should be the flow?
* cursor wrapping -- it missed entire sections, changed formatting, and didn't use trn properly!!!!!!!!!!!!!!!!!
* update translations
* learned my lesson
* this should be the one thing it's good at
* update trans
* onroad wrap
* spanish
* rename
* clean up
* load all
* Revert "load all"
This reverts commit 6f2a45861c914ffb9d40a5edd15751afd798d614.
* jp translations
* try jp
* Revert "try jp"
This reverts commit d0524b10110104baafcdc1ec385c3d57bc5ef901.
* remove languages we can't add rn
* tr
* pt and fr
* ai cannot be trusted
* ai cannot be trusted
* missing trans
* add fonts
* Revert "remove languages we can't add rn"
This reverts commit 73dc75fae2b9e347d867b6636dab6e2b5fe59da7.
* painfully slow to startup
* only load what we need
* Reapply "remove languages we can't add rn"
This reverts commit 52cb48f3b838520a421f9b90e5ea4409c27d4bd0.
* stash!
* rm
* Revert "stash!"
This reverts commit 31d7c361079a8e57039a0117c81d59bf84f191c7.
* revert this
* revert that
* make this dynamic!
* device
* revert
* firehose
* stuff
* revert application
* back
* full revert
* clean up
* network
* more system
* fix dat
* fixy
* torque gains not car specific
* remove opendbc interfaces longitudinal control kf field assignment that makes hitl test fail
* typo
* another typo
* bump
* bump openbc
* update ref
---------
Co-authored-by: felsager <d.felsager@gmail.com>
* ui: update ICBM-related settings handling
* oops
* oops
* single location
* some more
* fix cruise toggles
* always init true
* check this
* nah
* should be this
* Speed Limit Assist: update active event handling
* ok no more for non pcm long it was annoying
* 5 seconds preActive for non pcm long now
* Revert "5 seconds preActive for non pcm long now"
This reverts commit dfcc601035.
* dynamic alert size
* do the same here
* lint
* E2E Helper: universal state machine
* not used
* rename
* 10 frames for both
* time based
* magic
* lead depart: only arm if we have a confirmed close lead for over a second after allowing alert
* less
* shorter trigger
* lol
* always update
* resize & reposition
* Apply suggestion from @sunnyhaibin
* sir, this is Wendy's
* this is still a Wendy's
---------
Co-authored-by: Jason Wen <haibin.wen3@gmail.com>
- Implemented a new toggle for enabling Dynamic Experimental Control (DEC) in longitudinal settings.
- Removed previous implementation for DEC from general settings.
- Updated accessibility based on longitudinal control status.
* hmm can do yeidl approach
* clean up
* clean up
* flip
* and add paired + prime
* sort and add update params
* try
* all should have branch name
* test
* clean up
* add offroad alert to update screen
* Subaru: Stop and Go auto-resume support
* bump
* bump
* fix
* bump
* fix init
* wat
* use just standstill for now
* Revert "use just standstill for now"
This reverts commit f72cce6892.
* bump
* bump
* fix it
* only send at 10
* bump
* fix type
* forget about planner resume, it sucks
* try to send off_accel
* still need it
* always send
* disable safety checks for now
* same
* more
* all the time for both
* don't need i guess
* bump
* try 15 frames per try
* all should have it
* try 3 for all
* use throttle for all preglobal?
* bump
* bump
* separate thresholds between preglobal and global
* longer wait before sending
* shorter time but immediately resend
* quick
* new timeout
* about to cry
* same thing but another try
* no need
* round 3
* try 1.4
* lower!
* 1.2
* last try
* beta asf
* bump
* refactor: move to sp ui
* pr suggestion
* no need to check pcm just oplong
* no color, big front, long check
* Fix Rainbow Mode & Y Positioning
* Move param to uiscene
---------
Co-authored-by: Jason Wen <haibin.wen3@gmail.com>
Co-authored-by: nayan <nayan8teen@gmail.com>
* UI: Make Always Offroad more accessible
* conditional - based on offroad
* no need to delete
* account for always offroad
* fix offroad transition
* do this inside updateState on every invoke
---------
Co-authored-by: Jason Wen <haibin.wen3@gmail.com>
* remove msaa artifacting by heavily reducing segments and match radius
* always draw set speed with '-' like qt
* clean up
* match qt behavior for rivian
* scroll up on hide
* switch to show
* dismiss descriptions too!
* all is show
* all is show
* clean up
* visible items helper
* Revert "visible items helper"
This reverts commit e64f05b69155483aa0f3d74bd511f5d7c1ecfb79.
* reset
* this is all cursor
* also cursor
* inline reset calib
* calib desc
* way better
* huh
* clean up
* rcvr
* stash changes to change params
* Revert "stash changes to change params"
This reverts commit ee998f04c4235ed20493b83e35c9f28e182d89b0.
* here's everything
* just the dev part
* same for exp mode!
* use rich
* fix br not working in p
* html height needs to be different than content/text rect
* fix confirmation
* fix
* fix 2.5s lag
* clean up
* use correct param
* add offroad and engaged callback too
* nl
* lint
* first pass by cursor
* fix
* tell it what's good
* stash
* desc
* clean up junk
* alpha long can't use onroad cycle again due to faults
* lint
* fix kb
* start on exp mode
* more
* fmt
* rm
* 2nd try
* almost there
* clean up
* and this
* fmt
* more
* exp is colored when active
* move out, and rm redudnant self.state
* revert html changes for now
* fix untagged text inheriting previous tag
* why would this be unknown
* here too
* update live with car
* clean up + refresh toggles on showEvent + catch from cursor about setting desc if no carparams
* not sure why
* fix disengaged re-enabling locked toggles
* get blinker state from car_state
* Draw turn signals when blinker is active
* reloacted and resized turning signals
* add turn signal display setting
* Lowered Blink Frequency
* Moved x and y Offsets to drawing Function
Co-authored-by: Nayan <nayan8teen@gmail.com>
* Grouped Settings
* Moved blinking Logic to pulseElement Function
Co-authored-by: Nayan <nayan8teen@gmail.com>
* Improved Blinker Size and Position
* Get laneChangeBlocked Event from onroadEvents
* Draw Blinker red if laneChangeBlocked event is set
* Revert "Get laneChangeBlocked Event from onroadEvents"
This reverts commit 4310931b6cd59aed22119c2b4b558f09d3ad9c90.
* Get left and right Blindspot
* Replaced laneChangeBlocked by Blindspot checks
* slight optimization
* more refinement
---------
Co-authored-by: Nayan <nayan8teen@gmail.com>
Co-authored-by: Jason Wen <haibin.wen3@gmail.com>
* made LiveStreamVideoStreamTrack use system time to calculate pts
* fixes as requested
* Align panda submodule with master (panda@615009c)
* made loggerd accept a run time env variable to pick stream bitrate
* added /notify endpoint to send json to all session's data channel
* fixed static analysis error
* adapted webrtc stream test to new pts calculation method
* fixed static erro
* fixed wrong indent
* fixed import order
* delete accidental newline
* remove excess spaces
Co-authored-by: Maxime Desroches <desroches.maxime@gmail.com>
* remove excess spaces
Co-authored-by: Maxime Desroches <desroches.maxime@gmail.com>
* changed exeption handling based on review
* fixed typo on exception handling
---------
Co-authored-by: Maxime Desroches <desroches.maxime@gmail.com>
* enhance sunnylink fault handling and parameter checks
- Added `SunnylinkTempFault` to handle temporary registration issues.
- Updated methods to account for new fault state, improving robustness.
- Improved uploader logic by considering metered network restrictions.
* maybe it was overkill
* Lol, kinda important
---------
Co-authored-by: Jason Wen <haibin.wen3@gmail.com>
Reapply "sunnylink: enhanced param keys fetch with data type" (#1316)"
This reverts commit 282a8b093d.
Co-authored-by: Jason Wen <haibin.wen3@gmail.com>
* UI: Make Always Offroad more accessible
* conditional - based on offroad
* no need to delete
* account for always offroad
---------
Co-authored-by: Jason Wen <haibin.wen3@gmail.com>
* actually works
* fix shader grad
* switch
* our own triangulate
* this is amazing
* ok 100 is too much for 3x. 10?
* fix colors
* review intern chad
* fmt
* rm for the line count
* bye
* rm
* see the diff
* start to revert nulleffect
* fix
* fix
* always feather
* aliasing doesn't seem necessary
* aliasing doesn't seem necessary
* fix lane lines disappearing halfway up due to buggy deduping -- very simple triangulation function takes ~same CPU time + same GPU utilization on PC (nvidia-smi)
* remove old
* even simpler triangulate
* this is useless
* more revert
* split color out again
* clean up ai bs
* back to original names
* more clean up
* stop it
* this limiting logic split out feels more even // less super dense
* typing
* clean up a little
* move to get grad color
* RM
* flip
* document
* clean up
* clean up
* clean
* clean up
* not a "state"
* clean up
* that did nothing
* cmt
* maybe
Revert "fuck"
This reverts commit cb072a73b1b44ac3abeb50196be0956f3b7a7e14.
Revert "i dunno anymore"
This reverts commit 4d3c84ecb0e7830a552237e824995bc255007a1b.
i dunno anymore
fuck
* maybe
* try to fix the pipelines
relock after inplace metadrive update (#36256)
* relock after inplace metadrive update
* Revert "relock after inplace metadrive update"
This reverts commit 18193ffe34b66085e18605e6c9289ddcd658844d.
* just the hash
(cherry picked from commit 4d53a26a06)
Co-authored-by: Armand du Parc Locmaria <adpl33@gmail.com>
* debug
* hacks everywhere but kind of works
* by font
* fix sidebar
* stash
* test update
* just use a const
* just use a const
* better
* clean up
* fix label
* simplify
* gpt5 is yet again garbage
* rm that
* clean up
* rm
* blank
* clean up
* I really don't like this but shrug
* fix
* fix experimental text
* come on
* try
* better
* better
* multiple places!
* debug
* works
* temp
* whoops
* wonder if this wortks
* ah need this!
* wtf is this when deleted?
* another day no modal show event
* clean
* fix
* ugh
* need this
* stash
* ok chatter is useful for once
* draw text outside tags
* hmm
* undo that shit
* i don't like this chatgpt
* Revert "i don't like this chatgpt"
This reverts commit 5b511911d81242457bfb5fc808a9b9f35fe9f7a2.
* more robust parsing (works with missing tags, markdown.py actually had bug) + add indent level
* the html looks weird but is correct - the old parser didn't handle it
* clean up
* some
* move out
* clean up
* oh this was wrong
* draft
* rm that
* fix
* fix indentation for new driving model
* clean up
* some clean up
* more clean up
* more clean up
* and this
* cmt
* ok this is egregious mypy
* this wasn't used
* override text size and color
* render untagged text as paragraph
* and indent
* cache expensive height calc
* fmt
* fix that
* unclear if this is even needed
* and that
* huh
* debug
* Revert "debug"
This reverts commit 7d446d2a37a96e6bd1001c566d4f8e8f417f8fb7.
* relock after inplace metadrive update
* Revert "relock after inplace metadrive update"
This reverts commit 18193ffe34b66085e18605e6c9289ddcd658844d.
* just the hash
* refactor: enhance parameter handling and add new parameter retrieval method
- Refactored `get_param_as_byte` for better modularity and added `_to_bytes` helper function.
- Introduced `getParamsAllKeysV1` to retrieve all keys with enhanced metadata.
* refactor: update parameter handling and response structure in sunnylink
- Modified `_to_bytes` to accept `bytes` type for improved type consistency.
- Adjusted response keys in `sunnylinkd` for clarity.
* fix: update `get_param_as_byte` to use corrected method for default values
- Replaced `get_default` with `get_default_value` for accurate param retrieval.
- Ensures consistent handling of default parameter values.
* refactor: remove redundant `None` check in `sunnylinkd.py`
- Streamlined parameter iteration by eliminating unnecessary `None` validation.
- Simplifies logic for constructing `params_dict`.
* refactor: streamline `sunnylinkd` response by removing redundant `keys_v1` field
- Simplified return structure by excluding unused `keys_v1` key.
- Reduces response payload for improved efficiency.
* refactor: split `getParamsAllKeys` into distinct functions for improved clarity
- Added `getParamsAllKeysV1` to preserve original metadata-rich behavior.
- Revised `getParamsAllKeys` to return a simplified list of parameter keys.
* style: remove extraneous newline in `sunnylinkd.py`
- Ensures consistent formatting and adheres to style guidelines.
* Test
* proces in AN and WM
* clean
* ban api
* fix
* fiix
* fix pairing dialog
* cleanup
* fix multi action button hard to click
* fix
* fix right margin of multi action
* clean up
* Dockerfile.openpilot_base use UV_PROJECT_ENVIRONMENT
* Revert "Dockerfile.openpilot_base use UV_PROJECT_ENVIRONMENT"
This reverts commit 3725e54ce0727077ca4347d24ca38e25d5864d47.
* Reapply "Dockerfile.openpilot_base use UV_PROJECT_ENVIRONMENT"
This reverts commit 11b04f57acb9c81fcc5a22a6a6d78d666c59ca6c.
* use uv run to pick up correct ppath
* Tesla: MADS full support with VEHICLE bus harness
* bump
* need new arg
* uh
* block cruise main for these cars still
* continue to block tesla
* oops
* always allow for tesla
* init
* fix
* event
* UI
* events..for real
* SP
* ugh
* toggles
* read params first
* stoopid it is
* fix green light img
* fix green light image. for real this time
* move events to longitudinal_planner
* move events to longitudinal_planner
* move e2e alerts to separate class
* fix
* fixxxxxxx
* blinky blink
* blinky blink
* refactor
* more refactor
---------
Co-authored-by: Kumar <36933347+rav4kumar@users.noreply.github.com>
Co-authored-by: Jason Wen <haibin.wen3@gmail.com>
* auto attempt
* gpt5
* Revert "gpt5"
This reverts commit 556d6d9ee4d53aca0f4612023db6cfb2bed7ce29.
* clean up
* fixes
* use raylib
* fixes
* debug
* test update
* more
* rm
* add value to button like qt
* bump
* bump
* fixes
* bump
* fix
* bump
* clean up
* time ago like qt
rm
* bump
* clean up
* updated can fail to respond on boot leading to stuck state
* fix color
fix
* bump
* bump
* add back
* test update
* no unknown just ''
* ffix
* init
* fix
* event
* UI
* events..for real
* SP
* ugh
* toggles
* read params first
* stoopid it is
* fix green light img
* fix green light image. for real this time
* move events to longitudinal_planner
* move events to longitudinal_planner
* move e2e alerts to separate class
* green light alert only for this PR
* fix
* fixxxxxxx
* blinky blink
* blinky blink
* slight cleanup
* only used for params
* a bit more
* only when long is not engaged
* too long
* update description
* always 3 seconds if not moving
* initialize in constructor instead
* less
* rename
* always init at 0
---------
Co-authored-by: Kumar <36933347+rav4kumar@users.noreply.github.com>
Co-authored-by: Jason Wen <haibin.wen3@gmail.com>
* vibing can be good
* and listview
* rm that
* html render
* text.py
* ssh keys
* updater w/ Auto
* wow gpt5 actually is better
* well this is better
* huh wifi still doesn't work
* lfg
* lint
* manager waits for exit
* wait a minute this changes nothing
* this will work
* whoops
* clean up html
* actually useless
* clean up option
* typing
* bump
* rm that
* almost
* yess
* some work
* more
* todo
* okay viber is good once in a while
* temp
* chadder can't do this
* revert
* this was broken anyway
* fixes
* mouse wheel scroll
* some clean up
* kinda works
* way better
* can tap to stop
* more clean up
* more clean up
* revert last mouse
* fix
* debug only
* no print
* ahh setup.py fps doesn't affect DEFAULT_FPS ofc
* rest
* fix text
* fix touch valid for network
* init
* bump
* bump
* bump
* recheck openpilot long availability
* bump
* bump
* bump
* bump
* bump
* just base for now
* bump
* bump
* bump
* bump
* flipped
* apparently it's yucky, reverting most
* bump
* need to add for toyota
* should've been remove
* flipped
* bump
* no way
* fix
* test sdsu distance
* final tuning for pedal
* bump
* init
* onroad brightness control
* new icon
* update touch handlling
* don't touch me
* now i feel every touch
* resolve review comments
* tired of this shit
* ugh
* translate
* duplicate
* fix
* adjust
* update param in the same function
* flip
* format
* reorder
---------
Co-authored-by: Jason Wen <haibin.wen3@gmail.com>
* init
* onroad brightness control
* new icon
* update touch handlling
* don't touch me
* now i feel every touch
* resolve review comments
* tired of this shit
* ugh
* just panel for now
* more
---------
Co-authored-by: nayan <nayan8teen@gmail.com>
* formatting
* more
* create directory if does not exist
* mypy my bt
* policy param catch exceptions
* handle all params with exceptions
* more
* single method
* define types in init
* rename
* simpler op enabled check
* more mypy stuff
* rename
* no need for brake pressed
* don't reset if gas pressed
* type hint all
* type hint all
* back to upstream
* in another pr
* no longer need data type
* qlog
* slc in another pr
* use horizontal accuracy
* use horizontal accuracy
* set core affinity for all realtime processes
* unused
* sort
* unused
* type hint and slight cleanup
* from old implementation
* use directly
* combine pm
* slight more cleanup
* type hints
* even more type hint
* Revert "slc in another pr"
This reverts commit 3a6987e6
* Revert "in another pr"
This reverts commit a29bccff12.
* rebump
* no need to check alive
* use it directly
* fix test
* refactor
* use gps data directly
* quote...?
* lint
* fix tests
* use CC.longActive
* user confirm in another PR
* rename
* fix import
* params fix
* no more
* fix
* drop new state machine for now
* more fixes
* internalize output
* unused
* rearrange
* auto draft
* rename
* this
* no
* no need
* use existing
* wrong cruise speed
* fix
* not used for now
* Revert "not used for now"
This reverts commit f0083d6241.
* some
* use frames instead
* split speed limit resolver out of slc
* no need to pass sm
* fix params
* test init
* use frame instead of time
* track session
* some tests
* too limiting
* bump
* always reset state
* end session if long_active but slc inactive at any given time
* off
* no warning in this PR
* no speed factor engage type yet
* wide open
* no
* introduce disabled, no longer transitions at inactive
* fix tests
* no more tempinactive
* clean
* rename
* offset default > off
* new tests, fixes controller
* more tests
* not really needed yet
* lint
* fix
* some more tests
* wrap
* more
* more
* use vCruiseCluster for set speed
* init better
* finish it up
* no
* typo
* one method state machine
* refactor preactive timeout check
* refactor new session check
* directly return statuses
* comments
* v_target
* refactor speed limit resolver
* turn off debug
* more resolver refactor
* no longer needed
* lint
* more lint
* fix
* move around
* fix events
* update event
* already happens while in enabled
* add carstateSP
* less
* Speed Limit Control -> Speed Limit Assist
* in another PR
* more rename
* overriding state
* fix
* make sure to return the correct type
* sync with latest
* housekeeping
* use v cruise cluster instead
* fix var
* show it in UI!
* actually show it
* update event texts
* todo
* no override for now
* wrong timer!
* add vtarget and atarget
* fix
* handle no speed limit events
* fix size
* unused
* skip preActive if init max speed was already reached
* display last known speed limit and its state with SLA
* pending event
* much shorter disable guard
* update events
* convert max init for metric
* fix even if unused atm
* just use it
* red for all
* not disabled
* rename
* 10s pre active
* kumar wants it higher, blame him
* fix
* pcm long only
* some fixes
* rename
* use consolidate method to evaluate set speed status
* init non pcm cruise
* tests
* disable non pcm long state machine for now
* lint
* lint
* let the non PCM party begins
* fix event
* update event
* use speed limit final last
* only do direction checks if preActive
* use resolver
* use it directly
* no longer applies
* do it globally
* non pcm long: adapting or pending unused
* use button events instead of raw vals
* need to initialize
* move
* what?
* what #2???
* cst!
* circular
* slight fixes for tests
* change up checks for user confirm
* get buttonEvents at 100 hz and process for 20 hz consumption
* get v cruise cluster from outer loop
* Revert "get v cruise cluster from outer loop"
This reverts commit be8068e8ab.
* Revert "get buttonEvents at 100 hz and process for 20 hz consumption"
This reverts commit a739d4d437.
* don't need
* do not allow target speed confirm if inactive
* do not allow preActive if no valid speed limit
* gimme them arrow pls
* less
* descriptive direction
* fix event
* update cs in 100 hz
* Revert "don't need"
This reverts commit 1eec763be7.
* missed
* wrong
* stop
* throw them to helpers class
* property
* hold speed behavior changes
* abstract it
* use converted to check last set speed change
* Revert "do not allow target speed confirm if inactive"
This reverts commit 9840e74e
* pre active too short
* slight fixes
* fix tests
* linty lint
* speed limit changed hold timer for non pcm long
* should be 0
* less loopy
* some gates
* special sauce for sla
---------
Co-authored-by: nayan <nayan8teen@gmail.com>
Co-authored-by: DevTekVE <devtekve@gmail.com>
* fix regulatory
* debug slow loading
* easy gather step coords
* gotcha
* and fix
* dm option
* fix final
* fixes
* progress bar!
* "vibe coding is great"
* wtf gpt5
* jfc
* hand crafted >> vibe
* it's slow so only load images if we're doing any kind of training
* tf
* format
* clean up
* clean up
* no float
* cmt
* more clean up
* clean up
* eww
* rm
* no debug
* match y
* clean that up
* here too
* windows
* add raylib ui test
* match qt
* exe
* vibing is epic
* this is epic
* format
* add more settings
* fix to actually use raylib
* add kb
* global
* pair
* rm cmts
* show event
* this is so stupid
clean up
* clean up
* rename dir
* clean up
* no more vibe
* rm
* ugh it's always slightly different for no reason
* nvm region is actually broken
* 1l
* show for unknown
* use Button to make clicking work
* close on pair
* close on pair
* make widget!
* dynamic pairing btn
* whyyy
* clean up
* can do this
* this button is also hard to tap
* get vibing
* simplify
* vibing is bad
* simplify
* fix that
* now update
* clean up
* last two
* cell is UpdateUnsaved so we don't need to disable
* we only need actions
* we only need actions
* sort
* stuff
* dont deactivate
* clean up
* clean up
* more
* ipv4 fwd
* warns
* fixz
* rm
* clean up
* one return point
* format
* top
* it's all common
* never getting fixed
* it's just tici
* reorders
* qcom2 -> tici
* Revert "qcom2 -> tici"
This reverts commit f4d849b2952cb0e662975805db6a1d32511ed392.
* Reapply "qcom2 -> tici"
This reverts commit 58b193cb8de872830f8a7821a339edca14e4a337.
* is tici
* lil more
* Revert "is tici"
This reverts commit a169be18d3fdcb3ef8317a63a89d8becadabfad8.
* Revert "Reapply "qcom2 -> tici""
This reverts commit 26f9c0e7d068fc8a1a5f07383b3616e619cd4e8c.
* qcom2 -> __tici__
* lil more
* mv lenv
* clean that up
* lil more]
* fix
* lil more
* match style
* all this was not naught
* cool can do this
* fix toggle callback - also not for naught
* always process callbacks
* toggle stuff
* cleaner
* tethering password
* clean up
* todos for later
* this is fineee
* add metered options
* wifi metered button
* add hidden network buutton and fix instant modal to modal
* damped filter
* Revert "damped filter"
This reverts commit f9f98d5d708fb15cf1ebef4bdace577f0e347658.
* fix metered toggle when disconnected
* fix tethering enabled
* ohh
* fix keyboard title
* disable edit button temp
* move here
* proper disable
* clean up
* more
* move for loop into enqueue function
* flippy
* got more :(
* todo
* clean up
* mypy
* rename
* todo
* rename
* again
* again
* format
* init
* desc
* llk welcome back
* more
* new param to write
* update mapd
* no migration
* no refactor for now
* exec
* rename
* bearing
* fix test
* lint
* ui: more speed limit improvements
- show speed limit offset with last valid speed limit
- show last valid speed limit if current speed limit is not valid
* rename
* round it
* update logic
* in its own var and 5 frames now
* new offset vals
* slightly more
* apply suggestions
* Update Python packages
* not available anymore
* also this
* also this
* maybe?
* version
* try
* Revert "version"
This reverts commit 9ac4401b9ca59677b82736faff8baf66861df5f2.
* revert
* cffi
* issue
* comment
---------
Co-authored-by: Vehicle Researcher <user@comma.ai>
Co-authored-by: Maxime Desroches <desroches.maxime@gmail.com>
* less for now
* always on and fix conv
* update api
* missed
* fix convert
* only draw when decreasing, seems like a bug from mapd
* use frame check, otherwise too jumpy
* only update when mapd updates
* count up and down
* introduce toggle
* more ui
* slightly wider
* desc
* rename
* slight cleanup
* fix offset position
* more vienna fix
* fix ahead alignment
* road name in another PR
* cleanup
* single place
* adjust ahead distance display
* cleanup
* Near
* bump it
* cleanup logic
---------
Co-authored-by: Jason Wen <haibin.wen3@gmail.com>
* init
* some fixes
* move
* more
* old navd helpers
* bring back cereal
* fix linting
* more
* add to cereal first
* sp events
* lint
* implement in long plan
* fixme-sp
* refactor state machine
* wrong state
* start refactor controller
* some type hints
* init these
* enable debug print
* ui? ui!
* print them out
* fix spinner import
* fix path
* let's use gps chips directly for now
* service missing
* publish events
* no nav for now
* need to sub
* no car state speed yet
* missed event
* Car: `CarStateSP`
* fix tests
* bring back car state speed limit
* fix
* use old controller for now
* fix
* fix source
* type hints
* none for now
* formatting
* more
* create directory if does not exist
* mypy my bt
* policy param catch exceptions
* handle all params with exceptions
* more
* single method
* define types in init
* rename
* simpler op enabled check
* more mypy stuff
* rename
* no need for brake pressed
* don't reset if gas pressed
* type hint all
* type hint all
* back to upstream
* in another pr
* no longer need data type
* qlog
* slc in another pr
* use horizontal accuracy
* use horizontal accuracy
* set core affinity for all realtime processes
* unused
* sort
* unused
* type hint and slight cleanup
* from old implementation
* use directly
* combine pm
* slight more cleanup
* type hints
* even more type hint
* Revert "slc in another pr"
This reverts commit 3a6987e6
* Revert "in another pr"
This reverts commit a29bccff12.
* rebump
* no need to check alive
* use it directly
* fix test
* refactor
* use gps data directly
* quote...?
* lint
* fix tests
* use CC.longActive
* user confirm in another PR
* rename
* fix import
* params fix
* no more
* fix
* drop new state machine for now
* more fixes
* internalize output
* unused
* rearrange
* auto draft
* rename
* this
* no
* no need
* use existing
* wrong cruise speed
* fix
* not used for now
* Revert "not used for now"
This reverts commit f0083d6241.
* some
* use frames instead
* split speed limit resolver out of slc
* no need to pass sm
* fix params
* test init
* use frame instead of time
* track session
* some tests
* too limiting
* bump
* always reset state
* end session if long_active but slc inactive at any given time
* off
* no warning in this PR
* no speed factor engage type yet
* wide open
* no
* introduce disabled, no longer transitions at inactive
* fix tests
* no more tempinactive
* clean
* rename
* offset default > off
* new tests, fixes controller
* more tests
* not really needed yet
* lint
* fix
* some more tests
* wrap
* more
* more
* use vCruiseCluster for set speed
* init better
* finish it up
* no
* typo
* one method state machine
* refactor preactive timeout check
* refactor new session check
* directly return statuses
* comments
* v_target
* refactor speed limit resolver
* turn off debug
* more resolver refactor
* no longer needed
* lint
* more lint
* fix
* move around
* fix events
* update event
* already happens while in enabled
* add carstateSP
* less
* Speed Limit Control -> Speed Limit Assist
* in another PR
* more rename
* overriding state
* fix
* make sure to return the correct type
* just slr in this one
* more
* update
* redundant
* fix
* fix
* lint
* fix
* fix
* match toggle
* fix priority checks
* fix combined source for picking 0 limit
* no need to wrap
* add speed limit offset to resolver
* add speed limit offset
* make sure it displays distance when higher
* Revert "make sure it displays distance when higher"
This reverts commit 15c6834d4e.
* some rename
* translations
* unused for now
* more
* lint
---------
Co-authored-by: nayan <nayan8teen@gmail.com>
Co-authored-by: DevTekVE <devtekve@gmail.com>
* init
* slightly more
* check across all
* publish on CC_SP
* more infra setup
* try it out for HKG for now
* slight cleanup
* oops
* legacy
* send
* actually take over
* expose toggle
* icbm
* need to allow
* fix
* name
* small fixes
* actually send it now
* set default
* use cs is_metric
* offroad only lol
* allow them all
* fix
* send desire as-is
* use stock method
* clean up hysteresis
* speed cluster may be more accurate
* rename
* allow init and resume from pcmCruise
* just send it
* fix
* only allow custom v cruise after no button press at initial enabled
* no hysteresis for now
* fix tests
* fix min check
* only apply to non pcm changes
* add ICBM
* some more ui
* bump
* slight cleanup
* fixup
* cleanup
* type hints
* type hints
* bump
* bump
* bring back hysteresis
* fix ui
* do not spam if overriding or below allowed speed
* Controls: Vision Turn Speed Control
* fix
* Data type temp fix
* format
* more
* even more
* self contain targets
* state cleanup
* fix
* param updates
* no need
* use similar state machine
* raise exception if not found
* new state
* entirely internal
* use long active
* more
* rename and expose aTarget
* rename to SCC-V
* init tests
* slight tests
* expose toggle
* lint
* todo
* remove lat planner sub and mock sm data
* introduce aTarget
* rename
* rename
* update fill_model_msg.py to calculate PLAN_T_IDXS for lanelines and road edges
* sync upstream
* no SCC-V yet
* Revert "no SCC-V yet"
This reverts commit b67281bcac.
* wrap it with SCC main
* leave enabled out of here
* wat
* enabled and active on cereal
* OP long for now, enable for ICBM once merged
* need this
* unused
* let's go hybrid
* fix
* add override state
* update tests
* huh
* don't math here if not enabled
* ui: Smart Cruise Control - Vision (SCC-V) (#1253)
* vtsc-ui
* slight cleanup
* more cleanup
* unused
* a bit more
* pulse like it's hot
* draw only enabled and active
* let's try this for now
* settle
* finalize UI
* brighter color so we blind devtekve
* add long override
---------
Co-authored-by: Jason Wen <haibin.wen3@gmail.com>
* slight cleanup
* more
* type hints
---------
Co-authored-by: discountchubbs <alexgrant990@gmail.com>
Co-authored-by: Kumar <36933347+rav4kumar@users.noreply.github.com>
* Controls: Vision Turn Speed Control
* fix
* Data type temp fix
* format
* more
* even more
* self contain targets
* state cleanup
* fix
* param updates
* no need
* use similar state machine
* raise exception if not found
* new state
* entirely internal
* use long active
* more
* rename and expose aTarget
* rename to SCC-V
* init tests
* slight tests
* expose toggle
* lint
* todo
* remove lat planner sub and mock sm data
* introduce aTarget
* rename
* rename
* update fill_model_msg.py to calculate PLAN_T_IDXS for lanelines and road edges
* sync upstream
* no SCC-V yet
* Revert "no SCC-V yet"
This reverts commit b67281bcac.
* wrap it with SCC main
* no SCC-V yet
* noqa now
* fix
* OP long for now, enable for ICBM once merged
* type hints
* let's get it straight from carcontrol instead
* not needed
* unused
* add source to track
* we can do this
---------
Co-authored-by: discountchubbs <alexgrant990@gmail.com>
* Add standstill timer to HUD
- Introduced a timer displaying elapsed time when the car is at a standstill.
- Added settings toggle to enable/disable this feature.
- Updated UI elements and related logic to support the standstill timer.
* ruff be happy
* stop screaming
* c stands for not cereal
* slight cleanup
* a bit more cleanup
* unused
---------
Co-authored-by: nayan <nayan8teen@gmail.com>
Co-authored-by: Jason Wen <haibin.wen3@gmail.com>
* modeld: add laneline_helper for plan X indices calculation
* spacing
* keep type hints
* openpilot
* sunnypilot/models/helpers
add modeld helpers to helpers
* Send it from each fill message
---------
Co-authored-by: Jason Wen <haibin.wen3@gmail.com>
* Revert "UI: Developer UI (#1233)"
This reverts commit 1bb4ca2547.
* Reapply "UI: Developer UI (#1233)"
This reverts commit b0a77049da.
* QColorConstants is not on device's QT version. Thanks @kumar for the fix
* use play/pause icons
* use monospace font
* x button for delete
* add icons for splitting
* many scaling + scrollbar fixes and niceties
* simplify texture loading code
* refactor: improve parameter handling in sunnylink for robustness
- Updated `get_param_as_byte` to return `None` for nonexistent parameters.
- Enhanced param compression and encoding in `sunnylinkd`.
* refactor: centralize parameter restoration with new helper function
- Added `save_param_from_base64_encoded_string` to handle param decoding and saving.
- Updated backup manager and sunnylinkd to use the new method.
- Improved code readability and reduced duplication in parameter handling logic.
* don't bother
* clean
* modify in place instead of recreating nodes
* don't delete DataTreeNodes and simplify code
* faster: more efficient state tracking, better handler deletion
* jotpluggler!
* demo, executable, fontfile
* calc max and min, numpy, cloudlog
* mypy things
* simplified data.py
* multiprocessed data ingest
* allow verrryyy long search results
* stream in multiprocessed segments
* bug fixes
* simplify and speed up timeseries
* small fixes
* rewrite layout
* resizable layouts
* cleanup
* downsampling
* deque for consistency
* use item_visible_handler
* only build visible UI
* don't delete item handlers, add locks, don't expand large lists
* delete item handlers after a frame
* small data tree improvements
* seperate datatree into its own file
* reset when loading new segments
* fix plot window resizing and recursive split resizing logic
* Rewrite ubloxd in Python
* lil more
* rm from third_party/
* cleanup
* ubx replay
* try this
* back to kaitai
* Revert "ubx replay"
This reverts commit 570bd3d25fbabc590379ce0a9f98d30de55cf1b3.
* update: sunnypilot branch migrations for tici
* block onroad and notify
* type
* check channel type
* update
* ui init
* no search and locked list for tici
* whenever available
* feat: add debugging configurations for replay drive and LLDB attachment
* Add readme with video demo
* clean
* docs: update debugging safety documentation with demo link
* no need for mp4 then added on PR
* Update SConstruct
* bump opendbc
* updating readme
* updating readme
* updating readme
* is this better / worth it?
* final cleanups
* hacky. but does it work?
* Yep that worked!
---------
Co-authored-by: Adeeb Shihadeh <adeebshihadeh@gmail.com>
* Revert "bugfix: streamline LiveDelay parameter loading with safe handling (#1204)"
This reverts commit 288a5e14da.
* ui: use AlignedBuffer for cereal data processing for Models panel
* align
* separate
* split
* event it
* no more backup
* Revert "no more backup"
This reverts commit fa66ce5e77.
* bump msgq
* add third_party/linux/include/media/msm_vidc.h
* add sde_rotator hw interface
* add msm_vidc hw decoder interface
* update SConscript to build qcom decoder and rotator
* use qcom decoder in replay framereader
* decode directly to NV12 with the correct stride without using the hw rotator
* bump msgq back to master
* don't compile rotator
* cleanup
* works now but much to simplify
* rm signals
* rm header
---------
Co-authored-by: Test User <test@example.com>
Co-authored-by: Adeeb Shihadeh <adeebshihadeh@gmail.com>
* Add model metadata lookup and update desire handling
* Bump selector version to 10
* meh
* Refactor shape mode parameters for desire handling in test buffer logic
* loop more models
* Refactor buffer handling for temporal inputs and streamline desire updates
* Refactor lateral control input handling and remove unused code
* Hotfix for the params stuff until I rework this properly and leverage the new data types
* Revert "Hotfix for the params stuff until I rework this properly and leverage the new data types"
This reverts commit c6031b29d92d3ff5b679ffce3ba53611bb2dba0e.
* refactor: enhance getParams function to support JSON and bytes types with optional compression
* refactor: add TODO for enhancing server support of metadata in sunnylinkd.py
* lint and clean
* refactor: update value handling in getParams to return decoded values for JSON serialization
* refactor: simplify params_dict initialization by removing type hint
* refactor: update response handling in getParams to include JSON serialization of params
* refactor: update response handling in getParams to include JSON serialization of params
* Add to dic types
* refactor: extract get_param_as_byte function for improved parameter handling and fix backup inconsistencies
* cleanup
* ensure error propagates on backup fail
* Add modelDataV2SP and lane turn logic implementation
Note: still need to hook up to other modeld's create unit test, fix stuff, and do the UI for it
* add unit tests for lane turn logic
* Add lane turn desire controls to models panel
* use `events_sp` instead of `events`
* integrate modelDataV2SP messaging to the other modeld controllers
* move this to that
* use min for general population here, on custom branches, change this to max :)
* Update events.py
Co-authored-by: royjr <royjr96@gmail.com>
* Update events.py
Co-authored-by: royjr <royjr96@gmail.com>
* refactor lane turn value control into one method
* Update selfdrive/ui/sunnypilot/qt/offroad/settings/models_panel.cc
* add integration tests for lane turn desire
* 10 updates is possibly more representative of real life
* real objects ofc
* desc: add toggle description for clarity
---------
Co-authored-by: royjr <royjr96@gmail.com>
* feat: add support for copyparty-sfx
* feat: add toggle for Copyparty service in developer panel
* feat: enhance Copyparty configuration with additional volume mounts and options
* Update system/manager/process_config.py
* remove f string
* lint
* init model favorites
* fix fav buttons
* fix blank favs
* switch to ref
* new favs at top
* remove debug prints & add some comments
* button style
* fix current selection
* !@%#$%(@^%$#(@!%#^
* add last update date to folders
* Update to Readme.MD install instructions
This commit changes a few things in the installation guide. I moved the the tables that have the branches and install URLs. I also added a TIP that let's users know that they can install with sunnypilot/staging-c3-new.
* Update README.md with proposed changes from DevTek
Added header text over the legacy branches to bring in separation and let users know they are not recommended.
* bit of change
* Reorganizing a bit more
---------
Co-authored-by: DevTekVE <devtekve@gmail.com>
* ci: add validate-test-on-staging-c3 branch to deployment triggers and enhance stable branch handling
* fix long overdue mistake lol
* ci: add condition to wait for start on push events in build workflow
* Fix extra version identifier
* no need for this, i validated what I needed
* only care for release tags, not any
* fix: update versioning logic to use build date and run number for tagging
* fix: update tagging logic and enhance commit message format in build scripts
* fix: refine tagging condition to exclude tag pushes for stable branches
* fix: add extra version identifier to output for better version tracking
* trying to keep things clean and simple
* bugfix
* ci: disable cancel-in-progress for publish concurrency
* check using var
* typo
* ci: update publish concurrency settings to use dynamic cancel-in-progress flag
* typoooo
* ci: update cancel-in-progress condition for publish concurrency
* ci: enhance publish concurrency handling to queue jobs based on commit SHA
* typos and new commit hash to test cancel in progress
* see if this helps?
* tired of waiting
* ci: add publish concurrency group to deployment configuration
* ci: update publish concurrency handling to improve job queuing and cancellation logic
* ci: output GITHUB_OUTPUT contents for better debugging of publish concurrency
* ci: remove prebuilt output from strategy and streamline GITHUB_OUTPUT handling
* ci: refine publish concurrency handling for flexible job cancellation
- Default `cancel_publish_in_progress` to `true` if undefined in config.
- Adjust concurrency group logic to handle null and true conditions properly.
* another ocmmit shouldnt cancel publish
* ci: enhance job cancellation logic for publish concurrency handling
* ci: add prepare_strategy job for dynamic deploy strategy extraction
* ci: ensure job execution always proceeds on success and skips failure
* ci: improve job execution conditions to handle cancellation and failure states
* ci: enhance versioning logic to support stable and unstable branch differentiation
* ci: add checkout step to ensure code is available for deploy strategy extraction
* ci: add extra version identifier for stable branch environments
* ci: update extra version identifier format for stable branches
* Grammar, oh, grammar.
* test this
* ci: add deploy strategy extraction and refactor publish dependencies
- Introduced `prepare_strategy` step to dynamically extract deployment configurations.
- Adjusted `publish` job to depend on `prepare_strategy` and use its outputs.
* what happens if I do this...
* cleaning
* other test
* ci: update auto_deploy logic in build configuration
* cleaning
* refactor: skip AGNOS update for tici models in launch script
* back to stock on chffrplus
* feat: enhance launch script for Tici model with error handling and fallback
* empty new line pls
* torqued: apply latAccelOffset to torque control feed forward
* test learned latAccelOffset captures roll compensation bias on straight road driving, when the device is not flush in roll relative to the car
* test correct torqued latAccelOffset parameter convergence
* external storage
* fix mountStorage
* fix perms
* works for now
* better
* lagless
* move to sp qt
* orderish
* fix ui crash
* cleanup
* fix format
* offroad only
* debug external storage
* dont care about delete
* just use cloudlog
* show logs if using external storage
* better text
* wipe entire drive
* allow partitionless drive to be formatted
* label while formatting
* this works
* better
* cleaner
* cleaner logs
* keep upstream happy
---------
Co-authored-by: DevTekVE <devtekve@gmail.com>
* dont run by multiple threads at the same time!
* this doesn't work since we rely on is_connected
* Revert "this doesn't work since we rely on is_connected"
This reverts commit 7455b2fe831bf5c9524e8ee71a9966de32a9755a.
* use callback queue to make this thread safe and remove locks (which lag ui thread?)
* woah this works
* no more lock!
* always run signal handler and store callbacks, like qt
* debug
* more
* okay not for now
* combine _get_connections and _connection_by_ssid, closer to qt and not an explosion of GetSettings dbus calls
* debug
* try this
* skip
* len
* skip hidden networks
* actually slower
* stash
* back to 8929f37d495a524d4a996d66b82d4a947fbf4f1c
* clean up
* stasj
* remove one of many classes
* clean up and fix
* clean up
* stash/draft: oh this is sick
* so epic
* some clean up
* what the fuck, it doesn't even use these
* more epic initializers + make it kind of work
* so simple, wonder if we should further 2x reduce line count
* i've never ever seen this pattern b4, rm
* remove bs add niceness
* minor organization
* set security type and support listing and rming conns
* forget and connect
* jeepney is actually pretty good, it's 2x faster to get wifi device (0.005s to 0.002s)
* temp
* do blocking add in worker thread
* add jeepney
* lets finish with python-dbus first then evaluate - revert jeepney
This reverts commit 7de04b11c2285c298bb1ec907782026c795ab207.
and
* safe wrap
* missing
* saved connections
* set rest of callbacks
* skip hidden APs, simplify _running
* add state management
* either wrong password or disconnected for now
* i can't believe we didn't check this...
* disable button if unsupported!!!
* hide/show event no lag hopefully yayay
* fix hide event
* remove old wifi manager
* cache wifi device path + some clean up
* more clean up
* more clean up
* temp disable blocking prime thread
* hackily get device path once
* ok
* debug
* fix open networks
* debug
* clean up
* all threads wait for device path, and user functions dont ever attempt to get, just skip
* same place
* helper
* Revert "helper"
This reverts commit e237d9a720915fb6bd67c539123d3e2d9d582ce1.
* organize?
* Revert "organize?"
This reverts commit 3aca3e5d629c947711ade88799febeb3f61eda87.
* c word is a bad word
* rk monitor debug for now
* nothing crazy
* improve checkmark responsiveness
* when forgetting: this is correct, but feels unresponsive
* this feels good
* need these two to keep forgetting and activating responsive
* sort by connected, strength, then name
* handle non-critical race condition
* log more
* unused
* oh jubilee is sick you can block on signals!!
* proof of concept to see if works on device
whoiops
* so sucking fick
* ah this is not generic, it's a filter on the return vals
* flip around to not drop
* oh thank god
* fix
* stash
* atomic replace
* clean up
* add old to keep track of what's moved over
* these are already moved
* so much junk
* so much junk
* more
* tethering wasn't used so we can ignore that for now
* no params now
* rm duplicate imports
* not used anymore
* move get wifi device over to jeepney! ~no additional lines
* request scan w/ keepney
* get_conns
* _connection_by_ssid_jeepney is 2x faster (0.01 vs 0.02s)
* do forget and activate
* _update_networks matches!
* rm old update_networks
* replace connect_to_network, about same time (yes i removed thread call)
* no more python-dbus!k
* doesn't hurt
* AP.from_dbus: actually handle incorrect paths w/ jeep + more efficient single call
* properly handle errors
* it's jeepney now
* less state
* using the thread safe router passes a race condition test that conn failed!
* bad to copy from old wifimanager
* fix conn usage
* clean up
* curious if locks are lagging
* not for now
* Revert "curious if locks are lagging"
This reverts commit 085dd185b083f5905a4e71ba3e8c0565175e04aa.
* clean up _monitor_state
* remove tests
* clean up dataclasses
* sort
* lint: okay fine it can be non by virtue of exiting right at the perfect time
* some network clean up
* some wifi manager clean up
* this is handled
* stop can be called manually, from deleting wifimanager, or exiting python. some protection
* its not mutable anymore
* scan on enter
* clean up
* back
* lint
* catch dbus fail to connect
catch dbus fail to connect
* torqued: apply latAccelOffset to torque control feed forward
* test learned latAccelOffset captures roll compensation bias on straight road driving, when the device is not flush in roll relative to the car
* test correct torqued latAccelOffset parameter convergence
---------
Co-authored-by: felsager <d.felsager@gmail.com>
* modeld_v2: dynamify temporal buffer management.
* skip redundant reshaping and flattening.
* simplify MHP checks for lead and plan
* modeld_v2: add unit tests for buffer logic and refactor index mapping
* Let’s possibly fail a test :)
* Update test_buffer_logic_inspect.py
* Update test_buffer_logic_inspect.py
* modeld_v2: better temporal mapping for non-split
* Bump to 10 I guess
* Downgrade CURRENT_SELECTOR_VERSION to 9
* red diff ya know?
* add dynamic buffer update tests and compare against legacy logic.
Cover modelState.init and modelState.run
* send
* Revert "send"
This reverts commit 9e6c95fbfd.
* format
---------
Co-authored-by: Jason Wen <haibin.wen3@gmail.com>
* fid
* test
* Revert "test"
This reverts commit 38e6635dd0b0b9fb9c08bcc3a74b9283207b0c2f.
* r
* Revert "r"
This reverts commit 4037a321f89af137a645345a0fffb73da6071c72.
* fix!
* this is enough to fix the broken colors
* clean up
* fix
* use last colors -- need this so we don't have to always pass perfect gradient
* clean up
* clean up
* clean up
* rm str | none pattern
* clean up
* more clean up
* stash
* Revert "stash"
This reverts commit 3e2472160cc97e9d11922137757d9ef942a0312d.
* fix da prints
* fix cmt
* ci: github runner auto off when voltage is above 9.0v .
This ensures that a runner in vehicle doesn't accidentally break everything lol.
* suggestion for clarity.
* refactor: rename and update handling of `GithubRunnerVoltage` parameter
- Improve clarity by renaming to `GithubRunnerSufficientVoltage`.
- Changed attribute to `CLEAR_ON_MANAGER_START` for improved runtime state management.
- No need for this value to be backed up!
* refactor: streamline voltage check for GithubRunnerSufficientVoltage
---------
Co-authored-by: DevTekVE <devtekve@gmail.com>
* speed up sourcing but avoiding checking for existence of collected files already from previous sources
* clean up
* been meaning to make them return dicts
* no longer true
* no longer true
* clean up
* more
* more
* revert
If param `InteractivityTimeout` does not exist, timeoutValue == "",
resulting in the Interactivity Timeout UI displaying "s" by default.
Fix displayed "Default" by checking for "0" or "".
Co-authored-by: Nayan <nayan8teen@gmail.com>
* wrap the params
* just 1 class and use a single param for now
* refactor
* fix
* cache itself
* no longer
* rename
* type hint
* in helpers instead
* lint
* all
* init as 0 to pass ci
* init as 0 to pass ci
* return_default
* fix init
* add LAT_SMOOTH_SECONDS directly in modeld, temp remove dynamic desc, red difffffffff
* Add tinygrad ref testing
* BaseDir and give a fake ref id to test
* one more before the real thing
* Add the correct ref
* test
* Update test_tinygrad_ref.py
* Update tinygrad_ref
* Update test_tinygrad_ref.py
* Update tinygrad_ref
* This SHOULD FAIL
* Revert "This SHOULD FAIL"
This reverts commit 58862f8a73.
* bit of red
* Move ref to models so compiled branches can read it
* step one
* step 2
* Update build-all-tinygrad-models.yaml
* Update build-all-tinygrad-models.yaml
* Update build-all-tinygrad-models.yaml
* Update build-all-tinygrad-models.yaml
* Update build-all-tinygrad-models.yaml
* Update build-all-tinygrad-models.yaml
* Update tinygrad_ref.py
* Update build-all-tinygrad-models.yaml
* bump to fail test
* Revert "bump to fail test"
This reverts commit 4f58991f32.
* pytest should take care of it
* lint
---------
Co-authored-by: Jason Wen <haibin.wen3@gmail.com>
* Reapply "LogReader: wrap events to cache which() (#35882)"
This reverts commit ba2dced54c.
* fix lr
* speed up
* clean up
* more
* should be fast
* clean up
* only supports Event
* rmrmr
* bye
* simple
* gix
* why? because why not!? damn.
* test
* more disable
* i am hating this
* fuck mypy.
* hopefully this is fixing json
---------
Co-authored-by: Jason Wen <haibin.wen3@gmail.com>
* add raylib ui
* test
* this is better for now
* rm
rm
* finalize it
* need this?
* ?
* shite
shite
* try
* ?
* huh
* simp
* ?
* wtf is going on
* ???????????????
* lock
* stash
* no 2 packages
* Revert "stash"
This reverts commit 9efb0d9bda6a6309e7a567634d1921bf1cd0fb59.
* debug
* noo
* debug
* ?
* and
* yeah yeah
* init one
* 2
* i wonder
* oooh
* make sure
* fix dat
* try this
* see if wifiman
* forgot
* ?
* ???
* fuck this we can rewrite it later
* refactor: move lateral methods from init to lateral.py (#2594)
* Extracting lateral methods to lateral.py
* cleaning
* more cleaning
* more cleaning
* Making sure it remains where it should
* Leave rate_limit where it belongs
* Moving things to `car/controls/`
* Moving rate limit to get a taste of the changes
* clean
* copy verbatim
* clean up
* more
* now we can format
---------
Co-authored-by: Shane Smiskol <shane@smiskol.com>
* Merge branch 'master' into move-common-vm-methods. dunno what happend with ci
* now we need to move this import
* bump opendbc
---------
Co-authored-by: Shane Smiskol <shane@smiskol.com>
Co-authored-by: Adeeb Shihadeh <adeebshihadeh@gmail.com>
* here?
* nah card shouldn't become bloated
* better
* import
* actually selfdrived is probably best since it already manages alerts
card is car interfacing, controlsd is for calculating control input, selfdrived is rest
* consistent name
* add to params
* ai
* maybe better?
* shorter
* build out lockout
* do
* check active
* descriptive
* this is a terrible experience just to get lat accel
* just pass sm
* not iso
* type
* rm
* math
* use calibrated roll
* fix
* fix borkenness
* cmt
* compare some methods
* rolling window
* 1 and 2 are the same
* rm it
* stuff
* plot
* plot kf
* generic implementation
* adjust limits
* fix from merge
* clean up
* revert filter to master
* and here
* and
* run_process_on_route imps
* clean up
* why not
* extrapolate
* this doesn't generically work for angle/curvature cars
Revert "extrapolate"
This reverts commit 556f0c3a92b82f07ceb6422f0e39322e79a10dcd.
* cmt
* move
* rm debug
rm debug
and
* others use helpers
* two counters might be too much to return
* turn into class
* clean up
* cmt
* kinda obvious
* impossible for this not to be true, but make it explicit
* clean up
* record feedback with LKAS button
* fix alert test
* slightly simplify feedbackd
* "Audio Feedback Saved" upon time expiration or early stop
* earlySend --> earlyStop
* userFlag --> userBookmark
* RecordAudioFeedback param/toggle
* add audioFeedback test
* simplify feedbackd
* send bookmark regardless of toggle, show feedback event with higher priority
* add userBookmark to selfdrived sm
* fix mispelled param name
* default off and move to main
* segmentNum --> blockNum, earlyStop --> lastBlock
* preserve audioFeedback
* get rid of lastBlock and just send bookmark saved at the end
* update raylib side
* update toggle description and add raylib toggle
---------
Co-authored-by: Adeeb Shihadeh <adeebshihadeh@gmail.com>
* ci: dynamic submodule check for build_release
* test opendbc diff
* somem fix
* this way
* use path
* use master branch instead
* less verbose
* test bump
* test 1 more sub change
* unbump
* only echo if there's a diff
* refactor: move lateral methods from init to lateral.py (#2594)
* Extracting lateral methods to lateral.py
* cleaning
* more cleaning
* more cleaning
* Making sure it remains where it should
* Leave rate_limit where it belongs
* Moving things to `car/controls/`
* Moving rate limit to get a taste of the changes
* clean
* copy verbatim
* clean up
* more
* now we can format
---------
Co-authored-by: Shane Smiskol <shane@smiskol.com>
* No need to change order of import
* refactor: consolidate ACCELERATION_DUE_TO_GRAVITY import path
* bump opendbc
* update refs
* don't import from opendbc
---------
Co-authored-by: Shane Smiskol <shane@smiskol.com>
Co-authored-by: Adeeb Shihadeh <adeebshihadeh@gmail.com>
* stash
* Revert "stash"
This reverts commit 333818b80f498e8e3dac3c1cd36e669e97521d52.
* works for paramsd
* INSANE
* format
* fater
* clean up
* more
* huh i thought order matterred?
* clean that up
* can remove this
* cmt
* check isisntance
* rename
* clean up
* clean up
* more
* more!
* sounds better
* Revert "Fix up `radarFault` handling (#35880)"
This reverts commit 4d01b7bec8.
* Reapply "Fix up `radarFault` handling (#35880)"
This reverts commit 597d7ec1ed78206035b924a6e8464cd9239b5db4.
* can do this
* yeah this is fine
* save 1-2s for full route
* now more than halve the time on top of previous speedup!
* stash
* default should be most common!
* revert
* revert
* clean up
* clean up
* clean up
* clean up
* speed up lr
* lazy caching
* clean up
* it fast
* stash
* stash
* chatgpt code is bad as usual
* clean up
* clean up
* clean up
* clean up
* clean up
* clean up
* match behavior
* cmt
* format
* containers might not be set
* opts
* halves startup time for 12 procs (1.6 to 0.8s)
* stash
* clean up
* who knew going through entire list of msgs each time is so slow
* rewrite this to be more readable
* speed up lr
* clean up
* more
* more
* format
* containers might not be set
* opts
* halves startup time for 12 procs (1.6 to 0.8s)
* stash
* Revert "stash"
This reverts commit 3e119a9602e495bd5a57b94e73fa53d4f45051b1.
* Revert "halves startup time for 12 procs (1.6 to 0.8s)"
This reverts commit a39edf0a579f0c861ccb904a2718254fe32e03d0.
* Revert "opts"
This reverts commit 4dc1f75f0909a93650f8f7e8525af3e4eae08205.
* already set!
* refactor: move lateral methods from init to lateral.py (#2594)
* Extracting lateral methods to lateral.py
* cleaning
* more cleaning
* more cleaning
* Making sure it remains where it should
* Leave rate_limit where it belongs
* Moving things to `car/controls/`
* Moving rate limit to get a taste of the changes
* clean
* copy verbatim
* clean up
* more
* now we can format
---------
Co-authored-by: Shane Smiskol <shane@smiskol.com>
* No need to change order of import
---------
Co-authored-by: Shane Smiskol <shane@smiskol.com>
Co-authored-by: Adeeb Shihadeh <adeebshihadeh@gmail.com>
* holy shit
* benchmark without this main pub drain stuff
* revert
* ??
* actually this is what we want
* what is going on this is python 3.11 sir
* stash
* this is how you dew it
* minor clean up
* fix
* clean up
* clean up
* this is madness!
* typing
* clean up
* rescale ir value pandad sends to Hardware and changed max ir value in Hardware
* changed ir_percentage type
* refactored pandad.cc ir_pwr setting
* cleaned up ir update condition
---------
Co-authored-by: kostas pats <kostas@comma.ai>
* Tinygrad bump from sync-20250627
* bump tinygrad_repo
* Reformat metadata generator to match driving_models.json
* bump tinygrad
* Revert "bump tinygrad"
This reverts commit f479dfd502.
* revert me after SP model compiled
* Model recompiled successfully, initiate "revert me after SP model compiled"
This reverts commit 95706eb688.
* The "FillMe" placeholder caused an extra 10 seconds of work
* bump to 22Jul2025
* Update build-all-tinygrad-models.yaml
* Update build-all-tinygrad-models.yaml
* Update build-all-tinygrad-models.yaml
* Update build-all-tinygrad-models.yaml
* Update build-all-tinygrad-models.yaml
* Update build-all-tinygrad-models.yaml
* Update build-all-tinygrad-models.yaml
* Allow more dynamic short names
This should hopefully be future-proof for now.. It's robust enough to return the correct word-digit format (see example on how it generates from given display name below):
'Last Horizon V2 (November 22, 2024)' -> LHV2
'Alabama (November 25, 2024)' -> ALABAMA
'PlayStation (December 03, 2024)' -> PLAYSTAT
'Postal Service (December 09, 2024)' -> PS
'Null Pointer (December 13, 2024)' -> NP
'North America (December 16, 2024)' -> NA
'National Public Radio (December 18, 2024)' -> NPR
'Filet o Fish (March 7, 2025)' -> FOF
'Tomb Raider 2 (April 18, 2025)' -> TR2
'Tomb Raider 3 (April 22, 2025)' -> TR3
'Tomb Raider 4 (April 25, 2025)' -> TR4
'Tomb Raider 5 (April 25, 2025)' -> TR5
'Tomb Raider 6 (April 30, 2025)' -> TR6
'Tomb Raider 7 (May 07, 2025)' -> TR7
'Down to Ride (Revision: May 10, 2025)' -> DTR
'SP Vikander Model (May 16, 2025)' -> SPVM
'VFF Driving (May 15, 2025)' -> VFFD
'Secret Good Openpilot (May 16, 2025)' -> SGO
'Vegetarian Filet o Fish (May 29, 2025)' -> VFOF
'Down To Ride (Revision: May 30, 2025)' -> DTR
'Vegetarian Filet o Fish v2 (June 05, 2025)' -> VFOFV2
'Kerrygold Driving (June 08, 2025)' -> KD
'Tomb Raider 10 (June 16, 2025)' -> TR10
'Organic Kerrygold (June 17, 2025)' -> OK
'Liquid Crystal Driving (June 21, 2025)' -> LCD
'Vegetarian Filet o Fish v3 (June 21, 2025)' -> VFOFV3
'Vibe Model [Custom Model]' -> VMCM
'Tomb Raider 13 (June 27, 2025)' -> TR13
'Aggressive TR (June 28, 2025)' -> ATR
'Tomb Raider 14 (June 30, 2025)' -> TR14
'Cookiemonster Tomb Raider (July 02, 2025)' -> CTR
'Down to Ride (Revision: July 07, 2025)' -> DTR
'Simple Plan Driving (July 07, 2025)' -> SPD
'Down to Ride (Revision: July 08, 2025)' -> DTR
'Tomb Raider 15 (July 09, 2025)' -> TR15
'Tomb Raider 15 rev-2 (July 11, 2025)' -> TR15R2
'Le Tomb Raider 14 (July 14, 2025)' -> LTR14
'Le Tomb Raider 14h (July 17, 2025)' -> LTR14H
'Tomb Raider 16 (July 18, 2025)' -> TR16
'Tomb Raider 16v2 (July 21, 2025)' -> TR16V2
* Update build-all-tinygrad-models.yaml
* Update build-all-tinygrad-models.yaml
* No need to sleep 3 seconds, just send it
* try dynamic
* cleanup
* Update build-single-tinygrad-model.yaml
* bc devtekve said. also, this is repetitive af
* Revert "bc devtekve said. also, this is repetitive af"
This reverts commit 3a0c1562de.
* maybe we could use a script instead that both build all
That both build all and sunnypilot-build-model reference
* refactor: consolidate model building steps into a single workflow
* tweak
* tweakx2
* tweakx3
* tweakx4
* dunno dunno...
* output dir
* lots of changes
* Revert "lots of changes"
This reverts commit 4aadb0ee29.
* fail if all fail
* no inputs needed
* make it easier for us
* note failure and exit 0
* Update build-all-tinygrad-models.yaml
* not needed unless we really want it
* Update build-single-tinygrad-model.yaml
* Merge branch 'sync-20250627-tinygrad' of github.com:sunnypilot/sunnypilot into sync-20250627-tinygrad
* retry for failed ?
* always run this step because sometimes one build fails
which causes the matrix to fail, but most builds still have uploaded artifacts.
* strip
* no escape
* Update build-all-tinygrad-models.yaml
* Test case from terminal run
(openpilot) james@Mac sunnypilot % jq -c '[.bundles[] | select(.runner=="tinygrad") | {ref, display_name: (.display_name | gsub(" \\([^)]*\\)"; "")), is_20hz}]' \
/Users/james/Documents/GitHub/sunnypilot-docs/docs/driving_models_v6.json > matrix.json
mkdir -p output
touch "output/model-Tomb Raider 16v2 (July 21, 2025)-544"
touch "output/model-Space Lab Model (July 24, 2025)-547"
touch "output/model-Space Lab Model v1 (July 24, 2025)-548"
built=(); while IFS= read -r line; do built+=("$line"); done < <(
ls output | sed -E 's/^model-//' | sed -E 's/-[0-9]+$//' | sed -E 's/ \([^)]*\)//' | awk '{gsub(/^ +| +$/, ""); print}'
)
jq -c --argjson built "$(printf '%s\n' "${built[@]}" | jq -R . | jq -s .)" \
'map(select(.display_name as $n | ($built | index($n | gsub("^ +| +$"; "")) | not)))' \
matrix.json > retry_matrix.json
cat retry_matrix.json
[]
(openpilot) james@Mac sunnypilot %
* always
* great success
* add suffix to retry artifact so it doesn't conflict
* retry to get_model too
* and there haha
* unnecessary hyphen
* compare built to missing. include retries
* adjust copy of artifacts.
* Update build-all-tinygrad-models.yaml
* Update model selector versioning and add documentation
* Update retry condition for failed models in build-all-tinygrad-models.yaml
* Update retry condition for failed models in build-all-tinygrad-models.yaml
* Update build-single-tinygrad-model.yaml
* false
* default none because why not
* red diff? i think?
* meh ... not needed i guess
* error error error
* Nayan is watching... always watching mike wazowski
* string all the way
* lots of retries just in case because im scared
* more robust
* ONLY ONE!!!!!!
* delete.... a lot
* fix artifacts
* fix artifacts
* make sure each is unique :)
* skip files like artifact duhhhh
* artifact name dir
* concurrency
* copy here
* Update build-single-tinygrad-model.yaml
* Update build-single-tinygrad-model.yaml
* bump
* bump tinygrad
* max parallel? if not, i have the other remedy ready in build-all
* revert me!
* I resynced tinygrad woo hoo
* setup shouldnt fail
* pull
* big ole diff
* condition
* Update build-all-tinygrad-models.yaml
* not always() never always() never!!!
* not failure instead of great success
* Update build-all-tinygrad-models.yaml
* yay that worked. lets invoke build-single one last time
* these arent used and are just taking up 250MB space
* really frog?
* bump back to 3
* self-hosted, tici
* rename to trigger tests
* 2 and done
---------
Co-authored-by: DevTekVE <devtekve@gmail.com>
* Tinygrad bump from sync-20250627
* bump tinygrad_repo
* Reformat metadata generator to match driving_models.json
* bump tinygrad
* Revert "bump tinygrad"
This reverts commit f479dfd502.
* revert me after SP model compiled
* Model recompiled successfully, initiate "revert me after SP model compiled"
This reverts commit 95706eb688.
* The "FillMe" placeholder caused an extra 10 seconds of work
* bump to 22Jul2025
* Update build-all-tinygrad-models.yaml
* Update build-all-tinygrad-models.yaml
* Update build-all-tinygrad-models.yaml
* Update build-all-tinygrad-models.yaml
* Update build-all-tinygrad-models.yaml
* Update build-all-tinygrad-models.yaml
* Update build-all-tinygrad-models.yaml
* Allow more dynamic short names
This should hopefully be future-proof for now.. It's robust enough to return the correct word-digit format (see example on how it generates from given display name below):
'Last Horizon V2 (November 22, 2024)' -> LHV2
'Alabama (November 25, 2024)' -> ALABAMA
'PlayStation (December 03, 2024)' -> PLAYSTAT
'Postal Service (December 09, 2024)' -> PS
'Null Pointer (December 13, 2024)' -> NP
'North America (December 16, 2024)' -> NA
'National Public Radio (December 18, 2024)' -> NPR
'Filet o Fish (March 7, 2025)' -> FOF
'Tomb Raider 2 (April 18, 2025)' -> TR2
'Tomb Raider 3 (April 22, 2025)' -> TR3
'Tomb Raider 4 (April 25, 2025)' -> TR4
'Tomb Raider 5 (April 25, 2025)' -> TR5
'Tomb Raider 6 (April 30, 2025)' -> TR6
'Tomb Raider 7 (May 07, 2025)' -> TR7
'Down to Ride (Revision: May 10, 2025)' -> DTR
'SP Vikander Model (May 16, 2025)' -> SPVM
'VFF Driving (May 15, 2025)' -> VFFD
'Secret Good Openpilot (May 16, 2025)' -> SGO
'Vegetarian Filet o Fish (May 29, 2025)' -> VFOF
'Down To Ride (Revision: May 30, 2025)' -> DTR
'Vegetarian Filet o Fish v2 (June 05, 2025)' -> VFOFV2
'Kerrygold Driving (June 08, 2025)' -> KD
'Tomb Raider 10 (June 16, 2025)' -> TR10
'Organic Kerrygold (June 17, 2025)' -> OK
'Liquid Crystal Driving (June 21, 2025)' -> LCD
'Vegetarian Filet o Fish v3 (June 21, 2025)' -> VFOFV3
'Vibe Model [Custom Model]' -> VMCM
'Tomb Raider 13 (June 27, 2025)' -> TR13
'Aggressive TR (June 28, 2025)' -> ATR
'Tomb Raider 14 (June 30, 2025)' -> TR14
'Cookiemonster Tomb Raider (July 02, 2025)' -> CTR
'Down to Ride (Revision: July 07, 2025)' -> DTR
'Simple Plan Driving (July 07, 2025)' -> SPD
'Down to Ride (Revision: July 08, 2025)' -> DTR
'Tomb Raider 15 (July 09, 2025)' -> TR15
'Tomb Raider 15 rev-2 (July 11, 2025)' -> TR15R2
'Le Tomb Raider 14 (July 14, 2025)' -> LTR14
'Le Tomb Raider 14h (July 17, 2025)' -> LTR14H
'Tomb Raider 16 (July 18, 2025)' -> TR16
'Tomb Raider 16v2 (July 21, 2025)' -> TR16V2
* Update build-all-tinygrad-models.yaml
* Update build-all-tinygrad-models.yaml
* No need to sleep 3 seconds, just send it
* try dynamic
* cleanup
* Update build-single-tinygrad-model.yaml
* bc devtekve said. also, this is repetitive af
* Revert "bc devtekve said. also, this is repetitive af"
This reverts commit 3a0c1562de.
* maybe we could use a script instead that both build all
That both build all and sunnypilot-build-model reference
* refactor: consolidate model building steps into a single workflow
* tweak
* tweakx2
* tweakx3
* tweakx4
* dunno dunno...
* output dir
* lots of changes
* Revert "lots of changes"
This reverts commit 4aadb0ee29.
* fail if all fail
* no inputs needed
* make it easier for us
* note failure and exit 0
* Update build-all-tinygrad-models.yaml
* not needed unless we really want it
* Update build-single-tinygrad-model.yaml
* Merge branch 'sync-20250627-tinygrad' of github.com:sunnypilot/sunnypilot into sync-20250627-tinygrad
* retry for failed ?
* always run this step because sometimes one build fails
which causes the matrix to fail, but most builds still have uploaded artifacts.
* strip
* no escape
* Update build-all-tinygrad-models.yaml
* Test case from terminal run
(openpilot) james@Mac sunnypilot % jq -c '[.bundles[] | select(.runner=="tinygrad") | {ref, display_name: (.display_name | gsub(" \\([^)]*\\)"; "")), is_20hz}]' \
/Users/james/Documents/GitHub/sunnypilot-docs/docs/driving_models_v6.json > matrix.json
mkdir -p output
touch "output/model-Tomb Raider 16v2 (July 21, 2025)-544"
touch "output/model-Space Lab Model (July 24, 2025)-547"
touch "output/model-Space Lab Model v1 (July 24, 2025)-548"
built=(); while IFS= read -r line; do built+=("$line"); done < <(
ls output | sed -E 's/^model-//' | sed -E 's/-[0-9]+$//' | sed -E 's/ \([^)]*\)//' | awk '{gsub(/^ +| +$/, ""); print}'
)
jq -c --argjson built "$(printf '%s\n' "${built[@]}" | jq -R . | jq -s .)" \
'map(select(.display_name as $n | ($built | index($n | gsub("^ +| +$"; "")) | not)))' \
matrix.json > retry_matrix.json
cat retry_matrix.json
[]
(openpilot) james@Mac sunnypilot %
* always
* great success
* add suffix to retry artifact so it doesn't conflict
* retry to get_model too
* and there haha
* unnecessary hyphen
* compare built to missing. include retries
* adjust copy of artifacts.
* Update build-all-tinygrad-models.yaml
* Update model selector versioning and add documentation
* Update retry condition for failed models in build-all-tinygrad-models.yaml
* Update retry condition for failed models in build-all-tinygrad-models.yaml
* Update build-single-tinygrad-model.yaml
* false
* default none because why not
* red diff? i think?
* meh ... not needed i guess
* error error error
* Nayan is watching... always watching mike wazowski
* string all the way
* lots of retries just in case because im scared
* more robust
* ONLY ONE!!!!!!
* delete.... a lot
* fix artifacts
* fix artifacts
* make sure each is unique :)
* skip files like artifact duhhhh
* artifact name dir
* concurrency
* copy here
* Update build-single-tinygrad-model.yaml
* Update build-single-tinygrad-model.yaml
* bump
* bump tinygrad
* max parallel? if not, i have the other remedy ready in build-all
* revert me!
* I resynced tinygrad woo hoo
* setup shouldnt fail
* pull
* big ole diff
* condition
* Update build-all-tinygrad-models.yaml
* not always() never always() never!!!
* not failure instead of great success
* Update build-all-tinygrad-models.yaml
* yay that worked. lets invoke build-single one last time
* these arent used and are just taking up 250MB space
* really frog?
* bump back to 3
* self-hosted, tici
* rename to trigger tests
* split sync
---------
Co-authored-by: DevTekVE <devtekve@gmail.com>
* ci: refactor PR handling with output file storage and streamlined input parsing
* try runner.temp
* base64 it
* simple simple
* double it and give it to the next person
* One more test
* Apply suggestions from code review
---------
Co-authored-by: DevTekVE <devtekve@gmail.com>
* fix mapd folder
* not needed
* unnecessary
* Remove unused import from mapd_installer.py
Deleted the unused import of Paths from openpilot.system.hardware.hw to clean up the code.
* Undo changes
* update: adjust `mapd` process to conditionally start based on readiness
- Added `mapd_ready` function to check `mapd` readiness.
- Modified `mapd` process to use this readiness condition.
* update: bump mapd version to v1.10.0 and add readiness utility
- Updated `VERSION` to v1.10.0 for `mapd_installer.py`.
* update: integrate `MapdInstallManager` versioning into main thread
- Added a call to `MapdInstallManager.update_installed_version` with `VERSION`.
- Ensures version management for `mapd` is synchronized during runtime.
* refactor: centralize `MAPD_PATH` and `MAPD_BIN_DIR` definitions in module init
- Moved constants to `sunnypilot/mapd/__init__.py` for cleaner imports and reuse.
- Updated references in `mapd_manager.py` and `mapd_installer.py`.
* revert back the file permission
* do this
* no longer static
---------
Co-authored-by: DevTekVE <devtekve@gmail.com>
Co-authored-by: rav4kumar <meetkumardesai@gmail.com>
Co-authored-by: James Vecellio-Grant <159560811+Discountchubbs@users.noreply.github.com>
Co-authored-by: Jason Wen <haibin.wen3@gmail.com>
* excessive actuation
* text
* software
* check
* logic
* whoops
* dont want to lose alert unless user interacts with it
* implement
* try x2
* counter
* try to false trigger
* use livepose
* need to check for livePose noise
* cmt
* nl
* add back
* organization
* setVisible and isVisible consecutively don't work
* style
* cant do this sadly
* actually we can!
* clean up
* clean up
* clean up
* need to match torqued, paramsd, lagd, etc. (fix op sim)
* first
* fix
* fix
* this
* real
* time
* time
* more
* more
* fix
* subclass
* fix
* fix
* test
* fix
* ruff
* revert
* default
* json
* more
* test
* test
* d
* better
* better
* test
* one
* test
* space
* add helpers
* another name
* whitespace
* f string
* add log id
* add logid
* another dumb function
* add more crap
* fix naming
* whitespace
* fstring
* Enhance parameter backup capabilities
- Added `BACKUP` attribute to various persistent parameters to ensure their inclusion in backup processes.
* Add more keys
---------
Co-authored-by: James Vecellio-Grant <159560811+Discountchubbs@users.noreply.github.com>
* add advancedControl bool to SP Controls
* add Advanced Controls toggle in SP Dev Panel
* merge - ui: Init Developer Panel SP#1054
* because @discountchubbs did not want to commit directly to the pr 🤷♂️
* enable onroad too
* hide by default only on staging & release
---------
Co-authored-by: discountchubbs <alexgrant990@gmail.com>
Co-authored-by: James Vecellio-Grant <159560811+Discountchubbs@users.noreply.github.com>
Co-authored-by: DevTekVE <devtekve@gmail.com>
* Fast boot mode
* Unused
* FastBoot -> QuickBoot
* Move down, since name change
* Chronological in manager too
* last one b4 merge
---------
Co-authored-by: Nayan <nayan8teen@gmail.com>
Co-authored-by: DevTekVE <devtekve@gmail.com>
* Introduce zero inputs for Lead, and plan to conform with new SP model introduced Monday, July 7, 2025
* Clean this up
* We can revert this after dev-c3-new testing and ready to merge.
* This needs to be apart of the conditional else fail
* Add full conditional
* Update longitudinal_planner.py
* Mypy from myphone!
* red diff
* Make generation a property for clarity
* Even clearer!
* Affix to generation, while allowing older models to use this IF param is set.
* seems a bit repetitive yea?
* dynamic
* Make most outputs dynamic
* Rm toggle from refactor
* refactor(modeld): simplify MHP output parsing logic
- Introduced `_parse_mhp_output` helper to remove redundancy and streamline `parse_dynamic_outputs`.
- Ensures improved code maintainability and clarity.
* refactor(longitudinal_planner): streamline generation handling logic
- Simplified `generation` assignment with inline conditional for better readability.
- Adjusted `mlsim` logic to default to model simulation when `generation` is unset.
* for ease of syncs from now on
* fix
---------
Co-authored-by: DevTekVE <devtekve@gmail.com>
* sourcing supports any file type!
* stuff
* no camera for now
* i guess these are fine without
* rename
* get rid of these too!
* fix
* fix
* this is better
* start to clean up!
* better
* holy
holy
* clean up sources
* more robust
* working but needs some clean up
* clean up
* remove some trash
* nl
* auto_source can only return if it finds acceptable logs from sources
* double negative is confusing
* default
* list isn't hashable
* fix typing
* clean up
* speed up -- test_models got zst before bz2 in openpilotci, so do that (some segments have both bz2 and zst!)
* don't be a hero
* same behavior for now
* ban it!
* some legitimate blunders
* even more!
* this is from commaai/one
* here too
* this too
* ignore rest
* one liner
* Revert "one liner"
This reverts commit d96a1624032aaad829a005b523e579d953cfe690.
* fix not resetting safety mode when op goes offroad
* hmm can do this but not needed
* revert
* rm check
* fix loopback
* ugh
* might have to do this
* Revert "might have to do this"
This reverts commit abd8a7ed74ca11874de1360f9630dc67bc4d02ee.
* fix
* also works but ehhh
* actually this is better, we already get IsOnroad at 10Hz
* top looks better
* fix
* add CLEAR_ON_IGNITION_ON
* hardwared is the only place that currently checks all ignition sources. doing it in pandad wouldn't make sense. this okay?
* remember
* only two usages but meh
* manager should probably be the only daemon to manage params
* clean up
* oh this is craze
* Update selfdrive/monitoring/helpers.py
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* together
---------
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* gh workflows: Create build single and build all models
Recompile action, and build single model action...
I'm tired, and this could definitely most probably be wrong.
on push : Revert me!
Revert "on push : Revert me!"
This reverts commit c6ab17adad981585f93c285e9d8a418e4c975879.
checkout gitlab
Update build-single-tinygrad-model.yaml
Whoops. ubuntu-latest not self-hosted
self-hosted is comma device
gh api because artifacts
Dynamic long
Update build-single-tinygrad-model.yaml
* FoF to FOF, because spellchecker is no fun
* ignore
* Create new dir and json by default since its full recompile
red diff, who doesn't like it
* Minimal patch to ssh agent from yesterday
* Update .codespellignore
---------
Co-authored-by: DevTekVE <devtekve@gmail.com>
* refactor: move button to widgets folder
* refactor: move inputbox to widgets folder
* refactor: move label to widgets folder
* refactor: move list_view to widgets
* refactor: move scroll_panel to widgets
* refactor: move scroller to widgets
* refactor: move toggle to widgets
* refactor: Move widget.py to widgets/__init__.py
* fix: remove extra list_view
* refactor: rearrange some of the imports
* fix: remove extra scroller.py
* fix: Add scroller back
* fix: delete right scroller.py this time
* move scroll_panel back to system/ui/lib
* add todos for label and button
* refactor(raylib): use dictionary to map font weight to file name
* refactor: add space
* refactor: format
* refactor: Switch FontWeight to a StrEnum with font file values
* update settings close text to use multiplication x character
* add todo
* fix: Add settings close text char to loaded glyphs
* refactor: Use font medium for settings close button text and remove font bold property; change font_)medium property to font_weight
* move close icon down a bit
* fix: offset settings close text in button to correct centering
* fix: remove horizontal offset
* refactor: it's actually a font, so rename back
* gate
* more
* more
* check
* more
* fix
* more
* check
* Revert "check"
This reverts commit c30941bae0cbdb8f908883658bf1b0a4839c2be1.
* back
* more
* like before
* again
* more
* mouse thread
* instanciate mouse
* type that
* pc handling
* use mouse event list in widget
* use events in scroll panel
* no stop that
* hack for now
* typing
* run
* clean up
* Localizer is too laggy for control
* typo
* typo
* fix test
* fix imports
* Revert "fix imports"
This reverts commit 5074f8050170f974b451e00d9fdc752f09a47d57.
* fix improt
* import
* gen 11 only api limit exceeded maybe not
* Try this for ModelDataV2.Action
* mpc mode
* Fix This
* Revert "Try this for ModelDataV2.Action"
This reverts commit e7db17980b.
* fix logic flaw
* Address comments for readability.
---------
Co-authored-by: Kumar <36933347+rav4kumar@users.noreply.github.com>
* cache
* Clear every 10 iterations, which means 100hz * 10
* Revert "Clear every 10 iterations, which means 100hz * 10"
This reverts commit 4eda3079e6.
* Apply suggestion from @devtekve
* Apply suggestion from @devtekve
---------
Co-authored-by: DevTekVE <devtekve@gmail.com>
* Add live delay toggle to torqued.py and twilsonco NNLC
* Set this in init
* Clean up
* Live delay toggle refactor
* ModeldLagd -> LagdToggle
* This is for lagd_toggle.py
* Add to NNLC
* Lagd toggle:
Display current values on UI
* Add break
* LagdToggleDelay
Live edit software_delay when livedelay is toggled `off`
* Always show description
* Add description as to why values don't update offroad
---------
Co-authored-by: Kumar <36933347+rav4kumar@users.noreply.github.com>
* chore(ci): parameterize and update GitHub runner version to 2.325.0
* ci: refactor GitHub runner service installation logic
Improved service installation workflow by introducing service template creation and cleaning up redundant checks. Enhanced restoration logic with clearer system state assessment and simplified flow for better maintainability.
* encode/store audio as part of video file
* better match write_audio() with write()
* handle different FFmpeg versions, flush audio encoder, suppress encoder QAvg/info messages
* use audio_buffer.size() instead of keeping track of size separately
* no more for loops
* save to qcam and rlog
* assert audio support check
* microphone --> soundPressure, audioData --> rawAudioData
* deque much more efficient if buffer ever >> frame_size, ~ same performance for defaults
* cleanup and fix time scaling
* initialize audio separately and pass sample_rate in
* update comments
* ensure header is written before writing audio
* buffer audio frame but do not process before header written
* handle buffer overflow now that we are using as an actual buffer
* spelling
* store/send mic audio with toggle
* script to extract audio from logs
* change description and add translation placeholders
* microphone icon
* apply toggle in loggerd
* add legnth and counter
* startFrameIdx counter
* Revert "change description and add translation placeholders"
This reverts commit 7baa1f6de99c6ebe9f9906193da7e83dad79511a.
* send mic data first and then calc
* restore changed description/icon after revert
* adjust fft samples to keep old time window
* remove extract_audio.py since audio is now stored in qcam isntead of rlog
* qt microphone recording icon
* Revert "remove extract_audio.py since audio is now stored in qcam isntead of rlog"
This reverts commit 7a3a75bd8db5376d1e442a3ba931c67550b5f132.
* move extract_audio script and output file by default
* remove length field
* recording indicator swaps sides based on lhd/rhd
* use record icon from comma body
* Update toggle description
Co-authored-by: Adeeb Shihadeh <adeebshihadeh@gmail.com>
* update raylib toggle desc cause I did earlier
* microphone --> soundPressure, audioData --> rawAudioData
* cleanup unused var
* update README
* sidebar mic indicator instead of annotated camera
* improve logic readability
* remove startFrameIdx and sequenceNum
* use Q_PROPERTY/setProperty so that update() is actually called on value change
* specify old id for SoundPressure
* fix typo
---------
Co-authored-by: Adeeb Shihadeh <adeebshihadeh@gmail.com>
* new scroller and widget
start
heck yeah
fix that
clean up
* fuck yeah
* line sep
* fix that
* fix clicking on action
* no custom width
* move all over
* clean up
* more clean up
* rm custom visible too
* more clean up
* lint
* dont use enabled generically yet
* ??
* TorqueExtBase: use learned lag
lower non-zero limit for lag
restore original lag mod
* NNLC: use learned lat lag
* add test
* non-zero lag in test
* lower lag mod to 0.1s
* Update constant to reflect Twilsonco's recommendations.
* add _update_state
* nonlya
* visible already does this for us!
* do hud renderer and exp button
* temp
* this really needs some type of timer like QT
* this really needs some type of timer like QT
* todo
* use in model renderer
* Revert "use in model renderer"
This reverts commit d35f774155c9875209d06b8cd0b4849b1d8a60c4.
* no passing rect
* cl
* unused now
* update_layout_rects
* check prev
* about it
* need this since touch can change :(
* looks nicer
* Revert "looks nicer"
This reverts commit 8f36c92675db66695f22f93a01682426db9c05e8.
* generic visibility
* clean up
* fix op lint
* ? why do we care if it's None
* no need to make it too generic
* do driver state
* noise
* clean up
* draft on listview
* waiting for deanlees listview refactor - Revert "draft on listview"
This reverts commit 8ea4fa2a68361079bc79ac99e67c5cb58068daa4.
* rm demo
* Add Reverse ACC Change parameter and update cruise control logic
* lint lint lint (and lint has been summoned!)
* Add test for speed adjustment on reverse ACC button presses
* Fix formatting in cruise speed test for reverse ACC button presses
* Fix assertion in cruise speed test for reverse ACC button presses
* Enhance speed adjustment test for reverse ACC functionality
* Refactor speed adjustment test for clarity and consistency in reverse ACC behavior
* Fix metric conversion in cruise speed update for reverse ACC functionality
* custom-acc-speed-increments
* simplify
* remove unused params
* move params & add test
* lets see if this works
* minor cosmetic stuff
* clean up class names & old code
* remove unused import
* moved params to card
* stupid strings
* Add settings for developer reverse acceleration configuration
* Refactor cruise control parameters to use a dictionary for custom acceleration increments
* adjust for the default behavior
* Remove unused param
* Fuck pytest consistently failing on macos. Need to force a fail on the pipeline or I won't have confidence on the tests.
* Revert "Fuck pytest consistently failing on macos. Need to force a fail on the pipeline or I won't have confidence on the tests."
This reverts commit 05bac46a0c.
* Refactor custom acceleration increment handling to improve clarity and initialization
* Refactor AccIncrementOptionControl to accept range and per_value_change parameters for improved flexibility
* Refactor custom acceleration increment handling to improve clarity and functionality
* Adjusting tests
* Static
* no need for space changes
* no need for space changes
* no need for space changes
* Refactor constructor formatting in AccIncrementOptionControl
* Rename
* Meaningless change to test CI
* allow 1/5/10 increments for long press
move developer panel src to /offroad/settings
* update boundary condition for long press
* clamp increments of 5/10 regardless of short or long press
* update tests
* update test for long_press non-standard values
* move to cruise panel
* init
* use cereal
* update tests
* merge
* bump
* clean up
* more clean up
* no more layout warnings
* trying to resolve dev ci merge conflicts
* damn ui preview
* stack layout
enable only with oplong
* bump opendbc
* fix width
* bump tinygrad
* switch to params
* remove cereal changes
* sort params
* cleanup
* more cleanup
* lint
* rename
* split vcruise_helper
* move params to card thread
hide widget for pcm cruise
* simplify tests
* further simplify tests
* tests!!
* Revert "tests!!"
This reverts commit 85310a155e.
* move tuple from init to update_v_cruise
* lint
* temp remove tests to check
* Revert "temp remove tests to check"
This reverts commit da1c96a5db.
* handle exception
* formatting
* handle none condition
* remove from tests
* flip inheritance
* read directly
* set default
* not needed
* refactor inheritence
* rename
* already checks before invoking
* unused
* slight cleanup
* lint
* rename
* diff
* circular
* just 1 parent for now
* fix
* fix increment check with remainder
* red diff
* type hint
* update tests
* clip them
* formatting
* always check toggle visibility
* spaces are free
* hide widgets when disabled
* less
* handle more states
* private instead
* red diff says wuuuut
* fix panel click
---------
Co-authored-by: DevTekVE <devtekve@gmail.com>
Co-authored-by: Discountchubbs <159560811+Discountchubbs@users.noreply.github.com>
Co-authored-by: Jason Wen <haibin.wen3@gmail.com>
* add lagd
* add live torque params
* clean up
* too many openpilot is's
* add back
* fix weird pattern causing segfault
* cu
* 10 more lines for "all complete"
* Revert "10 more lines for "all complete""
This reverts commit de1ad0b7386f4c5d9967ea733edbe5bf1df5039c.
* one line
* Add calPerc field and torque progress
* Fix torqued test style and CarParams usage
* test: remove unused numpy import
* move here
* trying all combinations to see what's most linear
* clean up with best method
* no no
* epic
* clean up
* last min not needed
* doesn't hurt
* list comp
* exit offroad btn on offroad-home
* Remove alert for Always-Offroad.
Replaced with header "Always Offroad Active"
* refresh state when device wakes up
* cleanup
* cleaning
* Add pulsing glow effect to ExitOffroadButton
Introduced a QTimer-based mechanism to create a pulsing glow effect around the ExitOffroadButton. This enhances visual feedback by animating the outline with varying alpha transparency, improving UI responsiveness and aesthetics.
* move custom asset to sunnypilot
---------
Co-authored-by: DevTekVE <devtekve@gmail.com>
* init
* some fixes
* move
* more
* old navd helpers
* bring back cereal
* fix linting
* more
* add to cereal first
* sp events
* lint
* implement in long plan
* fixme-sp
* refactor state machine
* wrong state
* start refactor controller
* some type hints
* init these
* enable debug print
* ui? ui!
* print them out
* fix spinner import
* fix path
* let's use gps chips directly for now
* service missing
* publish events
* no nav for now
* need to sub
* no car state speed yet
* missed event
* Car: `CarStateSP`
* fix tests
* bring back car state speed limit
* fix
* use old controller for now
* fix
* fix source
* type hints
* none for now
* formatting
* more
* create directory if does not exist
* mypy my bt
* policy param catch exceptions
* handle all params with exceptions
* more
* single method
* define types in init
* rename
* simpler op enabled check
* more mypy stuff
* rename
* no need for brake pressed
* don't reset if gas pressed
* type hint all
* type hint all
* back to upstream
* in another pr
* no longer need data type
* qlog
* slc in another pr
* use horizontal accuracy
* set core affinity for all realtime processes
* unused
* sort
* unused
* type hint and slight cleanup
* from old implementation
* use directly
* combine pm
* slight more cleanup
* type hints
* even more type hint
* lint
* more cleanup
* even less
* license
* something like this
* need these
* rest
* another pr
* what is this merge conflict
f
* fix mouse down
* rm that!
* fix that
* rearrange
* fix bug where mouse held down on widget, dragged off, then let go
* temp
* fix that
* missing init
* add experimental mode toggle button with visual indicator
* merge master
* implement a temporary state hold after mouse click"
* move to seperate class
---------
Co-authored-by: Shane Smiskol <shane@smiskol.com>
* models panel
* models panel
* fix ui report
* stupid scroll
* move model selector to models panel
* cleanup whitespaces
* cleanup bad merge
* model search
* support searching with short name
---------
Co-authored-by: DevTekVE <devtekve@gmail.com>
* Refactor and extend ModelRenderer for custom Sunnypilot logic
Refactored `ModelRenderer` to `ModelRendererSP` with enhanced features such as lane line updates, path drawing, and lead management for Sunnypilot. Introduced new methods for model updates, lead drawing, and improved path rendering with experimental mode support. Ensured compatibility by integrating with Sunnypilot-specific HUD and camera components.
* Update selfdrive/ui/sunnypilot/qt/onroad/model.cc
* Refactor `ModelRenderer` for modularity
Moved constants and `get_path_length_idx` function to the header file for reuse and clarity. Updated `drawPath` and related methods to better handle surface dimensions, improving rendering flexibility. Made key functions virtual to allow further customization in derived classes.
* Cleaning logic on ModelRenderSP
Given that we've refactored slightly the original ModelRender, we no longer need to duplicate the logic on our own implementation
* Enable blind spot detection and visualization.
Added support for blind spot warnings, including gradient-colored visualizations for left and right blind spots on the on-road UI. Introduced a new "BlindSpot" parameter with related logic for detection and rendering, as well as a settings option for user toggling.
* Cleanup format
Clean
Cleanup and fixes
* Let's backup the BlindSpot setting
* add false for restart-needed
* Add blind spot warning toggle to VisualsPanel
Moved blind spot warning toggle from settings.cc to VisualsPanel and implemented support for dynamic parameter updates. This change introduces a dedicated layout for managing visual settings and improves modularity in the settings interface.
* Update Blind Spot Warnings setting description
Clarified the description to specify that warnings are displayed only if the car supports Blind Spot Monitoring (BSM). This ensures better user understanding of the feature's requirements.
* Avoid diff on settings.cc
* More cleanup
---------
Co-authored-by: DevTekVE <devtekve@gmail.com>
Co-authored-by: Jason Wen <haibin.wen3@gmail.com>
Co-authored-by: Nayan <nayan8teen@gmail.com>
Update CODEOWNERS with new ownership rules
Expand ownership to additional paths for better code coverage and clarity. Newly added owners include @Discountchubbs and @devtekve for specified directories and files. This ensures proper oversight and maintenance of critical areas.
* Model panel
* Get this outta here and use sunnylink instead
* Remove space
* 'not' because we want gas gating to use e2e/mpc blend
* Add toggles to models_panel.cc
* "keep enabled for stock behavior"
* Add this here
* Cloudlog result
* change cloudlog to debug, and add latsmooth to steer actuator delay.
Need to edit json. Will do locally so when this is merged its a simple ready to go push.
* Cleanup
* Update longitudinal_planner.py
* Remove gasgating for now.. may need to be placed in model
---------
Co-authored-by: DevTekVE <devtekve@gmail.com>
* Controls: Pause lateral control based on blinker state and vehicle speed
* in its own module
* tests
* cleanup tests
* ui
* always refresh on show panel
* remove default
* change to 20 default
* need to update params live
* shorter
* off by default
* lol lint
* use ExpandableToggleRow
* not needed
* shorter
* ci ui preview delay for all offroad
* more
* Revert "more"
This reverts commit 809cfd99da.
* Revert "ci ui preview delay for all offroad"
This reverts commit ab38292fa8.
---------
Co-authored-by: nayan8teen <nayan8teen@gmail.com>
* add new main UI entry point
* cleanup
* mv to selfdrive/ui
* fix imports
* handle_mouse_click
* use ui_state
* remove ui_state from gui_app
* setup callbacks
* handle clicks
* put layouts in a dict
* update state in render
* rebase master
* implement settings sidebar
* rename files
* Refactor and extend ModelRenderer for custom Sunnypilot logic
Refactored `ModelRenderer` to `ModelRendererSP` with enhanced features such as lane line updates, path drawing, and lead management for Sunnypilot. Introduced new methods for model updates, lead drawing, and improved path rendering with experimental mode support. Ensured compatibility by integrating with Sunnypilot-specific HUD and camera components.
* Update selfdrive/ui/sunnypilot/qt/onroad/model.cc
* Refactor `ModelRenderer` for modularity
Moved constants and `get_path_length_idx` function to the header file for reuse and clarity. Updated `drawPath` and related methods to better handle surface dimensions, improving rendering flexibility. Made key functions virtual to allow further customization in derived classes.
* Cleaning logic on ModelRenderSP
Given that we've refactored slightly the original ModelRender, we no longer need to duplicate the logic on our own implementation
---------
Co-authored-by: DevTekVE <devtekve@gmail.com>
Co-authored-by: Jason Wen <haibin.wen3@gmail.com>
* Revert "ci: faster model_replay (#34036)"
This reverts commit 847a5ce1f3.
* fix conflict
* trigger on test change
* zst
* give start and end frame
* unused flags
* no print
* whitespace
* fix plotting
* slice correct
* no print
* Just start from beginning
* disable in release
* pass
* one liner
* saves 1s so far
* clean up
* fix
* Revert "one liner"
This reverts commit 5f419b5692565fc7ddc2abe9a40112fdc47ffe9e.
Revert "pass"
This reverts commit 47d260e76a9cb1310b95ea1ff83ab7f8808be96d.
Revert "disable in release"
This reverts commit 1782718b61891d87cbb9daa1c4c65314f505cee4.
* clean up
* there's more
* no mocker!
* py sensord
* fix up mmc
* temp
* port over accel
* lil more
* kinda works
* rm that
* gpiochip
* mostly there
* lil more
* lil more
* irq timestamps
* fix ts
* fix double deg2rad
* test passes
* fix up mypy
* rm one more
* exception
* lint:
* read in all events
* bump that
* get under budget:
* accel self test
* gyro self-test
* keep these readable
* give it more cores
* debug
* valid
* rewrite that
---------
Co-authored-by: Comma Device <device@comma.ai>
* Create sync-dev.yml
* Update selfdrive_tests.yaml
* Update sync-dev.yml
* Update sync-dev.yml
* Update sync-dev.yml
* add search capability in branch selector
* maybe i should remove test code
* include
* reduce needed includes
* add newline for eof
* no changes needed in upstream file
* not sure why this was here
* try to resolve merge conflicts for dev squash
* try to resolve merge conflict
* No need for this for the time being
---------
Co-authored-by: Discountchubbs <159560811+Discountchubbs@users.noreply.github.com>
Co-authored-by: Jason Wen <haibin.wen3@gmail.com>
Co-authored-by: DevTekVE <devtekve@gmail.com>
* bad
* Revert "bad"
This reverts commit 6b5475dd90c3a29c00d946c94d726563cbec6179.
* notify param
* doesn't need to live in low level paramcontrol, rename param
* should work
* fix
* disable while engaged
* note
* fix
* just in case
* param is cleared by manager -- this was all to ensure manager got our `started` transition
* clean up
* and that
* rm
* negative better than generic thing
* timer is needed as it's not clean to fix case where you toggle while no ignition -- you can't go onroad + this allows some nice tolerance time for user to switch 2 toggles
* these aren't required or useful
* add to description
* no longer unlive
* allow reset button too
* another pr -- Revert "allow reset button too"
This reverts commit 5d03edddc80d8625ceba5d5178b2781e9d10d9c9.
* rm space from i18n string
* car is powered on
* add EGL support to CameraView
* view 3 cameras
* use a more direct approach
* add new line
* cleanup
* cleanup close()
* extract EGL to a seperate file
* cleanup
* add try/except to close()
* rename egl_textures
* improve implementation
* Refactor model runner methods for improved abstraction.
Moved slicing logic to a private `_slice_outputs` method and decoupled `_run_model` for clearer subclass implementation. Removed redundant `output` attribute in `ModelState` to streamline data handling.
* Add output parsing to model_runner and remove duplicate logic
Integrates an output parser directly into `model_runner` for streamlined inference and parsing. Removes redundant parser initialization from `modeld` to avoid duplication and enhance maintainability.
* Reordering
* linter
* linter
* Refactor model handling with `ModelData` abstraction
Introduce a `ModelData` class to encapsulate model and metadata logic, improving code clarity and modularity. Refactor `ModelRunner` to manage multiple models and add conditional handling for fallback scenarios. Adjust `TinygradRunner` to validate and use the new `ModelData` structure.
* Refactor model handling to use dictionary-based structure
Replaces the model list with a dictionary keyed by model type to improve clarity and maintainability. Updates related logic and ensures consistent handling of model metadata and inputs. Adds `slice_outputs` implementation to the `TinygradRunner` for proper output parsing.
* Refactor model runners to support policy and vision separation
Introduced `TinygradPolicyRunner`, `TinygradVisionRunner`, and `TinygradSplitRunner` to enable separate handling of policy and vision models. Updated `TinygradRunner` initialization and input preparation to accommodate modular processing. Adjusted `modeld` to utilize the new runners, ensuring compatibility with separated model workflows.
* Refactor model runner initialization and simplify logic
Introduce `get_model_runner` to centralize model runner selection logic, replacing multiple conditional instantiations. Simplify the handling of model metadata by removing fallback logic and restructuring output slicing to enforce proper loading of model data. These changes improve code maintainability and clarity.
* Refactor model data access for TinygradRunner initialization
Update references to access nested artifact properties and align with structural changes to the model data schema. This simplifies input shapes handling and ensures compatibility with updated model attributes.
* Refactor imports and clean up redundant code.
Removed unused imports and improved formatting for clarity and maintainability. These changes simplify the codebase by eliminating unnecessary dependencies and ensuring consistency.
* Refactor model output parsing with specialized parsers.
Introduce abstract `_parse_outputs` method to standardize parsing logic. Add `SplitParser` for specialized parsing in `TinygradVisionRunner` and `TinygradPolicyRunner`. This improves modularity and paves the way for easier parser customization.
* Add parser for model output processing in modeld_v2
Introduce a new `Parser` class to handle parsing and processing of model outputs, including MDN, binary cross-entropy, and categorical cross-entropy outputs. This modularizes the logic, improves clarity, and prepares for handling various types of model data.
* Add `input_shapes` property to model runners
Introduce a new `input_shapes` property in the abstract base class and its implementation in derived classes. This provides a standardized way to access the input shapes of models, improving clarity and consistency in the model runners.
* Refactor model runner to use private `_model_data` attribute
Replaced public `model_data` with private `_model_data` for improved encapsulation. Updated all references and property accessors accordingly. Simplified model type handling by using raw types where applicable.
* Remove debug print statement from model_runner.py
The unnecessary `print(model_type)` statement was removed as it served no functional purpose in the code. This improves code cleanliness and avoids unintended console output during execution.
* Refactor `_parse_outputs` call in `run_model`.
Replaced the use of `self.parser.parse_outputs` with `self._parse_outputs` for clarity and consistency. Updated method signature to align with the revised usage.
* Refactor model output parsing for clarity and scope separation
Moved specific parsing logic (e.g., lane_lines, lead) from `parse_model_outputs` to `parse_policy_outputs` to better align with functional responsibilities. This improves modularity and readability while maintaining existing functionality.
* Refactor model_runner to simplify result handling
Renamed variable `result` to `parsed_result` for clarity and removed unnecessary slicing during model output parsing. These changes improve code readability and maintain consistency within the `run_model` method.
* Adjust _parse_outputs method signature in model_runner
Updated the method signature of _parse_outputs to accept a single np.ndarray instead of a dictionary. This aligns with the intended data structure and ensures consistency across subclasses implementing this abstract method.
* Refactor ModelRunner to enforce abstract base class compliance
Updated `ModelRunner` and its subclasses to properly inherit from `ABC` while refactoring methods to ensure compliance with Python's abstract base class standards. Streamlined the handling of `_parse_outputs` and added a new `input_shapes` property for improved functionality.
* Fix buffer length issue in 20Hz model initialization
Adjusted `FULL_HISTORY_BUFFER_LEN` by adding +1 for `full_features_20Hz` to address compatibility issues with the current FoF model. Added a comment noting potential failure for other models with this adjustment.
* Refactor TinygradRunner to remove abstract methods.
Simplified the TinygradRunner class by removing unnecessary @abstractmethod decorators and redundant method definitions. This streamlines the code and aligns it more effectively with its current usage and implementation.
* Refactor model runner classes and enhance type annotations
Simplified model runner implementations, added type annotations, and improved code readability and maintainability. Introduced new type definitions, updated metadata handling, and standardized input/output parsing across all runner classes. Minor comment update in `modeld.py` for clarity.
* Refactor model runner classes with detailed docstrings.
Enhanced class and function docstrings across model_runner.py for better clarity and maintainability. Descriptions now include detailed explanations of attributes, purposes, and workflows to aid understanding and future development.
* Refactor model runner classes and add TICI hardware optimization
Simplified and clarified class definitions, comments, and functionality for ModelRunner subclasses. Introduced the use of QCOM environment variable on TICI for potential hardware acceleration. Enhanced input/output handling and error reporting across Tinygrad and ONNX implementations.
* Update parser import and usage to use CombinedParser
Replaced the Parser class with CombinedParser in model_runner.py. This change ensures consistency with the updated parsing logic, aligning with the latest requirements for combined model output handling.
* Refactor TinygradRunner hierarchy for modular parsers
Reorganized the TinygradRunner and its specialized runners (Vision, Policy, and Supercombo) into a cleaner, modular structure using composable classes. This consolidates parser logic, removes redundancy, and simplifies initialization by leveraging a shared base class with a dictionary-based parser method.
* Refactor model runners to use ModularRunner as abstract base.
Introduce a new `ModularRunner` class to enforce a consistent interface across model runners. Updated existing runners, including `ModelRunner`, `SupercomboTinygrad`, `PolicyTinygrad`, and `VisionTinygrad`, to extend `ModularRunner`. Added abstract methods and properties to enhance modularity and code maintainability.
* Refactor model runners into modular components.
This commit separates the logic for Tinygrad, ONNX, and split runners into clearly defined modules and components. It introduces `PolicyTinygrad`, `VisionTinygrad`, `SupercomboTinygrad`, and centralized helpers for cleaner architecture. The changes improve modularity and maintainability of the model running and parsing workflows.
* Simplify imports and clean up unused code in ONNXRunner.
Removed unused imports and redundant environmental variables to streamline the codebase. Consolidated necessary imports and organized type definitions for improved readability and maintenance.
* Standardize imports and add model data validation.
Updated import paths to ensure consistency across modules by using `openpilot` as the base. Introduced validation in `_parse_outputs` methods to handle cases where `_model_data` is not initialized, preventing potential runtime errors.
* Remove unused import and fix whitespace in runners
The unused import `ModelData` was removed from `tinygrad_runner.py` to clean up the code. Additionally, extraneous whitespace was corrected in `onnx_runner.py` for improved readability and consistency.
* Remove unnecessary blank line in import statements
Cleaned up import section by removing an extra blank line. This helps maintain consistency and adheres to code style conventions.
* BROKEN!! Staging code but its not gonna work. Also I realized we need to run the split models in 2 stages because the output of one is immediately needed for the input of the other. We might handle it inside of the model_runner instead
* update smooth
* Revert "update smooth"
This reverts commit c335712e6e1ee189459ce34dfc9d4028feb9470f.
* match case made this very hard to read.
* shouldnt be there
* Refactor to allow TR (soon TM)
* TR 7 is .1
* metadata
* .2=3
* Remove redundant comments and clean up conditional blocks in modeld.py.
* Undoing wrong buffer
* Refactor model initialization and adjust ONNX runner import
Reorganized numpy input buffer initialization and updated `temporal_idxs` logic for better clarity and efficiency. Conditional import for ONNXRunner added for non-TICI platforms to optimize imports. These changes improve maintainability and compatibility across platforms.
* Update CURRENT_SELECTOR_VERSION to 4
Bump the CURRENT_SELECTOR_VERSION constant from 3 to 4 to reflect changes in the selector logic or requirements. This ensures compatibility with the updated selector version while maintaining the minimum required version as 2.
* Add output_slices property to model runners
Introduce output_slices property to provide access to the output slices for individual and combined models. This ensures consistent handling of output slices across vision and policy models, improving modularity and usability.
* Refactor imports to use SplitModelConstants consistently
Updated import references to use the renamed `SplitModelConstants` class for consistency across files. This change ensures clarity and better alignment with the updated class naming convention.
* Refactor buffer initialization and desired curvature handling
Refactored model input buffer initialization for improved clarity and consistency, leveraging dynamic shape calculations. Extracted `process_desired_curvature` method to encapsulate logic for handling 3D and non-3D cases. Simplified temporal index generation and related calculations for better maintainability.
* Refactor desire reshape dims logic in modeld.py
Adjust logic for setting desire reshape dimensions to handle `is_20hz_3d` separately. This improves clarity and ensures proper handling of different model runner configurations.
* Fix off-by-one error in full_desire buffer initialization
The full_desire buffer length was mistakenly set to full_history_buffer_len + 1. This change corrects it to match the intended full_history_buffer_len, ensuring proper alignment with other buffers.
* Simplify desire reshape logic by removing unused condition.
Removed the `is_20hz_3d` condition and associated reshape logic since it is no longer needed. This streamlines the code and avoids unnecessary checks for unused configurations.
* Refactor buffer initialization for 20Hz model variants
Reorganized buffer initialization logic to prioritize the 20Hz_3D condition. This improves clarity and ensures specific handling of different 20Hz configurations. Adjusted the order of conditions to streamline execution flow.
* Refactor: Move `get_action_from_model` and constants to `Model` class to improve encapsulation and readability.
* 12 line reshaping red diff
* .2 to match old models delay
* mypy fixes
* Revert "12 line reshaping red diff"
This reverts commit 8c7280f629.
* mypy
* remove this
* Fix desired curvature for models which do not output desired_curvature
* fix FoF
* flip policy and vision outs to allow FoF and tomb raider to live in harmony using conditional `if 'this' in outs:'`
* noqa
* single
* sunnypilot modeld.py
* action
* overrides methodology
* combine split outputs to its own method
* comments
* Fix static checker line length
* static will fail on line length
lines:
286,
206,
70 - 77,
159,
168
* Address E501 line length violations
* This will make TR better while not effecting FoF/VFF at all
* Reduce this to one conditional and just call normally in vision/policy
* Align with upstream in our own way.
* check for desired curvature in outputs first
* outputs
* Use a cleaner import method
* Fix output
* Clean up some values
* Only call on init
* slight cleanup
* names!!!!!!!!!
* Refactor overrides structure to support key-value pairs.
The overrides structure now uses a list of key-value pairs instead of fixed lat/long fields. This change improves flexibility, allowing dynamic addition of override parameters. Code adjustments ensure backward compatibility and consistent behavior throughout the application.
* Refactor: Use local variable for SplitModelConstants
Introduce a local `constants` variable to replace repeated access to `SplitModelConstants`. This simplifies code readability and adheres to linter recommendations for line length.
* Refactor model constant handling to improve modularity
Replaced direct usage of model constants with dynamic access through model runners for better scalability and maintainability. This change centralizes constant definitions, reduces redundancy, and ensures clearer integration with different model types.
---------
Co-authored-by: discountchubbs <alexgrant990@gmail.com>
Co-authored-by: Discountchubbs <159560811+Discountchubbs@users.noreply.github.com>
Co-authored-by: Jason Wen <haibin.wen3@gmail.com>
* Add job to fetch and upload model artifacts
Introduced a new `get_model` job to retrieve and upload model artifacts as part of the workflow. Updated the `build_model` job to download and clean up model files before building, ensuring an isolated and streamlined process. These changes improve modularity and artifact handling in the CI pipeline.
* Refine model file handling in build workflow
Restrict deletion and download commands to ".onnx" files to prevent unintended removal or overwriting of non-ONNX files. This ensures a more targeted and safer workflow for handling model artifacts.
* Update model artifact handling in build workflow
Changed artifact upload path to include only .onnx files and commented out the deletion of existing models. Also added a dependency for the build stage to ensure proper execution sequence.
* Update build workflow to refine model artifact handling
Removed unused code for deleting models and fixed the artifact path. Added a reference file logging custom name and upstream branch for better traceability. These changes streamline the workflow and improve clarity.
* Set dynamic run-name for sunnypilot build workflow
Added a customizable `run-name` field in the sunnypilot build model workflow. This allows more informative and dynamic naming based on input parameters such as `custom_name` or `upstream_branch`. Improves clarity and traceability in workflow runs.
* Add customization options and metadata generation to build
Introduce new inputs for file name prefix and 20Hz model specification in the workflow. Enable renaming of model files, generation of file hashes, and creation of a `metadata.json` file containing build details. This improves flexibility and enhances artifact information management.
* remove EOF
* No need for this hack anymore
* Add support for compiling ONNX models to Tinygrad format
* Add model directory environment variable and metadata generation script
* Fix quoting in model generator script command
* Refactor conditional flag for 20Hz input in build model script
* meh
* Add powersave management to build model workflow
* Add environment variable setup to build model workflow
* make it path call it a day
* kill me
* kill me x2
* mmm
* mmm
* Generate metadata.pkl
* Generate metadata.pkl
* ignore failure on getting model metadata
* Cleanup the existing onnxs
* Fix rm command syntax in build model script
* Cleaning a little
* Add optional file name parameter to generate_metadata function
* update
* stg
* linter
* more formatting
* Update sunnypilot model build workflow: improve custom naming, handle 20Hz default, and add commit date as output.
* Update commit date format in workflow script
Changed the commit date format in sunnypilot-build-model.yaml to a more human-readable format ('Month DD, YYYY'). This improves readability and consistency in the workflow outputs.
* Fix output naming in sunnypilot-build-model workflow
Corrected the output name from 'model_date' to 'commit_date' to match its usage. This ensures consistency and prevents potential errors in the workflow.
Add debug echo for model date in GitHub workflow
This change adds a debug echo statement to display the model date in the sunnypilot-build-model workflow. It helps verify the correct commit date is being set during the workflow process.
* Update BUILD_DIR path in sunnypilot workflow
Replaced hardcoded BUILD_DIR with a dynamic path using `github.workspace`. This enhances flexibility and ensures compatibility with different environments or runners.
* Revert "Update BUILD_DIR path in sunnypilot workflow"
This reverts commit 376971b616.
* Refactor model metadata generation to use short names
Replaced `file_name` with generated `short_name` for metadata and file naming. Introduced `create_short_name` function to simplify short name creation from custom names. Updated scripts and workflow to reflect the new parameter and improve metadata handling.
* `Use timezone-aware UTC timestamp for build_time`
Updated the code to use `datetime.now(timezone.utc)` instead of `datetime.utcnow()`. This ensures that the generated timestamps are timezone-aware, improving consistency and correctness in the output.
* Refactor short name generation logic in model metadata
Enhanced the `create_short_name` function to better handle name conversion by incorporating new rules for handling parentheses, alphanumeric words, and version pairs. Updated related variable names in metadata functions for improved clarity and consistency.
* Fix syntax error in assigning 'models' key in metadata
Corrected a typo where 'models' was missing quotes, causing it to be interpreted as a variable instead of a string key. This ensures proper metadata dictionary structure.
Update model metadata structure and JSON generation
Revised metadata to include detailed download URIs and a type field for artifacts. Enhanced the JSON generator with new fields like environment, runner, and overrides for better configurability. These changes aim to improve metadata clarity and compatibility with downstream processes.
* Refactor variable name from "escaped_name" to "short_name"
Renamed "escaped_name" to "short_name" across function parameters and internal logic for clarity and consistency. This improves readability and better aligns with its use case in the metadata generation process. No functional changes were introduced.
* Refactor variable names and improve type annotations.
Updated parameter names to align with Python naming conventions, enhancing readability and consistency. Added type annotations for function parameters to improve code clarity and maintainability.
* Refactor type annotations and clarify comments.
Updated type annotations to use "Str" for consistency with custom typing conventions. Improved clarity of a comment describing the normal case logic in the shortening function.
* Fix dict formatting in model_generator.py
Moved the "overrides" key for better alignment and consistency in the dictionary format. This improves readability without changing functionality.
Refactor model short name generation logic
Simplify and clarify the `create_short_name` function by improving readability and condensing comments. Adjust casing and truncation logic for single-word cases and handle versioned names more intuitively.
* Ensure custom file names are converted to lowercase.
When renaming files using a custom short name, enforce lowercase conversion to maintain consistency and prevent potential issues with case-sensitive file systems. This change applies to both the tinygrad and metadata file names.
* Use UTC alias for timezone in datetime imports
Replaced `timezone.utc` with `UTC` from the `datetime` module for clarity and consistency. This simplifies the representation of time zones and aligns with Python's updated best practices.
---------
Co-authored-by: Jason Wen <haibin.wen3@gmail.com>
* Hyundai CAN: re-enable auto-enable radar tracks
* check if radar tracks config bit is already enabled
* only show success message if already enabled
* test if it would actually skip
* 5 bytes only
* tested skipping, revert
* lint
* move to opendbc right after fping
* more
* lint
* bump
* car: initialize sunnypilot interface immediately
* init
* Revert "car: initialize sunnypilot interface immediately"
This reverts commit 2e0fc4d87eb312a3a74a61bb8cbc780e33efbfc7.
* show int
* show int
* work properly with cereal
* unused
* in its own module
* bump
* not yet
* not yet
* list comp and use structs directly
* allow default key if needed
* lint
* send it with None
* bump
* Mechanism to handle ambiguous estimates
* Use it
* Fix static
* Fix
* Comment
* Comment v2
* Use quantile instead
* Fix
* Make it better
* Make it confidence
* Make it a constant
* min_confidence as arg
* Make the test signal more like the real one
* Relax sample requirements
* Use constant
* Reduce confidence
* draft
* here too
* fixes
* fix
* ugh more fix, wifiManager is craze
* more
* be optimistic and let refresh happen naturally, the immediate refresh causes some paths/active connect to temporarily be unavailable
selfdrive/ui/qt/network/wifi_manager.cc: DBus call error: "Did not receive a reply. Possible causes include: the remote application did not send a reply, the message bus security policy blocked the reply, the re
ply timeout expired, or the network connection was broken."
selfdrive/ui/qt/network/wifi_manager.cc: DBus call error: "Object path cannot be empty"
* nm is slow -- it takes 2s to commit to disk, and dbus errors are raised if you try again while previous is running (this is an ubuntu 24.04 bug)
* nice experience
* rm
* minor
* clean up
* self-explanatory
* rename
* rm this too
* revert
* draft
* Revert "draft"
This reverts commit 15283d977880fc60b8f9732772256e8337d6ac8e.
* Reapply "draft"
This reverts commit 8629921b0086ca71b88746d77ec7b8d3af3cd289.
* rm colors
* trinary, bit more code
* choose default when disabled
* only if enabling, wait for disable as normal
* remove original binary toggle
* clean up
* collapse
* clean up wifimanager
* update comment
* lite is a word
* init: lpa interface
* handle multiple messages
* handle timeouts
* delete old LPA, add enable/disable/validation
* check if valid
* keep old file the same for easier diff
* keep
* nickname, bug fixes
* space
* simple
* need to test this on slow conn
* initial HITL test for eSIM provisioning
* cleanup
* lint
* test flakes if lpac called concurrently
* no
* cleanup
* org
* comment
* vibe coded uts
* Revert "vibe coded uts"
This reverts commit 8b4d8f8ade50dbeaf3fa44f1df1aa2d809deca18.
* much simpler test
* no value
* remove no value add comments
* only one test flow now
* simpler
* reorganize
* replace impl
* brevity
* moar
* why didnt u rename
* moar
* check lpac installed
* Profile dataclass
* shorten
* print out profiles
* better
* plurals
* argparse
* download/nickname
* move to end to show change
* just end early if already enabled
* --reboot
* reconfigure conn
* mutations require reboot today
* not needed
* lint
* guard delete
* better
* print help
* spaceg
* rename
* support at device
* choose backend
* desc
* more
* brackets
* op esim
* Revert "brackets"
This reverts commit 124dbc0cbcc07d93f556ca80a6dc47aa118fda5c.
* Update Jenkinsfile
* expandable_row widget
* make MinMaxValue protected to allow inheritence
* add function to set width
* no more layout warnings
* format
---------
Co-authored-by: Jason Wen <haibin.wen3@gmail.com>
* update SConscript
Co-authored-by: Dean Lee <deanlee3@gmail.com>
* can't build on mac
* raylib installer
Co-authored-by: Dean Lee <deanlee3@gmail.com>
* rm
* debug pls
* cleanup
* quotes
* libs?
* bump
* hmm
* progress bar color
* more
* not rounded
* hardcode a font path..?
* embed (a subset of) inter into the installer
* different in CI
* closer font sizes
* closer
* add that back
* unnecessary
* closer to previous impl
* prefix is at start of string, substr between prefix and %
* Revert "prefix is at start of string, substr between prefix and %"
This reverts commit bc53fe8e356ca642680e90682285bd5e8d98ecb5.
* bigger on device?
* rm
---------
Co-authored-by: Cameron Clough <cameronjclough@gmail.com>
* MADS: Tesla and Rivian support
* request lateral if acc is engaged
* try this out
* fix
* make sure we keep the toggle off for tesla
* namedtuple
* disallow steering past 90 degrees for rivian
* whoops
* Revert "Revert "MADS: Steering Mode on Brake Pedal Press (#687)" (#789)"
This reverts commit 8dec4ea5
* both rivian and tesla
* enforce disengage on brake steering mode for Rivian and Tesla
* wrong one
* MADS: Steering Mode on Brake Pedal Press
* bump
* bump
* descriptions
* bump
* bump
* no tesla or rivian yet
* codecov v5
* Revert "codecov v5"
This reverts commit a347e3fb27.
* cleanup
* refactor description
* sync name
* fix
* make sure we don't allow if brake was already being pressed
* no longer needed
* proper ui!
* allow LKAS tx at all times with MADS
* extra
* this ain't right
* try this
* test only
* bring them back
* some dynamic checks
* dynamic description for mads toggle
* one place for limited platforms
* update tests
* angle when long, lkas when mads
* bump
* MADS: Tesla and Rivian support
* request lateral if acc is engaged
* try this out
* fix
* make sure we keep the toggle off for tesla
* namedtuple
* disallow steering past 90 degrees for rivian
* whoops
* Revert "Revert "MADS: Steering Mode on Brake Pedal Press (#687)" (#789)"
This reverts commit 8dec4ea5
* both rivian and tesla
* enforce disengage on brake steering mode for Rivian and Tesla
* wrong one
* MADS: Steering Mode on Brake Pedal Press
* bump
* bump
* descriptions
* bump
* bump
* no tesla or rivian yet
* codecov v5
* Revert "codecov v5"
This reverts commit a347e3fb27.
* cleanup
* refactor description
* sync name
* fix
* make sure we don't allow if brake was already being pressed
* no longer needed
* proper ui!
* allow LKAS tx at all times with MADS
* extra
* this ain't right
* try this
* test only
* bring them back
* some dynamic checks
* dynamic description for mads toggle
* one place for limited platforms
* just rivian
* not here
* Revert "not here"
This reverts commit 53271b9428.
* get them out
* get them out
* no longer needed
* Revert "get them out"
This reverts commit 532b671bfb.
* bump
* bump
* less
* Revert "bump"
This reverts commit 05ee4be04f.
* MADS: prerequisite for partial platform support
* ui: support specific button enabled selections for `ButtonParamControlSP`
Replaced setDisabledSelectedButton with setEnableSelectedButtons for improved flexibility. The new implementation allows enabling multiple buttons based on a given list and maintains clarity in handling button states. This enhances functionality and aligns with better code practices.
* don't think we need to
* update
* ui: Add utility function to check if a brand is in a list
Introduces `isBrandInList` to simplify checking if a given brand exists within a list of strings. This improves code clarity and avoids repetitive implementations for the same logic.
* Revert "ui: Add utility function to check if a brand is in a list"
This reverts commit 26cde3a73e.
* ui: Add utility function to check if a brand is in a list
* larger font size for confirmation dialog
* try this
* forget btn color
* text color
* font size
* caps
* Revert "caps"
This reverts commit a3e6cfbf053e46158036728cbcd9d8bd9f99d5e5.
* too much
* fixme
* do that?
* keyboard: reset state on clear
ui: support specific button enabled selections for `ButtonParamControlSP`
Replaced setDisabledSelectedButton with setEnableSelectedButtons for improved flexibility. The new implementation allows enabling multiple buttons based on a given list and maintains clarity in handling button states. This enhances functionality and aligns with better code practices.
* add new icons shift-fill and capslock-fill, rm capslock
* SHIFT_KEY_ON, SHIFT_KEY_OFF
* capslock
* rm arrow-down
* a lot simpler
* only one
* just use time
* layout name
* rename shift
* CONSTANT
* Revert "MADS: `wrongCarMode` alert only with selfdrive enable (#931)"
This reverts commit 6d516a7704.
* Reapply "MADS: `wrongCarMode` alert only with selfdrive enable (#931)"
This reverts commit c9487597e4.
* Reapply "MADS: `wrongCarMode` alert only with selfdrive enable (#931)"
This reverts commit c9487597e4.
* move back to port
* much better
* use the CS field now
* bump
* fix
* need to switch so it works on ports that don't use it, and makes more sense
* bump
* bump
* update refs
* make sense
* master
* MADS: Refactor Unified Engagement Mode
* init
* bring back pedal pressed event while trying to engage long
* MADS: prep for refactor
* no longer
* this is cleaner?
* in another pr
* Revert "in another pr"
This reverts commit 31aec8a7aa.
* less
* rename
* type hint
* MADS: Refactor Unified Engagement Mode
* init
* bring back pedal pressed event while trying to engage long
* MADS: prep for refactor
* no longer
* this is cleaner?
* in another pr
* fw version for my car, and added scc radar module firmware to enable radar points
* bump points
* bump
---------
Co-authored-by: DevTekVE <devtekve@gmail.com>
Co-authored-by: Jason Wen <haibin.wen3@gmail.com>
Used to ship python UI in agnos without an openpilot clone
* add a main method to target
* pack script
* validate inputs
* refactors
* copy into temp, dont keep this
* cleanup
* help messages
* rename to pack.py
* pack.py
* updates for device
* moar
* don't use cereal
* just log normally
* use importlib.resources
* revert
* Revert "don't use cereal"
This reverts commit 7208524d422d88a1b07e209359aeb25e8b3bf4e7.
* fix cereal?
* cleanup
* Revert "cleanup"
This reverts commit 921edfe5020f244dbdf4f26767af7c98ca837d1c.
* cython hotfix
* Reapply "cleanup"
This reverts commit 9b54552f784dea1b1eb4ffc03937571e4fc851ba.
* more cleanup
* any script?
* slightly clearer
* rm print
* nothing python should use SVGs
---------
Co-authored-by: Trey Moen <trey@moen.ai>
* setup.py
* better font
* use gui_button
* btn
* fix button and triangle
* low voltage text color
* fix network page
* HARDWARE.get_os_version()
* typing
* white title
* update default text color
* use default font color
* fix software screen
* fix software screen
* radio font size
* line length
* fix regex
* draw svgs
* comment is out of date
* add cairosvg
* use cairosvg
* remove unused import
* support other image types
* revert origin
* fix setup warning icon
* fix
* remove cairosvg
* use pngs
* wrap
* fix disabled style
* TODO
* revert uv.lock
* use new file paths (not rasterized yet)
* oops
* fixes
* params not used
* network check thread
* oops
* fix custom URL and download failed screens
* clear keyboard
* rm
* fixes
* show full error message
* check network type
* Add enhanced HyundaiCAN extension
Introduced HyundaiCanEXT for improved object parsing and control integration, leveraging new fields like lead distance and relative speed in CarControlSP.
Refactored controlsd to utilize a modular design with ControlsdExt for additional sunnypilot specific functionality.
* self.cc_sp
* Refactor CarControlSP handling for improved state updates
* refactor
* bool
* Refactor controlsd SP communication logic
Update `publish_sp` method to include `CC_SP` parameter and refine SP SubMaster to exclude `radarState`. Remove custom lead vehicle state processing as it is no longer needed.
* remove in this pr
* bump
* start cleanup
* inherit instead
* even more!
* lint
* type hint
* use the same objects for submaster and pubmaster
* more
---------
Co-authored-by: Jason Wen <haibin.wen3@gmail.com>
* selfdrive/assets: rasterize SVGs
* do entire assets dir
* fixed size - 4096px is a lot
* optimise them too
* use inkscape
* regenerate
* abandon runtime svg
* remove unused assets
* these are icons
* these are images
* fix
* fix
* Revert "remove unused assets"
This reverts commit 95d1a800de7e830df15d88e8e329aeadd4548b2f.
* move these too
* add minimum WIFI password length validation
* add min text size to keyboard
* disable enter if text size<min size
* add MAX_PASSWORD_LENGTH
* disable enter key
* set min_text_size for demo
* Reapply "Hyundai: custom longitudinal tuning" (#892)
This reverts commit 68c593db5f.
* fix panel behavior
* dynamic description
* try to merge and use the same scrollview
* fix for all to update
* dynamic update and fix description
* minimize changes for all brands
* init
* minimize changes for all brands
* more
* even less diff
* more
* even less diff
* more less
* wow srsly
* more less
* wow srsly
Refactor variable names for clarity in 20Hz model logic.
Renamed `full_features_20Hz` to `full_features_buffer` and `desire_20Hz` to `full_desire` for better readability and consistency. This improves code maintainability and aligns variable names with their intended purpose.
* init
* more
* description
* init them to true
* back to false
* fix
* add description
update colors
fix stretch
* yellow & orange are too similar - use blue
* slight updates
* dynamic description
* split it out
* more
---------
Co-authored-by: nayan8teen <nayan8teen@gmail.com>
* feat: Show alert on user flag event
* feat: Temporarily update border status on user flag to match connect timeline
* Revert "feat: Temporarily update border status on user flag to match connect timeline"
This reverts commit f1da6a4f5f555d4db50b47fb68ce74ae7737b8af.
* feat: Increase alert duration to 1.5 seconds
* remove audible alert for bookmark event
* refactor: Use NormalPermamentAlert for user flag alert
* fix: Update userFlag enum value in OnroadEvent struct
* fix: Handle userFlag event even in dashcam mode
* don't need to ignore that anymore
* remove 'userFlag' from ignore list
---------
Co-authored-by: Jason Young <jyoung8607@gmail.com>
* messaging: fix bug with relaxed checks under simulation
* refactor
* cleanup
* fix bug
* Revert "fix bug"
This reverts commit ea31f3ee83676c5b8ffe57500881557f7586998c.
* that did need to be different
* fix bug, add test coverage
* retry CI
* Fixes an issue on the long planner since Tomb Raider models, where the models are now meant to output the acceleration target and the "should stop" instead of it being calculated. However, older models (particularly those running on modeld_v2 from SP) do not output this. Leading to a "coasting" situation instead of braking when only e2e is used which is totally wrong.
* Maybe I was asleep but somehow it worked.
* Maybe I was asleep but somehow it worked.
* 70/30 split
* 60/35 split
* 67:33 split
* use Sqrt for tiny values to increase factor. Oh, also add a test file.
* use Sqrt for tiny values to increase factor. Oh, also add a test file.
* use Sqrt for tiny values to increase factor. Oh, also add a test file.
* Raise these to restart tests
* Raise these to restart tests
* Update jerk calculation mimicking j_ego math.
* README.md
* Update timestep
* Fix test
* Readability
* Lower time
* Add higher limits for CANFD
* Send these as a floating object. update comments to add TODO msg.
* Conditional flags
* yes its a little weird but heres why:
` "aReqValue": long_state.accel_value if enabled else a_val`
its only to not have merge conflicts with syncs from this file, because if not enabled a_val is already at 0 anyways.
* Make it easier to read
* Chronological order
* Trigger rebuild
* This is an internal test on my end. Disregard, for now
* fw version for my car...
* remove fw version as that was a test
* bump submodules
* refactor that while passing internal tests
* bump safety mutation test
* all should match 50 Hz
* bump safety mutation test
* match stock behavior for accel
* do our own clipping
* apply upper/lower dynamically
* bump test
* bump test
* Higher lower limit
* move desired accel force zero in tuning controller
* bump
* bump
* abs it here
* fix logic
* make sure it resets to 0, enforced in safety
* Test a few things
* Higher jerk for VOACC
* Elantra specific
* raise `off` to stock
* bump opendbc test
* allow jerk calculations at all times
* bump
* bump
* match aReqVale
* we dont need such high accel jerk when above 20m/s. This is cruise control, not a racecar.
* 0.45 default long actuator delay
* align type hint
* add lower jerk multiplier for HYUNDAI_IONIQ
* Change min jerk
* should be float
* Change min jerk
* Change min jerk upper
* Change max jerk upper
* Change max jerk upper
* Change max jerk upper
* step + threshold + first order filter to smooth
* constants
* nah
* multiplier to 1.5
* step updates for parabolic accel/braking
* step updates for parabolic accel/braking
* even less
* test multiplier
* Merge remote-tracking branch 'sunnypilot/opendbc/master-new' into HKG-long-tune
* back to default delay for now
* update test
* update config
* update test
* update config.py
* update test
* Remove stoppingDecelRate **No need for this anymore**
* multiplier to 1.0
* Variable lower dependency
* Variable lower dependency
* Variable lower jerk minimum
* Variable lower jerk minimum
planned_accel -> desired_acel
* Revert some scaling
* .01 here
* .01 here
* try even smoother stopping
* missed a `tuning` here that instead calls itself to inf.
* what is math
* Red Diff
* Red Diff
* bring some back
* bring some back
* stronger when needed
* something simple
* simplify more
* simplify more
* dont use future
* whoops
* why
* reset
* Refactor longitudinal controller for better jerk handling
Revised `calculate_a_value` and jerk processing logic to improve acceleration and jerk handling, particularly under dynamic conditions. Adjusted test cases to cover the new logic.
* Refactor longitudinal controller for better jerk handling
Revised `calculate_a_value` and jerk processing logic to improve acceleration and jerk handling, particularly under dynamic conditions. Adjusted test cases to cover the new logic.
* Refactor longitudinal controller for better jerk handling
Revised `calculate_a_value` and jerk processing logic to improve acceleration and jerk handling, particularly under dynamic conditions. Adjusted test cases to cover the new logic.
* Adjust lower_jerk interpolation for improved accuracy
* Lowered the acceleration error threshold from -0.01 to -0.001
* Adjust jerk interpolation thresholds for Hyundai tuning.
Updated the interpolation range for smaller acceleration errors.
* Move it up
* -.03 not -.05
* radarUnavailable = higher limit patch
* Commit the real change
* Updated the interpolation values and logic for lower_jerk to refine acceleration behavior.
* Updated the interpolation values and logic for lower_jerk to refine acceleration behavior.
* Updated the interpolation values and logic for lower_jerk to refine acceleration behavior.
* Updated the interpolation values and logic for lower_jerk to refine acceleration behavior.
* THIS. THIS WILL STOP FOR LEADS
* Higher for VOACC
* Higher for VOACC
* Rename `make_jerk` to `calculate_jerk` in test cases.
* Adjust jerk tuning for Hyundai longitudinal control
Updated the interpolation table for lower jerk values to improve deceleration handling. This adjustment refines control behavior during higher deceleration requests.
* Updated the interpolation breakpoint from -0.03 to -0.025
* Adjust longitudinal control jerk tuning for smoother response
Updated interpolation values in the jerk tuning logic to improve acceleration smoothing in Hyundai longitudinal control. These changes aim to provide a more consistent and predictable driving experience, particularly during deceleration scenarios.
* Handle radar unavailability in longitudinal tuning check
* Introduce `toggleDisableMsg` to streamline determining toggle states and descriptions.
* `sunnypilot`
* `Refactor longitudinal control acceleration and jerk handling`
Removed unused `FirstOrderFilter` and simplified acceleration and jerk calculations for improved clarity and maintainability. Adjusted logic to replace redundant return statements, streamline jerk computation, and reduce unnecessary dependencies.
* `Refactor longitudinal control acceleration and jerk handling`
Removed unused `FirstOrderFilter` and simplified acceleration and jerk calculations for improved clarity and maintainability. Adjusted logic to replace redundant return statements, streamline jerk computation, and reduce unnecessary dependencies.
* Simplify test to be straight to the point.
* Adjust upper_speed_factor and integrate ramp_update logic
* Adjust upper_speed_factor and integrate ramp_update logic
* Adjust upper_speed_factor and integrate ramp_update logic
* Refine acceleration and jerk tuning logic.
* greater than 0
* bump
* bring back ramp update for jerk upper
* Update opendbc_repo
* Revert "Update opendbc_repo"
This reverts commit b790387c90.
* bump
* bump
* bump
* using count seems to work better
* Refine jerk tuning logic and expand test coverage
* bump vals
* fix logic
* Adjust jerk tuning parameters for Hyundai longitudinal control
* retry lfs check
* bump submodule
* Fix acceleration blending and enhance test coverage
* Update lower_jerk breakpoints
* bump
* Adjust lower jerk parameters and include accel_cmd condition
* Adjust vars
* "Adjust Hyundai longitudinal jerk limits and tuning logic"
* Adjust jerk limits and tuning logic for better control
* Update Hyundai longitudinal tuning and add dynamic jerk logic
Refactored longitudinal configuration to include "lookahead" parameters and revised "jerk_limits" for improved tuning flexibility. Implemented dynamic jerk adaptation logic (Gen1) for smoother braking and acceleration transitions.
* Adjust Hyundai longitudinal control parameters for tuning
* bump to original branch
* QSize Policy to stretch toggle to screen size
* bump
* completely blocked xD
* Sunnypilot -> openpilot
* Whitespace
* Clean up toggle name
* Still allow ramp while in standstill for EV
* Adjust Kia Niro EV tuning parameters for smoother control
* self.cp.flags
* bump submodule
* bump
* Remove ramp for lower desired jerk
* update README.md
* update README.md
* Adjust lookahead_jerk_lower_v values in Hyundai longitudinal config.
* update tuning
* Update tune one last time to vals from device which are much smoother.
* Accel error
* bump
* fix
* rename flag and slight cleanup
* start ui stuff
* long_state -> tuning
* Prep for clean up
* small changes
* less in main
* no longer
* format
* bump
* init panel
* expose signal for other panels to interact with
* split into its own
* unused
* move around
* actually modify CP_SP
* fix offroad transition
* rename
* back
* don't update unless we're looking at it
* move around
* use min length
* do this
* whoops
* move
* bump
* bump
* this is fine
* bump
---------
Co-authored-by: Jason Wen <haibin.wen3@gmail.com>
Co-authored-by: DevTekVE <devtekve@gmail.com>
Co-authored-by: royjr <royjr96@gmail.com>
* enable cache for Mac brew and scons
* bump
* save cache by default, explicitly opt-out
* Delete bump-ci
---------
Co-authored-by: Maxime Desroches <desroches.maxime@gmail.com>
* add flag to auto load a route from the most suitable source
* split to functions
* early return
* add --auto to replay
* README
* cleanup
* remove prefix
* parse datetime
* cleanup
* improve help
* do not modify logreader.py
* fix seg_num
* cleanup
* Refactor model and artifact structures with version compatibility filtering
- Introduced `Artifact` struct and nested it within the `Model` struct for improved clarity and organization.
- Updated enums, logic, and parsing to align with the new struct definitions.
- Implemented version compatibility filtering for model bundles using the `is_bundle_version_compatible` helper.
- Enhanced artifact download handling by adding checks for missing URIs, better error management, and improved logging.
- Adjusted model fetching to point to the latest endpoint (`v3`).
* Make linter happy
* Make linter happy
* Refactor model data parsing to improve readability.
Replaced kwargs-based data extraction with explicit parameter passing for clarity. This enhances code readability and reduces ambiguities in method calls, making the parsing logic more maintainable and straightforward.
* Refactor error handling in active model bundle retrieval.
Wrapped the logic to fetch the active model bundle in a try-except block to prevent unhandled exceptions. This ensures more robust error handling and avoids potential crashes when retrieving or processing model data.
* Refactor exception handling in get_active_model_bundle
Replace bare except with Exception to improve specificity and clarity. This ensures better debugging practices and aligns with recommended coding standards. Other minor whitespace adjustments were made for improved readability.
* Update model path to use artifact fileName property
Replaced `fileName` with `artifact.fileName` in the custom model path construction. This ensures compatibility with updated drive model structures and avoids potential file resolution issues.
* Refactor model runner methods for improved abstraction.
Moved slicing logic to a private `_slice_outputs` method and decoupled `_run_model` for clearer subclass implementation. Removed redundant `output` attribute in `ModelState` to streamline data handling.
* Add output parsing to model_runner and remove duplicate logic
Integrates an output parser directly into `model_runner` for streamlined inference and parsing. Removes redundant parser initialization from `modeld` to avoid duplication and enhance maintainability.
* Reordering
* linter
* linter
Enhance action to fail on non-successful workflow runs
Add logic to check the conclusion of the watched workflow run. If the run ends with a non-successful status, the action now exits with an error to improve error handling and ensure reliability.
Co-authored-by: Jason Wen <haibin.wen3@gmail.com>
* Remove supercombo model ONNX file.
Deleted the large `supercombo.onnx` model file from the repository. This cleanup reduces repository size and dependency on unused or outdated files for this version.
* Disable tinygrad model compilation on macos temporarily
* Remove unused dmonitoring model file.
Deleted the ONNX model for dmonitoring as it is no longer required. This eliminates unnecessary assets and reduces repository size.
* Removing the model also from the snpe build, we have them, prebuilt
* FCA: Ram 1500 improvements
* updating reference to my opendbc
* syncing latest opendbc
* move to car_specific_sp
* bump
* Realfast ram1500 (#1)
* Bump tinygrad to upstream master (#34973)
bump tg
* test_onroad: test liveParameters service timing (#34977)
Add live params to test onroad
* selfdrived: remove ignored processes list (#34978)
* selfdrived: remove ignored processes list
* it's a set
* calibrationd: read carParams from Params (#34981)
* Read CarParams once from Params
* Remove it from process replay
* locationd: make pose_kf inherit from KalmanFilter (#34982)
* Read message not json for initial state
* Delete lines
* Fix param
* MADS: prevent `wrongCarMode` from disabling MADS enabled state (#792)
* MADS: prevent `wrongCarMode` from disabling MADS enabled state
Add wrongCarModeNoEntry as a NO_ENTRY event to replace wrongCarMode (USER_DISABLE)
that would incorrectly disable MADS when in the wrong car mode. Provides
contextual guidance to users based on car brand, showing appropriate
instructions for re-engagement without requiring MADS to be re-enabled.
* move down
* warning only?
* cereal SIKE
* remove duplicate
* try this out
* final
* Readme: update with links to new branches and info about rewrite and reflash agnos (#795)
* Adding the new branches info and adding a warning to reflash agnos
* Using more blockquote
* it
---------
Co-authored-by: Stupefacient <brianbrownt@gmail.com>
* agnos 11.13 (#34980)
* agnos 11.12
* new build
* Multilang: Update pt-BR translation (#34983)
* [bot] Update Python packages (#34987)
Update Python packages
Co-authored-by: Vehicle Researcher <user@comma.ai>
* Multilang: Update ja translation (#34986)
* 日本語訳2025/3/19
* numerusform追加。
* connect to an unmetered networkに対応
* panda是正
* opendbc_repo是正
* Multilang: Update zh translation (#34985)
* update to latest userdata partition (#34990)
update
* paramsd: cache backwards compatibility (#34991)
* LiveParametersV2 key
* Param key
* Fix tests
* Remove old params if error
* Update exception message
* Update the test
* Add test for corrupted byte format in v1
* Rename params_reader => params
* hardwared: give stuck LTE connections a kick
This reverts commit e3e694096a.
* Revert "hardwared: give stuck LTE connections a kick"
This reverts commit e4aa346259.
* process_replay: fix GM and replace TOYOTA3 (#34996)
* Add volt and bolt param migration
* Remove mazda due to invalid sensor timings
* Fix the import
* Add mazda to excluded
* Bring back mazda, but add todo
* New segment for TOYOTA3
* Fix
* Update ref commit
* bump opendbc
* test_models: update relay malfunction check (#34999)
relay is checked in fwd hook
* process_replay: remove GM (volt) (#35000)
Remove volt segment
* Revert "test_models: update relay malfunction check" (#35002)
Revert "test_models: update relay malfunction check (#34999)"
This reverts commit 2cd0079abe.
* Reapply "Online lateral lag learning" (#34975)
* Online lateral lag learning (#34974)
This reverts commit b4cc9e68d1.
* pad to the best size for fft
* Fix static analysis
* Add typing
* Fix typing
* MAX_LAG
* Calculate cross correlation regardless if the points are valid
* Back to lagd
* Add lagd to process_config
* Lagd in test onroad
* Move lag estimator for lagd
* Remove duplicate entry from test_onroad
* Update process replay
* pre-fill the data
* Update cpu usage
* 25sec window
* Change the meaning of lateralDelayEstimate
* No newline
* Fix typing
* Prefill
* Update ref commit
* Add a unit test
* Fix static issues
* Time limit
* Or timeout
* Use mocker
* Update estimate every time
* empty test
* DT const
* enable RIVIAN again
* Update ref commit
* Update that again
* Improve the tests
* Fix static
* Add masking test
* Increase timeout
* Add liveDelay to selfdrived
* Add liveDelay to selfdrived in process_replay
* Fix block_avg restore after num_blocks
* regen most
* Update bolt
* Update ref commit
* Change the key name
* Add assert
* True weighted average
* Raise thermal setpoint (#35008)
We don't need to control all the way down to 70C
* UI: Update `AbstractControlSP_SELECTOR` and `OptionControlSP` (#800)
* controls
* Adjust label width dynamically based on layout type.
Updated the label's fixed width to be conditional on the layout type, improving adaptability for different inline layouts. Additionally, corrected indentation in the width calculation loop for consistency.
* Refactor OptionControlSP to improve parameter value handling and encapsulate logic in dedicated methods
* Refactor getParamValue to return an integer and ensure value is updated correctly in button click handler
* Trying to unify a bit the logic. still WIP
* Reducing a bit the change footprint
* Refactor spacing item handling to prevent duplicate insertion and improve layout management
---------
Co-authored-by: DevTekVE <devtekve@gmail.com>
* bump panda
* Radard: vision-based yRel for Hyundai single-lead systems (#805)
Introduced processing for custom yRel values using HyundaiFlagsSP when the enhanced SCC flag is enabled. Updated `radard` to handle `CarParamsSP` and make necessary adjustments for Hyundai vehicles with specific SCC configurations.
* MADS: transition to soft-disable for specific gear states (#791)
* MADS: transition to soft-disable for specific gear states
This commit enhances the condition checking functionality of the Modular Assistive Driving System (MADS) to implement a 'soft-disable' feature during the vehicle's active motion when a non-forward drive gear is engaged. It includes utilizing structs to reference various car state attributes and modifying a function definition to improve clarity. This adjustment boosts the system's reaction to gear shifts, increasing the safety and efficiency of the driving assist system.
* structs
* UI: Device & Sunnylink Panels - Standardize push button size & alignment (#806)
* layout adjustments
* sunnylink_panel
---------
Co-authored-by: Jason Wen <haibin.wen3@gmail.com>
* [bot] Update Python packages (#35012)
* Update Python packages
* update refs
---------
Co-authored-by: Vehicle Researcher <user@comma.ai>
Co-authored-by: Shane Smiskol <shane@smiskol.com>
* ci: Remove redundant Panda build step from prebuilt workflow (#810)
The Panda build step was unnecessary as it is not utilized in this workflow. This change simplifies the workflow and reduces redundant actions, improving efficiency.
* Device: Customizable Max Time Offroad (#796)
* Max Time Offroad
* Refactor & Fix param
* Error Handling
* rename SP variable
* Update selfdrive/ui/sunnypilot/qt/widgets/controls.h
Co-authored-by: DevTekVE <devtekve@gmail.com>
* Update selfdrive/ui/sunnypilot/qt/widgets/controls.h
Co-authored-by: DevTekVE <devtekve@gmail.com>
* Update selfdrive/ui/sunnypilot/qt/widgets/controls.h
Co-authored-by: DevTekVE <devtekve@gmail.com>
* Update selfdrive/ui/sunnypilot/qt/widgets/controls.h
Co-authored-by: DevTekVE <devtekve@gmail.com>
* Update selfdrive/ui/sunnypilot/qt/widgets/controls.cc
Co-authored-by: DevTekVE <devtekve@gmail.com>
* Update selfdrive/ui/sunnypilot/qt/offroad/settings/lateral/max_time_offroad.h
Co-authored-by: DevTekVE <devtekve@gmail.com>
* Update selfdrive/ui/sunnypilot/qt/offroad/settings/lateral/max_time_offroad.cc
Co-authored-by: DevTekVE <devtekve@gmail.com>
* UI layout changes for better alignment
selector is not big enough -> make it bigger ;)
OptionControlSP now includes a QMap argument to allow actual values to be set in param directly
* Rebase & resolve reviews
* change default to be closer to OP default
* me dumb
* MaxTimeOffroad: Add support for 30h limit and improve label formatting
* power_monitoring: Refactor MaxTimeOffroad parameter handling for clarity
* test: Add unit tests for MaxTimeOffroad parameter handling
* power_monitoring: Update MaxTimeOffroad handling to use seconds and improve shutdown logic
* power_monitoring: Improve exception handling and remove redundant shutdown check for MaxTimeOffroad
---------
Co-authored-by: DevTekVE <devtekve@gmail.com>
Co-authored-by: Jason Wen <haibin.wen3@gmail.com>
* Hyundai longitudinal: Parse lead info for camera-based SCC platforms (#809)
* Hyundai longitudinal: Parse lead info for camera-based SCC platforms
* fix
* update
* bump
* update tests
* lol why is this here
* bump
---------
Co-authored-by: DevTekVE <devtekve@gmail.com>
Co-authored-by: Discountchubbs <159560811+Discountchubbs@users.noreply.github.com>
* Models: point to v2 of driving models json for recompiled models (#817)
Use newer model version json since they have been recompiled
* ci: update squash script for external contributors (#811)
* Get head ref info
* Simpify adding the comment with the newest flagg by gh cli
* Dynamic origin
* Enhance PR processing: add label handling for forked PRs and improve variable naming
* Refactor PR label handling: use constant for trust-fork label and improve comments
* Fix remote addition in PR processing: change subprocess call to not check for errors
* Refactor PR comment handling: support multiple comments and improve clarity
* Refactor PR processing: streamline comment handling and improve error management
* Refactor add_pr_comments function: specify comments type as list of strings
* Maybe we don't prevent "behind" branches to be merged as lon as the PR itself is mergeable
* lint, leave me alone
---------
Co-authored-by: Discountchubbs <159560811+Discountchubbs@users.noreply.github.com>
* sunnylink: fix sunnylink backup restore version parsing (#816)
* improvement
* fix: Improve version parsing logic for sunnypilot
---------
Co-authored-by: Discountchubbs <159560811+Discountchubbs@users.noreply.github.com>
Co-authored-by: Jason Wen <haibin.wen3@gmail.com>
* DM: Enforce monitoring of MADS state in driver monitoring (#818)
* DM: Enforce monitoring of MADS state in driver monitoring
Added `selfdriveStateSP.mads.enabled` to track MADS engagement. This ensures monitoring logic accounts for MADS alongside the existing selfdrive state checks, improving feature integration and event handling.
* how
* [bot] Update Python packages (#35017)
Update Python packages
Co-authored-by: Vehicle Researcher <user@comma.ai>
* Rename experimental long (#35011)
* now alpha long
* fix
* rename param
* thought i did this
* debug
* debug
* more
* more
* moar
* Revert "moar"
This reverts commit e347106246583982e1be206485ad4d8eb944f817.
* Revert "more"
This reverts commit 0746e6d2e400ce1715614c62af84a9680c4d65c1.
* Revert "more"
This reverts commit 0db5a8792c01bb2d687f9152e6ba37fb76d4a453.
* Revert "debug"
This reverts commit 72f235b13727980e4331ff487998ddc7c7f7fb63.
* Revert "debug"
This reverts commit 7871b69f8c1bdffed386c2baac99542fcc50f7eb.
* Temporary disable UI preview from CI (#35018)
disable
* Update Python packages (#819)
* Fix possible CAN ignition overlap due to incorrect counter tracking (#35019)
* fix-rivian-ign
* bump
* UI: Bugfix Max Time Offroad (#820)
bugfixes
Co-authored-by: Discountchubbs <159560811+Discountchubbs@users.noreply.github.com>
* CI: Improve `dev-c3-new` auto build (#825)
* force commit to force PR
* ci: add job to manage PR labels and remove trust label on new commits
* Add pull request trigger
* empty commit to test
* ci: update pull request label management logic and remove FORCE_RUN flag
* ci: update trust label management to use TRUST_FORK_PR_LABEL
* ci: update workflow to manage PR labels and adjust trigger conditions
* ci: rename jobs in workflow for consistency and clarity
* ci: add unleash-nightly-squash branch to workflow
* ci: add checkout step with GITHUB_TOKEN to workflow
* force wait
* what happens if negated the wait
* ci: add 'Wait for Tests' action to monitor workflow execution
* ci: update wait-for-tests action conditions and cleanup
* ci: refine conditions for managing PR labels and waiting for tests
* ci: enhance PR label conditions for workflow execution
* Cant use env on if
* maybe
* ci: update pull request workflow conditions and cleanup
* Missing end of line
* ci: rename workflow and update job name for clarity
* Cleaning
* ci: refine conditions for pull request handling in workflow
* ci: update handling of TRUST_FORK_LABEL in PR processing
* ci: remove fork trust warning from PR processing
---------
Co-authored-by: Jason Wen <haibin.wen3@gmail.com>
* CI: Update PR list query to exclude draft pull requests (#829)
* lagd: check sensors valid (#35027)
* Check if sensors valid
* Fix test
* Fix static
* Constants
* time buffer for pose valid
* Fix static
* Revert "DM: Enforce monitoring of MADS state in driver monitoring" (#830)
Revert "DM: Enforce monitoring of MADS state in driver monitoring (#818)"
This reverts commit 3615b1a203.
* DM: Enforce monitoring of MADS state in driver monitoring (#831)
* DM: Enforce monitoring of MADS state in driver monitoring
Added `selfdriveStateSP.mads.enabled` to track MADS engagement. This ensures monitoring logic accounts for MADS alongside the existing selfdrive state checks, improving feature integration and event handling.
* how
* okay, only when active
* ui(raylib): update spinner progress bar to match Qt (#35028)
* lagd: estimate std (#35009)
* Std
* Fix static
* Refactor
* Assert std zero
* update
* ui(raylib): fix typos (#35030)
* Update modeld action logic (#35032)
* add action logic
* magic numbers
* unused
* plot accel
* more changes
* lagd: check for validity of the estimate when restoring state (#35034)
Do not restore if invalid
* Multilang: Update de translation (#35025)
added missing German translations
* Tomb raider 2 (#35029)
* db56b8fb-9135-4ab6-af18-99b7df7b2245/400
* fixes
* linter unhappy
* 6dbe0991-baa1-49ad-836a-ab370d1f0d92/400
* This one is good: 19387087-1005-475e-9015-9458dd8e7c5f/400
* Better every day: 39ed911c-0937-417f-97d2-58a8bb3caa53/400
* Actually end-to-end
* typo
* smooooooth: 94e23541-eb84-4fef-9f51-6a2d82aff314/360
* Revert "smooooooth: 94e23541-eb84-4fef-9f51-6a2d82aff314/360"
This reverts commit edd4f02386d83d82dd8a188985cde80ed1646b7f.
* 11632ef7-f555-489c-8480-e3bf97d9285e/400
* 08712d27-f6bd-4536-a30e-c729e5f62356/400
* 0a92a35e-1f72-476a-8cb6-c9f103f36822/400
* ee6d2394-2072-420c-a664-b4c0d4ed0b61/400
* no prev curv
* No double work
* fix bug
* smooth
* update prev action
* whitespace
* add little accel
* new ref
* Update plant.py
* DEC: adjust dynamic speed adaptation parameters (#813)
* early and better
* Update sunnypilot/selfdrive/controls/lib/dec/constants.py
---------
Co-authored-by: Jason Wen <haibin.wen3@gmail.com>
Co-authored-by: Discountchubbs <159560811+Discountchubbs@users.noreply.github.com>
* OS04C10: use IFE downscaler for road cameras (#35023)
* squashh
* wrong
* clean up
* rename
* process replay migration: fix longitudinalPlan (#35035)
* ci: ui preview add unicode characters and emojis (#835)
Add unicode characters and emojis!
* ui(raylib): update text window font, new lines and indentation (#35031)
* NNLC: decreased low-speed factor (#822)
* NNLC: decreased low-speed factor
* np.float to float
* format
* add tests for sanity check
---------
Co-authored-by: Discountchubbs <159560811+Discountchubbs@users.noreply.github.com>
Co-authored-by: Jason Wen <haibin.wen3@gmail.com>
* ui(raylib): calculate spinner progress in set_text (#35036)
* bugfix: Auto lane change - Add mode to disable lane changes (#826)
* off is off
* sugg
* line
* Update sunnypilot/selfdrive/controls/lib/tests/test_auto_lane_change.py
---------
Co-authored-by: Jason Wen <haibin.wen3@gmail.com>
Co-authored-by: Discountchubbs <159560811+Discountchubbs@users.noreply.github.com>
Co-authored-by: DevTekVE <devtekve@gmail.com>
* NNLC: use `safe_exp` to prevent overflow in `sigmoid` (#836)
* test
* prevent overflowing
* unused
* NNLC: fix weak torque in high lat-accel turns (#823)
* NNLC: fix weak torque in high lat-accel turns
* np.float to float
---------
Co-authored-by: Discountchubbs <159560811+Discountchubbs@users.noreply.github.com>
Co-authored-by: Jason Wen <haibin.wen3@gmail.com>
* ci: trigger prebuilt builds via label from PR
* ci: enhance pull request handling for prebuilt workflows
* ci: add wait-for-action step to monitor selfdrive_tests workflow
* ci: add validation job to monitor selfdrive_tests for prebuilt workflows
* test
* force negative condition to validate flow
* force negative condition to validate flow
* ci: add wait_for_tests input to control selfdrive_tests workflow execution
* ci: update description for wait_for_tests input in workflow
* Cleaning
* Remove PR label when triggered by the label
* Rename
* Changing to target and only caring about labeled for the time being
* gh action needs cancelled not canceled
* Line ending
* ci: avoid deadlock on dev-c3 branch build when PR labeled dev-c3 (#839)
* ci: enhance PR checks to validate individual check runs before merging and ignore reset-and-squash as candidate for fail
* reset and squash script shouldn't will be cancelled only if a push to master has been made which always should take priority. The rest will be put on hold to avoid parallel squash scripts running
* Set concurrencty at workflow level?
* Set concurrencty at workflow level?
* change trigger to pull_request to validate
* Reducing the types of "pull request" events
* Keep it as target
* Playing eith run name a little
* Change to pull request not target
* simplifying
* set to just pull request without target
* maintain as pull request target
* ci: update auto pr review config and split turst fork pr (#842)
* Updating auto pr labeler
* auto pr review revamp
* Leaving event as pull request :)
* Check permission
* add chore
* Bringing back as original
* ci: bugfix flipped contains check for pull requests
* ci: bugfix cancelling only when push to master or workflow dispatch.
Otherwise don't let it cancel as it seems that when running with pull_request_target we are with ref pointing to target and thus the cancel condition was being met
* ui(raylib): constant spinner rotation speed (#35037)
* ci: improve conditions for publish and notify steps in workflow (#844)
* [bot] Update translations (#35040)
Update translations
Co-authored-by: Vehicle Researcher <user@comma.ai>
* Long planner: make work with training (#35043)
* revert useless
* update ref
* Modeld: small refactor (#35044)
refactor
* update smooth
* raylib: init updater (#35045)
* raylib: init updater
* cleanup
* Revert "OS04C10: use IFE downscaler for road cameras" (#35046)
Revert "OS04C10: use IFE downscaler for road cameras (#35023)"
This reverts commit 3b60b22cee.
* Tomb Raider 3 (#35042)
* 92b64884-4506-4a03-87ad-33e1a177fe73/400
* faster lat
* DM: Use `carControl.latActive` for MADS DM monitoring (#845)
* ci: fixes for trigger conditions on sync (#847)
pull_request_target is needed for security, but at the same time it makes life a little harder because the ref is different so we need to do some work to make sure we get what we are supposed to get
* ui(raylib): reduce spinner rotation artifact (#35048)
* ui(raylib): reduce spinner rotation artifact
A visual artifact (white pixels) appeared on the edge of the
rotating spinner track texture, likely due to RGB color bleed during
bilinear filtering in Raylib.
Pre-multiplying the alpha channel of the spinner track image using
`rl.image_alpha_premultiply` significantly reduces the visibility of the
artifact.
* lint
* ui(raylib): increase font size and wrap text in spinner (#35049)
- Wrap text onto separate lines
- Increase font size to be closer to Qt
- Remove extra letter spacing - 0.0 should use font default spacing, and this is used in `wrap_text`
Will fix vertical alignment separately, as both the text and progress bar layouts need to be considered
* ui(raylib): update spinner vertical pos (#35051)
Adjust the spinner vertical position when displaying text or a progress bar
- When displaying the progress bar, center the comma logo and spinner in the middle of the screen
- When displaying text, center the entire content vertically
Also updated `wrap_text` to not include an empty line in the array if it's the first line, so that `wrap_text("")` always returns `[]`
* ui(raylib): "exit" btn in text window on PC (#35052)
* ui(raylib): "exit" btn in text window on PC
* unused import
* Revert "ui(raylib): "exit" btn in text window on PC (#35052)"
This reverts commit f9767d2650.
* plotjuggler: support relative paths (#35054)
* Support relative paths
* Abspath for rlog too
* Reapply "ui(raylib): "exit" btn in text window on PC" (#35053)
* ui(raylib): "exit" btn in text window on PC
* unused import
* request close
* this was missing
* Disable low speed steer in modeld (#35056)
* disable low speed steer
* No steer under
* TOYOTA_RAV4_PRIME NNLC tuning gen 1 (#850)
neural_network_data: TOYOTA_RAV4_PRIME NNLC tuning gen 1
* SL: updating localproxy implementation (#841)
* Adding capabilities to route localProxy via sunnylink
* Undo
* Thx lint
* get api token
* cert is not valid when it's an IP. Still use cert, but don't validate
* move to car_specific_sp
* bump
---------
Co-authored-by: Harald Schäfer <harald.the.engineer@gmail.com>
Co-authored-by: Kacper Rączy <gfw.kra@gmail.com>
Co-authored-by: Adeeb Shihadeh <adeebshihadeh@gmail.com>
Co-authored-by: Jason Wen <haibin.wen3@gmail.com>
Co-authored-by: DevTekVE <devtekve@gmail.com>
Co-authored-by: Stupefacient <brianbrownt@gmail.com>
Co-authored-by: Alexandre Nobuharu Sato <66435071+AlexandreSato@users.noreply.github.com>
Co-authored-by: commaci-public <60409688+commaci-public@users.noreply.github.com>
Co-authored-by: Vehicle Researcher <user@comma.ai>
Co-authored-by: programanichiro <99449198+programanichiro@users.noreply.github.com>
Co-authored-by: eFini <ricklan@gmail.com>
Co-authored-by: Maxime Desroches <desroches.maxime@gmail.com>
Co-authored-by: Shane Smiskol <shane@smiskol.com>
Co-authored-by: Robbe Derks <robbe.derks@gmail.com>
Co-authored-by: Nayan <nayan8teen@gmail.com>
Co-authored-by: Discountchubbs <159560811+Discountchubbs@users.noreply.github.com>
Co-authored-by: Cameron Clough <cameronjclough@gmail.com>
Co-authored-by: niko001 <nikolaus_fischer@t-online.de>
Co-authored-by: Kumar <36933347+rav4kumar@users.noreply.github.com>
Co-authored-by: ZwX1616 <zwx1616@gmail.com>
Co-authored-by: YassineYousfi <yyousfi1@binghamton.edu>
Co-authored-by: Tim Wilson <twilsonco@gmail.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Warren Togami <wtogami@gmail.com>
* fixing missing event
* more event fixes
* fixing spacing
* more fixes
* revert
* update
* update
* update
* reverting unneeded event
* S P A C I N G
* bumping opendbc
* bump
* Update sunnypilot/selfdrive/car/car_specific.py
* Update sunnypilot/selfdrive/car/car_specific.py
---------
Co-authored-by: Jason Wen <haibin.wen3@gmail.com>
Co-authored-by: Harald Schäfer <harald.the.engineer@gmail.com>
Co-authored-by: Kacper Rączy <gfw.kra@gmail.com>
Co-authored-by: Adeeb Shihadeh <adeebshihadeh@gmail.com>
Co-authored-by: DevTekVE <devtekve@gmail.com>
Co-authored-by: Stupefacient <brianbrownt@gmail.com>
Co-authored-by: Alexandre Nobuharu Sato <66435071+AlexandreSato@users.noreply.github.com>
Co-authored-by: commaci-public <60409688+commaci-public@users.noreply.github.com>
Co-authored-by: Vehicle Researcher <user@comma.ai>
Co-authored-by: programanichiro <99449198+programanichiro@users.noreply.github.com>
Co-authored-by: eFini <ricklan@gmail.com>
Co-authored-by: Maxime Desroches <desroches.maxime@gmail.com>
Co-authored-by: Shane Smiskol <shane@smiskol.com>
Co-authored-by: Robbe Derks <robbe.derks@gmail.com>
Co-authored-by: Nayan <nayan8teen@gmail.com>
Co-authored-by: Discountchubbs <159560811+Discountchubbs@users.noreply.github.com>
Co-authored-by: Cameron Clough <cameronjclough@gmail.com>
Co-authored-by: niko001 <nikolaus_fischer@t-online.de>
Co-authored-by: Kumar <36933347+rav4kumar@users.noreply.github.com>
Co-authored-by: ZwX1616 <zwx1616@gmail.com>
Co-authored-by: YassineYousfi <yyousfi1@binghamton.edu>
Co-authored-by: Tim Wilson <twilsonco@gmail.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Warren Togami <wtogami@gmail.com>
* Use in modeld
* Use in torqued
* Do not use default value in torqued
* Add liveDelay in process replay
* update ref
---------
Co-authored-by: Bruce Wayne <harald.the.engineer@gmail.com>
* Refactor workflow to centralize branch source handling
Moved branch resolution logic to a single `SOURCE_BRANCH` variable for consistency and readability. Updated related conditionals and parameters to use this new variable, reducing redundancy and improving maintainability of branch-specific configurations.
* Refactor workflow to use repository-defined variables.
Replaced hardcoded branch names with repository-defined variables for improved configurability and maintainability. This ensures flexibility by allowing changes via repository settings without modifying the workflow file.
* Adding capabilities to route localProxy via sunnylink
* Undo
* Thx lint
* get api token
* cert is not valid when it's an IP. Still use cert, but don't validate
Adjust the spinner vertical position when displaying text or a progress bar
- When displaying the progress bar, center the comma logo and spinner in the middle of the screen
- When displaying text, center the entire content vertically
Also updated `wrap_text` to not include an empty line in the array if it's the first line, so that `wrap_text("")` always returns `[]`
- Wrap text onto separate lines
- Increase font size to be closer to Qt
- Remove extra letter spacing - 0.0 should use font default spacing, and this is used in `wrap_text`
Will fix vertical alignment separately, as both the text and progress bar layouts need to be considered
* ui(raylib): reduce spinner rotation artifact
A visual artifact (white pixels) appeared on the edge of the
rotating spinner track texture, likely due to RGB color bleed during
bilinear filtering in Raylib.
Pre-multiplying the alpha channel of the spinner track image using
`rl.image_alpha_premultiply` significantly reduces the visibility of the
artifact.
* lint
pull_request_target is needed for security, but at the same time it makes life a little harder because the ref is different so we need to do some work to make sure we get what we are supposed to get
Otherwise don't let it cancel as it seems that when running with pull_request_target we are with ref pointing to target and thus the cancel condition was being met
* ci: enhance PR checks to validate individual check runs before merging and ignore reset-and-squash as candidate for fail
* reset and squash script shouldn't will be cancelled only if a push to master has been made which always should take priority. The rest will be put on hold to avoid parallel squash scripts running
* Set concurrencty at workflow level?
* Set concurrencty at workflow level?
* change trigger to pull_request to validate
* Reducing the types of "pull request" events
* Keep it as target
* Playing eith run name a little
* Change to pull request not target
* simplifying
* set to just pull request without target
* maintain as pull request target
* ci: enhance pull request handling for prebuilt workflows
* ci: add wait-for-action step to monitor selfdrive_tests workflow
* ci: add validation job to monitor selfdrive_tests for prebuilt workflows
* test
* force negative condition to validate flow
* force negative condition to validate flow
* ci: add wait_for_tests input to control selfdrive_tests workflow execution
* ci: update description for wait_for_tests input in workflow
* Cleaning
* Remove PR label when triggered by the label
* Rename
* Changing to target and only caring about labeled for the time being
* gh action needs cancelled not canceled
* Line ending
* DM: Enforce monitoring of MADS state in driver monitoring
Added `selfdriveStateSP.mads.enabled` to track MADS engagement. This ensures monitoring logic accounts for MADS alongside the existing selfdrive state checks, improving feature integration and event handling.
* how
* okay, only when active
* force commit to force PR
* ci: add job to manage PR labels and remove trust label on new commits
* Add pull request trigger
* empty commit to test
* ci: update pull request label management logic and remove FORCE_RUN flag
* ci: update trust label management to use TRUST_FORK_PR_LABEL
* ci: update workflow to manage PR labels and adjust trigger conditions
* ci: rename jobs in workflow for consistency and clarity
* ci: add unleash-nightly-squash branch to workflow
* ci: add checkout step with GITHUB_TOKEN to workflow
* force wait
* what happens if negated the wait
* ci: add 'Wait for Tests' action to monitor workflow execution
* ci: update wait-for-tests action conditions and cleanup
* ci: refine conditions for managing PR labels and waiting for tests
* ci: enhance PR label conditions for workflow execution
* Cant use env on if
* maybe
* ci: update pull request workflow conditions and cleanup
* Missing end of line
* ci: rename workflow and update job name for clarity
* Cleaning
* ci: refine conditions for pull request handling in workflow
* ci: update handling of TRUST_FORK_LABEL in PR processing
* ci: remove fork trust warning from PR processing
---------
Co-authored-by: Jason Wen <haibin.wen3@gmail.com>
* now alpha long
* fix
* rename param
* thought i did this
* debug
* debug
* more
* more
* moar
* Revert "moar"
This reverts commit e347106246583982e1be206485ad4d8eb944f817.
* Revert "more"
This reverts commit 0746e6d2e400ce1715614c62af84a9680c4d65c1.
* Revert "more"
This reverts commit 0db5a8792c01bb2d687f9152e6ba37fb76d4a453.
* Revert "debug"
This reverts commit 72f235b13727980e4331ff487998ddc7c7f7fb63.
* Revert "debug"
This reverts commit 7871b69f8c1bdffed386c2baac99542fcc50f7eb.
* DM: Enforce monitoring of MADS state in driver monitoring
Added `selfdriveStateSP.mads.enabled` to track MADS engagement. This ensures monitoring logic accounts for MADS alongside the existing selfdrive state checks, improving feature integration and event handling.
* how
* Get head ref info
* Simpify adding the comment with the newest flagg by gh cli
* Dynamic origin
* Enhance PR processing: add label handling for forked PRs and improve variable naming
* Refactor PR label handling: use constant for trust-fork label and improve comments
* Fix remote addition in PR processing: change subprocess call to not check for errors
* Refactor PR comment handling: support multiple comments and improve clarity
* Refactor PR processing: streamline comment handling and improve error management
* Refactor add_pr_comments function: specify comments type as list of strings
* Maybe we don't prevent "behind" branches to be merged as lon as the PR itself is mergeable
* lint, leave me alone
---------
Co-authored-by: Discountchubbs <159560811+Discountchubbs@users.noreply.github.com>
* Max Time Offroad
* Refactor & Fix param
* Error Handling
* rename SP variable
* Update selfdrive/ui/sunnypilot/qt/widgets/controls.h
Co-authored-by: DevTekVE <devtekve@gmail.com>
* Update selfdrive/ui/sunnypilot/qt/widgets/controls.h
Co-authored-by: DevTekVE <devtekve@gmail.com>
* Update selfdrive/ui/sunnypilot/qt/widgets/controls.h
Co-authored-by: DevTekVE <devtekve@gmail.com>
* Update selfdrive/ui/sunnypilot/qt/widgets/controls.h
Co-authored-by: DevTekVE <devtekve@gmail.com>
* Update selfdrive/ui/sunnypilot/qt/widgets/controls.cc
Co-authored-by: DevTekVE <devtekve@gmail.com>
* Update selfdrive/ui/sunnypilot/qt/offroad/settings/lateral/max_time_offroad.h
Co-authored-by: DevTekVE <devtekve@gmail.com>
* Update selfdrive/ui/sunnypilot/qt/offroad/settings/lateral/max_time_offroad.cc
Co-authored-by: DevTekVE <devtekve@gmail.com>
* UI layout changes for better alignment
selector is not big enough -> make it bigger ;)
OptionControlSP now includes a QMap argument to allow actual values to be set in param directly
* Rebase & resolve reviews
* change default to be closer to OP default
* me dumb
* MaxTimeOffroad: Add support for 30h limit and improve label formatting
* power_monitoring: Refactor MaxTimeOffroad parameter handling for clarity
* test: Add unit tests for MaxTimeOffroad parameter handling
* power_monitoring: Update MaxTimeOffroad handling to use seconds and improve shutdown logic
* power_monitoring: Improve exception handling and remove redundant shutdown check for MaxTimeOffroad
---------
Co-authored-by: DevTekVE <devtekve@gmail.com>
Co-authored-by: Jason Wen <haibin.wen3@gmail.com>
The Panda build step was unnecessary as it is not utilized in this workflow. This change simplifies the workflow and reduces redundant actions, improving efficiency.
* MADS: transition to soft-disable for specific gear states
This commit enhances the condition checking functionality of the Modular Assistive Driving System (MADS) to implement a 'soft-disable' feature during the vehicle's active motion when a non-forward drive gear is engaged. It includes utilizing structs to reference various car state attributes and modifying a function definition to improve clarity. This adjustment boosts the system's reaction to gear shifts, increasing the safety and efficiency of the driving assist system.
* structs
Introduced processing for custom yRel values using HyundaiFlagsSP when the enhanced SCC flag is enabled. Updated `radard` to handle `CarParamsSP` and make necessary adjustments for Hyundai vehicles with specific SCC configurations.
* controls
* Adjust label width dynamically based on layout type.
Updated the label's fixed width to be conditional on the layout type, improving adaptability for different inline layouts. Additionally, corrected indentation in the width calculation loop for consistency.
* Refactor OptionControlSP to improve parameter value handling and encapsulate logic in dedicated methods
* Refactor getParamValue to return an integer and ensure value is updated correctly in button click handler
* Trying to unify a bit the logic. still WIP
* Reducing a bit the change footprint
* Refactor spacing item handling to prevent duplicate insertion and improve layout management
---------
Co-authored-by: DevTekVE <devtekve@gmail.com>
* Online lateral lag learning (#34974)
This reverts commit b4cc9e68d1.
* pad to the best size for fft
* Fix static analysis
* Add typing
* Fix typing
* MAX_LAG
* Calculate cross correlation regardless if the points are valid
* Back to lagd
* Add lagd to process_config
* Lagd in test onroad
* Move lag estimator for lagd
* Remove duplicate entry from test_onroad
* Update process replay
* pre-fill the data
* Update cpu usage
* 25sec window
* Change the meaning of lateralDelayEstimate
* No newline
* Fix typing
* Prefill
* Update ref commit
* Add a unit test
* Fix static issues
* Time limit
* Or timeout
* Use mocker
* Update estimate every time
* empty test
* DT const
* enable RIVIAN again
* Update ref commit
* Update that again
* Improve the tests
* Fix static
* Add masking test
* Increase timeout
* Add liveDelay to selfdrived
* Add liveDelay to selfdrived in process_replay
* Fix block_avg restore after num_blocks
* regen most
* Update bolt
* Update ref commit
* Change the key name
* Add assert
* True weighted average
* Add volt and bolt param migration
* Remove mazda due to invalid sensor timings
* Fix the import
* Add mazda to excluded
* Bring back mazda, but add todo
* New segment for TOYOTA3
* Fix
* Update ref commit
* LiveParametersV2 key
* Param key
* Fix tests
* Remove old params if error
* Update exception message
* Update the test
* Add test for corrupted byte format in v1
* Rename params_reader => params
* Adding the new branches info and adding a warning to reflash agnos
* Using more blockquote
* it
---------
Co-authored-by: Stupefacient <brianbrownt@gmail.com>
* MADS: prevent `wrongCarMode` from disabling MADS enabled state
Add wrongCarModeNoEntry as a NO_ENTRY event to replace wrongCarMode (USER_DISABLE)
that would incorrectly disable MADS when in the wrong car mode. Provides
contextual guidance to users based on car brand, showing appropriate
instructions for re-engagement without requiring MADS to be re-enabled.
* move down
* warning only?
* cereal SIKE
* remove duplicate
* try this out
* final
* be gone thot
* hhhmm what is this
a little dusty but lets see if we can freshen it up
* some of these
* bye bye
* remove xml bs
* add doc link
* i cant type
* remove patron and old subnote
* remove broken link
* update licensing
* update
---------
Co-authored-by: Jason Wen <haibin.wen3@gmail.com>
* ui: update names
* Revert "ui: update names"
This reverts commit 313510c8c0.
* gone
* init
* Changed all occurrences of 'openpilot' to 'sunnypilot'
All instances of 'openpilot' in the user interface, documentation, and prompts have been updated to 'sunnypilot'. These changes include source strings, warning messages, and the prompts shown to users. The adjustment is part of the rebranding process and aims to avoid any uncertainty or confusion for users.
* vanish translations
* translations
---------
Co-authored-by: DevTekVE <devtekve@gmail.com>
* ci: update package management for `ui_preview`
Add `apt-get update` before installing ImageMagick to ensure the package list is up-to-date. This prevents potential installation issues due to outdated package information.
* test commit
* try this
* revert
* Add struct and services
* Proof of concept
* Use vego
* Process replay support
* Fix issues
* Max not min
* Remove print
* Make lag positive
* Points and updates
* Sliding cross corr
* Stuff
* Remove redundant param
* Move to lagd
* Update alert
* Something that works
* Report isEstimated
* Corr field
* Use skimage masked corr
* Fixes
* Move to lat_accel_loc
* Use the delay it in the model
* Mark as executable
* Add 0.2 to initial
* add install line
* Back to 5m window
* Move the import up
* corr window 120
* Show is estimated
* Sort messages
* New impl
* Fix
* Params
* Set initial_lag elsewhere
* Add param
* Rename Param
* Fix type isues
* More blocks
* Masked fft NCC implementation
* Remove package installation
* Use 20hz data and interp the correlation peak
* Move ncc code to separate function
* steering_saturated support
* Constants
* Add recovery buffer
* Fix static
* min_valid_block_count nad liveDelay
* lateralDelayEstimate
* Fix comm issues. Do estimations at 4hz
* Fix
* Display the estimate
* Increase the block size
* Cache every minute
* DEBUG flag
* Add progress to the alert
* Fix crash
* points only in debug
* Fix BlockAverage restoration
* Comment
* Move estimators into estimator directory
* Remove lagd
* Feed only relevant messages
* Rewrite as a set literal
* np.diag with P_initial
* Fix static
* Struct renames
* Update ref commit
* Make it nicer
* Some renames
* Refactor ParamsLearner
* Make it VehicleParamsLearner
* Fix
* Use capnp serialization instead of json
* Fix speed
* Remove redundant comments
* Monitor observed_roll
* Just use init_state
* Comment
* Improve reset
* Set globals api
* Typing for return value
* Redo reset messaging
* Remove usages of math
* Fix process_replay custom_params
* Type ignores for rednose fields
* Remove import
* Reset previous values too
* Update ref_commit
* Revert it
* Bring it back
* Remove more
* Add migration for cached params
* reset curvature while disabled
* comment
* duplicate line
* fix possible iso violation because it was unlimited while disengaged
* rename so you can't accidentally use
* update refs
* Update max_lat_accel.py
The error you're encountering is due to the fact that the code is trying to calculate the 90th percentile of lateral acceleration values that are less than 0, but there are no such values in the dataset. This results in an empty list, which causes the np.percentile function to fail with an IndexError
* fix
* simpler
---------
Co-authored-by: Shane Smiskol <shane@smiskol.com>
Today, Firehose uploads and user-requested uploads from Connect are treated the same. This is not ideal behavior if the user wants to upload routes immediately for a bug report and the queue is full of uploads for Firehose. The workaround is to clear the queue and retry the upload from Connect.
This PR adds an optional `priority` to requested file uploads in `athenad`. By default, all requests are marked `Low`. However, if the caller wishes to mark their uploads as "more important," then the upload queue will prioritize those requests when uploading.
The only caveat to this PR is that we won't reorder files currently being uploaded. Most connections are quick enough to finish uploading max 4 files before polling the new high-priority items in the queue.
Closes https://github.com/commaai/openpilot/issues/34836
**Verification**
Added test case to insert upload tasks with differing priorities. Polling the queue produces items in the correct order (smallest # to largest).
PR to mark Connect uploads as high priority: https://github.com/commaai/connect/pull/557
---------
Co-authored-by: Cameron Clough <cameronjclough@gmail.com>
console.log(`Removed '${process.env.TRUST_FORK_PR_LABEL}' label from PR #${prNumber} as it received new commits`);
// Add a comment to the PR
await github.rest.issues.createComment({
owner: context.repo.owner,
repo: context.repo.repo,
issue_number: prNumber,
body: `The \`${process.env.TRUST_FORK_PR_LABEL}\` label has been automatically removed because new commits were pushed to this PR. This PR will need to be re-reviewed before the label can be applied again.`
<td>{% if jobs[key]["failures"]|length > 0 %}<details>{% for failure in jobs[key]["failures"] %}<a href="{{ failure['link'] }}">Log for run #{{ failure['run_number'] }}</a><br>{% endfor %}</details>{% else %}{% endif %}</td>
stale-pr-message:'This PR has had no activity for ${{ env.DAYS_BEFORE_PR_STALE_DRAFT }} days. It will be automatically closed in ${{ env.DAYS_BEFORE_PR_CLOSE }} days if there is no activity.'
close-pr-message:'This PR has been automatically closed due to inactivity. Feel free to re-open once activity resumes.'
stale-pr-label:stale
delete-branch:${{ github.event.pull_request.head.repo.full_name == 'commaai/openpilot' }}# only delete branches on the main repo
exempt-pr-labels:"ignore stale,needs testing"# if wip or it needs testing from the community, don't mark as stale
MODEL_SIZE=$(python3 -c "from openpilot.common.transformations.model import MEDMODEL_INPUT_SIZE as s; print(f'{s[0]}x{s[1]}')")
CAMERA_RES=$(python3 -c "from openpilot.common.transformations.camera import _ar_ox_fisheye as a, _os_fisheye as o; print(f'{a.width}x{a.height} {o.width}x{o.height}')")
# We do a bit of a hack here to avoid canceling the publishing job if a new commit comes in while we're publishing by adding the sha to the group name.
# This means that if multiple commits come in while we're publishing, they will be queued up and publish one after the other.
# Otherwise, if a job is waiting to be published due to environment wait time, it would be canceled by a new commit and restart the wait time.
[sunnypilot](https://github.com/sunnyhaibin/sunnypilot) is a fork of comma.ai's openpilot, an open source driver assistance system. sunnypilot offers the user a unique driving experience for over 300+ supported car makes and models with modified behaviors of driving assist engagements. sunnypilot complies with comma.ai's safety rules as accurately as possible.
<p>
<b>openpilot is an operating system for robotics.</b>
<br>
Currently, it upgrades the driver assistance system in 275+ supported cars.
</p>
## 💭 Join our Community Forum
Join the official sunnypilot community forum to stay up to date with all the latest features and be a part of shaping the future of sunnypilot!
First, check out this list of items you'll need to [get started](https://community.sunnypilot.ai/t/getting-started-using-sunnypilot-in-your-supported-car/251).
Next, refer to the sunnypilot community forum for [installation instructions](https://community.sunnypilot.ai/t/read-before-installing-sunnypilot/254), as well as a complete list of [Recommended Branch Installations](https://community.sunnypilot.ai/t/recommended-branch-installations/235).
</div>
## 🎆 Pull Requests
We welcome both pull requests and issues on GitHub. Bug fixes are encouraged.
<table>
<tr>
<td><a href="https://youtu.be/NmBfgOanCyk" title="Video By Greer Viau"><img src="https://github.com/commaai/openpilot/assets/8762862/2f7112ae-f748-4f39-b617-fabd689c3772"></a></td>
<td><a href="https://youtu.be/VHKyqZ7t8Gw" title="Video By Logan LeGrand"><img src="https://github.com/commaai/openpilot/assets/8762862/92351544-2833-40d7-9e0b-7ef7ae37ec4c"></a></td>
<td><a href="https://youtu.be/SUIZYzxtMQs" title="A drive to Taco Bell"><img src="https://github.com/commaai/openpilot/assets/8762862/05ceefc5-2628-439c-a9b2-89ce77dc6f63"></a></td>
</tr>
</table>
Pull requests should be against the most current `master` branch.
## 📊 User Data
By default, sunnypilot uploads the driving data to comma servers. You can also access your data through [comma connect](https://connect.comma.ai/).
sunnypilot is open source software. The user is free to disable data collection if they wish to do so.
sunnypilot logs the road-facing camera, CAN, GPS, IMU, magnetometer, thermal sensors, crashes, and operating system logs.
The driver-facing camera and microphone are only logged if you explicitly opt-in in settings.
By using this software, you understand that use of this software or its related services will generate certain types of user data, which may be logged and stored at the sole discretion of comma. By accepting this agreement, you grant an irrevocable, perpetual, worldwide right to comma for the use of this data.
## Licensing
sunnypilot is released under the [MIT License](LICENSE). This repository includes original work as well as significant portions of code derived from [openpilot by comma.ai](https://github.com/commaai/openpilot), which is also released under the MIT license with additional disclaimers.
The original openpilot license notice, including comma.ai’s indemnification and alpha software disclaimer, is reproduced below as required:
> openpilot is released under the MIT license. Some parts of the software are released under other licenses as specified.
>
> Any user of this software shall indemnify and hold harmless Comma.ai, Inc. and its directors, officers, employees, agents, stockholders, affiliates, subcontractors and customers from and against all allegations, claims, actions, suits, demands, damages, liabilities, obligations, losses, settlements, judgments, costs and expenses (including without limitation attorneys’ fees and costs) which arise out of, relate to or result from any use of this software by user.
>
> **THIS IS ALPHA QUALITY SOFTWARE FOR RESEARCH PURPOSES ONLY. THIS IS NOT A PRODUCT.
> YOU ARE RESPONSIBLE FOR COMPLYING WITH LOCAL LAWS AND REGULATIONS.
> NO WARRANTY EXPRESSED OR IMPLIED.**
For full license terms, please see the [`LICENSE`](LICENSE) file.
## 💰 Support sunnypilot
If you find any of the features useful, consider becoming a [sponsor on GitHub](https://github.com/sponsors/sunnyhaibin) to support future feature development and improvements.
Using openpilot in a car
------
By becoming a sponsor, you will gain access to exclusive content, early access to new features, and the opportunity to directly influence the project's development.
To use openpilot in a car, you need four things:
1.**Supported Device:** a comma 3/3X, available at [comma.ai/shop](https://comma.ai/shop/comma-3x).
2.**Software:** The setup procedure for the comma 3/3X allows users to enter a URL for custom software. Use the URL `openpilot.comma.ai` to install the release version.
3.**Supported Car:** Ensure that you have one of [the 275+ supported cars](docs/CARS.md).
4.**Car Harness:** You will also need a [car harness](https://comma.ai/shop/car-harness) to connect your comma 3/3X to your car.
We have detailed instructions for [how to install the harness and device in a car](https://comma.ai/setup). Note that it's possible to run openpilot on [other hardware](https://blog.comma.ai/self-driving-car-for-free/), although it's not plug-and-play.
<img src="https://user-images.githubusercontent.com/47793918/244135584-9800acbd-69fd-4b2b-bec9-e5fa2d85c817.png" alt="Become a Sponsor" width="300" style="max-width: 100%; height: auto;">
</a>
<br>
To start developing openpilot
------
<h3>PayPal</h3>
openpilot is developed by [comma](https://comma.ai/) and by users like you. We welcome both pull requests and issues on [GitHub](http://github.com/commaai/openpilot).
<img src="https://www.paypalobjects.com/en_US/i/btn/btn_donateCC_LG.gif" alt="PayPal this" title="PayPal - The safer, easier way to pay online!" border="0" />
</a>
<br></br>
* Join the [community Discord](https://discord.comma.ai)
* Check out [the contributing docs](docs/CONTRIBUTING.md)
* Check out the [openpilot tools](tools/)
* Read about the [development workflow](docs/WORKFLOW.md)
* Code documentation lives at https://docs.comma.ai
* Information about running openpilot lives on the [community wiki](https://github.com/commaai/openpilot/wiki)
Your continuous love and support are greatly appreciated! Enjoy 🥰
Want to get paid to work on openpilot? [comma is hiring](https://comma.ai/jobs#open-positions) and offers lots of [bounties](https://comma.ai/bounties) for external contributors.
Safety and Testing
----
* openpilot observes [ISO26262](https://en.wikipedia.org/wiki/ISO_26262) guidelines, see [SAFETY.md](docs/SAFETY.md) for more details.
* openpilot has software-in-the-loop [tests](.github/workflows/selfdrive_tests.yaml) that run on every commit.
* The code enforcing the safety model lives in panda and is written in C, see [code rigor](https://github.com/commaai/panda#code-rigor) for more details.
* panda has software-in-the-loop [safety tests](https://github.com/commaai/panda/tree/master/tests/safety).
* Internally, we have a hardware-in-the-loop Jenkins test suite that builds and unit tests the various processes.
* panda has additional hardware-in-the-loop [tests](https://github.com/commaai/panda/blob/master/Jenkinsfile).
* We run the latest openpilot in a testing closet containing 10 comma devices continuously replaying routes.
Licensing
------
openpilot is released under the MIT license. Some parts of the software are released under other licenses as specified.
Any user of this software shall indemnify and hold harmless Comma.ai, Inc. and its directors, officers, employees, agents, stockholders, affiliates, subcontractors and customers from and against all allegations, claims, actions, suits, demands, damages, liabilities, obligations, losses, settlements, judgments, costs and expenses (including without limitation attorneys’ fees and costs) which arise out of, relate to or result from any use of this software by user.
**THIS IS ALPHA QUALITY SOFTWARE FOR RESEARCH PURPOSES ONLY. THIS IS NOT A PRODUCT.
YOU ARE RESPONSIBLE FOR COMPLYING WITH LOCAL LAWS AND REGULATIONS.
NO WARRANTY EXPRESSED OR IMPLIED.**
User Data and comma Account
------
By default, openpilot uploads the driving data to our servers. You can also access your data through [comma connect](https://connect.comma.ai/). We use your data to train better models and improve openpilot for everyone.
openpilot is open source software: the user is free to disable data collection if they wish to do so.
openpilot logs the road-facing cameras, CAN, GPS, IMU, magnetometer, thermal sensors, crashes, and operating system logs.
The driver-facing camera is only logged if you explicitly opt-in in settings. The microphone is not recorded.
By using openpilot, you agree to [our Privacy Policy](https://comma.ai/privacy). You understand that use of this software or its related services will generate certain types of user data, which may be logged and stored at the sole discretion of comma. By accepting this agreement, you grant an irrevocable, perpetual, worldwide right to comma for the use of this data.
Some files were not shown because too many files have changed in this diff
Show More
Reference in New Issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.