* Ford: move to PlatformConfig
* Align Aviator model years with Explorer
* Add CarSpecs to PlatformConfig
---------
Co-authored-by: justin <justin@comma.ai>
* subaru platform config
* forester wrong dbc
* spacing
* subaru car specs
* someday!
* more red diff
* all brands can be done like this
* but this should be done first and thats subaru specific
* that seems very low but we shouldn't change it here
* as long as it subclasses str its fine
* well that sucked
* cleanup and follow refactor
* diff reduction
* oops
* fix
* force fingerprint
* Revert "force fingerprint"
This reverts commit 600fbcd7d559703601a06c8876a640de417e5b6c.
* space
* Fix specs
* this one too
---------
Co-authored-by: Justin Newberry <justin@comma.ai>
* subaru platform config
* forester wrong dbc
* spacing
* subaru car specs
* someday!
* more red diff
* all brands can be done like this
* but this should be done first and thats subaru specific
* that seems very low but we shouldn't change it here
* as long as it subclasses str its fine
* fix
* URLFile: default value test
* cleanup
* fix env
* improvements
* fix GET response
* only delete cache dir if it exists
* env pop
Co-authored-by: Adeeb Shihadeh <adeebshihadeh@gmail.com>
---------
Co-authored-by: Adeeb Shihadeh <adeebshihadeh@gmail.com>
* check end_event while uploading, throw abort exception if we need to shut down/restart
* fix
* draft test
stash
* Revert - there's no easy way to know if it breaks early in upload loop
or not yet
This reverts commit ad893687e196ebb31d276a114c19e9af963ed02a.
* todo for now
* these pass in 0.5s since server sends ping on connect
* comments
* unused
* fix
* fix these too
* check end_event while uploading, throw abort exception if we need to shut down/restart
* Revert "check end_event while uploading, throw abort exception if we need to shut down/restart"
This reverts commit f0b822fca98cd8e2b3d4d6d5ede6b512d3ed3ec0.
* more tol for lte connection
* card v1
* fix car events
* fix proc replay
* lets keep that the same
* no extra space here
* move can recv timeouts to card
* organize imports
* organize imports
* slightly bump cpu
* not a card!
* log params when calculable
* better
* Update ref_commit
* this is redundant
* this is only used in one place, confusing which to use so remove
* better
* Adding pre-commit hook for cython static analysis
* Adding changes to cython files to pass static analysis
* Revert "Adding changes to cython files to pass static analysis"
This reverts commit 9a0eb733199abd9eef1eac3d024ef2760348d67c.
* Adding ignore rule for indentation of 4 spaces (E111)
* Fixes for cython-lint static analysis
* Revert "Fixes for cython-lint static analysis"
This reverts commit 972741735b2bdc73460d65a4d7ea167dfc0f4644.
* Adding two new rules into ignore list (2 new lines after difinition of class)
* Adding fixes for cython static analysis
* Do Accord
* add comment
* good test
* this catches the accord/accordh issue!
* as expected, only if both radar&camera have in common FW does the test fail
* cmt
* clean up
* better
* Use HondaFlags
* detect alt brake
* for test
* hypothesis isn't installed
* test failure
* works
* Revert " works"
This reverts commit bfc0d808abe548630e6507431f13b01e8a1316cb.
* Revert "test failure"
This reverts commit 10ab6eb63ccd411740751b742f31fd610397fe8e.
* Revert "hypothesis isn't installed"
This reverts commit d474cc3f0ed7e84fe8bd24f452b3315fd2b8d47c.
* Revert "for test"
This reverts commit 98e039f4fc0189ccb57c1dae6b344209ef15eb1c.
* this is important too
* clean up
* more clean up
* Update ref_commit
* more explicit
* fix it
* use non capturing group
* only needed for regex101
* make test_logreader.py executable
* fix
* stash
* passes test
* none
* type anotate
* test
* fix
* nice for syntax highlighting
* type annotate SegmentRange
* proper formatting
* oops
* numpy?
format test too
* draft
* fixed
* clean up
* rm
* more
* clean up
* clean up
* rm
* not here
* revert
* more examples
* how is it so fast?!
* 500
* is there a hypothesis cache?
all
* Revert "is there a hypothesis cache?"
This reverts commit e628ba73d5b639e36f95df0ab9049697b34a58b8.
* same as jenkins
* Update carstate.py
* 42 is safe
* mirai
* we hit this after 30 mins: Exceeded message traversal limit. See capnp::ReaderOptions.
* too easy to write this bug, no need to be generic yet
* Update ref_commit
* Honda Civic Bosch: remove OBD-reliant ECUs from fingerprinting
* eligible to fingerprint with these responses now
* same for CRV bosch
* add back all FW to test fingerprinting diff on data
* set these ECUs as non essential instead
* comment
* compare old fingerprinting with non essential fingerprinting
* clean up
* cmt
* wait for valid
* reuuse that
* assert warmup
* Wip
* fix that
* reset
* none
* timeout
* maxlen
* consecutive
* proc
* fix
* local
* same as before
* mean
* fixes
* SA
* this is the real warmup time
* this is the real warmup time
* Cleanup
* Cleanup
* monotonic + len
* reduce duplication
* fix
* fix
---------
Co-authored-by: Comma Device <device@comma.ai>
* Initial pass
* Add physical measurements for LEXUS_LC_2024
* Add new test route for TOYOTA.LEXUS_LC_TSS2
* Add new public-OK test route for TOYOTA.LEXUS_LC_TSS2
* update docs
* | not /
---------
Co-authored-by: Justin Newberry <justin@comma.ai>
* We never had any bus 0 logging queries for CAN!
* should be logging
* try all, and try on can fd as well
* update refs
* oof forgot about hda2 can fd where pt is bus 1
* sheesh
* fix the timing
* fix ref
* We never had any bus 0 logging queries for CAN!
* should be logging
* try all, and try on can fd as well
* update refs
* oof forgot about hda2 can fd where pt is bus 1
* sheesh
* fix the timing
* not here
* revert
* this just simply measured the total time of all the brands with aux queries (1.25s)
* clean up
* Add 2021 Kia Niro Plug-in Hybrid
* Added CAR.KIA_NIRO_PHEV_2021
* Added CAR.KIA_NIRO_PHEV_2021
Created new block and moved 2022 model to it as well, with correct mass and steerRatio values.
* Added 2021 Kia Niro PHEV
* Added 2021 Kia Niro PHEV
For now, using 2020 Niro EV torque data
* Update values.py
Add '21 Kia Niro PHEV to HYBRID_CAR for gas signal and DBC info
* Test route for 2021 Kia Niro PHEV
* Add public test route for 2021 Kia Niro PHEV
* Fixed typo in test route for 2021 Kia Niro PHEV
* Move '21 Kia Niro PHEV car info under '22
...and remove other mention of '21 as distinct car
* Added '21 Kia Niro PHEV fingerprint under '22
...and removed separate car definition
* Removed '21 Kia Niro PHEV as separate car, now under '22
* Removed '21 Kia Niro PHEV, now under '22 fingerprint
* Removed test route for '21 Kia Niro PHEV
* Update values.py
Missed removing one more reference to '21 Kiro Niro PHEV, consolidating under '22.
* Update selfdrive/car/hyundai/interface.py
* Update selfdrive/car/hyundai/fingerprints.py
* Apply suggestions from code review
---------
Co-authored-by: Shane Smiskol <shane@smiskol.com>
* Lazy imports in webrtcd
* Lazy imports in web.py
* Type hints
* Remove FrameReaderVideoStreamTrack
* leave the aiohttp.web import
* Leave the client session
* main leftover
* not pytest?
* copy what build release does
* test controls step with CI and lat/long controllers, car controller.update, etc
* clean up
* not needed
* not here
* here
* better cmt
* fix test_fuzzy
* see what's failing
* need conftest for OPENPILOT_PREFIX to work!
* up
* clean up
* test
* fix
* params put is slow
* stash
* Revert "stash"
This reverts commit 22cc9f814c0699f7046970763663205907f2890b.
* stash
bad
* just freaking merge
* sort
* rm
* simplify git remote is comma check
* cast to str
* eliminate default and always return string
* add type annotation for cache decorator
* fix up default handling
* bump
* from https://github.com/commaai/openpilot/pull/27929
* get VIN on bolt!
* might as well try on other gms
* remove vin
* ugh gm is going to be slow
* fix
* should really fix this
* revert
* happy?1
* fix unit test
* bump
* functional addressing must be an OBD gateway feature, this does nothing
* fix vin response
* fix addr!
* finally fix fw_versions bugs since boardd IsOnroad refactor
* for
* only bus 0
* clean up
* Update selfdrive/car/gm/values.py
* ChatGPT re-write
* filter out did
* todo
* oof
* preview: what multiple DIDs per ECU would look like in the future
* Revert "preview: what multiple DIDs per ECU would look like in the future"
This reverts commit 88f0d8611e638de644adc5feabade848c03d59e4.
* function to get all ecus
* we can remove this!
* can also do this!
* and this one too :o
* consistency
* yay
* clean up
* bump
* from https://github.com/commaai/openpilot/pull/27929
* get VIN on bolt!
* might as well try on other gms
* remove vin
* ugh gm is going to be slow
* fix
* should really fix this
* revert
* happy?1
* fix unit test
* bump
* functional addressing must be an OBD gateway feature, this does nothing
* fix vin response
* fix addr!
* finally fix fw_versions bugs since boardd IsOnroad refactor
* for
* only bus 0
* clean up
* Update selfdrive/car/gm/values.py
* ChatGPT re-write
* filter out did
* todo
* oof
* preview: what multiple DIDs per ECU would look like in the future
* Revert "preview: what multiple DIDs per ECU would look like in the future"
This reverts commit 88f0d8611e638de644adc5feabade848c03d59e4.
* function to get all ecus
* we can remove this!
* can also do this!
* and this one too :o
* consistency
* yay
* add tests
* revert GM stuff
* another PR
* reads better
* revert rest of gm
* use that
* interesting
* these are exactly the same (with ordering differences)
* Revert "these are exactly the same (with ordering differences)"
This reverts commit a9e918dc351d24f1b7c8a05c7ec402e057a0e09a.
* flip
* bump
* gm vin
* that's not right
* only check relevant buses
* instead try queries for each bus first
* clean up
* use default retry in function
* all
* add instructions to my fork
* add braziliam TAOS fingerprint
* Revert "add instructions to my fork"
This reverts commit 46fbee3ebe7ecbb211d855e63b2d4c8919c31b63.
* add instructions to my fork
* add paypall.png to gitignore
* Revert "add instructions to my fork"
This reverts commit a6a6f93533add212e321e8472a78a8a69bf932f4.
* translate
* revert this
* why?
---------
Co-authored-by: Comma Device <device@comma.ai>
* use radar instead of abs
* str the strenum
* Lexus ES: non-TSS2 probably don't have stop and go without DSU-pull and/or pedal
* remove from NO_STOP_TIMER_CAR. this set is so confusing
* Combine ES & ESH (preferring ESH's DSU msgs)
* ES: forgot substitute
* comment
* Highlander: combine, preferring the hybrid for DSU msg mismatches (0x365 and 0x366)
* remove duplicates and sort
* update docs
* toyota non_essential ECU test
* Lexus RX: combine, preferring hybrid's msgs (they all exist on ICE)
* sort and remove dups
* parameterize so we can test with notebook
* this too
* clean up
* clean up
* tuple makes more sense
* update comments
* update
* update
* update
* print
* name
* add missing
* -----
* add list so can fingerprint
* transmission doesn't exist on these
* fix abs addr!
* apparantly abs isn't on these cars
* 2018 too
* clean up
* rm abs
* add missing versions!
* Revert "add missing versions!"
This reverts commit 45d36a49363a9c540841e6618c1a73cd3948c754.
* need this to fingerprint!
* Add FW from CAN fingerprinting cars last 90 days on 0.9.5-release
* need this temporarily
* Add rest of dongles
* update docs
* remove FINGERPRINTS
* Apply suggestions from code review
* Update selfdrive/car/fw_versions.py
* Dynamic QtGui version
* Fixed use of undeclared identifier 'va_start'
* Fix for Qt deprecations
* Fix for dynamic QtGui version
* Update selfdrive/ui/SConscript
---------
Co-authored-by: Adeeb Shihadeh <adeebshihadeh@gmail.com>
* Revert "Revert "FW query timing test: mock get_data function for timeout" (#30696)"
This reverts commit b1ecfd55ce.
* no thread
* clean up a bit
* no thread!
* combine functions
* re-enable total time check
* back to 5
* minimal diff
* minimal diff
* Add GH Actions workflow to check for a PR template
* switch to headings and checkboxes for template detection
* check for bold text in template too
* move template check over to auto_pr_review action and remove label only if check succeeded
* only run template check on external PRs
* wording
---------
Co-authored-by: Justin Newberry <justin@comma.ai>
* add instructions to my fork
* Revert "add instructions to my fork"
This reverts commit 46fbee3ebe7ecbb211d855e63b2d4c8919c31b63.
* test llm
* Revert "test llm"
This reverts commit fc531f0a1ba81b3444a34a1be8d02a51a060ec7a.
* update pt-BR translation
* segment range reader
* rename that
* revert that
* cleanup
* revert this for now
* revert this for now
* Fix + test
* rm that
* rm that
* use for auto_fingerprint
* simpler
* for notebook too
* match numpy indexing
* just use numpy directly
* remove that
* spacing
* spacing
* use qlog for auto fingerprint
* add 'read mode'
* pass in read mode
* add test for modes
* numpy indexing
* fix that case
* more examples
* fix the notebook
* cleanup the notebook
* cleaner
* fix those
* VW MQB: Improved stopping and starting
* get longcontrol to take off sooner
* oops
* use the carParam instead of the constant
* update refs
---------
Co-authored-by: Adeeb Shihadeh <adeebshihadeh@gmail.com>
* carparams gave me a new firmware entry for "shiftByWire" from 'ford', so i added it here, as well as a new fw value under ecs.engine
* Update selfdrive/car/ford/fingerprints.py
---------
Co-authored-by: Shane Smiskol <shane@smiskol.com>
* not sure why this is a test
* Revert "not sure why this is a test"
This reverts commit c13e16311eb882df65d216bbd59acb5702e985e6.
* no ruff for this pattern :(
* this is always caught
* should fail
* simpler
* Revert "should fail"
This reverts commit 21bd15275c46cd42fd19b058245334bae83cce77.
* fix
* cleanup this
* better comment
* better
* this can be more localized
* better names
* better names
* should fail
* Revert "should fail"
This reverts commit c58495e8b3417ce351df8048752ec60177827cb3.
---------
Co-authored-by: Justin Newberry <justin@comma.ai>
* fails if no skip function
* Revert "fails if no skip function"
This reverts commit ff3d697d38dce56057c83f06033a689f2301a29d.
* Revert "test_models: fallback to public route when route isn't uploaded to CI bucket (#30794)"
This reverts commit 05dc0b51e6.
* Add script
* fix script
* fix script
* fix for subaddr
* run the script
* old style can fingerprints
* cleanup
* sort imports, make executable, fix path
* newline w/o newline
* match og can formatting
* match og formatting
* generate template once
* standard name
* less nested
* can fingerprints comments
* fix spacing
* no need for PLATFORM_TO_ENUM_NAME!
* prep for PRs
* comments for all, add honda comments
* Auto-generated fingerprint PR from fuzzy fingerprinting cars
* Revert "Auto-generated fingerprint PR from fuzzy fingerprinting cars"
This reverts commit 97bc9e3bdb9d819dcbe684ceba92ea702d40eaf0.
* even closer to original
* readd this comment
* and run script
* add to precommit
* add comments
* add comments
* add to release
* use for auto fingerprint
* disable precommit for now
---------
Co-authored-by: Shane Smiskol <shane@smiskol.com>
* pre-hypothesis
* some hypothesis junk
* this kinda works but is really slow due to counter check
* choose addrs from fingerprint
* stash
* honda nidec brake pressed mismatches fixed
* bump panda
* stash
* tesla: use DI_torque2 (panda msg)
* run
* run
* ah this honda mismatch too
* no more multi can msgs
* clean up, remove old file
* add todo
* prob can remove urandom
* stash, huge examples
* fix pq standstill mismatch
* yuge
* yup there's a leak somewhere
* try to find leak
* skip dashcam (pq and tesla)
* PR comments
* bump
* draft stash
* fix alt brake hondas
* bump
* bump
* bump
* some clean up
* minor clean up
* more clean up
* stash
* fix honda bug
* more
* 100 examples
* revert tesla
* no memory leak any more?
* bring back tests with skips
* parameterize max_examples
* skip interceptor
* is jenkins on my branch?
* ooh that's fast
* 50 is not bad for GH CI
* 300 might be better with rest of test_models
* no more detection
* bump
* need CS_prev to catch bugs where openpilot changes and panda doesn't (eg. not setting interceptor safety mode)
* need to simplify all this
* need a warm up first, since some signals are 1 by default (toyota's gas_released!=1)
* changes
* set honda safety param
* set toyota safety param
* bump panda
* clean up honda
* rm interceptor
* thought interleaving addrs might help, but we can fine tune later
* Revert "thought interleaving addrs might help, but we can fine tune later"
This reverts commit 153301384b48c9f33f9e2af3c224241eaeec41c1.
* get size from dict
* what
* add nocapture marker
* clean up
* try to raise logging level
* need to run last as pytest_runtest_call, since it starts capturing
* get capman conditionally
* mark
* type fingerprint
* should use gen_empty_fingerprint
* no longer needed
* draft
* no longer need gc
* clean that up
* test everything!
* more clean up
* more
* no point
* fix that
* fix errors
* bump
* nice even 300 examples for 300 segs
* final bump :fingers_crossed:
* better import order
* remove debugging prints
* warm up kinda works
* Revert "warm up kinda works"
This reverts commit 7fc77b07d592edb13eadca77deb49540954a7d69.
* random seed
* revert
* strat
strat
* add expl comment
* cmt
* check controls allowed
* Revert "check controls allowed"
This reverts commit e82a0e5396810dd4670e6847aa555194a709e10f.
* not unittests
* run tests!
* run tests 2!
* run tests 3!
* seed unused
* revert
* add shrink phase, and remove health check suppression
* hello
* oncemore
* Update selfdrive/car/tests/test_models.py
* Cython KF1D to Python
* cleanup
* set x
* less nesting
* fix release
* Revert "fix release"
This reverts commit 97e5d0f80405660efb861c7b9df7fbfd5dda5dd9.
* sanity check on velocity
* import from there
* use raw
* just check last
* ignore body
* reduce tolerance and bump panda
* its not average anymore
* slightly higher tolerance
* bump
* bump
* space
* remove from boardd
* set flag for honda to pass tests
* migrate
* Update ref_commit
* final bump
* bump cereal
* bump to master
* Safe and efficient asynchronous writing parameters
* call putNonBlocking in locationd
* remove space
* ->AsyncWriter
* remove semicolon
* use member function
* asyc write multiple times
* add test case for AsyncWriter
* merge master
* add missing include
* public
* cleanup
* create once
* cleanup
* update that
* explicit waiting
* improve test case
* pass prefix to asywriter
* move to params
* assert(queue.empty())
* add comment
* add todo
* test_power_monitoring: remove patch
* rm laikad.py
* fix import
---------
Co-authored-by: Adeeb Shihadeh <adeebshihadeh@gmail.com>
* Hyundai CAN-FD: Interface small cleanup
* some more
* Do this too
* fix
* cleaner
* use flag
* consolidate
* do it there
* Fix
* hda2 only
* cleaner
* default to False
* in another PR
* lint
* enable radar
* manual new track
* Don't filter points
* cleanup
* Update radar_interface.py
* This is non-zero in stock
* add speed
* more extreme
* A few more things
* fixes
* cleanup
* revert that
---------
Co-authored-by: Adeeb Shihadeh <adeebshihadeh@gmail.com>
* Hyundai: Car Port for Staria 2023
* camera scc!
* add test route
* Update RELEASES.md
* Apply suggestions from code review
* bump down max torque
---------
Co-authored-by: Shane Smiskol <shane@smiskol.com>
* retry pc setup
* sleep and retry
* exception
* throw e
* remove force exit
* make a function for it
* remove force exit
* move to top
* separate exception
* Update joystick mode in step
* Stop putting the body in joystick mode by default
* Toggle JoystickDebugMode by default for notCars in process_replay
* Remove subsection about web joystick
* Update param only in non-cars
* Make joystickDebug non-static event, and add it in a loop
* Add comment
* HKG: Car Port for Kia Niro Plug-in Hybrid 2022
* Update CARS.md and add test route
* add to releases
---------
Co-authored-by: Shane Smiskol <shane@smiskol.com>
* use a mock function to simulate timeout
* Cleanup
* Cleanup
* clean refs
* tolerance can also go down
* fix
* better name
revert refs
* use unittest
* revert
* Revert "use unittest"
This reverts commit 7a1d6a6fc72fa129a66590e0e5998c2438ecbe55.
* order
* local
* use a context
* revert
* stress test it
* let's try
* it's consistent
---------
Co-authored-by: Shane Smiskol <shane@smiskol.com>
* randomize internal seg list segments
* random
* pytest-randomly sets random.seed to a consistent value for all the workers/processes
* noeol
* update
* Revert "update"
This reverts commit aff9a69c4e5e3934deebaa33986b42f44b55b002.
* lock
* don't randomize by default
* remove random-order
* strict
* random
* one fix
* test
* does nothing
* rm tests
* Revert "rm tests"
This reverts commit b548e3fcd48e60538695506888d863c01b459d27.
* (can't repro locally) just athena should be fine
* bs1
* bs2
* bs3
* bs4
* bs5
* wrong way
* no controls
* no car
* no board
* controls?
* crazy -common
* Revert "crazy -common"
This reverts commit 02365d712b3d09cab1893cce2261a4b418bb3851.
* test athena
* test athena 2
* test athena 3
* test athena 4
* test athena 5
* test athena 6
* test athena 7
* test athena 8
* test athena 9
* ??
* in one commit
* common?
* car and board
* -controls -board
* random-order
* no board
* revert
* car/tests
* least likely
* try
* try 2
* draft
* draft
* so much better
* cmt
* use randomly
* not needed here
* directly modify option works
* bb
* test time
* Revert "test time"
This reverts commit 2c5caabe2b470b47b7322e37800680b92773fccc.
* tmut
* i concur
* revert
* just use the default device :/
* Ruff
* this seems like the most reliable way
* Ruff
* move comments too
* wait for devices
* fix that
* and that
* ruff
* add logging for avaliable devices
---------
Co-authored-by: Comma Device <device@comma.ai>
* Disable locationd temporary error alert on the body
* Disable locationd/paramsd/planner alerts on body with joystick mode
* joystick_enabled param not joystick_mode
* will it work
* retry build devel
* correct p[ath
* try a failure
* Revert "try a failure"
This reverts commit ba4e6a0a2096b94887fcfbf7d011e34aa2a16c41.
* new msgs default to invalid
* fix lm
* set more valid
* update rest
* update refs
* fix logMessage
* more valids
* cleanup
* fix llk test
* pigeond is also valid
* more valids
* have been running this for a few weeks: good
* set setme_x3 closer to stock
* add comment to values about additional EPS torque rate safety
* rename some variables
* should use vEgoRaw here to match panda!
* switch
* more notes
* specify
* smaller
* for
* oof
* WebRTCClient and WebRTCServer abstractions
* webrtc client implementation
* Interactive test scripts
* Send localDescriptions as offer/asnwer, as they are different
* Tracks need to be added after setting remote description for multi-cam streaming to work
* Remove WebRTCStreamingMetadata
* Wait for tracks
* Move stuff to separate files, rename some things
* Refactor everything, create WebRTCStreamBuilder for both offer and answers
* ta flight done time to grind
* wait for incoming tracks and channels
* Dummy track and frame reader track. Fix timing.
* dt based on camera type
* first trial of the new api
* Fix audio track
* methods for checking for incoming tracks
* Web migration part 2
* Fixes for stream api
* use rtc description for web.py
* experimental cereal proxy
* remove old code from bodyav
* fix is_started
* serialize session description
* fix audio
* messaging channel wrapper
* fix audiotrack
* h264 codec preference
* Add codec preference to tracks
* override sdp codecs
* add logging
* Move cli stuff to separate file
* slight cleanup
* Fix audio track
* create codec_mime inside force_codec function
* fix incoming media estimation
* move builders to __init__
* stream updates following builders
* Update example script
* web.py support for new builder
* web speaker fixes
* StreamingMediaInfo API
* Move things around
* should_add_data_channel rename
* is_connected_and_ready
* fix linter errors
* make cli executable
* remove dumb comments
* logging support
* fix parse_info_from_offer
* improve type annotations
* satisfy linters
* Support for waiting for disconnection
* Split device tracks into video/audio files. Move audio speaker to audio.py
* default dt for dummy video track
* Fix cli
* new speaker fixes
* Remove almost all functionality from web.py
* webrtcd
* continue refactoring web.py
* after handling joystick reset in controlsd with #30409, controls are not necessary anymore
* ping endpoint
* Update js files to at least support what worked previously
* Fixes after some tests on the body
* Streaming fixes
* Remove the use of WebRTCStreamBuilder. Subclass use is now required
* Add todo
* delete all streams on shutdown
* Replace lastPing with lastChannelMessageTime
* Update ping text only if rtc is still on
* That should affect the chart too
* Fix paths in web
* use protocol in SSLContext
* remove warnings since aiortc is not used directly anymore
* check if task is done in stop
* remove channel handler wrapper, since theres only one channel
* Move things around
* Moved webrtc abstractions to separate repository
* Moved webrtcd to tools/webrtc
* Update imports
* Add bodyrtc as dependency
* Add webrtcd to process_config
* Remove usage of DummyVideoStreamTrack
* Add main to webrtcd
* Move webrtcd to system
* Fix imports
* Move cereal proxy logic outside of runner
* Incoming proxy abstractions
* Add some tests
* Make it executable
* Fix process config
* Fix imports
* Additional tests. Add tests to pyproject.toml
* Update poetry lock
* New line
* Bump aiortc to 1.6.0
* Added teleoprtc_repo as submodule, and linked its source dir
* Add init file to webrtc module
* Handle aiortc warnings
* Ignore deprecation warnings
* Ignore resource warning too
* Ignore the warnings
* find free port for test_webrtcd
* Start process inside the test case
* random sleep test
* test 2
* Test endpoint function instead
* Update comment
* Add system/webrtc to release
* default arguments for body fields
* Add teleoprtc to release
* Bump teleoprtc
* Exclude teleoprtc from static analysis
* Use separate event loop for stream session tests
* Add '19-'20 Santa Fe video
Add link to YouTube video for 2019-2020 Hyundai Santa Fe
* update docs
---------
Co-authored-by: Steve J <easternpa@gmail.com>
* test rav4 2023 (stripped)
* don't use initData, remove relay malfunction tolerance!
* all passes!
* some clean up
* more
* uncomment
* rm line
* remove ignore_addr_checks_valid
* right
* some changes for stripping data
* clean up
* check exist
* shouldn't be possible
* should be success if here
* no delete
* ""
* rm
* rm
* cleanup
* one list comp
* more clear
* not used
* add back legit source
* clean up
* copy files we don't need to strip (need sas to copy between accounts)
* default to strip
* revert
* add job
* add job (#52)
* add body
* Bump submodules (#53)
* add job
* add body
* add .
* rm that
* need submodules too
* better message
* monday at 4am
* i thought i was still est lol
* spinner POC cpu
* should be single threaded
* how tf did that get added
* allow non offscreen
---------
Co-authored-by: Comma Device <device@comma.ai>
[cabana] Improve signal timing calculation in findsingal.cc
The variables `first_sec` and `last_sec` have been separately initialized first before being used in `std::minmax` for signal timings. This resolves compilation warnings and potential risks of using temporary values of these variables.
* Update SConstruct allow no-inline
Allows disabling inline functions when compiling to help with the debugging process
* Update SConstruct
typos
* Update SConstruct
* Remove laika submodule
* Remove laika check for minimal builds
* Fix minimal build check
* Bring back exclude for opendbc in codespell
* Fix typo
* Copy GNSS indices from laika
* Delete laika dependencies
* test modem recovery
* static analysis
* also test lte reload
* this should just be try catched as well
* maybe we can find a better way than this
* rm the test
* make it clear
---------
Co-authored-by: Comma Device <device@comma.ai>
* VW MQB: Add FW for 2021 Tiguan
route name:f3946aa3bdb4bfc7|2023-11-06--14-53-07--0
The carParams always show transmission as "Hyundai", cant get VW format
* add correct transmission
---------
Co-authored-by: Shane Smiskol <shane@smiskol.com>
* VW: Add fw-versions for Passat GTE 2018
* Remove duplicate fw-versions for PASSAT_MK8
* Removed duplicate fw version for PASSAT_MK8
One of them included \023 and the other \x13 which was interpreted as the same character in python
* Apply suggestions from code review
---------
Co-authored-by: Shane Smiskol <shane@smiskol.com>
* Added 2023 Kia Stinger Fingerprint
* Fixed type on FP value
* Fixed typo on fingerprint value
* update docs
---------
Co-authored-by: Shane Smiskol <shane@smiskol.com>
* added GSF ECU values
* Added Lexus GSF data
* added route for GSF
* test RC code
* revert fingerprints back from RC test to GSF
* fixed type for route
* specify route segment for GSF
* added GSF to torque substitute
* removed year designation for GSF
* added MY back to all "Lexus GSF"
* removed route, don't think it does anything
* move GSF ecu values to better place
* remove whitespace from toyota > interface.py
* added in public route for LEXUS_GSF
* added GSF to docs
* update test route
* update test route
* update 266 Supported cars
* trying different dbc
* updated to working route
* clean up
* add to releases
* updated test route
* new route
* docs
* slightly better torque params
---------
Co-authored-by: cchui <cchui@eogresources.com>
Co-authored-by: Shane Smiskol <shane@smiskol.com>
* jenkins: use build.py to manage cache size
* label
* set pp
* double
* cleanup
* non mimimal build on PC
---------
Co-authored-by: Justin Newberry <justin@comma.ai>
* remove separate previous route carparams from each daemon and add centrally to controlsd
* extract out sigint handler
* make process replay work for torqued
* don't write param if None
* mapsd -> cpu
* link directly to mesa
* Fix gitignore
* without launcher script
* dont change that
* dont need that
* add to files_common
* rename to configure cpu rendering
* without a symlink!
* update time refs
* update ref
* update ref
* remove duplicate include
* bump up again
---------
Co-authored-by: Comma Device <device@comma.ai>
* cleanup and fix test
* sa
* fix test failing
* increase tolerance more for stddev
* increase that more
---------
Co-authored-by: Comma Device <device@comma.ai>
* 6f6e3749-1b7c-42e8-a33b-03929b7fc476/700
* oops deleted too much
* 1b4308b7-a659-4ebd-b4c6-c81c1c3890f8/700
* 1be192f3-f407-4217-9757-78b9ad92750a/700
* remove some todos
* more cleanup in lat planner
* vego > min_speed
* regen and update process replay refs
* update model replay ref
* update model replay ref commit again
* Revert "update model replay ref commit again"
This reverts commit 922cb796b8dfe264b0cce7a18206bb898b18bcb3.
* update again
* bump cereal
* DummyFrameReader
* dummy_dcam_if_missing flag
* Blank dcamera for all neo segments, as dmonitoringd does not support neo camera feeds
* Remove trailing whitespace
* zero_dcamera staticmethod
* enable dmonitoring in test_regen
* Simplify. User decides wether to use dummy or not
* Moving some stuff
* rename to dummy_driver_cam
// Comment to add to the PR if no template has been used
const NO_TEMPLATE_MESSAGE =
"It looks like you didn't use one of the Pull Request templates. Please check [the contributing docs](https://github.com/commaai/openpilot/blob/master/docs/CONTRIBUTING.md). \
Also make sure that you didn't modify any of the checkboxes or headings within the template.";
stale-pr-message:'This PR has had no activity for ${{ env.DAYS_BEFORE_PR_STALE }} 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.'
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,car port"# if wip or it needs testing from the community, don't mark as stale
* Message parsing improvements with the latest firmware update: https://github.com/sunnypilot/panda/tree/test-escc-smdps
* UI Updates
* NEW❗: Visuals: Display Feature Status toggle
* Display the statuses of certain features on the driving screen
* NEW❗: Visuals: Enable Onroad Settings toggle
* Display the Onroad Settings button on the driving screen to adjust feature options on the driving screen, without navigating into the settings menu
* REMOVED: "Device ambient" temperature option on the sidebar
* FIXED: New comma 3X support
* FIXED: New comma eSIM support
* Bug fixes and performance improvements
sunnypilot - 0.9.5.3 (2023-12-24)
========================
* UPDATED: Dynamic Experimental Control (DEC)
* Synced with dragonpilot-community/dragonpilot:lp-dp-beta2 commit 578d38b
* UPDATED: Driving Model Selector v2
* Driving models sort in descending order based on availability date
* Experimental/unmerged driving models are only available in "dev-c3" branch
* To select and use experimental driving models, navigate to "Software" panel, select the "dev-c3" branch, and check for update
* UPDATED: Vision-based Turn Speed Control (V-TSC) implementation
* Refactored implementation thanks to pfeiferj!
* More accurate and consistent velocity calculation to achieve smoother longitudinal control in curves
* NEW❗: Speed Limit Warning
* Display alert and/or chime to warn the driver when the cruising speed is faster than the speed limit plus the Warning Offset
* Customizable Warning Offset, independent of Speed Limit Control (SLC)'s Limit Offset
* UPDATED: Speed Limit Source Policy
* Selectable speed limit source for Speed Limit Control and Speed Limit Warning
* Applicable to: Speed Limit Control, Speed Limit Warning
* UPDATED: Speed Limit Control (SLC)
* Engage Mode: Removed "Warning Only" mode - this has been replaced by the new Speed Limit Warning sub-menu
* UPDATED: OpenStreetMap (OSM) implementation
* Refactored implementation thanks to pfeiferj!
* Less resource impact
* Significantly smaller sizes with databases
* All regions are available to download
* Weekly map updates thanks to pfeiferj!
* Increased the font size of the road name
* C3X-specific changes
* Altitude (ALT.) display on Developer UI
* Current street name on top of driving screen when "OSM Debug UI" is enabled
* UPDATED: Map-based Turn Speed Control (M-TSC) implementation
* Only available in "staging-c3" and "dev-c3" branches. If you are using "release-c3" branch, navigate to "Software" panel, select the desired target branch, and check for update
* Refactored implementation thanks to pfeiferj!
* Based on the new OpenStreetMap implementation
* Improved predicted curvature calculations from OpenStreetMap data
* UI updates
* RE-ENABLED: Navigation: Full screen support
* Display the map view in full screen
* To switch back to driving view, tap on the border edge
* Hyundai Bayon Non-SCC 2019 support thanks to polein78!
sunnypilot - 0.9.5.2 (2023-12-07)
========================
* NEW❗: MADS: Allow Navigate on openpilot in Chill Mode
* Allow navigation to feed map view into the driving model while using Chill Mode
* Support all platforms, including platforms that do not support openpilot longitudinal control & Experimental Mode
* NEW❗: Neural Network Lateral Controller
* Formerly known as "NNFF", this replaces the lateral "torque" controller with one using a neural network trained on each car's (actually, each separate EPS firmware) driving data for increased controls accuracy
* Contact @twilsonco in the sunnypilot Discord server with feedback, or to provide log data for your car if your car is currently unsupported
* NEW❗: Driving Model Selector
* Easily switch between driving models without reinstalling branches. Offering immediate access to the latest models upon release
* An internet connection is required for downloading models. Each model switch currently involves downloading the model again. Future updates may allow for offline switching
* Warning is displayed for metered connections to avoid unexpected data usage if on cellular data
* Change driving models via **Settings -> Software -> Current Driving Model**.
* NEW❗: Hyundai CAN longitudinal:
* NEW❗: Enable radar tracks for certain Santa Fe platforms
* Internal Combustion Engine (ICE) 2021-23
* Hybrid 2022-23
* Plug-in Hybrid 2022-23
* NEW❗: Lane Change: When manually braking with steering engaged, turning on the turn signal will default to Nudge mode
* Volkswagen MQB CC only platforms (radar or no radar) support thanks to jyoung8607!
sunnypilot - 0.9.5.1 (2023-11-17)
========================
* UPDATED: Synced with commaai's master commit e94c3c5
* NEW❗: Farmville driving model
* NEW❗: Onroad Settings Panel
* Onroad buttons (i.e., DLP, GAC) moved to its dedicated panel
* Driving Personality
* Dynamic Lane Profile (DLP)
* Dynamic Experimental Control (DEC)
* Speed Limit Control (SLC)
* NEW❗: Display main feature status on onroad view in real-time
* GAP - Driving Personality
* DLP - Dynamic Lane Profile
* DEC - Dynamic Experimental Control
* SLC - Speed Limit Control
* NEW❗: Hyundai CAN longitudinal: Parse lead info for camera-based SCC platforms
*Improve lead tracking when using openpilot longitudinal
* NEW❗: Dynamic Experimental Control (DEC) thanks to dragonpilot-community!
*Automatically determines and selects between openpilot ACC and openpilot End to End longitudinal based on conditions for a more natural drive
* Dynamic Experimental Control is only active while in Experimental Mode
* When Dynamic Experimental Control is ON, initially setting cruise speed will set to the vehicle's current speed
* NEW❗: Hyundai CAN longitudinal:
* NEW❗: Parse lead info for camera-based SCC platforms
* Improve lead tracking when using openpilot longitudinal
* NEW❗: Parse lead distance to display on car cluster
* Introduced better lead distance calculation to display on the car's cluster, replacing the binary "lead visible" indication on the SCC cluster
* Lead distance is now categorized into different ranges for more detailed and comprehensive information to the driver similar to how stock ACC does it
* NEW❗: Parse speed limit sign recognition from camera for certain supported platforms
* NEW❗: Subaru - Stop and Go auto-resume support thanks to martinl!
* Global (excluding Gen 2 and Hybrid) and Pre-Global support
@@ -98,7 +98,7 @@ Please refer to [Recommended Branches](#-recommended-branches) to find your pref
* sunnypilot not installed or you installed a version before 0.8.17?
1. [Factory reset/uninstall](https://github.com/commaai/openpilot/wiki/FAQ#how-can-i-reset-the-device) the previous software if you have another software/fork installed.
2. After factory reset/uninstall and upon reboot, select `Custom Software` when given the option.
3. Input the installation URL per [Recommended Branches](#-recommended-branches). Example: ```bit.ly/sp-release-c3``` [^4] (note: `https://` is not requirement on the comma three)
3. Input the installation URL per [Recommended Branches](#-recommended-branches). Example: ```release-c3.sunnypilot.ai``` [^4] (note: `https://` is not requirement on the comma three)
4. Complete the rest of the installation following the onscreen instructions.
* sunnypilot already installed and you installed a version after 0.8.17?
@@ -107,6 +107,12 @@ Please refer to [Recommended Branches](#-recommended-branches) to find your pref
3. At the `Target Branch` option, press `SELECT` to open the Target Branch selector.
4. Scroll to select the desired branch per [Recommended Branches](#-recommended-branches). Example: `release-c3`
Requires further assistance with software installation? Join the [sunnypilot Discord server](https://discord.sunnypilot.com) and message us in the `#installation-help` channel.
* once you open a PR, the bounty is locked to you until you stop working on it
* open a ticket at [comma.ai/support](https://comma.ai/support/shop-order) with links to your PRs to claim
* get an extra 20% if you redeem your bounty in [comma shop](https://comma.ai/shop) credit (including refunds on previous orders)
New bounties can be proposed in the [**#contributing**](https://discord.com/channels/469524606043160576/1183173332531687454) channel in Discord.
## Issue bounties
We've tagged bounty-eligible issues across openpilot and the rest of our repos; check out all the open ones [here](https://github.com/orgs/commaai/projects/26/views/1). These bounties roughly work out like this:
***$100** - a few hours of work for an experienced openpilot developer; a good intro for someone new to openpilot
***$300** - a day of work for an experienced openpilot developer
***$500** - a few days of work for an experienced openpilot developer
***$1k+** - a week or two of work (could be less for the right person)
## Car bounties
The car bounties only apply to cars that have a path to ship in openpilot release, which excludes unsupportable cars (e.g. Fords with a steering lockout) or cars that require extra hardware (Honda Accord with serial steering).
#### Brand or platform port - $2000
Example PR: [commaai/openpilot#23331](https://github.com/commaai/openpilot/pull/23331)
This is for adding support for an entirely new brand or a substantially new ADAS platform within a brand (e.g. the Volkswagen PQ platform).
#### Model port - $250
Example PR: [commaai/openpilot#30245](https://github.com/commaai/openpilot/pull/30245)
This is for porting a new car model that runs on a platform openpilot already supports.
In the average case, this is a few hours of work for an experienced software developer.
This bounty also covers getting openpilot supported on a previously unsupported trim of an already supported car, e.g. the Chevy Bolt without ACC.
#### Reverse Engineering a new Actuation Message - $300
This is for cars that are already supported, and it has three components:
* reverse a new steering, adaptive cruise, or AEB message
* merge the DBC definitions to [opendbc](http://github.com/commaai/opendbc)
* merge the openpilot code to use it and post a demo route
The control doesn't have to be perfect, but it should generally do what it's supposed to do.
### Specific Cars
#### Rivian R1T or R1S - $3000
Get a Rivian driving with openpilot.
Requires a merged port with lateral control and at least a POC of longitudinal control.
#### Toyota SecOc - $5000
We're contributing $5k to the [community-organized bounty](https://github.com/commaai/openpilot/discussions/19932).
#### Chevy Bolt with SuperCruise - $2500
The Bolt is already supported on the trim with standard ACC. Get openpilot working on the trim with SuperCruise. It must be a normal install: no extra pandas or other hardware, no ECU reflashes, etc. The full bounty is for a port with lateral and longitudinal control. $1500 of the bounty can be claimed with a lateral-only port.
A supported vehicle is one that just works when you install a comma device. All supported cars provide a better experience than any stock system. Supported vehicles reference the US market unless otherwise specified.
|Volkswagen|Touran 2016-23|Adaptive Cruise Control (ACC) & Lane Assist|openpilot available[<sup>1,13</sup>](#footnotes)|0 mph|0 mph|[](##)|[](##)|<details><summary>Parts</summary><sub>- 1 J533 connector<br>- 1 USB-C coupler<br>- 1 comma 3X<br>- 1 harness box<br>- 1 long OBD-C cable<br>- 1 mount<br>- 1 right angle OBD-C cable (1.5 ft)<br><a href="https://comma.ai/shop/comma-3x.html?make=Volkswagen&model=Touran 2016-23">Buy Here</a></sub></details>||
### Footnotes
<sup>1</sup>openpilot Longitudinal Control (Alpha) is available behind a toggle; the toggle is only available in non-release branches such as `devel` or `master-ci`. <br />
@@ -284,12 +305,13 @@ A supported vehicle is one that just works when you install a comma device. All
<sup>5</sup>2019 Honda Civic 1.6L Diesel Sedan does not have ALC below 12mph. <br />
<sup>6</sup>Requires a <a href="https://comma.ai/shop/can-fd-panda-kit" target="_blank">CAN FD panda kit</a> if not using comma 3X for this <a href="https://en.wikipedia.org/wiki/CAN_FD" target="_blank">CAN FD car</a>. <br />
<sup>7</sup>In the non-US market, openpilot requires the car to come equipped with EyeSight with Lane Keep Assistance. <br />
<sup>8</sup>openpilot operates above 28mph for Camry 4CYL L, 4CYL LE and 4CYL SE which don't have Full-Speed Range Dynamic Radar Cruise Control. <br />
<sup>9</sup>Not including the China market Kamiq, which is based on the (currently) unsupported PQ34 platform. <br />
<sup>10</sup>Refers only to the MQB-based European B8 Passat, not the NMS Passat in the USA/China/Mideast markets. <br />
<sup>11</sup>Some Škoda vehicles are equipped with heated windshields, which are known to block GPS signal needed for some comma 3X functionality. <br />
<sup>12</sup>Only available for vehicles using a gateway (J533) harness. At this time, vehicles using a camera harness are limited to using stock ACC. <br />
<sup>13</sup>Model-years 2022 and beyond may have a combined CAN gateway and BCM, which is supported by openpilot in software, but doesn't yet have a harness available from the comma store. <br />
<sup>8</sup>Enabling longitudinal control (alpha) will disable all EyeSight functionality, including AEB, LDW, and RAB. <br />
<sup>9</sup>openpilot operates above 28mph for Camry 4CYL L, 4CYL LE and 4CYL SE which don't have Full-Speed Range Dynamic Radar Cruise Control. <br />
<sup>10</sup>Not including the China market Kamiq, which is based on the (currently) unsupported PQ34 platform. <br />
<sup>11</sup>Refers only to the MQB-based European B8 Passat, not the NMS Passat in the USA/China/Mideast markets. <br />
<sup>12</sup>Some Škoda vehicles are equipped with heated windshields, which are known to block GPS signal needed for some comma 3X functionality. <br />
<sup>13</sup>Only available for vehicles using a gateway (J533) harness. At this time, vehicles using a camera harness are limited to using stock ACC. <br />
<sup>14</sup>Model-years 2022 and beyond may have a combined CAN gateway and BCM, which is supported by openpilot in software, but doesn't yet have a harness available from the comma store. <br />
## Community Maintained Cars
Although they're not upstream, the community has openpilot running on other makes and models. See the 'Community Supported Models' section of each make [on our wiki](https://wiki.comma.ai/).
@@ -318,7 +340,7 @@ If your car has the following packages or features, then it's a good candidate f
### FlexRay
All the cars that openpilot supports use a [CAN bus](https://en.wikipedia.org/wiki/CAN_bus) for communication between all the car's computers, however a CAN bus isn't the only way that the cars in your computer can communicate. Most, if not all, vehicles from the following manufacturers use [FlexRay](https://en.wikipedia.org/wiki/FlexRay) instead of a CAN bus: **BMW, Mercedes, Audi, Land Rover, and some Volvo**. These cars may one day be supported, but we have no immediate plans to support FlexRay.
All the cars that openpilot supports use a [CAN bus](https://en.wikipedia.org/wiki/CAN_bus) for communication between all the car's computers, however a CAN bus isn't the only way that the computers in your car can communicate. Most, if not all, vehicles from the following manufacturers use [FlexRay](https://en.wikipedia.org/wiki/FlexRay) instead of a CAN bus: **BMW, Mercedes, Audi, Land Rover, and some Volvo**. These cars may one day be supported, but we have no immediate plans to support FlexRay.
Our software is open source so you can solve your own problems without needing help from others. And if you solve a problem and are so kind, you can upstream it for the rest of the world to use. Check out our [post about externalization](https://blog.comma.ai/a-2020-theme-externalization/).
Most open source development activity is coordinated through our [GitHub Discussions](https://github.com/commaai/openpilot/discussions) and [Discord](https://discord.comma.ai). A lot of documentation is available at https://docs.comma.ai and on our [blog](https://blog.comma.ai/).
Our software is open source so you can solve your own problems without needing help from others. And if you solve a problem and are so kind, you can upstream it for the rest of the world to use. Check out our [post about externalization](https://blog.comma.ai/a-2020-theme-externalization/). Development activity is coordinated through our GitHub Issues, [GitHub Discussions](https://github.com/commaai/openpilot/discussions), and [Discord](https://discord.comma.ai).
### Getting Started
* Setup your [development environment](../tools/)
* Join our [Discord](https://discord.comma.ai)
* Make sure you have a [GitHub account](https://github.com/signup/free)
* Fork [our repositories](https://github.com/commaai) on GitHub
* Setup your [development environment](../tools/)
* Read about the [development workflow](WORKFLOW.md)
* Join our [Discord](https://discord.comma.ai)
* Docs are at https://docs.comma.ai and https://blog.comma.ai
## What contributions are we looking for?
**openpilot's priorities are [safety](SAFETY.md), stability, quality, and features, in that order.** openpilot is part of comma's mission to *solve self-driving cars while delivering shippable intermediaries*, and **all** development is towards that goal.
### What gets merged?
The probability of a pull request being merged is a function of its value to the project and the effort it will take us to get it merged.
If a PR offers *some* value but will take lots of time to get merged, it will be closed.
Simple, well-tested bug fixes are the easiest to merge, and new features are the hardest to get merged.
* simple car model port: https://github.com/commaai/openpilot/pull/30245
* car brand port: https://github.com/commaai/openpilot/pull/23331
### What doesn't get merged?
* **arbitrary style changes**: code is art, and it's up to the author to make it beautiful
* **500+ line PRs**: clean it up, break it up into smaller PRs, or both
* **PRs without a clear goal**: every PR must have a singular and clear goal
* **UI design changes**: we do not have a good review process for this yet
* **New features**: We believe openpilot is mostly feature-complete, and the rest is a matter of refinement and fixing bugs. As a result of this, most feature PRs will be immediately closed, however the beauty of open source is that forks can and do offer features that upstream openpilot doesn't.
### First contribution
Try out some of these first pull requests ideas to dive into the codebase:
* Tackle an open [good first issue](https://github.com/commaai/openpilot/issues?q=is%3Aissue+is%3Aopen+label%3A%22good+first+issue%22)
Check out any [good first issue](https://github.com/commaai/openpilot/issues?q=is%3Aissue+is%3Aopen+label%3A%22good+first+issue%22) to get started.
### What do I need to contribute?
A lot of openpilot work requires only a PC, and some requires a comma device.
Most car-related contributions require access to that car, plus a comma device installed in the car.
## Pull Requests
Pull requests should be against the master branch. Welcomed contributions include bug reports, car ports, and any [open issue](https://github.com/commaai/openpilot/issues). If you're unsure about a contribution, feel free to open a discussion, issue, or draft PR to discuss the problem you're trying to solve.
Pull requests should be against the master branch. If you're unsure about a contribution, feel free to open a discussion, issue, or draft PR to discuss the problem you're trying to solve.
A good pull request has all of the following:
* a clearly stated purpose
@@ -31,18 +55,11 @@ A good pull request has all of the following:
* if you've improved your car's tuning, post before and after plots
* passes the CI tests
### Car Ports
## Contributing without Code
We've released a [Model Port guide](https://blog.comma.ai/openpilot-port-guide-for-toyota-models/) for porting to Toyota/Lexus models.
If you port openpilot to a substantially new car brand, see this more generic [Brand Port guide](https://blog.comma.ai/how-to-write-a-car-port-for-openpilot/).
## Testing
### Automated Testing
All PRs and commits are automatically checked by GitHub Actions. Check out `.github/workflows/` for what GitHub Actions runs. Any new tests should be added to GitHub Actions.
### Code Style and Linting
Code is automatically checked for style by GitHub Actions as part of the automated tests. You can also run these tests yourself by running `pre-commit run --all`.
* Report bugs in GitHub issues.
* Report driving issues in the `#driving-feedback` Discord channel.
* Consider opting into driver camera uploads to improve the driver monitoring model.
* Connect your device to Wi-Fi regularly, so that we can pull data for training better driving models.
* Run the `nightly` branch and report issues. This branch is like `master` but it's built just like a release.
* Annotate images in the [comma10k dataset](https://github.com/commaai/comma10k).
@@ -61,11 +61,10 @@ to go back to the default values.
1) Create a free mapbox account. Account will ask for a credit card for verification. You will not be charged for the free tier.
2) On the Dashboard, you will see a section called Access Tokens. Click `Create a Token`. Name it whatever you like. Set the scopes to allow everything for both Public and Secret. Copy both of these keys. **YOU WON'T BE ABLE TO ACCESS THE SECRET KEY AFTER THIS WINDOW.**
3) On your C3, go to `SP - Visuals` and toggle `Enable Mapbox Navigation*`. Accept the reboot.
4) Once rebooted, connect your C3 to a network with internet access and find the C3’s IP address.
5) In a browser, navigate to that IP with **port 8082** (i.e 192.168.1.69:8082). You should be greeted with the Comma logo and a public key input field.
6) Paste your Public token (pk.xx), click enter, paste your Secret key (sk.xx), click enter. You can now search for places. This page will be available at your devices’s IP address/port 8082 to search for destinations.
7) To set Home and Work addresses, search for a place, select Home/Work from the dropdown and click Navigate. For non-Home/Work destinations, select Recent Places.<br>*At this time, it is not possible to search directly on the C3.*
3) Once rebooted, connect your C3 to a network with internet access and find the C3’s IP address.
4) In a browser, navigate to that IP with **port 8082** (i.e 192.168.1.69:8082). You should be greeted with the Comma logo and a public key input field.
5) Paste your Public token (pk.xx), click enter, paste your Secret key (sk.xx), click enter. You can now search for places. This page will be available at your devices’s IP address/port 8082 to search for destinations.
6) To set Home and Work addresses, search for a place, select Home/Work from the dropdown and click Navigate. For non-Home/Work destinations, select Recent Places.<br>*At this time, it is not possible to search directly on the C3.*
**TIPS:**
- If your C3 is showing a black screen that says “Map Loading”, performing a reboot via the UI should fix it.
Aside from the ML models, most tools used for openpilot development are in this repo.
Most development happens on normal Ubuntu workstations, and not in cars or directly on comma devices. See the [setup guide](../tools) for getting your PC setup for openpilot development.
## Quick start
```bash
# get the latest stuff
git pull
git submodule update --init --recursive
# update dependencies
tools/ubuntu_setup.sh
# build everything
scons -j$(nproc)
# build just the ui with either of these
scons -j8 selfdrive/ui/
cd selfdrive/ui/ && scons -u -j8
# test everything
pytest .
# test just logging services
cd system/loggerd && pytest .
# run the linter
pre-commit run --all
```
## Testing
### Automated Testing
All PRs and commits are automatically checked by GitHub Actions. Check out `.github/workflows/` for what GitHub Actions runs. Any new tests should be added to GitHub Actions.
### Code Style and Linting
Code is automatically checked for style by GitHub Actions as part of the automated tests. You can also run these tests yourself by running `pre-commit run --all`.
# This document is still a WIP and I used ChatGPT to help me put things down in writing as there's a lot to cover. Feel free to help improve it.
## Introduction
Welcome to the ESCC (Enhanced Smart Cruise Control) IONIQ PHEV Guide. This document provides detailed instructions for connecting and configuring the ESCC Interceptor board with your Hyundai IONIQ Plug-in Hybrid Electric Vehicle (PHEV). Our goal is to simplify the wiring process, enhance vehicle functionality, and ensure a seamless integration with aftermarket components like the Panda device.
## Updated info
On july 28th this guide was updated to rework it's setup and now it uses the relay harness box instead of the custom ESCC board previously mentioned. This simplifies the setup significantly, adds a layer of security with the relay, and makes it even more accessible to use.
## Terminology and Abbreviations
- **ESCC**: Enhanced Smart Cruise Control
- **PANDA**: A universal car interface
- **C-CAN**: Chassis Controller Area Network
- **L-CAN**: Local Controller Area Network
- **IGPM**: Ignition Power Module
## Components
### Harness Female Connector
This connector originates from the car's harness and plugs directly into the radar's male connector.
- Pin 18: L-CAN HIGH (***OPTIONAL, IF EQUIPPED***)
- Pin 20: L-CAN LOW (***OPTIONAL, IF EQUIPPED***)
- Pin 22: C-CAN HIGH
- Pin 24: C-CAN LOW
- Pin 26: GND
#### IONIQ 2203663 (Car Harness, Female):
- Pin 1: 12v -> Molex Pin 12
- Pin 4: GND -> Molex Pin 1
- Pin 7: C-CAN LOW -> Molex Pin 6
- Pin 8: C-CAN HIGH -> Molex Pin 4
- Pin 9: L-CAN LOW -> Molex Pin 10
- Pin 10: IGPM (IGN) -> Molex Pin 2
- Pin 18: L-CAN HIGH -> Molex Pin 8
#### IONIQ 2203663 (Car Radar, Male):
- Molex Pin: 14 -> Pin 1: 12v
- Molex Pin: 26 -> Pin 4: GND
- Molex Pin: 24 -> Pin 7: C-CAN LOW
- Molex Pin: 22 -> Pin 8: C-CAN HIGH
- Molex Pin: 20 -> Pin 9: L-CAN LOW
- Molex Pin: 16 -> Pin 10: IGN
- Molex Pin: 18 -> Pin 18: L-CAN HIGH
## Disclaimer
Remember, this guide is for educational purposes, and modifications to your vehicle are performed at your own risk. Always ensure safety and compliance with local automotive regulations.
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.