This article explains how I made a very simple and easy to work with OBDII interface to read messages from the zero SR/F and SR/S built in factory diagnostics port.
You can find it in the storage bin (see picture) underneath your faux tank cover. It should have a plastic cap on top that you can pry off. The cheap Chinese OBDII dongles do fit physically but due to a difference in hardware design won’t give you any actual data. At least not in my experience with the clear blue dongle pictured.
I’ve done some more research since then on those cheap OBDII dongles. Turns out that they are almost all using the same copied chip but still there is a huge difference in actual wiring and compatibility. I’ve found some resources like this article and this one that go into detail about the origin of and problems with these copies.
The short story is that the original v1.0 version of this ELM327 chip wasn’t protected by patents so widely copied and sold for cheaper. Not always properly copied even. An actual ELM327 chip costs the seller about 20 USD so any dongle cheaper than that for sure is a fake one. If a fake works or not depends on it’s implementation.
Parts needed (BOM)
Cheapest OBDII dongle you can find or just a connector or cable with the right end. The dongles are often cheaper and easy easier to find so that is what I got it. It’s chinese, it’s cheap and it didn’t work in my case.
An USB to TTL interface. These small boards are also very cheap and available in lots of transformations. Just get one that is reported to work with your OS. They are used to program arduino’s hence the next part. Compliance can be checked by googling the chipset. Below is a picture of the board I used already mounted in the OBDII housing.
The free arduino IDE installed on your computer. So yes you’ll need a computer. You could easily add a cheap Bluetooth interface on top and connect with your phone but that’s just work on top that doesn’t make explaining this easier. So we’ll stick with the computer for now. You can get that from the official Arduino website.
Creating the OBDII to USB interface
I cracked open the OBDII dongle first and removed the small logic board that was on it. I never used that. All I needed was that connector.
Next I soldered the right wires to the right pins connecting the OBDII connector pins with the right pins on the USB to TTL interface. See below schematic of how that is done. That pinout and a lot more instructions are all available on this zero unofficial manual page.
Solder the wires to the pins on the OBDII connector as follows: Black wire (ground) to pin 5 White wire (RX) to pin 8 Green wire (TX) to pin 9 Red wire is not connected (+5V)
And you’re all set to plug it in you USB port. I added a USB wire in between so I could position my laptop on the seat of the zero.
Reading information on your computer
Once connected launch the arduino IDE app on your computer and from the menu make sure you have the right USB device selected. This is typically something with usb.serial in the name. If it’s not the right one you’ll notice on the next step and just have to try some of the other devices listed.
Next from the arduino IDE menu select the serial monitor option. This will open up a new screen showing you all the information your zero spits out on that interface.
If you don’t see any text yet you could try turning the key of the motorcycle ON our OFF and that should trigger some messages. If still nothing visible try another device.
If there is text visible but it’s nothing readable you might have the wrong baud rate configured. Just change it to 115.200.
Getting started with the interface
Best is to start out with the help command. That will give you a list of all available commands with some extra information. Type it on top of the serial monitor and hit enter.
You can just try them out and explore. The set commands and anything else harmful is hidden after level 1 and level 2 logins so unless you logged in, and somehow know these logins, you should be OK.
Have fun! And let us know if you’re on to something 🤓