/BMW-GS-CAN-Sniffer

Sniffing a 2010 BMW R1200GS CAN Bus with an Arduino and CAN Bus shield

Primary LanguageCMIT LicenseMIT

BMW R1200GS CAN-Bus Sniffer

Objective

Create a device capable of sniffing the CAN Bus of a 2010 BMW R1200 GS motorcycle. This will be accomplished using an Arduino and CAN Bus shield and appending the sniffer to the motorcycle's CAN Bus.

Current Demo

CAN Bus YouTube Demo
Full Video on YouTube

Applications

This will be the main application for driving the LED auxiliary light and heated jacket implementation.

Prints out all known events to either the TFT display or the serial terminal. This is mostly used for debugging, demos, and new message discovery.

Prints all the messages raw to the terminal in a rough CSV form. This is useful for finding new messages.

Hardware

Arduino

CAN Bus Shield

Software

Connecting to the Alarm wiring harness

The extremely overpriced BMW repair plug and wiring harness can be purchased here.

Pinout on the Alarm harness

  • 3: Switched 12v Rail
  • 4: Ground
  • 5: CAN Low
  • 6: CAN High

Protocol Parsing

There is a group of people working on reverse engineering the CAN bus messages in a Google Spreadsheet. I've used this as the basis for my parsing, but have found some of the information to be incorrect.

TFT Display

One of the more "whiz-bang" features I added was a TFT display that allows me to see the status of the bike without staring at the computer screen. It most likely won't be used in the final implementation but I thought it was a cool demo.

Prototype Case for Arduino with the CAN Bus Shield

The Congers CANBusGateway Project had a case design that I modified slightly to use the CAN Bus screw down connections instead of the DB9 connector. Those files are included in this repo.

3D Printed Prototype Case

Interfacing With Accessories

###SparkFun Monster Motor Shield
SparkFun Monster Motor Shield

Resources