* safety for non-longitudinal
* flip around param for easily replaying old logs on new panda
* fix misra: a function parameter should not be modified
* safety
* the toyota tests all share common messages
* fixup tests
* update comment
* same as tesla test
* check if subset
* update comments
update comments
* make safety_param unsigned
* final one
* uint32_t
* change flags as well
* Revert "change flags as well"
This reverts commit ed8897dd86.
* unsigned
* update health packet version
update health packet version
* update struct H->I
* bump health version
* actually used
* safety mode for body
* move to 27
* dmm...
* misra..
* add faw to safety list
* missing safety modes in python lib
* dmm
* change address to 250
* add 0x1 addr for can flasehr
* whitespace
* alternative experiences
* not unsafe
* more renames
more renames
* not yet true
* I think we import from panda now
* update comments and test
* not needed
* bump health pkt version
Co-authored-by: Adeeb Shihadeh <adeebshihadeh@gmail.com>
* Add RTC with LSI for BP, GP, WP
* disable jenkins temporarily, REVERT!
* experiments
* cleanup is still needed
* cppcheck unused suppress
* raise deepsleep limit timeout to 120sec
* more experiments on usb_enumerated
* continue
* soft_disconnect
* almost done
* not enough
* no ignition
* still don't like it..
* rename to has_rtc_battery
* clock_source on the way!?
* delay 3 sec
* works on C3, needs test on C2
* And this is for C2
* disable bootkick
* misra 10.4
* ..
* ..
* set power state the right way
* change that
* seems don't need that? check on C2/C3
* partially works on RP...
* comments (will work after rebase)
* change fault name
* switch to manual activation mode
* Revert "disable jenkins temporarily, REVERT!"
This reverts commit 578d425fa7.
* my dear pedal!
* add unsafe_mode to health packet
this compiles
update health packet
fixes
ahh forgot to set it!
not actually needed
update indices
* fix struct
Co-authored-by: Willem Melching <willem.melching@gmail.com>
* cleanup python lib
* remove wifi leftovers from firmware
* few spots in firmware
* forgot
* remove usb to wifi test
* linter
* more cleanup in flasher.h
* more found
* check in tests too
* linter
* tesla safety cleanup + long WIP
* more long safety
* longitudinal safety tests
* fix misra
* add safety for main bus DAS_control
* acc_state is not enabled
* fix tests
* we don't want this
* fix Tesla common test
* python: disable power save by default when setting safety mode
* no need to set power save manually
* Update python/__init__.py
Co-authored-by: Adeeb Shihadeh <adeebshihadeh@gmail.com>
* Extend ISO-TP subsequent frame timeout, add response pending timeout and extra debug info
* Change response_pending to local variable, move response_pending_timeout to UdsClient, update ISO-TP debug output
* Set UDS request pending timeout to 6 seconds (ISO 14229-2:2013 section 7.2 recommended value + 1 second latency)
* manage response pending in single location
* more generous response pending timeout
* add tx timeout
* fix lint error
* fix rx addr for 29 bit addrs
* fix linting issue
Co-authored-by: Martin Lillepuu <martin@mlp.ee>
* H7 drivers
* Include H7 into the code
* fix flash write for H7
* get serial from flasher.h from F4 and H7
* flash.sh and recover.sh for gen3
* add set_data_speed for BRS CAN FD
* build all fws
* gen3 to panda lib
* gen3 name in scons project
* disable fd can and brs
* gen3 to CI tests
* jenkins fix for new tests and build_all
* fix pedal test
* pedal in panda tests again...
* cleanup llfdcan.h
* cleanup clock.h
* Add LDORDY bit check instead of delay
* missing define in stm32h735xx.h lib
* board_id helper
* enable debug detection again
* clean gpio inits
* fix board_id helper, make cleaner
* comment MCUs in stm lib for faster misra
* target MCU
* misra-5.5
* improve headers and misra speed
* cleanup CI tests
* change naming from gen3 to h7
* readable if statement
* cleanup llusb.h
* only cycle one transceifer in bus-off
* move unused funcs to common header
* bus_off_err reset
* misra 10.4 fdcan
* extern to can_data_speed variable
* limit can_data_speed array size to 3
* reinit fd can on data speed change
* Improve test with ELM327 and extaddr check
* bugfix for fdcan
* panda python config naming
* abstracted init request in llfdcan
* misra fdcan
* Improve llusb.h for H7
* Remove non-EON panda build
* missed that
* fixup readme
* more readme
* simplify ci
* add USB command to disable heartbeat checks in debug mode
* clean that up too
* more cleanup
* fix path
* disable heartbeat in set_safety_mode
* more red
* remove one more EON ref
* remove unused wifi tests
* remove that one too
* no bootmode from ESP
* clean that up
* remove two more wifi tests
* remove boardesp and esptool
* esp_gps -> gps
* missed those
* remove esptool refs
* remove esp certs
* no more wifi
* that was old
* cleanup jenkins dockerfile
* fix linter
* remove more wifi refs
* clone panda jungle from github
* no copy
* always default esp to off
* k-line slow init
* k-line slow init LED bit blink
* fix misra violations
* better names for k-line methods
* debug prints match names
* switch to timer
* use TIM4 until I figure out TIM5
* tickle faster
* fix bit bug and add stop bit
* TIM5 working
* USB return after addr sent
* fix l-line reset
* fix misra violations
* blink for the ones instead of the zeros
* k-line 5 baud fault type
* lin check
* use TIM5 or wakeup
* better names
* enable UART RX interrupts
* update debug prints for python3
* improve kline functions and fix checksum
* k-line wake-up conforming to KWP2000 fast init
* fix timing
* toggle k and l line together by default
* k-line wakeup using timer
* k and l were flipped
* fix misra compliance
* fix W391
* E262
* E703
* W293
* some E
* E231
* some more E
* E225
* more E
* E252
* no tabs
* more tabs
* E701
* uds.py
* almost all of them
* only e265 left
* not sure why this is triggering on commented out code
* ignore esptool
* Add pre commit checks
* untested but should work
* fix typo in dockerfile
* add sqlite
* add pylintrc to ignore usb1 members
* Typo in stage name
* Move to requirements
* wait for tx slots before clearing nak
* fix bootstub
* Fixed misra
* Cleanup
* Added bulk write test to test USB NAK on bulk CAN messages
* Added automated bulk tx test
* Fixed linter
* Fixed latency test influence
* Added timeout to python API
* Disabled can write timeout in bulk write test
Co-authored-by: Robbe <robbe.derks@gmail.com>
* Align with VW Community port 0.7.4-devel
* Import of PQ35/PQ46/NMS safety work
* Add safety replay drive for PQ35/PQ46/NMS
* Unwind community port hax for upstream, bump Panda ver
* Update comment
* Reduce whitespace diff
* Reduce whitespace diff
* Don't test the drive until it's uploaded
* Propitiate MISRA
* Ixnay on the VERSION LF
* Remove VERSION LF, update safety_replay with PQ drive
* Freshen cereal ref to include fields used in VW PQ test drive
* Remove superfluous return
* Bypass Docker caching issue
* Checkpoint Panda refactoring updates
* Rename MQB safety tests in preparation for PQ
* Refactor MQB tests, add missing torque test
* Bring in MQB init without CRC LUT setup
* Fix to ACC_06 test case
* Fix to ACC_06 test case
* Tweak comment for clarity
* Drop superfluous return
* Commands to get signature from panda
* does this make misra happy?
* Can I do this in misra?
* this works and makes misra happy
* Add jenkins test for get signature
* Remove comments
* Add comment about code size
* Fix firmware file path
* Exit power saving also for CAN based ingition detection and replace interrup with simple state machine. a bit of delay it's fine
* bug fixes and also CDP set on start
* sorry misra
* move comment
* typo
* remove ignition interrupts
* Power saving state machine should be done by boardd, which also sets safety modes and usb power modes
* typo
* Added usb command for power save state setting
* Added power save enabled packet
* Added power_save_enabled to python lib too
* Added uno
* Added usb switch support
* Added PWM and IR power functions
* Implemented bootkick
* Added uno as a new hw type
* Bumped version
* Added fan control and tach readout
* WIP: RTC support
* Working RTC
* Fixed python
* Misra compliance
* Added USB control messages for fan/IR power
* Added USB commands + tests for fan & IR control. Fixed bootstub and pedal compilation
* Added IR and fan to power saving mode
* Changed defaults
* Fix safety considering uno
* passing safety now
* Minor UNO tweaks
* Fixed version
* More minor temporary tweaks
* Removed usb load switch from uno
* Added power control for shutting down the fan completely
* Disable IR LEDs by default
* Fixed linter issue
* Linter fix#2
* make ignition logic common for all cars
* ignition_can is not a safety thing. move it to can drivers
* bump version
* gm safety passive is deprecated
* move tx 1 on logic into board specific headers.
* Added pyflakes and Pylint for python
* Actually run linter in CI
* some simple pyflakes changes
* Add flake8 to panda reqs for linter test
* flake8 errors are fixed
* run flake8 in regression tests
* meant to run flake8
* hack to ignore unused import
* bug
* fix bugs in tucan_loopback
* Another fix by using set_safety_mode
* added pylintrc file
* more fixes and enabled pylint as well
* Fix pylint in circleci
* added linter to readme
* Panda safety code for Volkswagen, Audi, SEAT, and Škoda.
* First pass at MISRA compliance.
* Second pass at MISRA compliance.
* Fix scope of violation boolean.
* MISRA doesn't care for implicit cast of unsigned int to boolean.
* Remove superfluous newline.
* Remove unused VW ignition hook code, preserve commentary.
* Add 50% padding to max delta check.
* Add 50% padding to max delta check.
* Add clarity around the origin of our safety constants.
* Update test RT delta to match safety.
* Jenkins test refactor and black panda addition
* Added HW types needed by previous commit
* Fixed ignition interrupts when not on EON build
* Added functions for load switches
* More test scripts for black panda
* Added NONE power mode to the code
* Fixed race condition when setting GPIO pins was interrupted.
* Added relay test script
* Fixed flashing with critical sections and GPS load switch
* Fixing critical depth after reboot
* Made the loopback test asserting
* Made critical depth a local variable to avoid race conditions
* Added GPS to power savings mode
* Fixed DFU mode on white panda and bumped version
* Fixed PEDAL_USB compilation error
* Fixed misra compliance of new critical depth code
* Cleaned up heartbeat logic in the testing code. Re-added ALL_CAN_BUT_MAIN_SILENT. Bumped version. Improved critical section code.
* Fixed DFU flashing (once again)
* Fixed VERSION
* Added relay endurance test
* Changed to alloutput on ELM mode for fingerprinting.
* Fixed minor remarks
* late usb
* Added type support for black panda
* Added harness presence and orientation detection
* harness relay driving code
* Added intercept support in black panda code. Switched around can0 and can2
* Disable ADCs after orientation detection. Ignition interrupts via harness
* WIP: Hardware abstraction layer + black panda bringup
* Fixed bootstub build
* Fixed bootstub for pedal
* Fixed infinite loops
* Got CAN buses working on white again
* Fixed pedal build and black can interfaces
* Got CAN buses working on black panda
* Finished loopback test for black panda
* Erase all flash sectors on the panda. Increased binary limit. Added extra python functions.
* Fixed python
* Made new code MISRA compliant
* Cleaned up ignition. Fixed build
* Fixed health packet
* Fixed CAN mode on black bug. Changed OBD to switch on ELM mode
* Fixes from Github review
* Fixed MISRA issue for pedal
* Fixed failing gmlan tests
* ELM327 safety: allow diagnostic on all buses
* Cleaned up EON relay code
* delete only 3 sectors instead of 11 to allow a new build to be flashed. Much faster to flash
* Removed CAN only can0 output mode. Does not make sense on black panda due to reversibility issues.
* Added heartbeat logic for EON code on panda. Go to NOOUTPUT if EON does not send a heartbeat for 5 seconds.
* Remove all CAN buses live on EON startup. Shouldn't be necessary to have this separate case
* Formatting
* Added file I forgot to push
* Added heartbeat to testing code to make sure EON tests don't fail. Should probably find a better way to do this though. Heartbeat thread didn't work, concurrent USB connection issues...
* Safety: support black panda for Honda Bosch
* Disable OBD2 if setting to NOOUTPUT mode
* Run safety tests for all hw_types
* Fail test if subtest fails
* fix safety tests
* Initial version of L-Line Relay
* lline relay fix build, add to health
* Add lline relay to safety
* Lline relay fix build
* Fix tests
* Add lline safety init. Dont fwd with relay closed
* Turn on relay with CAN
* relay hook
* More reliable lline relay
* Longer LLine timeout
* Only turn on wifi if not eon
* Dont disable ESP in early
* Allow CAN to be turned off
- CAN is turned off via USB.
- CAN is turned on when either try to transmit or can is received
- If only transmit is asleep, all messages should send okay
- If receive is alseep, will miss first message while waking up
- Sometimes will report error on second message while CAN perif wakes up
- Saves 130mW!
* Power Saver Mode
- Gray Panda power consumption 650mw -> 325mW
- Turns off CAN, GMLAN, LIN, GPS when no activity for 10s
- No acitvity is no CAN send, CAN Recv, Write to GPS
* Fix power_saving to better turn off can
- On some cars when the can is turned off, it triggers a wakeup.
Delaying the automatic wakeup seems to fix this
* Don't save power in pedal
* Fix relay clicking on startup
* Fix duplicate include
* consistent relay setting
* relay_status can be added when needed, as it's started_alt was consumed in other places
* need to skip forwarding only if relay control is claimed
* unneded change
* make lline_relay.h not depending on can.h
* less spaghetti I guess
* less lines
* reset pedal changes
* no unused input
* update version
* Improve panda automated testing
* begin testing both white and grey panda
* Improve wifi reliability
* First commit for docker
* Fix usb devices not showing up on reconnect
* Add tests for two pandas, latency and throughput
* Add Jenkinsfile
* Allow flashing release on wifi
* Fix Jenkins stuck in DFU mode and docker container running
* Add pandaextra from xx to docker
* Need more time for ST to restart, sometimes
* Add xml output to tests
* Try making wifi more reliable
* Fix infinite loop in ping
* Check connected after flash
* Cleanup two panda tests
* Try fixing failing test with check after udp
* Try to fix with sleep
* Temporarily run just 5 and 6
* Cleanup
* Desperate times call for desperate measurse
* BUGFIX: power saving when rx only
* Fix failing when white panda is first after udp
* Test both Dev and EON build
* Jenkins test results for both builds
* Better test case naming
* Only turn on wifi if not eon
* Dont disable ESP in early
* Allow CAN to be turned off
- CAN is turned off via timeout
- CAN is turned on when either try to transmit or can is received
- If only transmit is asleep, all messages should send okay
- If receive is alseep, will miss first message while waking up
- Sometimes will report error on second message while CAN perif wakes up
- Saves 130mW!
* Power Saver Mode
- Gray Panda power consumption 650mw -> 325mW
- Turns off CAN, GMLAN, LIN, GPS when no activity for 10s
- No acitvity is no CAN send, CAN Recv, Write to GPS
* Fix power_saving to better turn off can
- On some cars when the can is turned off, it triggers a wakeup.
Delaying the automatic wakeup seems to fix this
* Don't save power in pedal
* Cleanup power saving
* Chrysler safety model and tests.
* fix comments
* when ACC is canceled, disallow controls
* update SAFETY_CHRYSLER value in Python API and add other SAFETY values
* Implement webusb and winusb 2.0 specs
* Add missing constants
* Refactor string system, add support for USB2.1
* Uncapitalize the panda
* Add USB 2.0 extension descriptor and device qualifier getter
* Sleep during reconnect process to be more reliable
* Disable compiler optimizations because they break SPI coms