SlideShare a Scribd company logo
1 of 15
When the Rubber Hits the Road:
Making Your Computer Talk to Your Car

        Gary “Chunky Ks” Briggs
         <chunky@icculus.org>
Slides Overview
Me
OBDGPSLogger
ELM327 and OBDII
OBDSim
Demo
Me
Grew up & Studied in England
Offered job in LA doing random Linux stuff
  Which ended up being print drivers for 6 years
Now I work at a research
 nonprofit in Santa Monica
  Mostly simulation and modeling


Really, this slide is so I have
 somewhere to put this pic --->
OBDGPSLogger Genesis
Late 2009, I bought a car with an OBDII port
That's mighty tempting
Idealist requirements:
  Linux, OSX. Windows maybe
  Log data
  No GUI. RasberryPi, SheevaPlug...
  Log GPS as well as OBDII
  Make pretty pictures
OBDGPSLogger Now
http://icculus.org/obdgpslogger
“It does exactly what it says on the tin. It logs
   OBDII and GPS data on Linux, OSX and
   others”
Mostly C, bits of C++
Open Source
Logs to SQLite
Hokey GUI
OBDGPSLogger in Google Earth
OBDGPSLogger, Still...
Reads only Mode $01 PIDs
Magically just works
  Except I haven't patched in support for current gpsd
Google Earth output
  There's a live version, too
Simple analysis stuff
Works with my bike...
ELM327 and OBDII
Originally invented at Elm Electronics,
 http://elmelectronics.com/obdic.html#ELM327
Most of the high-quality manufacturers implement
 their own chip firmware
The ELM327 datasheet taught me most of what I
 know
ELM327 and OBDII, AT commands
Standard text-based serial protocol
I use PuTTY on Windows, screen(1) on Linux
ELM327 commands might look suspiciously
 familiar to older members of the audience
  ATZ for reset
  ATE0/1 to turn echo on or off
Scantool.net have an additional “ST” command
 set
ELM327 and OBDII, Getting Data
In short:
> 01 0D
41 0D 1F
>
“Show me mode $01, PID $0D” [vehicle speed]
41 => 0x40 | 0x01
    0x40 = success, 0x01 = requested mode
0D => requested PID
OBDSim Genesis
Got bored of walking out to car with my laptop
Went looking for ELM327 & OBDII simulator
Idealist requirements:
  Command-line
  OBDGPSLogger log playback
  Actually honors ELM327 commands
  Multiple ECUs
  Multi protocol support
OBDSim Now
http://icculus.org/obdgpslogger/obdsim.html
Pluggable data generators
Works with all OBDII tools I've tried
In the same source as OBDGPSLogger
Has way more users than OBDGPSLogger
Native Windows [MSYS] using com0com
OBDSim Supported AT commands
ATAT{0,1,2} – Adaptive timing          Cvdddd – Calibrate battery voltage
ATD{0,1} – Display data bytes          RV – Request battery voltage
ATL{0,1} – Linefeed                    ATD – Reset defaults
ATH{0,1} – Headers                     ATDP – Describe protocol
ATS{0,1} – Space separators            ATDPN – Describe protocol by number
ATE{0,1} – Command echo                ATI – Request device version id
ATSP[A]{0-9,A-C} – Set protocol        ATZ – Reset device
ATST{n} – Set timeout                  ATWS – Warm start reset
@1, @2, @3 – Device identifier stuff   EXIT – Exit OBDSim
OBDSim Demo
Launch on Linux, use “-c” to attach screen(1):
   obdsim -c
ATZ, total reset
ATE{0,1}, ATS{0,1}, ATL{0,1}
   As a developer, you'll turn them all off
   For keyboard experimenting, turn them all on
ATI, @1, @2 for identifying device
Couple simple data requests [010D vss, 010C rpm]
ATH1, ATSP7 [CAN 29-bit 500], ATSP1 [J1850]
That's all, Folks

More Related Content

What's hot

Interfacing with Arduino
Interfacing with ArduinoInterfacing with Arduino
Interfacing with ArduinoOmer Kilic
 
Physical Computing with the Arduino platform and Ruby
Physical Computing with the Arduino platform and RubyPhysical Computing with the Arduino platform and Ruby
Physical Computing with the Arduino platform and Rubymdweezer
 
