ODB II project - Milton Peraza

From CS486wiki
Jump to navigationJump to search

Week 1

  1. Accomplishments
    • Researched OBDII protocol and possible methods of creating a software solution
  1. Problems
    • Need hardware to interface OBDII port to target computer running app
  1. To Do
    • Further research for solutions

Week 2

  1. Accomplishments
    • Researched OBDII hardware for use with project
      • Decided on using ELM 327 microcontroller for hardware interface
    • Researched OBDII open source software
      • Decided on using Python with PyOBD library for microcontroller API
  1. Problems
    • Need to find more information on proprietary codes used by 2003 BMW Z4
      • Consumer solutions for BMW vehicles are more expensive and complex than the simple ELM 327 microcontroller. This could mean that the proprietary protocols used by BMW are complex and benefit from hardware. Hopefully we can find some projects that have looked into these protocols in the past.
  1. To Do
    • Order Bluetooth and wired hardware

ELM 327 Microcontroller

The OBDII standard used by modern cars defines several protocols for data transmission. These protocols are not readily understood by a computer via standard serial interfaces. The ELM 327 microcontroller acts as a bridge between the OBDII standard and serial format understood by a PC.

The ELM 327 has been widely used in consumer OBDII readers and DIY projects. As a result, the commands for the microcontroller are well understood and used by several open source projects.

PyOBD

The PyOBD open source project offers a Python API for using the ELM 327 through its command protocol. We will use this library for pairing and interfacing with the microcontroller. The application will also be written in Python for simplicity.

The library allows for pairing with ELM 327 solutions via USB or Bluetooth. Once paired there is a programatic way to send commands and read replies from the microcontroller.