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

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

20081114 Friday Food iLabt Bart Joris
20081114 Friday Food iLabt Bart Joris20081114 Friday Food iLabt Bart Joris
20081114 Friday Food iLabt Bart Joris
imec.archive
 

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

原版定制(UniSA毕业证书)澳大利亚南澳大学毕业证原件一模一样
原版定制(UniSA毕业证书)澳大利亚南澳大学毕业证原件一模一样原版定制(UniSA毕业证书)澳大利亚南澳大学毕业证原件一模一样
原版定制(UniSA毕业证书)澳大利亚南澳大学毕业证原件一模一样
yuslkdal
 
一比一定制加拿大安大略理工大学毕业证(UOIT毕业证书)学位证书
一比一定制加拿大安大略理工大学毕业证(UOIT毕业证书)学位证书一比一定制加拿大安大略理工大学毕业证(UOIT毕业证书)学位证书
一比一定制加拿大安大略理工大学毕业证(UOIT毕业证书)学位证书
egfdgfd
 
原版制作加州理工学院毕业证成绩单原件一模一样
原版制作加州理工学院毕业证成绩单原件一模一样原版制作加州理工学院毕业证成绩单原件一模一样
原版制作加州理工学院毕业证成绩单原件一模一样
hbgfewda
 
原版定制奥尔良大学毕业证文凭证书密封成绩单
原版定制奥尔良大学毕业证文凭证书密封成绩单原版定制奥尔良大学毕业证文凭证书密封成绩单
原版定制奥尔良大学毕业证文凭证书密封成绩单
ybefz
 
Battery Management System Functions (Flowchart of BMS Operations)
Battery Management System Functions (Flowchart of BMS Operations)Battery Management System Functions (Flowchart of BMS Operations)
Battery Management System Functions (Flowchart of BMS Operations)
Electric Vehicle Geek
 
Catalogue Yamaha Nouvo 115 S / Nouvo .pdf
Catalogue Yamaha Nouvo 115 S / Nouvo .pdfCatalogue Yamaha Nouvo 115 S / Nouvo .pdf
Catalogue Yamaha Nouvo 115 S / Nouvo .pdf
HafizLaziz
 
一比一原版(McMaste毕业证书)加拿大麦克马斯特大学毕业证成绩单原件一模一样
一比一原版(McMaste毕业证书)加拿大麦克马斯特大学毕业证成绩单原件一模一样一比一原版(McMaste毕业证书)加拿大麦克马斯特大学毕业证成绩单原件一模一样
一比一原版(McMaste毕业证书)加拿大麦克马斯特大学毕业证成绩单原件一模一样
AD
 
如何办理澳洲南澳大学毕业证(UniSA毕业证书)成绩单本科学位证原版一比一
如何办理澳洲南澳大学毕业证(UniSA毕业证书)成绩单本科学位证原版一比一如何办理澳洲南澳大学毕业证(UniSA毕业证书)成绩单本科学位证原版一比一
如何办理澳洲南澳大学毕业证(UniSA毕业证书)成绩单本科学位证原版一比一
0uyfyq0q4
 
一比一定制加拿大新喀里多尼亚学院毕业证(UofL毕业证书)学位证书
一比一定制加拿大新喀里多尼亚学院毕业证(UofL毕业证书)学位证书一比一定制加拿大新喀里多尼亚学院毕业证(UofL毕业证书)学位证书
一比一定制加拿大新喀里多尼亚学院毕业证(UofL毕业证书)学位证书
egfdgfd
 
一比一原版(UC毕业证书)加拿大卡尔加里大学毕业证成绩单原件一模一样
一比一原版(UC毕业证书)加拿大卡尔加里大学毕业证成绩单原件一模一样一比一原版(UC毕业证书)加拿大卡尔加里大学毕业证成绩单原件一模一样
一比一原版(UC毕业证书)加拿大卡尔加里大学毕业证成绩单原件一模一样
rgthdgf
 
一比一原版曼彻斯特城市大学毕业证成绩单原件一模一样
一比一原版曼彻斯特城市大学毕业证成绩单原件一模一样一比一原版曼彻斯特城市大学毕业证成绩单原件一模一样
一比一原版曼彻斯特城市大学毕业证成绩单原件一模一样
fsdfdsgf
 
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
jipohal318
 

Recently uploaded (20)

原版定制(UniSA毕业证书)澳大利亚南澳大学毕业证原件一模一样
原版定制(UniSA毕业证书)澳大利亚南澳大学毕业证原件一模一样原版定制(UniSA毕业证书)澳大利亚南澳大学毕业证原件一模一样
原版定制(UniSA毕业证书)澳大利亚南澳大学毕业证原件一模一样
 
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...
 