BURO Arduino Workshop
BURO Arduino WorkshopBURO Arduino Workshop
BURO Arduino WorkshopOmer Kilic
 
Integrare Arduino con Unity
Integrare Arduino con UnityIntegrare Arduino con Unity
Integrare Arduino con UnityCodemotion
 
Porting To Symbian
Porting To SymbianPorting To Symbian
Porting To SymbianMark Wilcox
 
Internet of Things
Internet of ThingsInternet of Things
Internet of ThingsAndy Gelme
 
Sensors, actuators and the Raspberry PI using Python
Sensors, actuators and the Raspberry PI using PythonSensors, actuators and the Raspberry PI using Python
Sensors, actuators and the Raspberry PI using PythonDerek Kiong
 

What's hot (15)

At the end of the rainbow
At the end of the rainbowAt the end of the rainbow
At the end of the rainbow
 
Interfacing with Arduino
Interfacing with ArduinoInterfacing with Arduino
Interfacing with Arduino
 
Prototipare col raspberry pi
Prototipare col raspberry piPrototipare col raspberry pi
Prototipare col raspberry pi
 
Physical Computing with the Arduino platform and Ruby
Physical Computing with the Arduino platform and RubyPhysical Computing with the Arduino platform and Ruby
Physical Computing with the Arduino platform and Ruby
 
Start with arduino
Start with arduinoStart with arduino
Start with arduino
 
BURO Arduino Workshop
BURO Arduino WorkshopBURO Arduino Workshop
BURO Arduino Workshop
 
Integrare Arduino con Unity
Integrare Arduino con UnityIntegrare Arduino con Unity
Integrare Arduino con Unity
 
Chrome Web MIDI 2015
Chrome Web MIDI 2015Chrome Web MIDI 2015
Chrome Web MIDI 2015
 
Artillery Duel Network
Artillery Duel NetworkArtillery Duel Network
Artillery Duel Network
 
Web MIDI API update
Web MIDI API updateWeb MIDI API update
Web MIDI API update
 
Porting To Symbian
Porting To SymbianPorting To Symbian
Porting To Symbian
 
Introduction to Arduino
Introduction to ArduinoIntroduction to Arduino
Introduction to Arduino
 
Internet of Things
Internet of ThingsInternet of Things
Internet of Things
 
Sensors, actuators and the Raspberry PI using Python
Sensors, actuators and the Raspberry PI using PythonSensors, actuators and the Raspberry PI using Python
Sensors, actuators and the Raspberry PI using Python
 
Aurdino presentation
Aurdino presentationAurdino presentation
Aurdino presentation
 

Similar to When the Rubber Hits the Road: Make Your Computer Talk to Your Car

Starting Raspberry Pi
Starting Raspberry PiStarting Raspberry Pi
Starting Raspberry PiLloydMoore
 
MOPCON-2023_Wig.pdf
MOPCON-2023_Wig.pdfMOPCON-2023_Wig.pdf
MOPCON-2023_Wig.pdfCheng Wig
 
pcDuino Presentation at SparkFun
pcDuino Presentation at SparkFunpcDuino Presentation at SparkFun
pcDuino Presentation at SparkFunJingfeng Liu
 
Lab Handson: Power your Creations with Intel Edison!
Lab Handson: Power your Creations with Intel Edison!Lab Handson: Power your Creations with Intel Edison!
Lab Handson: Power your Creations with Intel Edison!Codemotion
 
Python-in-Embedded-systems.pptx
Python-in-Embedded-systems.pptxPython-in-Embedded-systems.pptx
Python-in-Embedded-systems.pptxTuynLCh
 
Tft touch screen manufacturers
Tft touch screen manufacturersTft touch screen manufacturers
Tft touch screen manufacturersKeatonParker2
 
20081114 Friday Food iLabt Bart Joris
20081114 Friday Food iLabt Bart Joris20081114 Friday Food iLabt Bart Joris
20081114 Friday Food iLabt Bart Jorisimec.archive
 
Arduino experimenters guide hq
Arduino experimenters guide hqArduino experimenters guide hq
Arduino experimenters guide hqAndreis Santos
 
Arduino experimenters guide ARDX
Arduino experimenters guide ARDXArduino experimenters guide ARDX
Arduino experimenters guide ARDXJohnny Parrales
 
