Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Tesla Model S support #145

wants to merge 1 commit into from

Tesla Model S support #145

wants to merge 1 commit into from


Copy link

@geohot geohot commented Oct 28, 2017

Model S Support by:
Jean-Claude Thibault (Kalud)
Robert Cotran (zax123)

A huge thanks to them! The openpilot community is amazing.

Check out a video of it working on a pre AP Tesla:

Note: All new car support is extremely alpha. Unless you are ready to spend time tinkering and know how to safely experiment, please wait until this is merged into openpilot master and been audited for safety.

Copy link

@jeankalud jeankalud commented Nov 3, 2017

Hardware instructions:

Copy link

@jeankalud jeankalud commented Nov 3, 2017

Two full 6 min without touching the steering wheel (except to bump the 6 min user awareness):

Also, quick timelapse:

And longer video (30 min) super boring!:

Copy link

@neilsambhu neilsambhu commented Nov 6, 2017

Hello everyone,
I am new to github and the developments surrounding and openpilot; I would love to learn more about self-driving technology. I have some questions regarding the hardware instructions ( posted by @jeankalud:

  1. Can the Neo be interchanged for the EON Dashcam DevKit ( If not, would the neodriven be suitable (
  2. Is the panda OBD-II Dongle ( a suitable interface to the diagnostic connector to tap into the chassis CAN, as mentioned in the "Establishing a connection to the car's chassis CAN bus" section of the hardware instructions?

If there is a better way for me to contact Jean-Claude Thibault and Robert Cotran, please let me know.


Copy link

@jeankalud jeankalud commented Nov 6, 2017

Join #tesla on

Short answer, yes to both questions.

from selfdrive.config import Conversions as CV

# *** Honda specific ***
Copy link

@klaus385 klaus385 Nov 9, 2017

Is this block still needed for Tesla port? Since its supposed to be "Honda Specific"?

This is unused. There will be a much cleaner pull request with updated to codebase in about two weeks. I am currently porting the code and testing.

Copy link

@max0vdh max0vdh commented Nov 10, 2017

@jeankalud , thank you for your efforts. I am assembling hardware to test this out. It appears that the EPAS bypass cable you describe omits the BATT and GND connections to the EPAS, just leaving them unpopulated on the X164 side. Am I misreading the instructions or is that really intended? Also, I plan to include an in-cabin DPDT switch to un-bypass the kill signal so I can easily remove the NEO temporarily. I want to make sure the EPAS is reconnected as originally designed in that mode.

I wish you luck learning how to communicate with a later model radar unit as well to incorporate TACC. Wish I could be of help with that.

Copy link

@jeankalud jeankalud commented Nov 10, 2017

Batt (ignition) and ground are passed from the male to female connectors at the EPAS. The concept is to plug the unused connector from the car’s harness to protect from elements, but we still use its ignition and ground signals. That way the cable going into the cabin only has to carry the canbus signals going to the EPAS.

We do use a DPDT switch in the cabin becaus you need to restore original signals from car’s chassis canbus to drive without the NEO/EON, otherwise you get “Reduced steering power” safe mode on the EPAS.

Contact us in the slack channel is needed, we’ll get you running ;) It a bit intimidating at first but overall not that difficult and totally reversible. And it works so well!

Copy link

@max0vdh max0vdh commented Nov 10, 2017

@jeankalud thank you for your response. Everything about your bypass cable strategy seems sensible but specifically, I was questioning whether pin 1 (batt) and pin 2 (gnd) should be passed directly to the EPAS as well. It is clear that ignition (pin 6) and CAN- (pin 2) get there. Sorry if I'm missing something obvious.

Copy link

@bitshop bitshop commented Feb 8, 2018

@geohot What do we need to do to get this merged, other than obvious like get it to latest OP version. The cars don't appear to have computer controllable brakes, so that's a limitation. The fingerprint and other things are missing here, so there's some obvious work.

I think it should run on Panda/Eon also as a qualification for 0.4.x.

I suspect we MUST get longitudinal control integrated with the cruise system at some point, but as this drifts further from merge-able that creates a barrier for the people working on this to fork instead of merge, that doesn't seem like a desired outcome.

What's the bar you set for getting this merged? Perhaps if high we can merge a working version but with a fingerprint commented out explaining why you must understanding how truly alpha it is - But that way we eliminate the code base drifting from the pull request.

Copy link

@sveip sveip commented Feb 28, 2018

@jeankalud, your page states The classic Model S does not have autopilot hardware but does have the same steering control system and servo as the autopilot Model S and therefore can be controlled through electrical signaling (specifically one of the car's CAN buses).

Are you sure this is the case? I used to have an 2013 S and now have an 2015 AP S. The 2013 pre-AP had another steering rack and controls, but later models (mid 2014, pre AP) were delivered with newer steering rack but w/o radar and camera.

Effectively, I think this means that OpenPilot will only work on the later pre-AP, and obviously AP cars.

Can you confirm/decline this?

Copy link

@jeankalud jeankalud commented Feb 28, 2018

@sveip My car is a November 2013 pre-AP and I've driven more than 20,000 km on Openpilot already. Also, my friend zax123 has a March 2013 Model S and is also using Openpilot every days. Lateral control only for us. The commands to control the steering angle are the same on newer (2018) and older (2012-2013) Model S, but the steering rack hardware did change at some point, like you pointed. Regardless, all those electric power steering are controllable. Please join the Slack channel for more discussions:

Copy link

@jnrowell jnrowell commented Mar 12, 2018

I'd like to get openpilot running on my 2013 Model S. However I could not figure out how to join the Slack channel - it's asking me for a email address, which I don't have. Can you provide a list of the parts that are needed? I've looked at the linked sites but they're not making sense to me for some reason, and they appear to have not been updated since last October. Would appreciate some direction here, thanks!

Copy link

@andy867 andy867 commented Mar 12, 2018

Copy link

@jnrowell jnrowell commented Mar 12, 2018

I tried entering my gmail address but what's the password? I tried the "forgot password" link and I got an email saying my email address "doesn't have an account for that workspace". So how can I get an account?

Copy link

@jnrowell jnrowell commented Mar 12, 2018

OK, I think I finally figured it out. I'll put this out there for others who are having the same trouble I had. You can't join directly on - you first have to visit and enter your email address. Then once you're signed up, go to and log in.

Copy link

@Palvaran Palvaran commented Mar 12, 2018

@jnrowell, Thanks. I was wondering about this as well.

@geohot geohot closed this May 11, 2018
@geohot geohot mentioned this pull request May 13, 2018
Copy link
Contributor Author

@geohot geohot commented May 13, 2018

See #246

legonigel pushed a commit that referenced this issue Mar 26, 2019
3a55ae9 New camry steer message (#149)
6cd0238 Add 2019 CR-V Hybrid DBC (#148)
721e9b2 Subaru: set speed can be in kph and it needs 8 bits
0e98b2c Subaru: update LKAS_State
945b6ad Subaru: slightly touched wheel speed factor
608a4a6 Add files via upload (#147)
6a29f7e Subaru: fixed DOOR_OPEN sgs
434debb Adds dbc for 2017 lexus is300h (hybrid) (#146)
679dd42 Subaru: some cleanup to dbc
38140d2 Subaru: endianess consistency in wheel speeds
8281813 Subaru Global: more endianess consistency. Still a long way to go
a3b78a3 Subaru Global: simplified Stalk Message
b8250bc fixed sign in steering angle
9552df4 Subaru: left steer is positive
4aca14c SUBARU LKAS: minus sign to steer command to match standard convention
a6cc574 Merge pull request #145 from Jafaral/master
abcb9a2  Add Mazda CX-5 2017 GT
f4a8f79 Pedal: back again at 6 bytes
3fd25bf Pedal: same checksum and counter (#143)
2c74c55 Toyota pedal: messages are now 7 bytes
732f3fc Toyota pedal: added counter
acf0da7 Subaru global dbc (#142)
e0fa5d0 Subaru: added global dbc
cb22125 change chrysler radar to all big endian to avoid OP can parser bug (#141)
ecf99e0 chrysler car model in LKAS message so we can use CAN packer (#140)

git-subtree-dir: opendbc
git-subtree-split: 3a55ae9
Jamezz pushed a commit to jamezz-comma/openpilot that referenced this issue Apr 3, 2019
* Kill services if eon batt low

* Kill services if batt low - addition

* Set 3 min limit before shutdown if unplugged
avolmensky pushed a commit to avolmensky/openpilot that referenced this issue Jun 10, 2019
icmma pushed a commit to priuscom/openpilot that referenced this issue Jun 16, 2019
pd0wm pushed a commit that referenced this issue Nov 5, 2019
256d274 Fix Mac installation instruction per:
bfd8ff1 Update cppcheck commit with more coverage
b143a1c Fixed Misra complaint
606f1d9 Fixed RTC on non-uno boards, second try. Cannot work when there is no xtal.
933c757 Fix RTC on non-uno boards (#311)
48d0d0c VW button spam: fix safety and add tests (#306)
6cccf96 Fan and IR at 0 when in power savings mode (#309)
0537328 board get_sdk scripts were left on python2
de18a7e bump version after uno merge
1965817 Changed default values for testing
a12a148 Uno (#274)
7d29dc5 bump panda version. We really need a better way
4007532 VW: stricter limits to comply with comma safety policy
e2e2be9 add safety mode to health packet
101238c turned on VW ignition based CAN logic
a0d8d5d fix misra 5.3: check_ignition is intended as check_started and can't be used twice
ea636de made check_ignition function to both look at ignition_line and ignition_can
1102e69 make ignition logic common for all cars (#303)
3a110c6 bump version after CMSIS core upgrade
55dfa52 Update core to CMSIS 5.6 release  (#251)
ee86490 fix linter 2
f410b11 fix linter
55957d6 proper python3 exception inheritance
6ba0f47 fix linter errors
5c49fe0 Merge pull request #145 from gregjhogan/uds
0f36199 timeout is float
396d6aa safety_replay only installs few extra requirements
25af7d3 Misra also need python 3 env
7434c5c centralize requirements for tests
a0c37c7 coverage not needed in linter reqs
fce38a9 Linter python (#299)
62e2f5c update cppcheck commit
711810d more uds debug
4454e3a better CAN comm abstraction
6b1f28f fix more encoding and some bytes cleanup (#300)
9c857da 0x
b64d6fa typing
768fdf7 bytes() > chr().encode()
1be15ea custom errors from thread
68da831 more python3
eb358e8 uds lib example
4f28858 updates for python3
932745f support tx flow control for chunked messages
b1c3712 add timeout param
cdf2f62 bug fixes
b1a3195 fix rx message filtering bug
80fb6a6 convert uds lib to class
59cd2b4 handle separation time in microseconds
4429600 fix separation time parsing
c641e66 fix typo
48b8dcc fix flow control delay scale
78f413d flow control delay
33a5167 bug fixes
8ee89a0 multi-frame tx
5e89a9c clear rx buffer and numeric error ids
9662300 fix remaining size calculation
01ef1fa zero pad messages before sending
1ddc973 uds can communication
dca176e syntax errors
95be481 SERVICE_TYPE enum
98e73b5 more UDS message type implementation
c1c5b03 uds lib
162f485 fix chr to bytes conversions (#298)
4972376 Update VW regression test to follow Comma safety index refactoring (#296)
f9053f5 more Python 3 fixes, attempting to fix jenkins wifi regresison test (#295)
2f9e076 Panda safety code for Volkswagen, Audi, SEAT, and Škoda (#293)

git-subtree-dir: panda
git-subtree-split: 256d274
SippieCup pushed a commit to SippieCup/openpilot that referenced this issue Mar 17, 2020
Vaggysag pushed a commit to Vaggysag/openpilot that referenced this issue Apr 21, 2020
Unified Diagnostic Services (UDS) panda library (ISO 14229)
SebastienLubrano pushed a commit to SebastienLubrano/openpilot that referenced this issue Aug 9, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
None yet
None yet
Linked issues

Successfully merging this pull request may close these issues.

None yet

10 participants