The ultimate vehicle-hacking platform

Apr 02, 2021

Project update 4 of 7

Showcase - Eavesdropping on a Motorcycle Dashboard

by Florian Eich

We talk a lot about vehicle hacking, so it’s probably about time we showed you some of that…

Introducing mini::bike

We’ve been working on this for a few weeks, now. It’s basically an extension board for the mini::base with an IC for Keyword Protocol 2000, which is part of the OBD-II standard and was quite widely used before the broad adoption of CAN. (Don’t quote us on that. It’s complicated.) The hardware of mini::bike is actually very simple, but it’s extremely helpful when working with this protocol. The rendering above (which includes a Molex connector that’s common in vehicle applications) should give you some idea of what it might look like in a final product.

Why is it called mini::bike, you ask? While you can still find Keyword Protocol 2000 in use by early OBD connectors in cars from the late 90s—and I can personally attest to the fact that it was used in Mercedes-Benz C-class automobiles up through 2005, give or take—you are most likely to find it in motorcycles, snowmobiles, and jet skis these days.

The Use Case

Let’s say you have a Suzuki GSX-R 1000, and you want to eavesdrop on the communication between the engine control unit (ECU) and the dashboard. First, pull over and get off the bike. Never hack a two-wheeled vehicle while riding it! (The same rule applies to jet skis, by the way. For obvious reasons.) To accomplish this, your setup might look a lot like the one in the image below, except that there’d probably be a vehicle involved. A vehicle, and less weird white furniture…

Lab setup for the mini::bike showcase

The lab setup above doesn’t show much. There’s no running engine and no peripherals doing anything. But it does show a mini::stack consisting of a mini::base and a mini::bike, wired with open lines through a breadboard to both the ECU and the dashboard.

The Example

The first step—the one we are documenting here and the one for which we are providing sample code in our GitHub repository—is to dump out the communication from the bus to the serial console:

And there you go. You just dumped status information from the bus of your Suzuki to your serial console. From here, you could use the mini::stack to convert the information to a CAN signal and send it out to another device, such as a data logger.

Be Advised

Our boards do not have an automotive certification. While they are built to last, and the engineering is solid, the components are not "automotive grade." What we have presented above is a laboratory example and is not fit for real-world application. Nor should you try to use this hardware on the open road (even if your vehicle has four wheels). Always be aware that vehicles are dangerous, and make sure you don’t harm yourself or others when tinkering with them.

Sign up to receive future updates for board::mini.

Subscribe to the Crowd Supply newsletter, highlighting the latest creators and projects