Putting an Apple IIgs BBS on the internet
Putting an Apple IIgs BBS on the internetPutting an Apple IIgs BBS on the internet
Putting an Apple IIgs BBS on the internetAndrew Roughan
 
Arduino by yogesh t s'
Arduino by yogesh t s'Arduino by yogesh t s'
Arduino by yogesh t s'tsyogesh46
 
5035-Pipeline-Optimization-Techniques.pdf
5035-Pipeline-Optimization-Techniques.pdf5035-Pipeline-Optimization-Techniques.pdf
5035-Pipeline-Optimization-Techniques.pdfssmukherjee2013
 
JavaScript Robotics #NodeWeek
JavaScript Robotics #NodeWeekJavaScript Robotics #NodeWeek
JavaScript Robotics #NodeWeekSuz Hinton
 

Similar to When the Rubber Hits the Road: Make Your Computer Talk to Your Car (20)

The PDP-10 - and me
The PDP-10 - and meThe PDP-10 - and me
The PDP-10 - and me
 
Starting Raspberry Pi
Starting Raspberry PiStarting Raspberry Pi
Starting Raspberry Pi
 
MOPCON-2023_Wig.pdf
MOPCON-2023_Wig.pdfMOPCON-2023_Wig.pdf
MOPCON-2023_Wig.pdf
 
Let's begin io t with $10
Let's begin io t with $10Let's begin io t with $10
Let's begin io t with $10
 
pcDuino Presentation at SparkFun
pcDuino Presentation at SparkFunpcDuino Presentation at SparkFun
pcDuino Presentation at SparkFun
 
Lab Handson: Power your Creations with Intel Edison!
Lab Handson: Power your Creations with Intel Edison!Lab Handson: Power your Creations with Intel Edison!
Lab Handson: Power your Creations with Intel Edison!
 
Python-in-Embedded-systems.pptx
Python-in-Embedded-systems.pptxPython-in-Embedded-systems.pptx
Python-in-Embedded-systems.pptx
 
How to Hack Edison
How to Hack EdisonHow to Hack Edison
How to Hack Edison
 
Elm327 Usb Is The Latest Pc
Elm327 Usb Is The Latest PcElm327 Usb Is The Latest Pc
Elm327 Usb Is The Latest Pc
 
Tft touch screen manufacturers
Tft touch screen manufacturersTft touch screen manufacturers
Tft touch screen manufacturers
 
20081114 Friday Food iLabt Bart Joris
20081114 Friday Food iLabt Bart Joris20081114 Friday Food iLabt Bart Joris
20081114 Friday Food iLabt Bart Joris
 
Indroduction arduino
Indroduction arduinoIndroduction arduino
Indroduction arduino
 
Indroduction the arduino
Indroduction the arduinoIndroduction the arduino
Indroduction the arduino
 
7 seg
7 seg7 seg
7 seg
 
Arduino experimenters guide hq
Arduino experimenters guide hqArduino experimenters guide hq
Arduino experimenters guide hq
 
Arduino experimenters guide ARDX
Arduino experimenters guide ARDXArduino experimenters guide ARDX
Arduino experimenters guide ARDX
 
Putting an Apple IIgs BBS on the internet
Putting an Apple IIgs BBS on the internetPutting an Apple IIgs BBS on the internet
Putting an Apple IIgs BBS on the internet
 
Arduino by yogesh t s'
Arduino by yogesh t s'Arduino by yogesh t s'
Arduino by yogesh t s'
 
5035-Pipeline-Optimization-Techniques.pdf
5035-Pipeline-Optimization-Techniques.pdf5035-Pipeline-Optimization-Techniques.pdf
5035-Pipeline-Optimization-Techniques.pdf
 
JavaScript Robotics #NodeWeek
JavaScript Robotics #NodeWeekJavaScript Robotics #NodeWeek
JavaScript Robotics #NodeWeek
 

Recently uploaded

Vina Score and Vin Min for almost all the models 2024
Vina Score and Vin Min for almost all the models 2024Vina Score and Vin Min for almost all the models 2024
Vina Score and Vin Min for almost all the models 2024jipohal318
 