Benefits of Load Planning in Fleet Management
Benefits of Load Planning in Fleet ManagementBenefits of Load Planning in Fleet Management
Benefits of Load Planning in Fleet Management
 
一比一定制加拿大安大略理工大学毕业证(UOIT毕业证书)学位证书
一比一定制加拿大安大略理工大学毕业证(UOIT毕业证书)学位证书一比一定制加拿大安大略理工大学毕业证(UOIT毕业证书)学位证书
一比一定制加拿大安大略理工大学毕业证(UOIT毕业证书)学位证书
 
原版制作加州理工学院毕业证成绩单原件一模一样
原版制作加州理工学院毕业证成绩单原件一模一样原版制作加州理工学院毕业证成绩单原件一模一样
原版制作加州理工学院毕业证成绩单原件一模一样
 
原版定制奥尔良大学毕业证文凭证书密封成绩单
原版定制奥尔良大学毕业证文凭证书密封成绩单原版定制奥尔良大学毕业证文凭证书密封成绩单
原版定制奥尔良大学毕业证文凭证书密封成绩单
 
Battery Management System Functions (Flowchart of BMS Operations)
Battery Management System Functions (Flowchart of BMS Operations)Battery Management System Functions (Flowchart of BMS Operations)
Battery Management System Functions (Flowchart of BMS Operations)
 
Catalogue Yamaha Nouvo 115 S / Nouvo .pdf
Catalogue Yamaha Nouvo 115 S / Nouvo .pdfCatalogue Yamaha Nouvo 115 S / Nouvo .pdf
Catalogue Yamaha Nouvo 115 S / Nouvo .pdf
 
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
 
一比一原版(McMaste毕业证书)加拿大麦克马斯特大学毕业证成绩单原件一模一样
一比一原版(McMaste毕业证书)加拿大麦克马斯特大学毕业证成绩单原件一模一样一比一原版(McMaste毕业证书)加拿大麦克马斯特大学毕业证成绩单原件一模一样
一比一原版(McMaste毕业证书)加拿大麦克马斯特大学毕业证成绩单原件一模一样
 
Introduction to Automotive Bootloader | Programming Sequence
Introduction to Automotive Bootloader | Programming SequenceIntroduction to Automotive Bootloader | Programming Sequence
Introduction to Automotive Bootloader | Programming Sequence
 
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
 
AI for Smart Vehicles - A quick overview
AI for Smart Vehicles - A quick overviewAI for Smart Vehicles - A quick overview
AI for Smart Vehicles - A quick overview
 
如何办理澳洲南澳大学毕业证(UniSA毕业证书)成绩单本科学位证原版一比一
如何办理澳洲南澳大学毕业证(UniSA毕业证书)成绩单本科学位证原版一比一如何办理澳洲南澳大学毕业证(UniSA毕业证书)成绩单本科学位证原版一比一
如何办理澳洲南澳大学毕业证(UniSA毕业证书)成绩单本科学位证原版一比一
 
一比一定制加拿大新喀里多尼亚学院毕业证(UofL毕业证书)学位证书
一比一定制加拿大新喀里多尼亚学院毕业证(UofL毕业证书)学位证书一比一定制加拿大新喀里多尼亚学院毕业证(UofL毕业证书)学位证书
一比一定制加拿大新喀里多尼亚学院毕业证(UofL毕业证书)学位证书
 
-VDA-Special-Characteristics Special characteristics.pdf
-VDA-Special-Characteristics Special characteristics.pdf-VDA-Special-Characteristics Special characteristics.pdf
-VDA-Special-Characteristics Special characteristics.pdf
 
一比一原版(UC毕业证书)加拿大卡尔加里大学毕业证成绩单原件一模一样
一比一原版(UC毕业证书)加拿大卡尔加里大学毕业证成绩单原件一模一样一比一原版(UC毕业证书)加拿大卡尔加里大学毕业证成绩单原件一模一样
一比一原版(UC毕业证书)加拿大卡尔加里大学毕业证成绩单原件一模一样
 
一比一原版曼彻斯特城市大学毕业证成绩单原件一模一样
一比一原版曼彻斯特城市大学毕业证成绩单原件一模一样一比一原版曼彻斯特城市大学毕业证成绩单原件一模一样
一比一原版曼彻斯特城市大学毕业证成绩单原件一模一样
 
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
 
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
 

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]