Commit Graph

150 Commits (spacecruft)

Author SHA1 Message Date
Greg Hogan 8138fc14c8 uds: handle function addrs and fw version query example 2019-11-16 18:54:28 -08:00
Robbe 6626a54241 Fixed python health api 2019-11-15 21:01:46 -08:00
Greg Hogan b9b79e8b77 uds zero second timeout 2019-11-15 13:52:25 -08:00
Greg Hogan f239b996db single addr was better 2019-11-14 13:34:25 -08:00
Greg Hogan b3e1a133ae uds: better debug prints 2019-11-12 22:22:49 -08:00
Greg Hogan 68c39fb3e2 uds: no need for threads if you always drain rx 2019-11-12 18:52:41 -08:00
Greg Hogan ff86db6553 improve uds message processing 2019-11-06 13:50:32 -08:00
Greg Hogan 501db8d199 uds drain before send and use has_obd() 2019-11-05 18:40:21 -08:00
Robbe f2cbec161e Added has_obd() to python library 2019-11-05 18:25:42 -08:00
robbederks e0762c2e77
Add Python & USB API for controlling phone power (#313)
* Added interface for phone power

* Add power function in python

* Fixed struct
2019-11-04 17:26:37 -08:00
Robbe ba9fb69f65 New health packet struct also in the python libs 2019-10-31 17:08:02 -07:00
rbiasini a12a148d5f Uno (#274)
* 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
2019-10-25 16:22:42 -07:00
rbiasini 1102e69652
make ignition logic common for all cars (#303)
* 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.
2019-10-22 15:10:43 -07:00
Greg Hogan 55957d6e4e proper python3 exception inheritance 2019-10-16 00:15:16 -07:00
Greg Hogan 6ba0f47b56 fix linter errors 2019-10-15 23:52:52 -07:00
Greg Hogan 5c49fe050e
Merge pull request #145 from gregjhogan/uds
Unified Diagnostic Services (UDS) panda library (ISO 14229)
2019-10-15 23:42:22 -07:00
Greg Hogan 0f361999bd timeout is float 2019-10-15 23:38:24 -07:00
rbiasini fce38a91d7
Linter python (#299)
* 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
2019-10-15 14:03:31 -07:00
Greg Hogan 711810d2f0 more uds debug 2019-10-15 12:14:09 -07:00
Greg Hogan 4454e3a6bb better CAN comm abstraction 2019-10-15 12:07:19 -07:00
rbiasini 6b1f28f574
fix more encoding and some bytes cleanup (#300) 2019-10-15 12:05:33 -07:00
Greg Hogan 43adad3116 fix WARNING_INDICATOR_REQUESTED name 2019-10-14 17:32:23 -07:00
Greg Hogan 9c857da379 0x 2019-10-14 17:32:23 -07:00
Greg Hogan b64d6fa5d2 typing 2019-10-14 17:32:23 -07:00
Greg Hogan 768fdf7e19 bytes() > chr().encode() 2019-10-14 17:32:23 -07:00
Greg Hogan 1be15ea934 custom errors from thread 2019-10-14 17:32:23 -07:00
Greg Hogan 68da8315f3 more python3 2019-10-14 17:32:23 -07:00
Greg Hogan 4f288586d5 updates for python3 2019-10-14 17:32:23 -07:00
Greg Hogan 932745f62b support tx flow control for chunked messages 2019-10-14 17:32:23 -07:00
Greg Hogan b1c371292c add timeout param 2019-10-14 17:32:23 -07:00
Greg Hogan cdf2f626ba bug fixes 2019-10-14 17:32:23 -07:00
Greg Hogan b1a3195770 fix rx message filtering bug 2019-10-14 17:32:23 -07:00
Greg Hogan 80fb6a6fa0 convert uds lib to class 2019-10-14 17:32:23 -07:00
Greg Hogan 59cd2b47f9 handle separation time in microseconds 2019-10-14 17:32:23 -07:00
Greg Hogan 4429600d8e fix separation time parsing 2019-10-14 17:32:23 -07:00
Greg Hogan c641e66f72 fix typo 2019-10-14 17:32:23 -07:00
Greg Hogan 48b8dcc6f9 fix flow control delay scale 2019-10-14 17:32:23 -07:00
Greg Hogan 78f413d88f flow control delay 2019-10-14 17:32:23 -07:00
Greg Hogan 33a5167d93 bug fixes 2019-10-14 17:32:23 -07:00
Greg Hogan 8ee89a091d multi-frame tx 2019-10-14 17:32:23 -07:00
Greg Hogan 5e89a9c728 clear rx buffer and numeric error ids 2019-10-14 17:32:23 -07:00
Greg Hogan 9662300632 fix remaining size calculation 2019-10-14 17:32:23 -07:00
Greg Hogan 01ef1fae36 zero pad messages before sending 2019-10-14 17:32:23 -07:00
Greg Hogan 1ddc9735d1 uds can communication 2019-10-14 17:32:23 -07:00
Greg Hogan dca176e717 syntax errors 2019-10-14 17:32:23 -07:00
Greg Hogan 95be4811ef SERVICE_TYPE enum 2019-10-14 17:32:23 -07:00
Greg Hogan 98e73b51d2 more UDS message type implementation 2019-10-14 17:32:23 -07:00
Greg Hogan c1c5b0356b uds lib 2019-10-14 17:32:23 -07:00
rbiasini 162f4853df
fix chr to bytes conversions (#298) 2019-10-13 18:15:04 -07:00
rbiasini f9053f5df4
more Python 3 fixes, attempting to fix jenkins wifi regresison test (#295)
* more Python 3 fixes, attempting to fix jenkins wifi regresison test. Not successful, but closer.
2019-10-10 12:34:52 -07:00
Jason Young 2f9e076289 Panda safety code for Volkswagen, Audi, SEAT, and Å koda (#293)
* 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.
2019-10-09 13:54:22 -07:00
rbiasini ffbdb87a8d
python2 -> 3 fixes to pedal flasher (#292)
* python2 -> 3 fixes to pedal flasher

* fix Debug flash as well

* Fixes to wifi-test
2019-10-08 19:07:59 -07:00
Robbe 736c2cbf7b Fixed sending of bytes over PandaSerial 2019-10-07 14:26:44 -07:00
rbiasini af0960ad3d DFU fix (#288)
* DFU fix

* fix test 2

* this should fix all the remaining jenkins test

* Fixed pyenv shim not being a python file, but a sh script
2019-10-03 19:46:28 -07:00
rbiasini 70219d7bb2
match safety enum in cereal (#285)
* match safety enum in cereal

* removing tons of hardcoding

* add pythonpath to safety test

* Fix safety test in Docker
2019-10-02 18:20:32 -07:00
Robbe c4aabae591 Fixed some python3 bugs in the test scripts and PandaSerial 2019-09-27 15:22:13 -07:00
Riccardo d3268690c9 Revert "revert back esptool to python2 and force to build esptools with python2"
This reverts commit 875e76012b.
2019-09-26 17:02:38 -07:00
Riccardo 875e76012b revert back esptool to python2 and force to build esptools with python2 2019-09-26 16:21:47 -07:00
Riccardo 5f2bc44606 better 2019-09-25 16:52:51 -07:00
Riccardo b2a30fdbdf make works! 2019-09-25 16:52:03 -07:00
Riccardo fe727706bd read file as byte and no tab before sleep 2019-09-25 14:34:28 -07:00
Riccardo 2dc34096a0 2to3 applied 2019-09-24 22:33:46 -07:00
Riccardo ffa68ef711 undo unnecessary brackets for print 2019-09-24 18:07:05 -07:00
Riccardo dbc248027e Fix all the prints with 2to3, some need to be undo 2019-09-24 18:02:15 -07:00
Riccardo 5a7aeba0f5 xrange is gone 2019-09-24 17:56:55 -07:00
Riccardo 1e2412a297 env python -> env python3 2019-09-24 17:50:53 -07:00
robbederks 6f532c6d51 Black panda Jenkins (#256)
* 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
2019-08-28 12:57:42 -07:00
rbiasini 59f5813173
Black (#254)
* 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
2019-07-23 15:07:06 -07:00
dekerr 45d0d286f4 remove whitespace (#255) 2019-07-19 19:35:50 -07:00
Riccardo 3e9469b3ee Fixing tests after min->MIN change 2019-06-30 14:19:31 -07:00
Willem Melching 03d1c8ab3e make dfu.py compatible with latest libusb1 2019-06-26 13:56:02 -07:00
rbiasini a3f65d66e9
capitalize MIN and MAX macros (#220) 2019-06-17 13:48:14 -07:00
George Hotz 3810452a02 WTF WHY WAS THIS SHIT PUT EVERYWHERE 2019-05-23 12:39:54 -07:00
Nigel Armstrong f8ab74a1cc L-line relay (#166)
* 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
2019-04-11 21:03:15 -07:00
Nigel Armstrong 1d2f8f0abf
Jenkins (#179)
* 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
2019-04-09 14:09:18 -07:00
Nigel Armstrong 4276c380e6
Additional Power saving (#170)
* 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
2019-04-01 22:45:00 -07:00
Nigel Armstrong 20c76ad592 Power Saving (#169)
* Only turn on wifi if not eon

* Make sure esp is disabled on eon

* Dont disable ESP in early
2019-03-13 20:58:00 -07:00
rbiasini a6193a8285
Dcp remove (#168)
* No DCP charge mode when building from EON
2019-03-11 23:41:40 -07:00
Nigel Armstrong d7d08892e7 Capture make failure so it can be logged to sentry 2019-02-21 01:48:36 -08:00
Drew Hintz 799c33868d Chrysler safety controls (#130)
* 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
2018-11-06 12:28:33 -08:00
George Hotz e7ca587b2b long isotp msgs 2018-06-21 15:59:29 -07:00
George Hotz 4150684aa8 add javascript and bump pandacan version 2018-05-09 13:18:53 -07:00
Chris Vickery 6dbd8c972b
Implement WebUSB and upgrade WinUSB to 2.0 (#107)
* 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
2018-04-11 10:08:56 -07:00
George Hotz fe15d3fb0f bump pandacan 2018-03-13 15:22:33 -07:00
George Hotz b259e2ae91 can flasher is close to working 2018-03-10 11:22:22 -08:00
George Hotz 7ae7c7961f typo 2018-03-10 10:17:57 -08:00
George Hotz e85cc4758a forgot the selfs 2018-03-10 10:16:53 -08:00
George Hotz f7a0ab09bf pedal usbflash works 2018-03-09 17:47:13 -08:00
George Hotz 585d0f9e6a add way to call isotp 2018-03-09 17:40:03 -08:00
George Hotz be828991ae despite it being bad code, move isotp 2018-03-09 17:37:47 -08:00
gregjhogan 5c7ef9ee43 added bosch safety hooks and forwarding 2018-03-05 18:17:30 -06:00
Jennifer Strange 08f464cffb python 3 bro is bad bro 2018-02-28 17:47:37 -08:00
Jennifer Strange 9390961041 kline checksum algo was broken... 2018-02-28 17:45:54 -08:00
Jennifer Strange 3b7c33b15a add kline debug support 2018-02-28 17:03:04 -08:00
George Hotz 8203cc8e59 add is_grey 2018-02-16 11:07:20 -08:00
George Hotz b68957e666 add pandadebug support 2018-01-23 18:40:53 -08:00
George Hotz 21f8195d4e fix panda serial write 2018-01-19 11:04:21 -08:00
George Hotz aa0cfadb6b fix UART hang 2018-01-08 14:53:38 -08:00
George Hotz 65997ffcf5 add PandaSerial and location panda (aka pigeon) test 2018-01-07 11:31:54 -08:00
George Hotz b74b6f2727 rename panda to python because of git ambiguity 2017-12-06 16:17:57 -08:00