About: Liam O'Brien is an electronics engineer and astronomer. Who, when not battling poorly directed streetlights and dew forming on lenses, likes to build things for both the physical and digital world. He also has…

Recently I thought it might be fun to try poking around the Model S CAN bus, since the car is basically one big computer with almost all of the controls accessed from the large centrally placed 17" touch screen. As I once heard someone say, "The only reason the wheels are there is to stop the computers from dragging along the ground"

Before we dive into the tutorial lets answer some basic questions that might be nagging at you.

What is CAN?

CAN is a vehicle bus standard first introduced in 1983 by Bosch, it was designed to allow microcontrollers and other sensors to communicate with each other within a vehicle without a host computer, greatly simplifying what had traditionally been a rats nest of wires for even the simplest of features, e.g. high and low beams required wires directly connecting the headlights to the driver high/low switch. This meant lots of wire, sometimes hundreds of pounds worth of copper, not cheap and not easy to fix it if anything went wrong, as it often did cough...vintage Jaguar...cough

The network structure is fairly simple, commands are sent out over the CAN network (or networks some cars can have 3 or more) and can be received by anyone on the bus, but only used by those that can actually do something with them, e.g. lets say you press the drivers side window down button, a command is sent out to all the devices on the network but only the window motor controller actually does anything with it, hopefully rolling down your window.

What is OBD/OBDII

On-Board Diagnostic systems are in most cars and light trucks on the road today. During the '70s and early 1980's manufacturers started using electronic means to control engine functions and diagnose engine problems. This was primarily to meet EPA emission standards. Through the years on-board diagnostics and control became increasingly more more sophisticated, so in the 1996 the next generation called OBD-II became a mandatory requirement in most American automobiles, this improvement provided almost complete engine control and also monitoring of the chassis, body and accessory devices, as well as enabling diagnostic error code checking and clearing. More information can be found at the links below.

Why would we want to do any of this?

If you have to ask that, you might be in the wrong place. My answer, because it's FUN! (if not slightly nerdy)

Legal Disclaimer:

TL;DR: YOU (and only you) are responsible for your own derrière, don't do anything dangerous or silly and say it's my fault.

The information contained in this document is based upon information that is believed to be accurate to the best of my knowledge, but is provided without guarantee or representation as to accuracy. I disclaim and make no guaranty or warranty, expressed or implied, as to the accuracy or completeness of the information published herein. Use of the final product resulting from the project is at your own risk. I disclaim all responsibility for any resulting damage, injury, or expense. While nothing truly dangerous can come of simply looking at data from your car, please be aware that by accessing this port you can gain access to safety critical, Powertrain and High Voltage systems, while not scary by themselves, caution, respect, and common sense are highly recommended.