5s-5S 5S 5S 5S 5S 5S 5S PRESENTATION .ppt
5s-5S 5S 5S 5S 5S 5S 5S PRESENTATION  .ppt5s-5S 5S 5S 5S 5S 5S 5S PRESENTATION  .ppt
5s-5S 5S 5S 5S 5S 5S 5S PRESENTATION .ppthiren65650
 
What Should BMW Owners Know About Steptronic Transmission Problems
What Should BMW Owners Know About Steptronic Transmission ProblemsWhat Should BMW Owners Know About Steptronic Transmission Problems
What Should BMW Owners Know About Steptronic Transmission ProblemsSchearer's Sales & Service Inc
 
Quicker and better: South Korea’s new high-speed train 'EMU-320'
Quicker and better: South Korea’s new high-speed train 'EMU-320'Quicker and better: South Korea’s new high-speed train 'EMU-320'
Quicker and better: South Korea’s new high-speed train 'EMU-320'Hyundai Motor Group
 
technical report on EV. EVs can offer benefitssuch as lower operating costs a...
technical report on EV. EVs can offer benefitssuch as lower operating costs a...technical report on EV. EVs can offer benefitssuch as lower operating costs a...
technical report on EV. EVs can offer benefitssuch as lower operating costs a...Bijay Sharma
 
Introduction to Automotive Bootloader | Programming Sequence
Introduction to Automotive Bootloader | Programming SequenceIntroduction to Automotive Bootloader | Programming Sequence
Introduction to Automotive Bootloader | Programming SequenceKapil Thakar
 
CAMIONES TOYOTA N04C- Engine y HINO 300.
CAMIONES TOYOTA N04C- Engine y HINO 300.CAMIONES TOYOTA N04C- Engine y HINO 300.
CAMIONES TOYOTA N04C- Engine y HINO 300.JavierAlejandroCordo1
 
Timer Handling in UDS | S3 Server Timer | P2 and P2 Start Timer
Timer Handling in UDS | S3 Server Timer | P2 and P2 Start TimerTimer Handling in UDS | S3 Server Timer | P2 and P2 Start Timer
Timer Handling in UDS | S3 Server Timer | P2 and P2 Start TimerKapil Thakar
 
Introduction to UDS over CAN | UDS Service
Introduction to UDS over CAN | UDS ServiceIntroduction to UDS over CAN | UDS Service
Introduction to UDS over CAN | UDS ServiceKapil Thakar
 
Solar Photovoltaic Plant Project Proposal by Slidesgo.pptx
Solar Photovoltaic Plant Project Proposal by Slidesgo.pptxSolar Photovoltaic Plant Project Proposal by Slidesgo.pptx
Solar Photovoltaic Plant Project Proposal by Slidesgo.pptxAmarHaddad
 
Car Seat Covers and Seat Protection Guide
Car Seat Covers and Seat Protection GuideCar Seat Covers and Seat Protection Guide
Car Seat Covers and Seat Protection GuideAskXX.com
 
Why Won't Your Audi A3 Shift Into Reverse Gear Let's Investigate
Why Won't Your Audi A3 Shift Into Reverse Gear Let's InvestigateWhy Won't Your Audi A3 Shift Into Reverse Gear Let's Investigate
Why Won't Your Audi A3 Shift Into Reverse Gear Let's InvestigateAutowerks
 
Automotive Bootloader Complete Guide with UDS Frame Format
Automotive Bootloader Complete Guide with UDS Frame FormatAutomotive Bootloader Complete Guide with UDS Frame Format
Automotive Bootloader Complete Guide with UDS Frame FormatKapil Thakar
 
Nokia Drone Networks - Customer Presentation - MWC2.pdf
Nokia Drone Networks - Customer Presentation - MWC2.pdfNokia Drone Networks - Customer Presentation - MWC2.pdf
Nokia Drone Networks - Customer Presentation - MWC2.pdfJosFerro15
 
-VDA-Special-Characteristics Special characteristics.pdf
-VDA-Special-Characteristics Special characteristics.pdf-VDA-Special-Characteristics Special characteristics.pdf
-VDA-Special-Characteristics Special characteristics.pdfBorja ARRIZABALAGA URIARTE
 
Basic of Firmware & Embedded Software Programming in C
Basic of Firmware & Embedded Software Programming in CBasic of Firmware & Embedded Software Programming in C
Basic of Firmware & Embedded Software Programming in CKapil Thakar
 
