What problems are the chips ELM327 and STN1110 solving?
If I connect the necessary interface ICs (I mean dumb ICs, like level shifters, inverters, etc., not pre-programmed devices like ELM327) between the OBD pins and a suitable micro-controller, can I not read OBD data? I suspect these devices help in simplifying the software. Is that right? If so, what is the big problem they solve?
And if I don't want to use these chips, what do I need to know to start reading data from the port using just the dumb interface ICs and a microcontroller? I really don't wan't to depend on a closed-source product.
Best Answer
PIC Microcontrollers (and others) contain hardware serial blocks for speaking OBD/CAN protocols. You can buy a PIC yourself and implement the protocol engines, which amounts to programming the register space, clock dividers, handling interrupts etc. If you are then sending the data to a PC/mobile you also need a UART and transmission buffer.
This becomes quite a lot of work if you are making an adapter cable - hence the popularity of off-the-shelf OBD-to-UART adapters such as ELM327/STN1110. They are both PIC chips (ELM327 is implemented on the PIC18F2480, STN1110 on the PIC24HJ128GP502) loaded with software that does rx/tx buffering, filtering, power management etc.
Microchip has reference designs if you want to design your own: