1

I'm building an app (running on a Pi) that will communicate with consumer vehicles for diagnostics and control. I assumed that I could achieve this over CAN bus since all vehicles after 2003 are required to support OBD (which I assumed worked over CAN).

I just discovered that my test vehicle (2009 Honda Accord) uses K-Line for diagnostics. This throws a wrench into my plans, and I need to figure out what this means for my product plans.

Can someone confirm if K-Line is going away, and all vehicles after a certain year perform OBD over the CAN bus?

If not, I assume that I would have to use an ELM327 chip (assuming the ELM can figure out which of the many protocols exist that use OBD), or is there some other way to do this?

ocrdu
  • 8,705
  • 21
  • 30
  • 42
TSG
  • 127
  • 8

2 Answers2

1

At some point OBD-II will be replaced by the WWH-OBD standard. It features protocols over CAN (DoCAN) and IP (DoIP). Therefore, at one point, K-Line will go away. But if I had to guess, I'd say it's still a long way until this new standard will be broadly adopted.

Comparison Chart

enter image description here

Source: https://www.autopi.io/blog/what-is-wwh-obd/


I wouldn't recommend designing a new product using the ELM327 IC. ELM Electronics closed production as can be seen here. You'll still find a lot of low-quality rip-off products based on the leaked ELM327 v1.0 firmware. Steer away from these clones as they are inferior.

Instead I'd recommend one of the OBD ICs from OBD Solutions.

I've played with the SparkFun OBD-II UART for a bit, which uses the STN1110 IC. It has full support for the ELM327 command set, but they've added some additional features.

Here you can check the differences of the ELM327 and STN1110 ICs: https://www.obdsol.com/downloads/stn1110_vs_elm327.pdf

Velvel
  • 3,591
  • 3
  • 12
  • 30
0

all vehicles after 2003 are required to support OBD

OBD II is a requirement, yes (I think it should be earlier like late 90s or even earlier, or things might be different in different countries). But unfortunately CAN is not a requirement yet.

Can someone confirm if K-Line is going away, and all vehicles after a certain year perform OBD over the CAN bus?

It's difficult to answer but I don't think it is, or not in the near future. Although K-line used to be more popular for older vehicles, some newer vehicles may have both CAN and K-line on-board to support older diagnostics systems.

If not, I assume that I would have to use an ELM327 chip (assuming the ELM can figure out which of the many protocols exist that use OBD), or is there some other way to do this?

On an OBD connector there are separate pins for K-line and CAN bus. I'm not sure if ELM327 is able to read data from both lines. Even if it's not, I'm pretty sure there are some other equipment capable of doing so. Even if there's not, it's not difficult to make one as K-line is basically a 10-ish-kBaud UART, and MCUs with both CAN and UART interfaces equipped are quite common today. Software design could be a heavy work, though.

Rohat Kılıç
  • 26,954
  • 3
  • 25
  • 67