Toyota Yaris service manual Free.pdf Toyota Yaris Service manual
Toyota Yaris service manual Free.pdf  Toyota Yaris Service manualToyota Yaris service manual Free.pdf  Toyota Yaris Service manual
Toyota Yaris service manual Free.pdf Toyota Yaris Service manualAutocarmanuals.com
 

Recently uploaded (17)

Vina Score and Vin Min for almost all the models 2024
Vina Score and Vin Min for almost all the models 2024Vina Score and Vin Min for almost all the models 2024
Vina Score and Vin Min for almost all the models 2024
 
5s-5S 5S 5S 5S 5S 5S 5S PRESENTATION .ppt
5s-5S 5S 5S 5S 5S 5S 5S PRESENTATION  .ppt5s-5S 5S 5S 5S 5S 5S 5S PRESENTATION  .ppt
5s-5S 5S 5S 5S 5S 5S 5S PRESENTATION .ppt
 
What Should BMW Owners Know About Steptronic Transmission Problems
What Should BMW Owners Know About Steptronic Transmission ProblemsWhat Should BMW Owners Know About Steptronic Transmission Problems
What Should BMW Owners Know About Steptronic Transmission Problems
 
Quicker and better: South Korea’s new high-speed train 'EMU-320'
Quicker and better: South Korea’s new high-speed train 'EMU-320'Quicker and better: South Korea’s new high-speed train 'EMU-320'
Quicker and better: South Korea’s new high-speed train 'EMU-320'
 
technical report on EV. EVs can offer benefitssuch as lower operating costs a...
technical report on EV. EVs can offer benefitssuch as lower operating costs a...technical report on EV. EVs can offer benefitssuch as lower operating costs a...
technical report on EV. EVs can offer benefitssuch as lower operating costs a...
 
Introduction to Automotive Bootloader | Programming Sequence
Introduction to Automotive Bootloader | Programming SequenceIntroduction to Automotive Bootloader | Programming Sequence
Introduction to Automotive Bootloader | Programming Sequence
 
CAMIONES TOYOTA N04C- Engine y HINO 300.
CAMIONES TOYOTA N04C- Engine y HINO 300.CAMIONES TOYOTA N04C- Engine y HINO 300.
CAMIONES TOYOTA N04C- Engine y HINO 300.
 
Timer Handling in UDS | S3 Server Timer | P2 and P2 Start Timer
Timer Handling in UDS | S3 Server Timer | P2 and P2 Start TimerTimer Handling in UDS | S3 Server Timer | P2 and P2 Start Timer
Timer Handling in UDS | S3 Server Timer | P2 and P2 Start Timer
 
Introduction to UDS over CAN | UDS Service
Introduction to UDS over CAN | UDS ServiceIntroduction to UDS over CAN | UDS Service
Introduction to UDS over CAN | UDS Service
 
Solar Photovoltaic Plant Project Proposal by Slidesgo.pptx
Solar Photovoltaic Plant Project Proposal by Slidesgo.pptxSolar Photovoltaic Plant Project Proposal by Slidesgo.pptx
Solar Photovoltaic Plant Project Proposal by Slidesgo.pptx
 
Car Seat Covers and Seat Protection Guide
Car Seat Covers and Seat Protection GuideCar Seat Covers and Seat Protection Guide
Car Seat Covers and Seat Protection Guide
 
Why Won't Your Audi A3 Shift Into Reverse Gear Let's Investigate
Why Won't Your Audi A3 Shift Into Reverse Gear Let's InvestigateWhy Won't Your Audi A3 Shift Into Reverse Gear Let's Investigate
Why Won't Your Audi A3 Shift Into Reverse Gear Let's Investigate
 
Automotive Bootloader Complete Guide with UDS Frame Format
Automotive Bootloader Complete Guide with UDS Frame FormatAutomotive Bootloader Complete Guide with UDS Frame Format
Automotive Bootloader Complete Guide with UDS Frame Format
 
Nokia Drone Networks - Customer Presentation - MWC2.pdf
Nokia Drone Networks - Customer Presentation - MWC2.pdfNokia Drone Networks - Customer Presentation - MWC2.pdf
Nokia Drone Networks - Customer Presentation - MWC2.pdf
 
