Commit Graph

1687 Commits

Author SHA1 Message Date
Adeeb Shihadeh b2a7084906 move webcam to system/camerad/ (#38196)
* move webcam to system/camerad/

* lil more
2026-06-20 13:54:47 -07:00
stef f257544f1b tools: goodbye webjoystick (#38194)
remove body web tool
2026-06-19 19:08:21 -07:00
stef 45d8bcd7f3 car livestream (#38193)
* 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

* initial idea

* add a watchdog to kill the process after disconnect or onroad

* start camerad and stream encoderd as well

* add message handler even without bridge

* remove carState when offroad

* transition to onroad works for body, kill for car not working

* turn off stream processes on started car

* cereal messaging sub field allow list, carparamspersistent, ping webrtcd to see when awake

* fix imports

* fix and increase max retries

* reduce max retries, increase timeout

* timeout on wait for connection

* remove cereal sub message and update process config to run on body ignition

* debounce 5s on teardown

* update error messages

* fix tear down crash

* clean

* clean

* fix lint
2026-06-19 18:20:55 -07:00
stef 0038d84e13 webrtc: do not replace connection on prewarm (#38190)
* refactor

* remove accidental change

* clean error handler

* clean structure

* only is other stream is active and enabled

* better structure

* remove enabled None default

* update comment
2026-06-17 14:53:06 -07:00
stef 3939f1e92c webrtc: signal shutdown over datachannel (#38185)
signal shut down, fix enabled bug
2026-06-16 18:33:59 -07:00
eFini 3c4790c089 bugfix: should be Error not Exception (#38071)
should be Error not Exception
2026-06-16 14:58:30 -07:00
stef f3b1f97afa webrtc/athena: speed up first time stream connection (#38184)
* move streamrequest to models file, prewarm in webrtcd

* cleanup

* debug

* change print to logger.info
2026-06-16 13:48:16 -07:00
stef 586dd4c611 webrtc: add error handling middleware (#38182)
* webrtc add error handling middleware

* clean diff
2026-06-15 19:19:07 -07:00
stef 291315ab25 webrtc/athena: allow webrtc connection with only data channel (#38177)
* add param that requests keyframe

* set keyframe request to false on cleanup

* timing and errors

* video_enabled option and ability to add video later

* remove loggerd changes from this PR

* video enabled default to on, clean identifier

* request keyframe on start regardless of video enabled or not

* move error handling additions to different PR
2026-06-15 19:11:28 -07:00
stef 37390743c1 webrtc/athena: revert addIceCandidate changes (#38180)
* revert addIceCandidate changes

* remove accidental file
2026-06-15 16:50:07 -07:00
stef 15fb1a809d webrtc: revert prewarm and import movements (#38181) 2026-06-15 16:49:56 -07:00
stef 0240a62fd9 encoder: add ability to request keyframes from livestream encoders (#38172)
* add param that requests keyframe

* set keyframe request to false on cleanup

* clean

* timing and errors

* remove other changes

* clean diff

* clean diff

* clean up live adaptation params and functions

* better function names

* fix syntax

* remove unused var

* clean diff
2026-06-15 14:48:13 -07:00
stef cd052f124e webrtc: speed ups (#38163)
- patch `aioice` to only get host address of active network interface (wlan0 when on wifi, ppp0 when not)
- use common webrtc session between `startStream` and `addIceCandidates`
- first time connection speed ups
  - move imports to top of file to move delay to webrtcd server start up not first connection
  - warm up webrtc stack by creating a webrtc connection object to import all submodule classes
2026-06-11 16:10:34 -07:00
stef 14cff000e9 feat(webrtc): addIceCandidate dispatcher (#38161)
* addIceCandidate dispatcher

* clean

* fix lint
2026-06-11 12:58:04 -07:00
Harald Schäfer 4024d13dda Revert "Op model16 deep (#38073)" (#38166)
This reverts commit f02d134f40.
2026-06-11 09:32:24 -07:00
stef 98e5f547ea fix(athena): outbound rpc stuck behind low prio queue timeout (#38160)
* priority queue instead of 2 queues

* add assert on priority instead of default

* fix lint
2026-06-10 19:28:26 -07:00
Daniel Koepping c01b8be968 set max cpu core frequency (#38132)
cap cpu core frequency
2026-06-03 19:35:51 -07:00
Harald Schäfer f02d134f40 Op model16 deep (#38073)
* modeld: RL driving model with 3-file split

Split the driving model into vision + off_policy + on_policy ONNX
files and wire up the RL policy:

- 3-file model split (vision / off_policy / on_policy), replacing the
  combined big_driving_policy/vision models
- compiler updates for the split models
- actually consume the policy action in modeld
- add desire state to the driving model
- model iterations (smoothness, off/on-policy weight updates)

* modeld: update driving model

* 1e72cf5a-785f-45ea-888f-28cdb14785de/100

* tinygrad hack

* fix parsing

* looser timing

* big

* Remove unnecessary modeld rebase changes

* Tighten modeld split cleanup

---------

Co-authored-by: Comma Device <device@comma.ai>
Co-authored-by: Armandpl <adpl33@gmail.com>
2026-06-03 12:48:58 -07:00
stef 866cd01f32 webrtc: initialize on medium bitrate (#38129)
initialize on medium quality
2026-06-02 18:07:12 -07:00
Adeeb Shihadeh c87f613659 agnos 18.4: pin pycapnp to 2.1.0 (#38126)
* Revert "modeld: fix capnp memory leak (#38117)"

This reverts commit 0f17a98793.

* Revert "fix memory leak from pycapnp 2.2+ (#38001)"

This reverts commit 294cb687f6.

* downgrade

* agnos 18.4
2026-06-01 20:43:32 -07:00
stef 04e2351246 webrtc: livestream bitrate controller (#38120)
* 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
2026-06-01 10:33:29 -07:00
Andi Radulescu d937401511 hardware.py: remove NM dbus (#38005)
* 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>
2026-05-30 11:09:17 -07:00
Adeeb Shihadeh 8499de6afe tici: remove weston fallback (#38111) 2026-05-30 10:50:17 -07:00
stef ad522f8444 hw encoder: set_bitrate and apply_bitrate based on Param (#38095)
* 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
2026-05-29 18:00:47 -07:00
Armand du Parc Locmaria 9f59a4a5ca manager: remove obsolete tinygrad MainProcess workaround (#38104)
tinygrad doesn't need to run in 'MainProcess'?
2026-05-29 16:35:08 -07:00
Daniel Koepping a81617d8ee adjust fan setpoint (#38100)
* adjust fan setpoint

* comment
2026-05-28 12:14:35 -07:00
stef 4cd93f3eee webrtcd: turn CerealProxyRunner into more general AsyncTaskRunner (#38093)
* make cereal proxy runner more general

* missing init()
2026-05-27 13:49:46 -07:00
stef 5af72796f2 fix frame timing feature in webrtcd (#38090)
fix misreference to video_tracks in webrtcd
2026-05-26 10:32:02 -07:00
stef 1f227bbe20 remote teleop frame timing support (#38014)
* 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
2026-05-22 19:30:48 -07:00
stef 9844075bb2 remote teleop multi-stream on 1 video track (#38013)
* 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
2026-05-22 19:20:22 -07:00
stef aff9f9ffae remote body teleop from connect support (#38011)
* 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
2026-05-21 17:42:19 -07:00
Adeeb Shihadeh 12aaacdffc loggerd: fix flaky test case (#38068) 2026-05-19 11:22:13 -07:00
Adeeb Shihadeh 27e37f9d95 agnos 18.3 (#38063) 2026-05-18 19:52:06 -07:00
Adeeb Shihadeh 43d61f043c modem.py: roaming is always allowed for prime (#38065)
* modem.py: roaming is always allowed for prime

* modem.py: add timestamp
2026-05-18 18:20:53 -07:00
Adeeb Shihadeh 77017a913a modem.py: roaming is always allowed for prime (#38064) 2026-05-18 18:17:21 -07:00
Trey Moen 46e3c907f6 hardware: tolerate missing modem state in setup (#38058)
* hardware: tolerate missing modem state in setup

* get_network_type: read modem state after wifi/ethernet checks
2026-05-18 09:48:36 -07:00
Adeeb Shihadeh e8a03f7f32 fix build warnings (#38025) 2026-05-12 10:12:50 -07:00
Andi Radulescu 9574eee0e3 modem.py: normalize padded ICCIDs (#38021)
modem: normalize padded ICCIDs
2026-05-12 09:42:22 -07:00
Shane Smiskol 3a764c0ae3 Params: rm nonblocking funcs (#38016)
* rm nonblocking funcs

* same behavior

* and put_bool

* missing!

* and nonblocking

* cmt
2026-05-11 20:00:00 -07:00
Adeeb Shihadeh 11c14a138f speedup test_pandad.py (#38009)
* 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>
2026-05-11 19:40:20 -07:00
Adeeb Shihadeh 534fb19714 agnos 18.1.3 (#38002) 2026-05-10 22:17:11 -07:00
Adeeb Shihadeh 2a86d0cea5 modem.py: nice human readable state file 2026-05-10 19:55:16 -07:00
Adeeb Shihadeh bbe5b38643 test_onroad covers this 2026-05-10 18:27:36 -07:00
Adeeb Shihadeh 2691aa8e39 qcomgpsd: take AT lock (#38000) 2026-05-10 18:05:15 -07:00
Adeeb Shihadeh da62722d07 tighten pandad timings (#37999)
* tighten can timings

* cleanup

* rm that
2026-05-10 18:04:27 -07:00
Adeeb Shihadeh 93ed08ba20 agnos 18.1.2 + raylib 6.0 (#37997)
* raylib 6

* uv lock

* one more time
2026-05-10 17:19:33 -07:00
Adeeb Shihadeh d7c562e130 use linux headers from /usr (#37993)
* use linux headers from /usr

* Fix linux header build on non-TICI platforms

* Copy NV12 media header helpers
2026-05-09 19:42:31 -07:00
Adeeb Shihadeh 9fdcbae8de agnos 18.1.1 (#37989) 2026-05-09 19:08:09 -07:00
Shane Smiskol fd37cd1d03 ui: prevent raylib sleep drifting from vblank (#37970)
* fix?

* fix planner contention

* Update system/ui/lib/application.py

* back

* cmt

* back

---------

Co-authored-by: Shane Smiskol <shane@Shanes-MacBook-Air.local>
2026-05-08 01:23:21 -07:00
Trey Moen 01e7606b70 esim.py: subcommand CLI with indexed profile selection (#37968)
Lets you `esim.py switch 2` instead of typing the full iccid. Profiles
are stable-sorted by iccid so indices are deterministic.
2026-05-07 19:03:08 -07:00