* Remove redundant git lfs pull command
The `git lfs pull` command in the GitHub workflow is redundant and has been removed. Additionally, the `sync-lfs.sh` script has been updated to push all LFS objects to the origin repository.
* using force push instead of trying to merge
* Bumping ssh agent to 0.9.0
* Syntax
---------
Co-authored-by: Jason Wen <haibin.wen3@gmail.com>
* fixing build number + forcing run to test
* Cleaning up and changing the process for the auto builds
* updating the logic for the extra verson identifier
* Return to default master-dev-c3
* if this is MR on gitlab, we also publish prebuilt on private gitlab for internal testing
* Silly formatting issue
* MADS: HKG CAN-FD: Disallow cruise buttons to engage when pcmCruiseSpeed is off
* handle states properly
* this is better
* make sure main button is pressed
* oops flipped main
* same behavior
* handle cruise main button universally
* both
* not needed
* oops
* wtf how did i miss
* car: Check params before car state is updated
* read params in a thread instead
* initialize list
* Do this instead
* type hint
* ParamManager
* make them internal
* MADS: Map cruise main and lateral buttons to button events
* MADS: Map cruise main and lateral buttons to button events
* different style
* nah
(cherry picked from commit 4d7afe3a7b)
* reimplement
* all
* right sz
* what is this
* Revert "what is this"
This reverts commit 3ff771926f109452a055dfb61cee06b34e498164.
* ok
* big
* update intrs
* fl
* more specifuc
* fish
* revert
* revert
---------
Co-authored-by: Comma Device <device@comma.ai>
Enable Sunnylink by default
Sunnylink was previously conditionally enabled based on build metadata. This change ensures that Sunnylink is enabled by default, facilitating immediate access for all builds.
* use new opendbc api
* export pandad_python
* merge master
* merge master
* bump opendbc
* bump opendbc
* improve func
* keep interface unchanged
* fix test_car_interfaces
* bump opendbc
* bump opendbc
* fix test_models
* the interface now has to convert from can capnp to list, so we should include this time
* goes from ~210 to ~240 mean ms real time
* remoe busTime
* lowercase sendcan
* consistent msgtype
* bump
* bump
* not used in lat_mpc
* space
* bump to master
---------
Co-authored-by: Shane Smiskol <shane@smiskol.com>
* Use livePose instead of llk
* Update process replay sockets
* Fix import
* Fix calib
* Fix field name
* Dont store device_from_calib
* Update ref commit
* use zstd in test_onroad
* debug
* now leans towards 0.4 instead of 0.5
* 5x runs
* better
* more
* Update selfdrive/test/test_onroad.py
* revert Jenkinsfile
* and this
* zstd uploader
* fix that
* fix name of function
* comment
* log failed
* fix comma_api_source for routes with both bz2 and zst rlogs
* TODO
* 10-14 achieves almost no benefit on qlogs in a few cases, but takes 2x the time
* these aren't written out
* regen: specify any list of sources
ooh this is pretty nice
* regen and process replay
* damn, actually we don't need all this (cool tho)
Revert "regen: specify any list of sources"
This reverts commit ceb0b4abed9ad463a9fe98d9b98a05875a52806f.
* just let it auto resolve
* fix athenad/uploader tests
* zst here too
* TODOs
* yes
* Revert "TODOs"
This reverts commit 8c7da1dbd0340c72290b5eb5563b642080ddc131.
* Revert "zst here too"
This reverts commit 23b0023ddfd22c8090be7a7caa09e7026a12aa5c.
* Revert "just let it auto resolve"
This reverts commit f296d62424227ad05facc62abc18a6f81b474e84.
* Revert "regen and process replay"
This reverts commit 0768330e96974a42616d229d159780619d049cd0.
* revert readme
* not in save_log either
* lfg
* Revert "lfg"
This reverts commit 3718559c6c4de7d1f0c80dc9f1a1d335fe679a89.
* espActive: `IMMEDIATE_DISABLE` -> `SOFT_DISABLE`
* only stock long
* just soft disable for now
---------
Co-authored-by: Shane Smiskol <shane@smiskol.com>
* Reapply "selfdrive/car: ban imports from external modules" (#32993)
This reverts commit 35a4a773f1.
* controls will just use controls
* also these
* ignore
* improved PlotJuggler layout for lat accel controller
* help estimate steerActuatorDelay
* update Actuator Performance, add Vehicle Dynamics
* disable Y limits on actuator performance because sunny
* apply delay estimation feedback from harald
* gc extra custom series that PJ copied in
* label wordsmithing
* formatting
* function signatures didn't match
* function signatures didn't match
* filtered and raw mean something totally different when it comes to params
filtered and raw mean something totally different when it comes to params
* cmt
* probably better for organization
* add todo
* STASH
* revert some stuff
* clean up
* oof
* how about this
* here
* rename
* revert
* revert this too
* can do this
* ugh inside TorqueBuckets it implicitly limits steer torque to 50%!!!!!!!!
* fix
* move up
* bfg
* filter repo is the new shit
* down to 27M
* move big files to lfs; remove external and phonelibs
* wip - rebase devel; don't delete external and phonelibs anymore
* wip - rebase devel hacks
* wip - rebase devel updates
* wip - rebase updates; lfs updates
* cleaned unused scripts
* wip - lfs fixes
* bfg with rebase with correct dates
* bfg script with cherry-pick method
* latest git-filter-repo analysis
* latest git-filter-repo 'before' analysis
* new lfs import
* latest git-filter-repo analysis
* lfs update; renamed rebase repos
* renamed scripts
* different tmp folders for rewrite scripts; lfs update
* gitattributes after lfs import
* tag-commit-map file with old tags pointing to old commits
* new tags
* final touches
* squash setup commits; cherry-pick validation; reverted to commaai remote
* removed rebase version
* 0.9.7 tag in tag-commit-map
* removed unused openpilot-release-archive
* fixed archive of old history because of 2 GB limit
* archive of old history push master first
* fix tags being deleted
* cleaning and more logs
* rewrite other branches with master history
* Former-commit-id
* updates to previous commits
* cleanup
---------
Co-authored-by: Adeeb Shihadeh <adeebshihadeh@gmail.com>
Co-authored-by: Maxime Desroches <desroches.maxime@gmail.com>
* update ci weekly report summary
* don't add skipped jobs to report
* uncomment job condition
* use jinja template
* add run number to failure links
* add run number to failure links
* Log for run #<num>
* use list
---------
Co-authored-by: Maxime Desroches <desroches.maxime@gmail.com>
* Chrysler Pacifica: combine 2017 and 2018 hybrids
torque params are not accurate for either (might be ~1.5 for both checking a few dongles)
* remove duplicate fingerprints
* combine docs lines
fix
* Increase traversal_limit_in_words to Fix Traversal Limit Errors
* just use log_from_bytes
* come on pycharm
* no free lunch
---------
Co-authored-by: Shane Smiskol <shane@smiskol.com>
This commit adds a new script, 'sync-lfs.sh'. This script assists by syncing the git large file storage (LFS) system. It backs up the current LFS configuration, uses the comma-separated configuration for operations like fetch and pull, and then restores the original configuration before pushing to the origin's main branch.
Refactored the command used to extract the version information in the .gitlab-ci.yml file. The new command targets the `#define COMMA_VERSION` line, going through 'common/version.h' and printing the version without quotation marks. This change affects both the "staging-c3" and "release-c3" branches.
This commit introduces a retry parameter under the default settings in .gitlab-ci.yml to improve the robustness of CI/CD pipeline. Additionally, an unnecessary whitespace has been removed from the file to maintain neat and clean code.
The commit introduces a new XML file, tools/External Tools.xml, laying out configurations for several external tool commands using Poetry and SCons. These tools include options for building in debug, clean, and release operations, enhancing the development process.
The build configurations for both Debug and Release modes have been updated to use the Poetry SCons tool. A new customTargets.xml file has been added to specify the build actions for Poetry SCons in Debug and Release targets.
Two new run configurations for Build Release and Build Debug have been added. These configurations include specific options, like location of working directory and external build option. Each configuration includes a unique name and target name.
The GitLab Runner installation and uninstallation scripts have been refined, including directory management improvements and user handling enhancements. The install script now exports the base directory for subprocess availability and validates script arguments presence. An uninstall script has been added for smoother user experience. Additionally, sudo permissions have been granted to the gitlab-runner user group in both scripts and the .gitlab-ci.yml file, enhancing workflow efficiency.
This update adds sudo permissions to the gitlab-runner user group. The .gitlab-ci.yml file has been altered to change user ownership of ${OUTPUT_DIR} in the after_script phase. In install_gitlab_runner.sh, we also add gitlab-runner to the sudo group and explicitly grant it NOPASSWD: ALL rights in the sudoers file.
A new function has been added to the gitlab_runner.sh script to check if a service is present on the system before trying to start or stop it. This will prevent potential errors caused by attempting to interact with nonexistent services.
The commit streamlines the 'rules' condition in our CI/CD pipeline configuration. It removes redundant and unnecessary conditions, leaving only the essential check for a new branch creation. This revision not only makes the code cleaner but also enhances our pipeline's clarity and readability.
* Dynamic End to End Longitudinal
* Revert "Dynamic End to End Longitudinal"
This reverts commit cec0fa8ad23b8473b27c58f6d20ba6d4d58e726e.
* Dynamic Longitudinal Controller
* Update CHANGELOGS.md
* add to builds
* Name change
* Toggle at wrong place :p
* oops take this out for now
* ZeroDivisionError
* add mpc mode to cereal
* add mpc mode to cereal
* Add UI button, replace MEMORY with DLC status in dev UI
* small change
* Higher stop counts
* add blinker logic
* initial set normally if DLC is on
* Update CHANGELOGS.md
* Fix
* fixes
* add dlc to Feature Status
* catch AttributeError
* fix
* add btn
* Dynamic Longitudinal Control (DLC) -> Dynamic Experimental Control (DEC)
* Capitalization on ACC and Blended
* add here
* sync
* sync
* Update CHANGELOGS.md
* cleanup
* more cleanup
* ui: Move toggle to the left of ParamControl
* blank icons
* tesla blue
* tesla blue
* Revert "ui: Move toggle to the left of ParamControl"
This reverts commit 3f6a3c831e5eebc740733ce625ef7dd11985c7e7.
* Revert "blank icons"
This reverts commit d778cf378b6374b89fa679b4f3358dbf48c89a06.
* Hyundai CAN Longitudinal: Parse lead info for camera-based SCC platforms
* typo
* another typo
* camera SCC has them flipped
* disable `radarUnavailble`
* Missing on these platforms
* parse lateral position of lead car from vision model output
* fix CP init
* Torque Lateral Control: Refactor settings
* don't need this
* only offroad allowed
* Don't need this
* allow when offroad
* gate them
* flipped
* handle them better
* cleaner
* remove duplicate
* toggle checks cleanup
* 2.5 second check
* trigger refresh when going offroad
* cleanup
* move toggle
* update title and description
* fix ampersand
* update live torque toggle
* live torqued every 2.5 second
* Subaru: Stop and Go autoresume
* Update CHANGELOGS.md
* Update CHANGELOGS.md
* do this
* sync with subaru-community
* sync for manual parking brake
* no slot machine pls
* fix this too
* flipped
* fix panda
* comments
* Update CHANGELOGS.md
* check every 2.5 second
* move them to a function
* more logical
* frame-based frequency sends
* type hinting
* should be tuple
* better grouping
* for docs regeneration
* same as upstream
* move it down
* cleanup
* use int flag and safety param, only block message when sng is allowed
* Do it here instead
* gate everything
* move comment
* block tx if sng is not allowed on certain platforms
* bump panda
* set core affinity and priority for gpxd and gpx_uploader
* use higher cores
* 4 is available offroad
* sync them all
* set for fleet manager
* only upload gpx while offroad
* ui: Singleton Feature Status text and color
* lower
* move color to eclipse to left of text
* move to right
* does not work
* cleanup
* more cleanup
* move a bit
* rename
* add commment
* ui: `SPOptionControl`
* This works
* only need to initialize
* Use QButtonGroup
* Add method to update specific labels
* Always init label with value
* add method to update external methods
* Update in another PR
* Unnecessary
* construct std map with defined range
* Test that it works
* In separate PR
* change var
* refreshLabels() instead
* Revert "refreshLabels() instead"
This reverts commit ceed9935cf48c7db974e45ab5ab496a7bc3f9f26.
* allow individual `refresh` classes
* now we can do it in another PR!
* General: OnroadScreenOff
* General: OnroadScreenOffBrightness
* General: BrightnessControl
* Controls: CameraOffset
* Controls: PathOffset
* Controls: AutoLaneChangeTimer
* Controls: GapAdjustCruiseMode
* Controls: TorqueFriction
* Controls: TorqueMaxLatAccel
* Controls: SpeedLimitOffsetType
* Controls: SpeedLimitValueOffset
* General: MaxTimeOffroad
* Visuals: DevUiInfo
* Visuals: ChevronInfo
* unused
* add comment
* ui: `SPOptionControl`
* This works
* only need to initialize
* Use QButtonGroup
* Add method to update specific labels
* Always init label with value
* add method to update external methods
* Update in another PR
* Unnecessary
* construct std map with defined range
* Test that it works
* In separate PR
* change var
* refreshLabels() instead
* Revert "refreshLabels() instead"
This reverts commit ceed9935cf48c7db974e45ab5ab496a7bc3f9f26.
* allow individual `refresh` classes
* now we can do it in another PR!
* ui: only allow single speed limit type to display
* Use unit conversion to set speed limit style if not nav
* Remove Speed Limit Style override options
* unused
* unused
* screenrecorder: small fixes
* remove QPushButton press, use mouse release instead
* Revert "remove QPushButton press, use mouse release instead"
This reverts commit 02821f63bf428332c41301a1aeb577b838ac6885.
* use horizonal layout to store buttons
* make button smaller and center text
* make it callable
* ui: disable longitudinal personality when GAC is enabled
* different profiles between stock and gac
* not this class
* update profiles in stock
* only checks once on init
* Match GAC names
* update description
* Add SP Jenkinsfile
* try this
* or this?
* New method
* good ol method
* how about this
* Revert "how about this"
This reverts commit a05741621f86ea65f727c1814c7fee0a819159ae.
* another new method
* try this
* Revert "try this"
This reverts commit a4456e4167bcb47b2ccd1c0c6b2544379563fcf9.
* Revert "another new method"
This reverts commit 7faea7661e5a660411a9bc68b48f119a1bfca1d2.
* skip for now
* do this
* set env
* this
* run in c3
* building now!
* No concurrent builds
* test no concurrent builds
* try discord notifier
* in description
* don't stop
* try this
* always send
* can we do this?
* in a script pls
* ready
* no need
* take a step back
* test
* misspell
* replace cred
* try this
* quote
* this should send it
* gave it wrong URL
* use explicit url for now
* Revert "use explicit url for now"
This reverts commit 932d0117d1e1720caf5d3f0c6af659457f438e7f.
* use explicit url for now
* try this
* working as-is!
* init
* looks good
* left done
* next to speedometer
* adjusted
* pass in x and y
* color & x
* spaced out properly next to speedometer!
* blindspots and pulsing rate
* fixes
* int instead
* Update CHANGELOGS.md
* add road edge block
* lower
* center a bit more
* that's it!
* only show green when hazard is on
* MADS: Cruise Main button engage with cruise state available
* simplify
* Revert "simplify"
This reverts commit 09276bc5d250d4357f593276686045e1359c0c37.
* Hyundai: Longitudinal support for CAN-based Camera SCC cars
* gate FCA12 send to CAMERA_SCC_CARS for now
* unused
* sync with upstream PR
* Update CHANGELOGS.md
* Update CHANGELOGS.md
* separate from upstream
* bump panda
* Auto Lane Change: Delay execution if lane change was blocked by BSM
* add toggle
* add changelogs
* flipped
* show/hide toggles with param updates
* fix docs
* 1 second instead
* Ram: always prioritize user button presses
* Custom Stock Long Control: manual presses need to reset timer
* separate logic for ram_cars
* handle FCA resume button differently
* Ram: CRUISE_BUTTONS rx/tx improvements
* unnecessary
* try forwarding everything
* only block tx for speed set/change buttons if cruise not engaged
* separate pacifica and ram
* flip around
* gotta send set buttons too
* rename
* don't check the buttons then
* bump panda
* cleanup
* General: use ListWidget
* Controls: use ListWidget
* Visuals: use ListWidget
* General: tuple list
* Controls: full refactor based on ListWidget change
* Controls: FINALLYYYYYYY
* Controls: move things around
* check actual toggle as well
* handle this
* Visuals: use ListWidget
* const for
* separate each panel into each file
* rename and move files
* Revert "rename and move files"
This reverts commit 5cfedabe2c6a2cb25355318107f119ade480baac.
* Revert "separate each panel into each file"
This reverts commit aa2c0e9162d5344a5cbbbfaf1ff2bd77d1e5a10b.
* take out toyota stock long for now
* remove scrollbar (use in other areas!)
* use ListWidget for toggles
* Revert "remove scrollbar (use in other areas!)"
This reverts commit 0b6bbc49e968598b204558060e04fb6f64ad1977.
* turn off scrollbar
* new fcr styling
* ui: display CPU temperature on sidebar
* ui: display CPU temperature on sidebar
* take it out for now
* Revert "take it out for now"
This reverts commit 3e7daa11f6a3e8ed6dec92df02bb4c390c99583c.
* small changes
* push this
* string
* flip???
* no setproperty
* check param every 1 second
* wrong param!
* do this
* flip them back
* don't need this
* Tmux error viewer: new file name convention and cleanup
* log in local_osm_install
* show on ui
* add this
* not needed
* just need these
* unused
* log custom_dep
* rename
* cleaner
* Custom Stock Longitudinal Control - base
* HKG
* simpler
* expose toggle
* allow events and engagements
* gate hysteresis for now
* screen tap SLC logic
* Honda
* update with submaster
* Revert "simpler"
This reverts commit 61b9a02faec721d4460c50c6e3f81b7d459d506b.
* send to cereal
* handle new pcm cruise engagement on HKG
* small cleanup
* define vehicle-specific lowest set speed
* not fitting
* new logic to help with weird rapid spam
* comment
* gaspressed don't override
* slow down button send when 2 values away
* less complex
* round them up
* Revert "less complex"
This reverts commit d850c404cccca5940f4e861c5df0317a38a4ab6b.
* gotta convert
* only slow down for slc and normal
* gaspress allow override
* no delay
* gate behind custom stock long
* add hysteresis to curve speed button sends
* remove limiting for Honda
* Revert "remove limiting for Honda"
This reverts commit b50f6199508e313fa1a30e1ab74970c507d89d78.
* 20/4 hz
* 25 times, just like old times
* god damn slow it down
* faster
* a tad bit faster
* slower at the end
* Volkswagen
* more checks
* log vw customs stock long
* change it up
* change it up for vw checks
* oops
* make sure it sends 10 times before changing to another button sets
* unnecessary
* use different count
* better logic
* bring back speed_diff
* vw: faster
* chrysler support
* mazda support
* fixup! chrysler support
* bump panda
* bump panda
* fix upstream merge
* Enable for Mazda
* initial and lowest set speed for all supported brands
* use buttonEvents from carstate for FCA and Mazda
* gate this behind non PCM only
* lower calls
* fix counter in button send
* log FCA and Mazda
* format
* just send one copy
* FCA: make SET+ set instead of resume
* Nicki Minaj Model (#28218)
* New model: 2ff7490f-8a2f-4c0d-87a8-b0fa3a4a6a71
* Updated model_replay_ref_commit
(cherry picked from commit 328b5d9d47)
* Revert "FCA: make SET+ set instead of resume"
This reverts commit 523a0537b728e8243e9cecb47169799d519aac3f.
* try this out
* try to match jvepilot's logic
* send with extra incrementing counts
* Revert "Revert "FCA: make SET+ set instead of resume""
This reverts commit f414a51e784b040d0f04881adcfc78d7faacda2a.
* have to block it
* lower send at 4 Hz
* can't be int
* 10 Hz max, 1 copy
* mazda send at 10 Hz
* chrysler at 10 hz
* send at 10 Hz
* remove this check for vw for now
* hkg can-fd go back to 4Hz, 1 copy
* hkg can-fd go back to 5Hz, 1 copy
* vw: different send freq logic
* Set cruise button every frame for FCA and HKG
* Set cruise button every frame for Mazda
* Revert "Set cruise button every frame for HKG"
* can't use brackets
* FCA: only send if counter has changed
* HKG CAN-FD: only send if counter has changed
* only up button frame if needed
* Revert "Set cruise button every frame for FCA"
* HKG CAN-FD: fix name
* FCA: handle resume button press engage cruisestate enabled
* FCA: separate RAM and non-RAM
* bump panda (test CAN Bus Disconnected bad commit)
* bump panda
* bump panda
* Revert "Nicki Minaj Model (#28218)"
This reverts commit 348f68b68c0bd2fcb6fdd6269e911d63ada968b4.
* gate behind customStockLong
---------
Co-authored-by: Mitchell Goff <mitchellgoffpc@gmail.com>
* GAC: Harald's method
* unused
* match harald's
* Revert "match harald's"
This reverts commit f2015eb2d8ffe80f8e02ffb92bd1d244dbfdb38c.
* try this
* Revert "try this"
This reverts commit 993adce26f594c5d2da1752657fe3af21c17cd27.
* do this instead
* fix
* cleanup
* align with harald's method
* fix init at 0
* use cereal
* unused
* maniac, aggro, stock
* unused
* fake lead when no lead
* print desired following distance from lead_0
* default at 3
* update carstate obj
* clip this
* use actual profiles
* cleanup
* scale maniac text smaller
* should be 1
* MADS: FCA Ram: add LKAS button
* FCA: add LKAS button and heartbit send
* bump panda
* non-Ram only
* non-Ram only too
* Revert "FCA: RAM HD - steer down to 0 (hardware modification required)"
* make sure cruise button is forwarded?!
* only check tx for CHRYSLER_PACIFICA, forward all cruise buttons for Ram
* add fw for not working ram 1500 and hd
* Revert "add fw for not working ram 1500 and hd"
This reverts commit 6f60b488ac1cebdbcafaa62ea4df097fd765b7d8.
* add fw for not working ram 1500 and hd
* use this logic
* fixup! use this logic
* does it help?
* Revert "does it help?"
This reverts commit 6cca9105459dd50d657ded94cba863baa0c6151d.
* Revert "fixup! use this logic"
This reverts commit 3a0d43ef76c762244e9edfab5497de9c55ccd468.
* Revert "use this logic"
This reverts commit 337eb1596f1a4e782d11fb15c0bdfe76763fd0d0.
* set event
* Revert "make sure cruise button is forwarded?!"
This reverts commit 1b51818c89fbf31315d1c992efb96298c7b63899.
* Revert "only check tx for CHRYSLER_PACIFICA, forward all cruise buttons for Ram"
This reverts commit c72ef05cf0f4450d21a2be7ddbc1c50273570cc4.
* Revert "Revert "FCA: RAM HD - steer down to 0 (hardware modification required)""
This reverts commit 0849fdc1f1557807af83d8c69fb7432743a95b2d.
* Can't use upstream to check EPS fw for minEnableSpeed
* reversed
* revert and wait for upstream
* bump panda
* Record from OnroadWindow
* not from here
* not needed
* make it whole
* Revert "make it whole"
This reverts commit 318c28c1ac921b52672fdd4665d903c2bdf5ef41.
* Revert "not needed"
This reverts commit 45d9707736b942b3a671bf853333a35741beb079.
* Revert "not from here"
This reverts commit 1bb002ff86630f3b1f6c6171606e4f7a8922253b.
* Revert "Record from OnroadWindow"
This reverts commit f4ceab4d9f4f1be992ba447c1474fdd47063c41b.
* cleaning
* cleaning
* 1 min per clip
* remove
* add back
* don't initialize lane change if road edge detected
* add event
* use frog's method
* sync name
* unused
* Only block during preLaneChange
* change it up
* UI: Display E2E Longitudinal status icon
* don't forget init
* take these out
* and this
* can't leave this
* spam the event
* publish here instead
* try this now
* expose the toggle
* Spam all the time!!!
* Spam all the time with this!
* see if this works
* new way to trigger
* fix
* another one
* more to it
* more of that
* move to car controls instead
* no longer needed
* 20 hz
* unnecessary
* send like this pls
* move to long planner
* let's see what it looks like first
* don't alert yet lol
* re-enable and try out prompt!
* move chime event to longitudinal_planner
* AlertStatus to userPrompt
* Add more reset conditions
* less conditions to test first
* louder sound
* permanent alert
* LOUDER SON!
* use stock prompt
* Revert "less conditions to test first"
This reverts commit b24a096e65e80f303f7d92072cdf273a30dd37e2.
* remove lead car take off alert (in separate PR)
* cleanup
* longer
* Nicki Minaj Model (#28218)
* New model: 2ff7490f-8a2f-4c0d-87a8-b0fa3a4a6a71
* Updated model_replay_ref_commit
(cherry picked from commit 328b5d9d47)
* use the event
* move logic to c++
* cleanup
* no prompt border
* use brake light from car state
* lead car take off event
* lead car take off event
* always reset last distance
* show border when prompted
* remove lead car take off alert (in separate PR)
* don't prompt when lead car detected
* Revert "Nicki Minaj Model (#28218)"
This reverts commit b25e96c9d8fe0ac3a93c97eec2e91064c12a5649.
* bad sounds
* simpler
* lead car takeoff prompt
* log to tmux
* Nicki Minaj Model (#28218)
* New model: 2ff7490f-8a2f-4c0d-87a8-b0fa3a4a6a71
* Updated model_replay_ref_commit
(cherry picked from commit 328b5d9d47)
* only print when stopping or starting
* remove debug msgs
* Revert "Nicki Minaj Model (#28218)"
This reverts commit 4fa06f12db858f65570bbf4bc2d9ee1709aead19.
---------
Co-authored-by: Mitchell Goff <mitchellgoffpc@gmail.com>
* UI: Display E2E Longitudinal status icon
* don't forget init
* take these out
* and this
* can't leave this
* spam the event
* publish here instead
* try this now
* expose the toggle
* Spam all the time!!!
* Spam all the time with this!
* see if this works
* new way to trigger
* fix
* another one
* more to it
* more of that
* move to car controls instead
* no longer needed
* 20 hz
* unnecessary
* send like this pls
* move to long planner
* let's see what it looks like first
* don't alert yet lol
* re-enable and try out prompt!
* move chime event to longitudinal_planner
* AlertStatus to userPrompt
* Add more reset conditions
* less conditions to test first
* louder sound
* permanent alert
* LOUDER SON!
* use stock prompt
* Revert "less conditions to test first"
This reverts commit b24a096e65e80f303f7d92072cdf273a30dd37e2.
* remove lead car take off alert (in separate PR)
* cleanup
* longer
* Nicki Minaj Model (#28218)
* New model: 2ff7490f-8a2f-4c0d-87a8-b0fa3a4a6a71
* Updated model_replay_ref_commit
(cherry picked from commit 328b5d9d47)
* use the event
* move logic to c++
* cleanup
* no prompt border
* use brake light from car state
* lead car take off event
* lead car take off event
* always reset last distance
* show border when prompted
* remove lead car take off alert (in separate PR)
* don't prompt when lead car detected
* Revert "Nicki Minaj Model (#28218)"
This reverts commit b25e96c9d8fe0ac3a93c97eec2e91064c12a5649.
* bad sounds
* simpler
---------
Co-authored-by: Mitchell Goff <mitchellgoffpc@gmail.com>
* draft
* only in dlp button for now
* update with uiState
* Revert "update with uiState"
This reverts commit cbc755f0601c2595f7357c61a486c570000ecb3c.
* independent variable
* it works!
* faster
* prep for other elements
* apply to brightness checks
* proper
* lasts 30 seconds for now
* init at -1
* fade in when first tapped
* fade in finish at 250ms
* fade in finish at 100ms
* gate behind a toggle now
* redisplay button if tapped before disappear
* apply on gac
* only allow press when at 100% opacity
* mapd: offline/local database
* link overpy before manager
* add path to deps
* down here
* this too
* don't force redownload/reinstall unless db not current
* make things neater in json
* small fix
* Revert "small fix"
This reverts commit dbc70ee6d40b51e4d7c4a4af4523d23737350905.
* Revert "make things neater in json"
This reverts commit 1b244c552c1bf877e8b6bf879ca73ebf72617025.
* neater attempt 2 (no reboot for now)
* neater attempt 2 (no reboot for now)
* "selected" not working
* make it stick
* already QString
* check when menu is up
* check when menu is up
* interactive buttons
* add label to inform users about car off
* update texts
* set all params properly
* clean up ui logic
* test
* revert
* ui logic again
* interactive button
* after confirmation updates
* only check when selected
* stop signs?
* bruh
* missed
* small cleanup
* query for real from local db
* Revert "query for real from local db"
This reverts commit d7eb664da2949b073c7d7eb00e0098aa01c83ad3.
* don't hold in same object
* remote server as fallback if local server fails
* use different waypoint
* use function
* declare missing vars
* skip SSL/TLS verification
* fallback to online query if local query fails
* don't prompt to reboot if none is selected
* update ui on press
* Revert "skip SSL/TLS verification"
This reverts commit 2eb5c0972a08227edbfc4f50c38d22d2ced62423.
* simplier
* handle ConnectionError
* point to sunnypilot-osm S3 bucket
* revert freq of road name
* small cleanup
* small cleanup
* revert
* cleanup
* TEMP: test online/offline switchover
* Revert "TEMP: test online/offline switchover"
This reverts commit 4641b8e6f26f4015559a9aff2271f1850708ab09.
* set user-agent
* more databases!
* new urls
* TEST: remove check here
* parse timestamp from file content instead of HEAD Last Modified
* not correct
* wrong var
* don't need this
* have list in cpp
* don't read from json
* provide expectation
* add var to gate feature speed limits
* remove unused
* Hide 2nd row dev UI when map is visible
* Dev UI init
* fixup! Dev UI init
* fixup! Dev UI init
* fixup! Dev UI init
* fixup! Dev UI init
* fixup! Dev UI init
* fixup! Dev UI init
* Disable lateraState for now?
* Revert "Disable lateraState for now?"
This reverts commit ff669862e9ab7cfe421a0266dfc503b3b190143a.
* add cs.laterelState
* should be bool
* bruh
* change dm icon too
* Bruh should be y
* don't draw border
* bolded text
* bring back memory usage
* angleSteer status color
* move it higher
* higher
* lower
* closer together
* Move this button too
* fixup! Move this button too
* Move this text?
* to the left
* left and down
* missed an argument
* move them a bit
* readjust bottom row positioning
* test position
* revert to this
* wider!
* proper space reference
* unused
* other method
* fix
* shorter
* more spaces
* wider
* do it like this
* should be width
* add on top
* wider
* lineup right
* align this right
* different one
* try this
* fix
* align right!
* make unit strings standalone
* Try this out
* adjust
* align to unit strings
* adjust!
* adjust!
* Revert "adjust!"
This reverts commit 748b74c21a986b4ed62acdcceb83226ff523e5ce.
* Revert "adjust!"
This reverts commit 4f5373b0de503203098c5fd495e72227f4525be4.
* more adjust
* final adjust?
* final adjust?
* wider
* keep left
* Try this out
* more together
* hmm
* adjust
* align differently
* adjust final
* adjust more
* adjust more
* Try this out
* last
* Try this
* Try that
* wider
* only check when starting
* comment
* remove second column and second row; change settings to 5 or 10 metrics; implement in future PRs
* fixup! remove second column and second row; change settings to 5 or 10 metrics; implement in future PRs
* fixup! remove second column and second row; change settings to 5 or 10 metrics; implement in future PRs
* Gap Adjust Cruise (GAC): init
* cs: add longitudinal supported cars
* disable for Toyota for now
* send to car cluster
* more
* KrKeegan: More Aggresive Start from Standstill
* fix
* set prev button after
* init bool
* wrong var
* use common update param function
* bruh no wonder why
* lock to default distance when using exp mode
* make vw match other makes
* implement ui button
* gate ui button
* log desired_TF
* move button
* only show when cruise state available
* only allow press when cruise state available
* Revert "KrKeegan: More Aggresive Start from Standstill"
This reverts commit 20bdff34c83d5a0c248d6996155c995c8a99810f.
* unnecessary
* nothing else
* pass it through
* add toyota support
* fixup! add toyota support
* oops, necessary
* don't show ui button when using e2e long
* different signal to use
* Forgot to update
* Clean it up?
* this?
* ugh
* force int!!
* convert then round
* hide when in exp mode
* toyota: log button
* Revert "different signal to use"
This reverts commit edc64d31af527af842aabe2934e5720f73bf75cc.
* toyota flippy flippy
* wrong signal for vw
* oops
* UI: Debug: Tap on Ui to capture snapshot of debug data
* UI: Debug UI: Toggle to display debug UI elements & UI prerequisites
* UI: VisionTurnController Implementation
* UI: Debug UI: Toggle to display debug UI elements
* UI: LiveMapData: Implementation
* UI: SpeedLimitControl: Implementation
* UI: TurnSpeedController: Implementation
* fixup! UI: SpeedLimitControl: Implementation
* Add adjustable speed limit offset (in % or actual values)
* fix
* fix 2
* fix 3
* wrong value used
* don't need this
* needs this!
* and this?
* needs to be at the top
* has to be public
* take them off
* gotta have this
* wrong!
* update this every time
* try to update
* hmm maybe it was this
* missed this
* Revert "missed this"
This reverts commit 926b45410544e4f1bbc5174d0d7b03fafedf610f.
* Revert "hmm maybe it was this"
This reverts commit 7f75543db71d6f438f6473c66d4f94df317f16f2.
* refresh them
* update them in both places!
* make them public please
* don't forget this path
* try this refresh?
* Revert "make them public please"
This reverts commit 669a3ee1d5607c84109294db7a567ca86cb91b0f.
* revert these
* try using signals to update
* Revert "try using signals to update"
This reverts commit f3ad02bde71467aa7fc27c0b95d03748345193e6.
* update state after it's emitted
* make it public
* Revert "make it public"
This reverts commit ddf431d198133359b8bd656dde9061ec671f2312.
* Revert "update state after it's emitted"
This reverts commit aad2876166843b63d889e90830bf3d32edaa2857.
* try this out
* fixup! try this out
* fixup! try this out
* fixup! try this out
* fixup! try this out
* don't need this
* fixup! try this out
* fixup! try this out
* fixup! try this out
* fixup! try this out
* make sure we can see it
* make it float
* Try to update this way
* fixup! Try to update this way
* Revert "fixup! Try to update this way"
This reverts commit f4725bcb070cc8e8ebeb6e37afeb930694e96e22.
* Revert "Try to update this way"
This reverts commit af72af8a4a193b24e99931200fac18c6625a2431.
* new method to hide/show
* fixup! new method to hide/show
* fixup! new method to hide/show
* fixup! new method to hide/show
* fixup! new method to hide/show
* fixup! new method to hide/show
* omg it works?!
* run these at 2Hz pls
* UI: use comma speed limit design instead of move-fast
* fixup! UI: use comma speed limit design instead of move-fast
* fixup! UI: use comma speed limit design instead of move-fast
* fixup! UI: use comma speed limit design instead of move-fast
* UI: use comma speed limit design instead of move-fast
* fixup! UI: use comma speed limit design instead of move-fast
* fixup! UI: use comma speed limit design instead of move-fast
* fixup! UI: use comma speed limit design instead of move-fast
* garbage collection
* redundant
* gc attempt?
* Revert "garbage collection"
This reverts commit 127fc8bd9d1eaea7725cf775dc7034ac6aaf09f4.
* garbage collection
* catch exceptions
* ignore mapd if crashed
* copy dependencies after first download
* changed dir
* oops
* proper termination before exiting
* same class
* Revert "same class"
This reverts commit dda695477371bf259b89aae726210dfe9d5f913e.
* Revert "proper termination before exiting"
This reverts commit 95c039dac86a389c0be043aadf2a3e8cbd4515c8.
* don't let accelerator press to re-engage SLC when NDOG is off
* can we free them up?
* Revert "can we free them up?"
This reverts commit d7736524645376ffb43acb77678086f6ae3c4e0b.
* fixup! don't let accelerator press to re-engage SLC when NDOG is off
* introduce navInstruction speed limits into SLC
* nuke UI for now - memory test
* do this instead
* Overpass: does not exist
* Revert "nuke UI for now - memory test"
This reverts commit fd81ffde0443917580ec4ad71095c178173883fe.
* meh
* Distance button on steering wheel to toggle experimental mode
* HKG and Honda
* Longitudinal: parse distance button from steering wheel
* missing gm signal
* GM, VW (MQB & PQ), Toyota
* try this logic out
* try this out
* he might have gotten it!
* Hmmmm
* white edges!
* wrong
* wider!
* Try to match stock opacity
* too bright
* fix
* dimmer
* Revert to upstream color schemes and show borders
* put them together
* sharper
* UI: screen recorder ;)
* oops
* try out new look
* dep
* Try this
* bruh
* Hmm
* and this
* or this?
* how's this?
* this is fine
* move it move it
* finalize
* small
* bigger
* smaller
* pinpoint this
* Missed this
* and this
* gone?
* press down state
* no sound for now
* Revert "Remove lane planning code (#25651)"
* DLP: preserves lanelines
* MADS: cruiseEngageBlocked event
* change path now!
* Revert "change path now!"
This reverts commit 7db2af33378aa02288b6222ed722d705ca6e92ec.
* Revert "Revert "change path now!""
This reverts commit 19f50a19e98721f7b8b9018b2e788629df45137f.
* c string
* atoi instead
* does this work?
* move it move it
* move there
* Try this one
* dotted line
* looks horrible
* how about this?
* Nah let's keep it simple
* track these with cereals
* send button!
* add more
* don't need this
* and this too
* make sure it shows first
* more
* to right for now
* stock size
* different color
* move some logic around
* don't miss
* don't miss this
* check somewhere else
* oops
* not liking it
* bring back current button
* don't need to be constant
* take it out for now
* wrap for translation
* sunnypilot: MADS - Base + HKG
* fix upstream conflicts
* Don't miss this
* Missed it
* Don't initiate lane change when braking
* HKG: better cluster state
* HKG: only blink when disengaging lateral
* HKG: Optima's icons
* HKG: update vars and blink for CAN-FD
* HKG: don't get stuck
* obsolete
* remove this for now
* border color should sync
* change border color
* simplify things
* HKG: update events
* Honda: MADS
* HKG: cleanup
* Toyota: MADS
* Revert "remove this for now"
This reverts commit 76ddd435084e051ced9a343372900ced96180989.
* Revert "HKG: cleanup"
This reverts commit e1ab96c6f7634508b5f3820868d22f4694361622.
* Toyota: use the working one
* same colors
* block resume press if no previous set speed
* HKG: handle events better
* Honda: handle events better
* Toyota: handle events better
* Volkswagen MQB & PQ: MADS
* Subaru: MADS
* FCA: MADS
* add another argument for per port specifics
* GM: MADS
* Toyota: missed this
* Mazda: MADS
* Nissan: MADS
* have to use this
* pass events to the next
* move it around
* move some stuff around
* cleanup
* simplify and check if cruise is initialized with non PCM
* don't think we need this anymore
* Volkswagen: These 2 buttons don't get used
* check resume available differently
* check better
* simplify
* Mazda: missed one update check
* HKG: Move carstate logic to interface
* check from ret instead
* cruise state enabled spam bug
* check pcm
* set it earlier
* own cruise initialize check
* fixup! own cruise initialize check
* more inclusive
* HKG: redundant
* Honda: Move carstate logic to interface
* only check cruise speed when not PCM
* Toyota: Move carstate logic to interface
* fixup! HKG: Move carstate logic to interface
* fixup! Honda: Move carstate logic to interface
* fixup! Honda: Move carstate logic to interface
* Volkswagen: Move carstate logic to interface
* check if cruise has ever been enabled in state machine
* already exists
* just one more
* do not allow steering in certain situations
* Subaru: Move carstate logic to interface
* FCA: Move carstate logic to interface
* GM: Move carstate logic to interface
* Mazda: Move carstate logic to interface
* Nissan: Move carstate logic to interface
* HKG: move init
* declare at once
* cleanup variables
* prevent stuck engaged
* initialize for all cars
* slimmer
* no entry for brake press engage
* Revert "no entry for brake press engage"
This reverts commit 9e6e1ca5000c213017091765a0e50d2d794cebe9.
* Toyota: Change the logic
* Nissan: Cleanup carstate
* HKG: only disengage when cruise intially not available
* Revert "HKG: only disengage when cruise intially not available"
This reverts commit 123cce1818ea7285cbd433524c4f0e80e7c99cb4.
* allow press anytime
* cancel cruise when control wants to cancel
* remove some stuff
* wrong one
* can't do that
* would this fix it?
<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>
# required to fetch internal or private CodeQL packs
packages:read
# only required for workflows in private repositories
actions:read
contents:read
strategy:
fail-fast:false
matrix:
include:
- language:c-cpp
build-mode:autobuild
- language:javascript-typescript
build-mode:none
- language:python
build-mode:none
# CodeQL supports the following values keywords for 'language': 'c-cpp', 'csharp', 'go', 'java-kotlin', 'javascript-typescript', 'python', 'ruby', 'swift'
# Use `c-cpp` to analyze code written in C, C++ or both
# Use 'java-kotlin' to analyze code written in Java, Kotlin or both
# Use 'javascript-typescript' to analyze code written in JavaScript, TypeScript or both
# To learn more about changing the languages that are analyzed or customizing the build mode for your analysis,
# see https://docs.github.com/en/code-security/code-scanning/creating-an-advanced-setup-for-code-scanning/customizing-your-advanced-setup-for-code-scanning.
# If you are analyzing a compiled language, you can modify the 'build-mode' for that language to customize how
# your codebase is analyzed, see https://docs.github.com/en/code-security/code-scanning/creating-an-advanced-setup-for-code-scanning/codeql-code-scanning-for-compiled-languages
steps:
- name:Checkout repository
uses:actions/checkout@v4
# Initializes the CodeQL tools for scanning.
- name:Initialize CodeQL
uses:github/codeql-action/init@v3
with:
languages:${{ matrix.language }}
build-mode:${{ matrix.build-mode }}
# If you wish to specify custom queries, you can do so here or in a config file.
# By default, queries listed here will override any specified in a config file.
# Prefix the list here with "+" to use these queries and those in the config file.
# For more details on CodeQL's query packs, refer to: https://docs.github.com/en/code-security/code-scanning/automatically-scanning-your-code-for-vulnerabilities-and-errors/configuring-code-scanning#using-queries-in-ql-packs
# queries: security-extended,security-and-quality
# If the analyze step fails for one of the languages you are analyzing with
# "We were unable to automatically build your code", modify the matrix above
# to set the build mode to "manual" for that language. Then modify this step
# to build your code.
# ℹ️ Command-line programs to run using the OS shell.
# 📚 See https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#jobsjob_idstepsrun
- if:matrix.build-mode == 'manual'
shell:bash
run:|
echo 'If you are using a "manual" build mode for one or more of the' \
'languages you are analyzing, replace this with the commands to build' \
# Note: If you have issues with "push rejected missing LFS" or something make sure you disabled LFS on the GITLAB repo if you intend to use a different LFS repo other than the target repo.
* Re-tuned and tested by the community (July 1, 2024)
* UPDATED: Driving Model Selector v5
* NEW❗: Driving Model additions
* Notre Dame (July 01, 2024) - NDv3
* UPDATED: Toyota: Continued support for Smart DSU (SDSU) and Radar CAN Filter
* In response to the official deprecation of support for Smart DSU (SDSU) and Radar CAN Filter in the upstream ([commaai/openpilot#32777](https://github.com/commaai/openpilot/pull/32777)), sunnypilot will continue maintaining software support for Smart DSU (SDSU) and Radar CAN Filter
* UPDATED: Continued support for Mapbox navigation
* In response to the official temporary deprecation of support for Mapbox navigation in the upstream ([commaai/openpilot#32773](https://github.com/commaai/openpilot/pull/32773)), sunnypilot will continue maintaining software support for Mapbox navigation
* NEW❗: Toyota - Automatic Door Locking and Unlocking thanks to AlexandreSato, cydia2020, and dragonpilot-community!
* Auto Lock by Speed: All doors are automatically locked when vehicle speed is approximately 6 mph (10 km/h) or higher
* Auto Unlock by Shift to P: All doors are automatically unlocked when shifting the shift lever to P
* FIXED: Driving Personality:
* Maniac mode now correctly enforced when selected
* UI Updates
* Display Metrics Below Chevron
* NEW❗: Time to Lead Car
* Displays the time to reach the position previously occupied by the lead car
* NEW❗: Display Distance, Speed, and Time to Lead Car simultaneously
* Kia Ceed Plug-in Hybrid Non-SCC 2022 support thanks to TerminatorNL!
Radar tracks can now be enabled manually on applicable cars through SSH thanks to [@greghogan](https://github.com/greghogan) and [@pd0wm](https://github.com/pd0wm).
Some Hyundai radars can be reconfigured to output (debug) radar points on bus 1.
Reconfiguration is done over UDS by reading/writing to 0x0142 using the Read/Write Data By Identifier
endpoints (0x22 & 0x2E). This script checks your radar firmware version against a list of known
firmware versions. If you want to try on a new radar, make sure to note the default config value
in case it is different from the other radars and you need to revert the changes.
After changing the config the car should not show any faults when openpilot is not running.
These config changes are persistent across car reboots. You need to run this script again
to go back to the default values.
**USE AT YOUR OWN RISK!** Stock system safety features, like AEB and FCW, might be affected by these changes.
**How radar points can be used along with vision:**
* Current OP long policy is identify with vision first, if vision sees a vehicle match it to a radar point. If vision sees nothing you get a false negative and no lead car detection. (Source: [Hubblesphere#7894 from comma.ai community Discord](https://discord.com/channels/469524606043160576/872899198738104330/872913890793635872))
### 🚨 Enable Radar Tracks
***(EXPERIMENTAL, as of January 1st, 2022)***
***(Only applicable to some Hyundai, Kia, and Genesis cars, as of January 1st, 2022)***
*(Base on version 0.8.12 [`devel`](https://github.com/commaai/openpilot/tree/devel))*
**USE AT YOUR OWN RISK!** Stock system safety features, like AEB and FCW, might be affected by these changes.
1. Ensure the car is at the `OFF` ignition position.
2. Connect your compatible comma device (EON, C2, C3) to the car. comma device power should be ON.
3. Use a laptop or applicable device to connect to your comma device via SSH. (Tips: Instructions to SSH in [HERE](https://github.com/commaai/openpilot/wiki/SSH))
4. In the SSH terminal after successfully connected to your comma device, execute the following commands:
*`Power on the vehicle keeping the engine off (press start button twice) then type OK to continue`.
* If successful, the following message should appear: `[DONE]. Restart your vehicle and ensure there are no faults`.
* If the script did not run successfully, reach out to the community in [Sunnyhaibin's Openpilot Discord Server](https://discord.gg/wRW3meAgtx) or `#hyundai-kia-genesis channel` on [commaai community Discord Server](https://discord.comma.ai) for assistance.
4. Reboot your comma device:
1. C3: `sudo reboot`
2. C2 or EON: `reboot`
5. Once your comma device is rebooted, start your car with engine on (with or without comma device connected). Ensure that there are no faults from the car. If there are faults, reach out to the community in [Sunnyhaibin's Openpilot Discord Server](https://discord.gg/wRW3meAgtx) or `#hyundai-kia-genesis channel` on [commaai community Discord Server](https://discord.comma.ai) for assistance.
6. Go for a quick drive and drive behind a lead car with varied follow distance. Then, come back and allow the drive to upload its `rlogs` in [comma Connect](https://connect.comma.ai).
7. With all `rlogs` uploaded, open the drive in Cabana from [comma Connect](https://connect.comma.ai). Load DBC -> `hyundai_kia_mando_front_radar.dbc`, then search `RADAR_TRACK_50x` (`x` could be anything), open any of them, and look at `LONG_DIST`.
8. If the radar tracks data is relevant with the lead car you drove behind, you are done! Your car now have radar tracks enabled.
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) 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.
- If your phone can create a Hotspot, you are able to connect the C3 to your phone hotspot and use your phone browser to search for places.
- In the Navigation panel on the C3, you can select Home, Work, and from a list of Recent Places you have navigated to without needing a browser (assuming the C3 is connected to the internet.)
**IMPORTANT NOTE:** Your C3 will require an active internet connection to download map data, generate driving directions, and ETA. Once map data and directions are downloaded, it *is* possible to use it offline, however nothing will update (such as new driving direction after a missed turn, updated ETA, map data further into your drive etc.)
***NAVIGATION NOTE:** At this time, mapbox does not support alphanumeric addresses (i.e W123N1234 Main St). There is currently no known workaround for this.*
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to view and modify the Software, subject to the following conditions:
1.**Permission Required**: Permission Required for Commercial, For-Profit, or Closed Source Use: Use of the Software, in whole or in part, for any commercial purposes, for-profit projects, or in closed source projects requires explicit written permission from the original author(s).
2.**Redistribution**: Any redistribution of the Software, modified or unmodified, must retain this license notice and the following acknowledgment:
"This software is licensed under a custom license requiring permission for use."
3.**Visibility**: Any project that uses the Software must visibly mention the following acknowledgment:
"This project uses software from Haibin Wen and SUNNYPILOT LLC and is licensed under a custom license requiring permission for use."
4.**No Warranty**: THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
Contact sunnypilot Support <support@sunnypilot.ai> for permission requests.
@@ -48,7 +48,6 @@ Join the official sunnypilot Discord server to stay up to date with all the late
To use sunnypilot in a car, you need the following:
* A supported device to run this software
* a [comma three](https://comma.ai/shop/products/three), or
* a comma two (only with older versions below 0.8.13)
* This software
* One of [the 250+ supported cars](https://github.com/commaai/openpilot/blob/master/docs/CARS.md). We support Honda, Toyota, Hyundai, Nissan, Kia, Chrysler, Lexus, Acura, Audi, VW, Ford and more. If your car is not supported but has adaptive cruise control and lane-keeping assist, it's likely able to run sunnypilot.
* A [car harness](https://comma.ai/shop/products/car-harness) to connect to your car
@@ -115,40 +114,12 @@ Please refer to [Recommended Branches](#-recommended-branches) to find your pref
Requires further assistance with software installation? Join the [sunnypilot Discord server](https://discord.sunnypilot.com) and message us in the `#installation-help` channel.
comma two
------
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: ```https://smiskol.com/fork/sunnyhaibin/0.8.12-4-prod```
4. Complete the rest of the installation following the onscreen instructions.
Requires further assistance with software installation? Join the [sunnypilot Discord server](https://discord.sunnypilot.com) and message us in the `#installation-help` channel.
</details>
<details>
<summary>SSH (More Versatile)</summary>
<br>
Prerequisites: [How to SSH](https://github.com/commaai/openpilot/wiki/SSH)
If you are looking to install sunnypilot via SSH, run the following command in an SSH terminal after connecting to your device:
cd /data; rm -rf ./openpilot; git clone -b 0.8.12-prod-personal-hkg --recurse-submodules https://github.com/sunnyhaibin/sunnypilot.git openpilot; cd openpilot; sudo reboot
cd /data && rm -rf ./openpilot && git clone -b release-c3 --recurse-submodules https://github.com/sunnyhaibin/sunnypilot.git openpilot && cd openpilot && sudo reboot
```
After running the command to install the desired branch, your comma device should reboot.
@@ -170,16 +141,16 @@ After running the command to install the desired branch, your comma device shoul
* Speed Limit Control (SLC) - Set speed limit based on map data or car interface (if applicable)
* HKG only: Highway Driving Assist (HDA) status integration - Use cars native speed sign detection to set desired speed (on applicable HKG cars only)
- [**Gap Adjust Cruise (GAC)**](#gap-adjust-cruise) - Allow `GAP`/`INTERVAL`/`DISTANCE` button on the steering wheel or on-screen button to adjust the follow distance from the lead car. See table below for options
- [**Quiet Drive 🤫**](#-quiet-drive) - Toggle to mute all notification sounds (excluding driver safety warnings)
- [**Auto Lane Change Timer**](#Auto-Lane-Change-Timer) - Set a timer to delay the auto lane change operation when the blinker is used. No nudge on the steering wheel is required to auto lane change if a timer is set
- [**Force Car Recognition (FCR)**](#Force-Car-Recognition-) - Use a selector to force your car to be recognized by sunnypilot
- [**Fix sunnypilot No Offroad**](#Fix-sunnypilot-No-Offroad) - Enforce sunnypilot to go offroad and turns off after shutting down the car. This feature fixes non-official devices running sunnypilot without comma power
- [**Enable ACC+MADS with RES+/SET-**](#Enable-ACC+MADS-with-RES+/SET-) - Engage both ACC and MADS with a single press of RES+ or SET- button
- [**Offline OSM Maps**](#Offline-OSM-Maps) - OSM database can now be downloaded locally for offline use[^2]. This enables offline SLC, V-TSC and M-TSC. Currently available for US South, US West, US Northeast, Florida, Taiwan, South Africa and New Zealand
- [**Various Live Tuning**](#Various-Live-Tuning) - Ability to tailor your driving experience on the fly:
* Enforce Torque Lateral Control - Use the newest [torque controller](https://blog.comma.ai/0815release/#torque-controller) for all vehicles.
* Torque Lateral Control Live Tune - Ability to adjust the torque controller’s `FRICTION` and `LAT_ACCEL_FACTOR` values to suit your vehicle.
* Torque Lateral Controller Self-Tune - Enable automatic turning for the Torque controller.
- [**Quiet Drive 🤫**](#-quiet-drive) - Toggle to mute all notification sounds (excluding driver safety warnings)
- [**Auto Lane Change Timer**](#Auto-Lane-Change-Timer) - Set a timer to delay the auto lane change operation when the blinker is used. No nudge on the steering wheel is required to auto lane change if a timer is set
- [**Force Car Recognition (FCR)**](#Force-Car-Recognition-) - Use a selector to force your car to be recognized by sunnypilot
- [**Fix sunnypilot No Offroad**](#Fix-sunnypilot-No-Offroad) - Enforce sunnypilot to go offroad and turns off after shutting down the car. This feature fixes non-official devices running sunnypilot without comma power
- [**Enable ACC+MADS with RES+/SET-**](#Enable-ACC+MADS-with-RES+/SET-) - Engage both ACC and MADS with a single press of RES+ or SET- button
- [**Offline OSM Maps**](#Offline-OSM-Maps) - OSM database can now be downloaded locally for offline use[^2]. This enables offline SLC, V-TSC and M-TSC. Currently available for US South, US West, US Northeast, Florida, Taiwan, South Africa and New Zealand
- [**Various Live Tuning**](#Various-Live-Tuning) - Ability to tailor your driving experience on the fly:
* Enforce Torque Lateral Control - Use the newest [torque controller](https://blog.comma.ai/0815release/#torque-controller) for all vehicles.
* Torque Lateral Control Live Tune - Ability to adjust the torque controller’s `FRICTION` and `LAT_ACCEL_FACTOR` values to suit your vehicle.
* Torque Lateral Controller Self-Tune - Enable automatic turning for the Torque controller.
### Visual Enhancements
* **M.A.D.S Status Icon** - Dedicated icon to display M.A.D.S. engagement status
@@ -355,7 +326,7 @@ Example:
---
How-To instructions can be found in [HOW-TOS.md](https://github.com/sunnyhaibin/openpilot/blob/(!)README/HOW-TOS.md).
How-To instructions can be found in [HOW-TOS.md](HOW-TOS.md).
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.
A car port enables openpilot support on a particular car. Each car model openpilot supports needs to be individually ported. All car ports live in `openpilot/selfdrive/car/`.
The complexity of a car port varies depending on many factors including:
* existing openpilot support for similar cars
* architecture and APIs available in the car
# Structure of a car port
*`interface.py`: Interface for the car, defines the CarInterface class
*`carstate.py`: Reads CAN from car and builds openpilot CarState message
*`carcontroller.py`: Builds CAN messages to send to car
*`values.py`: Limits for actuation, general constants for cars, and supported car documentation
*`radar_interface.py`: Interface for parsing radar points from the car
# Overiew
[Jason Young](https://github.com/jyoung8607) gave a talk at COMMA_CON with an overview of the car porting process. The talk is available on YouTube:
openpilot records routes in one minute chunks called segments. A route starts on the rising edge of ignition and ends on the falling edge.
Check out our [python library](https://github.com/commaai/openpilot/blob/master/tools/lib/logreader.py) for reading openpilot logs. Also checkout our [tools](https://github.com/commaai/openpilot/tree/master/tools) to replay and view your data. These are the same tools we use to debug and develop openpilot.
## log types
Check out our [Python library](https://github.com/commaai/openpilot/blob/master/tools/lib/logreader.py) for reading openpilot logs. Also checkout our [tools](https://github.com/commaai/openpilot/tree/master/tools) to replay and view your data. These are the same tools we use to debug and develop openpilot.
For each segment, openpilot records the following log types:
@@ -15,9 +13,10 @@ rlogs contain all the messages passed amongst openpilot's processes. See [cereal
## {f,e,d}camera.hevc
Each camera stream is H.265 encoded and written to its respective file.
[openpilot](http://github.com/commaai/openpilot) is an open source driver assistance system. Currently, openpilot performs the functions of Adaptive Cruise Control (ACC), Automated Lane Centering (ALC), Forward Collision Warning (FCW), and Lane Departure Warning (LDW) for a growing variety of [supported car makes, models, and model years](docs/CARS.md). In addition, while openpilot is engaged, a camera-based Driver Monitoring (DM) feature alerts distracted and asleep drivers. See more about [the vehicle integration](docs/INTEGRATION.md) and [limitations](docs/LIMITATIONS.md).
[openpilot](http://github.com/commaai/openpilot) is an open source driver assistance system. Currently, openpilot performs the functions of Adaptive Cruise Control (ACC), Automated Lane Centering (ALC), Forward Collision Warning (FCW), and Lane Departure Warning (LDW) for a growing variety of [supported car makes, models, and model years](https://github.com/commaai/openpilot/blob/master/docs/CARS.md). In addition, while openpilot is engaged, a camera-based Driver Monitoring (DM) feature alerts distracted and asleep drivers. See more about [the vehicle integration](https://github.com/commaai/openpilot/blob/master/docs/INTEGRATION.md) and [limitations](https://github.com/commaai/openpilot/blob/master/docs/LIMITATIONS.md).
A comma 3/3X is a normal [Linux](https://github.com/commaai/agnos-builder) computer that exposes [SSH](https://wiki.archlinux.org/title/Secure_Shell) and a [serial console](https://wiki.archlinux.org/title/Working_with_the_serial_console).
## Serial Console
On both the comma three and 3X, the serial console is accessible from the main OBD-C port.
Connect the comma 3/3X to your computer with a normal USB C cable, or use a [comma serial](https://comma.ai/shop/comma-serial) for steady 12V power.
On the comma three, the serial console is exposed through a UART-to-USB chip, and `tools/serial/connect.sh` can be used to connect.
On the comma 3X, the serial console is accessible through the [panda](https://github.com/commaai/panda) using the `panda/tests/som_debug.sh` script.
## SSH
In order to SSH into your device, you'll need a GitHub account with SSH keys. See this [GitHub article](https://docs.github.com/en/github/authenticating-to-github/connecting-to-github-with-ssh) for getting your account setup with SSH keys.
* Enable SSH in your device's settings
* Enter your GitHub username in the device's settings
* Connect to your device
* Username: `comma`
* Port: `22` or `8022`
* Username: `comma`
* Port: `22`
Here's an example command for connecting to your device using its tethered connection:<br />
`ssh comma@192.168.43.1`
For doing development work on device, it's recommended to use [SSH agent forwarding](https://docs.github.com/en/developers/overview/using-ssh-agent-forwarding).
## Notes
### Notes
The public keys are only fetched from your GitHub account once. In order to update your device's authorized keys, you'll need to re-enter your GitHub username.
The `id_rsa` key in this directory only works while your device is in the setup state with no software installed. After installation, that default key will be removed.
See the [community wiki](https://github.com/commaai/openpilot/wiki/SSH) for more detailed instructions and information.
#### ssh.comma.ai proxy
# Connecting to ssh.comma.ai
SSH into your comma device from anywhere with `ssh.comma.ai`. Requires a [comma prime subscription](https://comma.ai/connect).
With a [comma prime subscription](https://comma.ai/connect), you can SSH into your comma device from anywhere.
## Setup
With software version 0.6.1 or newer, enter your GitHub username on your device under Developer Settings. Your GitHub authorized public keys will become your authorized SSH keys for `ssh.comma.ai`. You can add any additional keys in `/system/comma/home/.ssh/authorized_keys.persist`.
## Recommended .ssh/config
With the below SSH configuration, you can type `ssh comma-{dongleid}` to connect to your device through `ssh.comma.ai`.<br />
For example: `ssh comma-ffffffffffffffff`
With the below SSH configuration, you can type `ssh comma-{dongleid}` to connect to your device through `ssh.comma.ai`.
The line right above contains the actual speed. Unfortunately, COLOR_BLUE isn’t defined, but a git grep of COLOR_WHITE shows it’s nvgRGBA(255, 255, 255, 255). Personally, I like a lighter blue, so I went with #8080FF.
* Re-tuned and tested by the community (July 1, 2024)
* UPDATED: Driving Model Selector v5
* NEW❗: Driving Model additions
* Notre Dame (July 01, 2024) - NDv3
* UPDATED: Toyota: Continued support for Smart DSU (SDSU) and Radar CAN Filter
* In response to the official deprecation of support for Smart DSU (SDSU) and Radar CAN Filter in the upstream ([commaai/openpilot#32777](https://github.com/commaai/openpilot/pull/32777)), sunnypilot will continue maintaining software support for Smart DSU (SDSU) and Radar CAN Filter
* UPDATED: Continued support for Mapbox navigation
* In response to the official temporary deprecation of support for Mapbox navigation in the upstream ([commaai/openpilot#32773](https://github.com/commaai/openpilot/pull/32773)), sunnypilot will continue maintaining software support for Mapbox navigation
* NEW❗: Toyota - Automatic Door Locking and Unlocking thanks to AlexandreSato, cydia2020, and dragonpilot-community!
* Auto Lock by Speed: All doors are automatically locked when vehicle speed is approximately 6 mph (10 km/h) or higher
* Auto Unlock by Shift to P: All doors are automatically unlocked when shifting the shift lever to P
* FIXED: Driving Personality:
* Maniac mode now correctly enforced when selected
* UI Updates
* Display Metrics Below Chevron
* NEW❗: Time to Lead Car
* Displays the time to reach the position previously occupied by the lead car
* NEW❗: Display Distance, Speed, and Time to Lead Car simultaneously
* Kia Ceed Plug-in Hybrid Non-SCC 2022 support thanks to TerminatorNL!
sunnypilot - 0.9.7.1 (2024-06-13)
========================
* New driving model
* Inputs the past curvature for smoother and more accurate lateral control
* Simplified neural network architecture in the model's last layers
* Minor fixes to desire augmentation and weight decay
* New driver monitoring model
* Improved end-to-end bit for phone detection
* Adjust driving personality with the follow distance button
* Support for hybrid variants of supported Ford models
* Fingerprinting without the OBD-II port on all cars
* Improved fuzzy fingerprinting for Ford and Volkswagen
************************
* UPDATED: Synced with commaai's openpilot
* master commit f8cb04e (June 10, 2024)
* NEW❗: sunnylink (Alpha early access)
* NEW❗: Config/Settings Backup
* Remotely back up and restore sunnypilot settings easily
* Device registration with sunnylink ensures a secure, integrated experience across services
* AES encryption derived from the device's RSA private key is used for utmost security
* Settings are encrypted on-device, transmitted securely via HTTPS, and stored encrypted on sunnylink
* Prevents loss of settings after device resets, offering peace of mind through end-to-end encryption
* Early alpha access to all current and previous GitHub Sponsors and Patreon supporters
* GitHub account pairing from device settings scanning QR code
* Pairing your account will allow you to access features via our API (still WIP but accessible if you dig a little on our code 😉)
* Allow inheritance of your sponsorship status, allowing you to get extra features and early access whenever applicable
* NEW❗: iOS Siri Shortcuts Navigation support thanks to twilsonco and mike86437!
* iOS and macOS Shortcuts to quickly set navigation destinations from your iOS device
* comma Prime support
* Personal Mapbox/Amap/Google Maps token support
* Instructions on how to set up your iOS Siri Shortcuts: https://routinehub.co/shortcut/17677/
* NEW❗: Forced Offroad mode
* Force sunnypilot in the offroad state even when the car is on
* When Forced Offroad mode is on, allows changing offroad-only settings even when the car is turned on
* To engage/disengage Force Offroad, go to Settings -> Device panel
* UPDATED: Auto Lane Change Timer -> Auto Lane Change by Blinker
* NEW❗: New "Off" option to disable lane change by blinker
* UPDATED: Pause Lateral Below Speed with Blinker
* NEW❗: Customizable Pause Lateral Speed
* Pause lateral actuation with blinker when traveling below the desired speed selected. Default is 20 MPH or 32 km/h.
* UPDATED: Hyundai CAN Longitudinal
* Auto-enable radar tracks on platforms with applicable Mando radar
* UPDATED: Hyundai CAN-FD Camera-based SCC
* NEW❗: Parse lead info for camera-based SCC platforms with longitudinal support
* Improve lead tracking when using openpilot longitudinal
* RE-ENABLED: Map-based Turn Speed Control (M-TSC) for supported platforms
* openpilot Longitudinal Control available cars
* Custom Stock Longitudinal Control available cars
* UPDATED: Continued support for comma Pedal
* In response to the official deprecation of support for comma Pedal in the upstream, sunnypilot will continue maintaining software support for comma Pedal
* UPDATED: Driving Model Selector v4
* NEW❗: Driving Model additions
* North Dakota (April 29, 2024) - NDv2
* WD40 (April 09, 2024) - WD40
* Duck Amigo (March 18, 2024) - DA
* Recertified Herbalist (March 01, 2024) - CHLR
* Legacy Driving Models with Navigate on openpilot (NoO) support
* Includes Duck Amigo and all preceding models
* UPDATED: Bumping mapd by [@pfeiferj](https://github.com/pfeiferj) to version [v1.9.0](https://github.com/pfeiferj/mapd/releases/tag/v1.9.0) thanks to pfeiferj!
* 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❗: 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
* NEW❗: Toyota - Stop and Go hack
* Allow some Toyota/Lexus cars to auto resume during stop and go traffic
* Only applicable to certain models and model years
* NEW❗: Toyota: ZSS support thanks to dragonpilot-community and ErichMoraga!
* NEW❗: MSPA (Cereal structs refactor)
* Make sunnypilot Parsable Again - @sshane
* sunnypilot is now parsable with stock openpilot tools
* NEW❗: Display 3D buildings on map thanks to jakethesnake420!
* openpilot Longitudianl Control capable cars only
* UPDATED: Gap Adjust Cruise is now a part of Driving Personality
* [DISTANCE/FOLLOW DISTANCE/GAP DISTANCE] physical button on the steering wheel to select Driving Personality on by default
* Status now viewable in onroad view or Onroad Settings Panel
* REMOVED: Gap Adjust Cruise toggle
* UPDATED: Speed Limit Control (SLC)
* NEW❗: Speed Limit Engage Mode
* Select the desired mode to set the cruising speed to the speed limit
* Warning Only: Warn the driver when the vehicle is driven faster than the speed limit
* Auto: Automatic speed adjustment on motorways based on speed limit data
* User Confirm: Inform the driver to change set speed of Adaptive Cruise Control to help the driver stay within the speed limit
* Supported platforms
* openpilot Longitudinal Control available cars (Excluding certain Toyota/Lexus, Ford, explained below)
* Custom Stock Longitudinal Control available cars
* Unsupported platforms
* Toyota/Lexus and Ford - most platforms do not allow us to control the PCM's set speed, requires testers to verify
* NEW❗: Speed limit source selector
* Select the desired precedence order of sources used to adapt cruise speed to road limits
* Camera Offset only works in Laneful (Laneful Only or Laneful in Auto mode when using Dynamic Lane Profile)
* Path Offset can be applied to both Laneless and Laneful
* UPDATED: Refactored Torque Lateral Control custom tuning menu
* NEW❗: Less Restrict Settings for Self-Tune (Beta)
* NEW❗: Custom Tuning for setting offline and live values in real-time
* UPDATED: Auto-detect custom Mapbox token if a personal Mapbox token is provided
* REMOVED: "Enable Mapbox Navigation" toggle
* UI updates
* New Settings menu redesign and improved interactions
* FIXED: Retain hotspot/tethering state was not consistently saved
* FIXED: Map stuck in "Map Loading" if comma Prime is active
* FIXED: OpenStreetMap implementation on C3X devices
* M-TSC
* Altitude (ALT.) display on Developer UI
* Current street name on top of driving screen when "OSM Debug UI" is enabled
* Hyundai Kona Non-SCC 2019 support thanks to Quex!
* Kia Seltos Non-SCC 2023-24 support thanks to Moodkiller and jeroid_!
sunnypilot - 0.9.4.1 (2023-08-11)
========================
* UPDATED: Synced with commaai's 0.9.4 release
* NEW❗: Moonrise driving model
* NEW❗: Ford upstream models support
* UPDATED: Dynamic Lane Profile selector in the "SP - Controls" menu
* REMOVED: Dynamic Lane Profile driving screen UI button
* FIXED: Disallow torque lateral control for angle control platforms (e.g. Ford, Nissan, Tesla)
* Torque lateral control cannot be used by angle control platforms, and would cause a "Controls Unresponsive" error if Torque lateral control is enforced in settings
* REMOVED: Speed Limit Style override
* Honda Accord 2016-17 support thanks to mlocoteta!
* Serial Steering hardware required. For more information, see https://github.com/mlocoteta/serialSteeringHardware
* mapd: utilize advisory speed limit in curves (#142) thanks to pfeiferj!
sunnypilot - 0.9.3.1 (2023-07-09)
========================
* UPDATED: Synced with commaai's 0.9.3 release
* NEW❗: Display Temperature on Sidebar toggle
* Display Ambient temperature, memory temperature, CPU core with the highest temperature, GPU temperature, or max of Memory/CPU/GPU on the sidebar
* Replace "Display CPU Temperature on Sidebar" toggle
* Smoother stopping behind a stopped car or desired stopping event.
* This is only applicable to HKG CAN platforms using openpilot longitudinal control
* NEW❗: Toyota: TSS2 longitudinal: Custom Tuning
* Smoother longitudinal performance for Toyota/Lexus TSS2/LSS2 cars thanks to dragonpilot-community!
* NEW❗: Enable Screen Recorder toggle
* Enable this will display a button on the onroad screen to toggle on or off real-time screen recording with UI elements.
* IMPROVED: Dynamic Lane Profile: when using Laneline planner via Laneline Mode or Auto Mode, enforce Laneless planner while traveling below 10 MPH or 16 km/h
* REMOVED: Display CPU Temperature on Sidebar
sunnypilot - 0.9.2.3 (2023-06-18)
========================
* NEW❗: Auto Lane Change: Delay with Blind Spot
* Toggle to enable a delay timer for seamless lane changes when blind spot monitoring (BSM) detects an obstructing vehicle, ensuring safe maneuvering
* NEW❗: Driving Screen Off: Wake with Non-Critical Events
* When Driving Screen Off Timer is not set to "Always On":
* Enabled: Wake the brightness of the screen to display all events
* Disabled: Wake the brightness of the screen to display critical events
* Currently, all non-nudge modes are default to continue lane change after 1 seconds of blind spot detection
* NEW❗: Fleet Manager PIN Requirement toggle
* User can now enable or disable PIN requirement on the comma device before accessing Fleet Manager
* NEW❗: Reset all sunnypilot settings toggle
* NEW❗: Turn signals display on screen when blinker is used
* Green: Blinker is on
* Red: Blinker is on, car detected in the adjacent blind spot or road edge detected
* IMPROVED: mapd: better exceptions handling when loading dependencies
* UPDATED: Green Traffic Light Chime no longer displays an orange border when executed
* FIXED: mapd: Road name flashing caused by desync with last GPS timestamp
* FIXED: Ram HD (2500/3500): Ignore paramsd sanity check
* Live parameters have trouble with self-tuning on this platform with upstream openpilot 0.9.2
* Hyundai: Longitudinal support for CAN-based Camera SCC cars thanks to Zack1010OP's Patreon sponsor!
sunnypilot - 0.9.2.2 (2023-06-13)
========================
* NEW❗: Toyota: Allow M.A.D.S. toggling with LKAS Button (Beta)
* IMPROVED: Ram: cruise button handling
sunnypilot - 0.9.2.1 (2023-06-10)
========================
* UPDATED: Synced with commaai's 0.9.2 release
* UPDATED: feature revamp with better stability
* UPDATED:
* M.A.D.S.
* Path color becomes LIGHT ORANGE during Driver Steering Override
* Gap Adjust Cruise (now known as Driving Personality in upstream openpilot 0.9.3):
* Updated profiles and jerk changes
* Experimental Mode support
* Three settings: Stock, Aggressive, and Maniac
* Stock is recommended and the default
* In Aggressive/Maniac mode, lead follow distance is shorter and quicker gas/brake response
* Dynamic Lane Profile
* Display blue borders on both sides of the driving path when Laneline mode is being used in the planner
* Auto Mode optimization
* Permanent: Laneless during Auto Lane Change execution
* Mapd
* OpenStreetMap Database: new regions added
* Developer UI (Dev UI)
* REMOVED: 2-column design
* NEW❗: 1-column + 1-row design
* Custom Stock Longitudinal Control
* NEW❗: Chrysler/Jeep/Ram support
* NEW❗: Mazda support
* NEW❗: Volkswagen PQ support
* DISABLED: Hyundai/Kia/Genesis CAN-FD platforms
* NEW❗: Switch between Chill (openpilot ACC) and Experimental (E2E longitudinal) with DISTANCE button on the steering wheel
* To switch between Chill and Experimental Mode: press and hold the DISTANCE button on the steering wheel for over 0.5 second
* All openpilot longitudinal capable cars support
* NEW❗: Nicki Minaj driving model
* NEW❗: Nissan and Mazda upstream models support
* NEW❗: Pre-Global Subaru upstream models support
* NEW❗: Display End-to-end Longitudinal Status (Beta)
* Display an icon that appears when the End-to-end model decides to start or stop
* NEW❗: Green Traffic Light Chime (Beta)
* A chime will play when the traffic light you are waiting for turns green, and you have no vehicle in front of you.
* NEW❗: Lead Vehicle Departure Alert
* Notify when the leading vehicle drives away
* NEW❗: Speedometer: Display True Speed
* Display the true vehicle current speed from wheel speed sensors.
* NEW❗: Speedometer: Hide from Onroad Screen
* NEW❗: Auto-Hide UI Buttons
* Hide UI buttons on driving screen after a 30-second timeout. Tap on the screen at anytime to reveal the UI buttons
* Applicable to Dynamic Lane Profile (DLP) and Gap Adjust Cruise (GAC)
* NEW❗: Display DM Camera in Reverse Gear
* Show Driver Monitoring camera while the car is in reverse gear
* NEW❗: Block Lane Change: Road Edge Detection (Beta)
* Block lane change when road edge is detected on the stalk actuated side
* NEW❗: Display CPU Temperature on Sidebar
* Display the CPU core with the highest temperature on the sidebar
* NEW❗: Display current driving model in Software settings
* NEW❗: HKG: smartMDPS automatic detection (installed with applicable firmware)
* FIXED: Unintended siren/alarm from the comma device if the vehicle is turned off too quickly in PARK gear
* FIXED: mapd: Exception handling for loading dependencies
* Fleet Manager via Browser support thanks to actuallylemoncurd, AlexandreSato, ntegan1, and royjr!
* Access your dashcam footage, screen recordings, and error logs when the car is turned off
* Connect to the device via Wi-Fi, mobile hotspot, or tethering on the comma device, then navigate to http://ipAddress:5050 to access.
* Honda Clarity 2018-22 support thanks to mcallbosco, vanillagorillaa and wirelessnet2!
* Ram: Steer to 0/7 MPH support thanks to vincentw56!
* Retain hotspot/tethering state across reboots thanks to rogerioaguas!
* LKAS button continues to be used for MADS engagement/disengagement
sunnypilot - Version 0.8.14-1 (2022-06-26)
========================
Visit https://bit.ly/sunnyreadme for more details
* sunnypilot 0.8.14 release - based on openpilot 0.8.14 devel
* "0.8.14-prod-c3" branch only supports comma three
* If you have a comma two, EON, or other devices than a comma three, visit sunnyhaibin's discord server for more details: https://discord.gg/wRW3meAgtx
* Mono-branch support
* Honda/Acura
* Hyundai/Kia/Genesis
* Toyota/Lexus
* Volkswagen MQB
* Modified Assistive Driving Safety (MADS) Mode
* NEW❗: CRUISE (MAIN) now engages MADS for all supported car makes
* NEW❗: Added toggle to disable disengaging Automatic Lane Centering (ALC) on the brake pedal
* Dynamic Lane Profile (DLP)
* NEW❗: Gap Adjust Cruise (GAC)
* openpilot longitudinal cars can now adjust between the lead car's following distance gap via 3 modes:
* Steering Wheel (SW) | User Interface (UI) | Steering Wheel + User Interface (SW+UI)
* NEW❗: Custom Camera & Path Offsets
* NEW❗: Torque Lateral Control from openpilot 0.8.15 master (as of 2022-06-15)
* NEW❗: Torque Lateral Control Live Tune Menu
* NEW❗: Speed Limit Sign from openpilot 0.8.15 master (as of 2022-06-22)
* NEW❗: Mapbox Speed Limit data will now be utilized in Speed Limit Control (SLC)
* Speed limit data will be utilized in the following availability:
* NEW❗: Mapbox navigation support for non-Prime users
* Visit sunnyhaibin's discord server for more details: https://discord.gg/wRW3meAgtx
* Hyundai/Kia/Genesis
* NEW❗: Enhanced SCC (ESCC) Support
* Requires hardware modification. Visit sunnyhaibin's discord server for more details: https://discord.gg/wRW3meAgtx
* NEW❗: Smart MDPS (SMDPS) Support - Auto-detection
* Requires hardware modification and custom firmware for the SMDPS. Visit sunnyhaibin's discord server for more details: https://discord.gg/wRW3meAgtx
* Toyota/Lexus
* NEW❗: Added toggle to enforce stock longitudinal control
sunnypilot - Version 0.8.12-4
========================
* NEW❗: Custom Stock Longitudinal Control by setting the target speed via openpilot's "MAX" speed thanks to multikyd!
* Speed Limit Control
* Vision-based Turn Control
* Map-based Turn Control
* NEW❗: HDA status integration with Custom Stock Longitudinal Control on applicable HKG cars only
* NEW❗: Roll Compensation and SteerRatio fix from comma's 0.8.13
* NEW❗: Dev UI to display different metrics on screen
* Click on the "MAX" box on the top left of the openpilot display to toggle different metrics display
* Lead car relative distance; Lead car relative speed; Actual steering degree; Desired steering degree; Engine RPM; Longitudinal acceleration; Lead car actual speed; EPS torque; Current altitude; Compass direction
* NEW❗: Stand Still Timer to display time spent at a stop with M.A.D.S engaged (i.e., stop lights, stop signs, traffic congestions)
* NEW❗: Current car speed text turns red when the car is braking
* NEW❗: Export GPS tracks into GPX files and upload to OSM thanks to eFini!
* NEW❗: Enable ACC and M.A.D.S with a single press of the RES+/SET- button
* NEW❗: ACC +/-: Short=5, Long=1
* Change the ACC +/- buttons behavior with cruise speed change in openpilot
* Disabled (Stock): Short=1, Long=5
* Enabled: Short=5, Long=1
* NEW❗: Speed Limit Value Offset (not %)*
* Set speed limit higher or lower than actual speed limit for a more personalized drive.
* *To use this feature, turn off "Enable Speed Limit % Offset"*
* NEW❗: Dedicated icon to show the status of M.A.D.S.
* NEW❗: No Offroad Fix for non-official devices that cannot shut down after the car is turned off
* NEW❗: Stop N' Go Resume Alternative
* Offer alternative behavior to auto resume when stopped behind a lead car using stock SCC/ACC. This feature removes the repeating prompt chime when stopped and/or allows some cars to use auto resume (i.e., Genesis)
* IMPROVED: Show the lead car icon in the car's dashboard when a lead car is detected by openpilot's camera vision
* FIXED: MADS button unintentionally set MAX when using stock longitudinal control thanks to Spektor56!
sunnypilot - Version 0.8.12-3
========================
* NEW❗: Bypass "System Malfunction" alert toggle
* Prevent openpilot from returning the "System Malfunction" alert that hinders the ability use openpilot
* FIXED: Hyundai/Kia/Genesis Brake Hold Active now outputs the correct events on screen with M.A.D.S. engaged
sunnypilot - Version 0.8.12-2
========================
* NEW❗: Disable M.A.D.S. toggle to disable the beloved M.A.D.S. feature
* Enable Stock openpilot engagement/disengagement
* ADJUST: Initialize Driving Screen Off Brightness at 50%
sunnypilot - Version 0.8.12-1
========================
* sunnypilot 0.8.12 release - based on openpilot 0.8.12 devel
* Dedicated Hyundai/Kia/Genesis branch support
* NEW❗: OpenStreetMap integration thanks to the Move Fast team!
* NEW❗: Vision-based Turn Control
* NEW❗: Map-Data-based Turn Control
* NEW❗: Speed Limit Control w/ optional Speed Limit Offset
* NEW❗: OpenStreetMap integration debug UI
* Only available to openpilot longitudinal enabled cars
* NEW❗: Hands on Wheel Monitoring according to EU r079r4e regulation
* NEW❗: Disable Onroad Uploads for data-limited Wi-Fi hotspots when using OpenStreetMap related features
* NEW❗: Fast Boot (Prebuilt)
* NEW❗: Auto Lane Change Timer
* NEW❗: Screen Brightness Control (Global)
* NEW❗: Driving Screen Off Timer
* NEW❗: Driving Screen Off Brightness (%)
* NEW❗: Max Time Offroad
* Improved user feedback with M.A.D.S. operations thanks to Spektor56!
openpilot is an Adaptive Cruise Control (ACC) and Automated Lane Centering (ALC) system.
Like other ACC and ALC systems, openpilot is a failsafe passive system and it requires the
driver to be alert and to pay attention at all times.
In order to enforce driver alertness, openpilot includes a driver monitoring feature
that alerts the driver when distracted.
However, even with an attentive driver, we must make further efforts for the system to be
safe. We repeat, **driver alertness is necessary, but not sufficient, for openpilot to be
used safely** and openpilot is provided with no warranty of fitness for any purpose.
openpilot is developed in good faith to be compliant with FMVSS requirements and to follow
industry standards of safety for Level 2 Driver Assistance Systems. In particular, we observe
ISO26262 guidelines, including those from [pertinent documents](https://www.nhtsa.gov/sites/nhtsa.dot.gov/files/documents/13498a_812_573_alcsystemreport.pdf)
released by NHTSA. In addition, we impose strict coding guidelines (like [MISRA C : 2012](https://www.misra.org.uk/what-is-misra/))
on parts of openpilot that are safety relevant. We also perform software-in-the-loop,
hardware-in-the-loop and in-vehicle tests before each software release.
Following Hazard and Risk Analysis and FMEA, at a very high level, we have designed openpilot
ensuring two main safety requirements.
1. The driver must always be capable to immediately retake manual control of the vehicle,
by stepping on the brake pedal or by pressing the cancel button.
2. The vehicle must not alter its trajectory too quickly for the driver to safely
react. This means that while the system is engaged, the actuators are constrained
to operate within reasonable limits[^1].
For additional safety implementation details, refer to [panda safety model](https://github.com/commaai/panda#safety-model). For vehicle specific implementation of the safety concept, refer to [panda/board/safety/](https://github.com/commaai/panda/tree/master/board/safety).
**Extra note**: comma.ai strongly discourages the use of openpilot forks with safety code either missing or
not fully meeting the above requirements.
[^1]: For these actuator limits we observe ISO11270 and ISO15622. Lateral limits described there translate to 0.9 seconds of maximum actuation to achieve a 1m lateral deviation.
| `release-c3` | Release branch | Stable release branches. After testing on `staging-c3`, updates are pushed here and published publicly. | **Ready to Use:** Highly stable, recommended for most users. |
| `staging-c3` | Staging branch | Pre-release testing branches. Community feedback is essential to identify issues before public release. | **Varied Stability:** Generally stable, but intended for testing before public release. |
| `dev-c3` | Development branches | Experimental branches with the latest features and bug fixes brought in manually. Expect bugs and braking changes. | **Experimental:** Least stable, suitable for testers and developers. |
| `master` | Primary development branch | All Pull Requests are merged here for future releases. CI automatically strips, minifies, and pushes changes to `staging-c3`. Running the `master` branch is suitable for development purposes but not recommended for non-development use. | **For Development Use:** Suitable for developers, may be unstable for general use. |
!!! tip
Your feedback is invaluable. Testers, even without software development experience, are encourage to run `dev-c3` or `staging-c3` and report issues.
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 open-sourcing and externalization](https://www.sunnypilot.ai/blog/july/a-new-chapter-transparency/). Development activity is coordinated through our [GitHub Issues](https://github.com/sunnypilot/sunnypilot/issues), [GitHub Discussions](https://github.com/sunnypilot/sunnypilot/discussions), and [Discord](https://discord.sunnypilot.ai).
### Getting Started
* Setup your [development environment](https://github.com/sunnypilot/sunnypilot/tree/master/tools)
* Read about the [development workflow](WORKFLOW.md)
* Docs are at [https://docs.sunnypilot.ai](https://docs.sunnypilot.ai) and [https://www.sunnypilot.ai/blog](https://www.sunnypilot.ai/blog)
## What contributions are we looking for?
**sunnypilot's priorities are [safety](../SAFETY.md), stability, quality, and features, in that order.** Aligning with comma's ideals, part of sunnypilot's mission is 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.
* **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
### First contribution
Check out any [good first issue from commaai's openpilot](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 sunnypilot 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`](https://github.com/sunnypilot/sunnypilot) 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
- every line changed directly contributes to the stated purpose
- verification, i.e. how did you test your PR?
- justification
* if you've optimized something, post benchmarks to prove it's better
* if you've improved your car's tuning, post before and after plots
- passes the CI tests
## Contributing without Code
* Report bugs in [GitHub issues](https://github.com/sunnypilot/sunnypilot/issues).
* Report driving issues in the `#general` Discord channel.
* Consider opting into driver camera uploads to improve the driver monitoring model.
* Connect your device to Wi-Fi regularly, so that comma can pull data for training better driving models.
* Run the `staging-c3` branch and report issues. This branch is like `master` but it's built just like a release.
Aside from the ML models, most tools used for sunnypilot 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](https://github.com/sunnypilot/sunnypilot/tree/master/tools) for getting your PC setup for sunnypilot development.
## Quick start
```bash
# get the latest stuff
git pull
git lfs 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
op lint
```
## 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`.
| :material-check:{ style="color: #4DB6AC" } __Clear__ | Speed Limit Control (SLC) stuck in `preActive` when engaged |
| :material-close:{ style="color: #EF5350" } __Wordy__ | The Speed Limit Control (SLC) remains in the `preActive` state when longitudinal it's supposed to be engaged |
| :material-close:{ style="color: #EF5350" } __Unclear__ | SLC does not work |
| :material-close:{ style="color: #EF5350" } __Useless__ | Help |
### Context <small>optional</small> { #context }
Before describing the bug, you can provide additional context for us to understand what you were trying to achieve.
Explain the circumstances in which you're using sunnypilot, and what you _think_ might be relevant. Don't write
about the bug here.
!!! note "__Why this might be helpful__"
Some errors only manifest in specific settings, environments or edge cases, for example, when the feature is not available
to certain cars.
### Bug description
Now, to the bug you want to report. Provide a clear, focused, specific, and concise summary of the bug you encountered.
Explain why you think this is a bug that should be reported to sunnypilot, and not to one of its dependencies.[^3]
Adhere to the following principles:
[^3]:
Sometimes, users report bugs on our [sunnypilot's issue tracker] or [Discord][discord]
that are caused by one of our upstream dependencies, including [comma's openpilot], [comma's panda],
or other openpilot forks' dependencies. A good rule of thumb is
to reproduce the issue with stock openpilot in the same conditions and
check if the problem persists. If it does, the problem is likely not
related to sunnypilot and should be reported upstream. When in
doubt, use our [Discord][discord] to ask for help.
sunnypilot is a fork of [commaai's openpilot](https://github.com/commaai/openpilot), developed by [sunnypilot](https://sunnypilot.ai) and by users like you.
We welcome both pull requests and issues on [GitHub](http://github.com/sunnypilot/sunnypilot).
* Join the [community Discord](https://discord.sunnypilot.ai)
* Check out [the contributing docs](../community/CONTRIBUTING.md)
* Check out the [openpilot tools](https://github.com/sunnypilot/sunnypilot/tree/master/tools)
* Read about the [development workflow](../community/WORKFLOW.md)
* Information about running sunnypilot and code documentation lives on the [sunnypilot docs](https://docs.sunnypilot.ai)
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 `release-c3.sunnypilot.ai` to install the release version.
3.**Supported Car:** Ensure that you have one of [the 275+ supported cars](https://github.com/sunnypilot/sunnypilot/blob/master/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.
[comma.ai](https://comma.ai) have detailed instructions for [how to install the harness and device in a car](https://comma.ai/setup).
!!! note
It's possible to run sunnypilot on [other hardware](https://blog.comma.ai/self-driving-car-for-free/), although it's not plug-and-play.
sunnypilot is a fork of [comma.ai's openpilot](https://github.com/commaai/openpilot), an open source driver assistance system. sunnypilot offers the user a unique driving experience for over 250+ supported car makes and models with modified behaviors of driving assist engagements. sunnypilot complies with comma.ai's safety rules as accurately as possible.
## How do I use it?
sunnypilot is designed to be used on the comma 3/3X.
## How does it work?
In short, sunnypilot uses the car's existing APIs for the built-in [ADAS](https://en.wikipedia.org/wiki/Advanced_driver-assistance_system) system and simply provides better acceleration, braking, and steering inputs than the stock system.
Unlock the potential of sunnypilot by enabling radar tracks manually on applicable Hyundai/Kia/Genesis cars. Thanks to
[@greghogan](https://github.com/greghogan) and [@pd0wm](https://github.com/pd0wm), this feature is now accessible via SSH.
!!! info "How Radar Points Can Be Used Along With Vision"
Current openpilot policy is to identify with vision first and match it to a radar point. If vision sees nothing,
you get a false negative and no lead car detection. (Source: [Hubblesphere#7894 from comma.ai community Discord](https://discord.com/channels/469524606043160576/872899198738104330/872913890793635872))
!!! caution
**USE AT YOUR OWN RISK!** Stock system safety features, such as AEB and FCW, may be affected by these changes.
## 1. Prerequisites
Ensure the car is in the `OFF` ignition position and connect your comma 3/3X to the car.
## 2. SSH connection
Connect to your comma 3/3X via [SSH](https://github.com/commaai/openpilot/wiki/SSH).
## 3. Execute commands
In the SSH terminal, execute the following commands:
Follow the script instructions and ensure no faults appear.
## 4. Reboot
Reboot your comma 3/3X. Once rebotoed, start your car and ensure there is no fault caused by enabling the radar tracks.
## 5. Test drive
Go for a quick drive, drive behind a lead car, and allow the drive to upload its raw logs in [comma Connect](https://connect.comma.ai).
## 6. Verify in Cabana
Load the test route in [Cabana](https://github.com/sunnypilot/sunnypilot/tree/master/tools/cabana), load `hyundai_kia_mando_front_radar.dbc`, search `RADAR_TRACK_50x`,
and check `LONG_DIST`.
## 7. Confirmation
If the radar tracks data is relevant, you've successfully enabled radar tracks.
!!! tip
Having issues or need assistance? Reach out to the community in the `hyundai-kia-genesis` channel in
[sunnypilot Discord](https://discord.sunnypilot.ai) or [commaai community Discord](https://discord.comma.ai).
The line right above contains the actual speed. Unfortunately, COLOR_BLUE isn’t defined, but a git grep of COLOR_WHITE shows it’s nvgRGBA(255, 255, 255, 255). Personally, I like a lighter blue, so I went with #8080FF.
All [official sunnypilot branches](https://github.com/sunnyhaibin/sunnypilot/branches) strictly adhere to [comma.ai's safety policy](https://github.com/commaai/openpilot/blob/master/docs/SAFETY.md). Any changes that go against
this policy will result in your fork and your device being banned from both comma.ai and sunnypilot channels.
The following changes are **VIOLATIONS** of the safety policy and **ARE NOT** supported in any official sunnypilot branches:
!!! danger "Driver Monitoring"
- "Nerfing" or reducing monitoring parameters.
!!! danger "Panda Safety"
- No preventing disengaging of <ins>**longitudinal control**</ins> (positive/negative acceleration) on brake pedal press.
- No auto re-engaging of <ins>**longitudinal control**</ins> (positive/negative acceleration) on brake pedal release.
It is recommended to read the <u>**entire documentation**</u> before proceeding. This will ensure that you fully understand each added feature in sunnypilot. This also ensures that you are choosing the correct settings and branch for your car to have the best driving experience.
!!! warning
By installing this software, you accept all responsibility for anything that might occur while you use it. sunnypilot and all contributors to sunnypilot are not liable.
**Use at your own risk.**
## Installation
Please refer to the [Recommended Branches](../branches/recommended-branches.md) to find your preferred/supported branch. This guide will assume you want to install the latest `release-c3` branch.
You can install sunnypilot on your comma 3/3X using one of the following methods:
- ### [URL Method (Directly on Device)](url-method.md)
This method allows you to install sunnypilot directly from your device's screen using a provided URL. It's simple and user-friendly, requiring no additional tools or external devices.
- ### [SSH Method (Command Line)](ssh-method.md)
This method is for advanced users who prefer to use SSH to clone the sunnypilot repository and install it manually via the command line. It offeres greater control over the installation process.
The URL installation method can be done in two ways, depending on your current setup and version of sunnypilot on your device.
=== "sunnypilot not installed, or sunnypilot < 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, upon reboot, select `Custom Software` when given the option.
3. Input the **Installation URL** per [Recommended Branches](../branches/recommended-branches.md).
4. Complete the rest of the installation by following the onscreen instructions.
!!! info "[Recommended Branches](../branches/recommended-branches.md)"
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.