-VDA-Special-Characteristics Special characteristics.pdf
-VDA-Special-Characteristics Special characteristics.pdf-VDA-Special-Characteristics Special characteristics.pdf
-VDA-Special-Characteristics Special characteristics.pdf
 
Basic of Firmware & Embedded Software Programming in C
Basic of Firmware & Embedded Software Programming in CBasic of Firmware & Embedded Software Programming in C
Basic of Firmware & Embedded Software Programming in C
 
Toyota Yaris service manual Free.pdf Toyota Yaris Service manual
Toyota Yaris service manual Free.pdf  Toyota Yaris Service manualToyota Yaris service manual Free.pdf  Toyota Yaris Service manual
Toyota Yaris service manual Free.pdf Toyota Yaris Service manual
 

When the Rubber Hits the Road: Make Your Computer Talk to Your Car

  • 1. When the Rubber Hits the Road: Making Your Computer Talk to Your Car Gary “Chunky Ks” Briggs <chunky@icculus.org>
  • 3. Me Grew up & Studied in England Offered job in LA doing random Linux stuff Which ended up being print drivers for 6 years Now I work at a research nonprofit in Santa Monica Mostly simulation and modeling Really, this slide is so I have somewhere to put this pic --->
  • 4. OBDGPSLogger Genesis Late 2009, I bought a car with an OBDII port That's mighty tempting Idealist requirements: Linux, OSX. Windows maybe Log data No GUI. RasberryPi, SheevaPlug... Log GPS as well as OBDII Make pretty pictures
  • 5. OBDGPSLogger Now http://icculus.org/obdgpslogger “It does exactly what it says on the tin. It logs OBDII and GPS data on Linux, OSX and others” Mostly C, bits of C++ Open Source Logs to SQLite Hokey GUI
  • 7. OBDGPSLogger, Still... Reads only Mode $01 PIDs Magically just works Except I haven't patched in support for current gpsd Google Earth output There's a live version, too Simple analysis stuff Works with my bike...
  • 8. ELM327 and OBDII Originally invented at Elm Electronics, http://elmelectronics.com/obdic.html#ELM327 Most of the high-quality manufacturers implement their own chip firmware The ELM327 datasheet taught me most of what I know
  • 9. ELM327 and OBDII, AT commands Standard text-based serial protocol I use PuTTY on Windows, screen(1) on Linux ELM327 commands might look suspiciously familiar to older members of the audience ATZ for reset ATE0/1 to turn echo on or off Scantool.net have an additional “ST” command set
  • 10. ELM327 and OBDII, Getting Data In short: > 01 0D 41 0D 1F > “Show me mode $01, PID $0D” [vehicle speed] 41 => 0x40 | 0x01 0x40 = success, 0x01 = requested mode 0D => requested PID
  • 11. OBDSim Genesis Got bored of walking out to car with my laptop Went looking for ELM327 & OBDII simulator Idealist requirements: Command-line OBDGPSLogger log playback Actually honors ELM327 commands Multiple ECUs Multi protocol support
  • 12. OBDSim Now http://icculus.org/obdgpslogger/obdsim.html Pluggable data generators Works with all OBDII tools I've tried In the same source as OBDGPSLogger Has way more users than OBDGPSLogger Native Windows [MSYS] using com0com
  • 13. OBDSim Supported AT commands ATAT{0,1,2} – Adaptive timing Cvdddd – Calibrate battery voltage ATD{0,1} – Display data bytes RV – Request battery voltage ATL{0,1} – Linefeed ATD – Reset defaults ATH{0,1} – Headers ATDP – Describe protocol ATS{0,1} – Space separators ATDPN – Describe protocol by number ATE{0,1} – Command echo ATI – Request device version id ATSP[A]{0-9,A-C} – Set protocol ATZ – Reset device ATST{n} – Set timeout ATWS – Warm start reset @1, @2, @3 – Device identifier stuff EXIT – Exit OBDSim
  • 14. OBDSim Demo Launch on Linux, use “-c” to attach screen(1): obdsim -c ATZ, total reset ATE{0,1}, ATS{0,1}, ATL{0,1} As a developer, you'll turn them all off For keyboard experimenting, turn them all on ATI, @1, @2 for identifying device Couple simple data requests [010D vss, 010C rpm] ATH1, ATSP7 [CAN 29-bit 500], ATSP1 [J1850]