OBD-II and ELM327 (1)

I bought a Volvo XC60 2017, and the car had an OBD-II port. I always feel the port is inviting me to do some hacking. I had power supply, oscilloscope, soldering equipment, multi-meter. I can read English, and had some embedded system development experience, but no hacking car ever. Maybe with some study, I can learn to do that

My adventure starts with ELM327, the equipment is quite cheap. I want to talk pro/con of the cheap China ELM327 unit, and when you will feel disappointed to it

ELM327 is basically a Microchip PIC18F2480 with customized FW, which supports various OBD protocol. Picture below is from its datasheet
  • Left-upper corner, MCP2551 is the CAN transceiver
    • It communicates to car by CANL/CANH signals
    • It outputs CAN signal to PIC18F2480 (ELM327) (PIN1/4)
  • PIC18F2480 (ELM327)
    • It accepts the output signal from CAN transceiver
      • The internal CAN controller send/receive from CAN bus
    • It had UART interface in PIN17/18
  • Option1: FTDI UART to USB interface
    • Connects to ELM327's UART interface, and converts to USB interface
    • PC can talk to ELM327, via USB port
  • Option2: bluetooth module
    • Connects to ELM327's UART interface
    • PC/ Cell phone can talk to ELM327, via bluetooth







ELM327 itself is not expensive (21USD), and the circuit is quite simple. The interface is easy to use. So it becomes some de-facto standard of OBD-II reader
  1. The initial ELM327 FW is been stolen (maybe v1.0). The circuit is so easy that people can clone ELM327 easily. That's why ELM327 clone is everywhere 
  2. I guess Microchip PIC18F2480 is still expensive, so some body uses 8051 to rewrite a more cheaper controller. My ELM327 is probably this category (in my ELM327 PCB, that's just a die rather than packaged IC)
  3. Use the cheapest CAN transceiver they can find. My unit uses NCV7342 from On Semiconductor
  4. Use the cheapest bluetooth transceiver module
No matter genuine/clone ELM327, as long as it can process CAN signal, it should be able to communicate with car: read speed/ RPM/ error code. Most people use Torque Android app with ELM327. The SW author probably know most people use clone ELM327, and he would make the SW *compatible* with these units. So the SW had the best usability.

Generally, you can guy the cheap ELM327. However, maybe the IC is too bad, or bad soldering, it just can't function well. I ever bought some electronics from China which needs to fix soldering by myself. Fortunately, the unit besides me is the cheapest one (20RMB) but works great: it can work with Torque nicely

Comments

Popular posts from this blog

OBD-II and ELM327 (3), try to decode CAN package recorded by ELM327

OBD-II and ELM327 (2), the underlying interface of ELM327