Sniffing Indian Chief CanBus

2022 Indian chief dark horse

2022 Indian chief dark horse

One major question I’ve had since buying a 2022 Indian Chief is whether the ride command screen will work on bikes like indian scout. my timing couldn’t have been more perfect.. Why? Well, Indian Motorcycle announced the 2025 indian scouts with ride command as a feature. that’s fine and dandy but that doesn’t help owners of pre-2025 indian scouts. at this time, my quest to get ride command working on indian scout is still in progress, but the below story would be a major step in the right direction to making it possible.

ride command screen on 2022 indian chief dark horse

ride command screen on 2022 indian chief dark horse

to begin attempting this, i would need to understand how the ride command screen receives information. luckily, the wiring is not too much trouble. both 2022 indian chief and pre-2025 scout use similar wiring pinouts for the display harness. the important wires here are can-hi and can-low. these are part of the canbus network on the bikes. there’s multiple articles, how-tos, videos… on what a canbus is.. google it.

display harness for 2022 indian chief showing can-bus wiring (yellow/green)

long story short, the screen runs on canbus to work its magic. this is how it receives information to show the speed, rpm, battery voltage, fuel level, etc. funny thing is.. you can plug the ride command screen from Chief into a scout.. but nothing happens. why? well, the canbus messages for an indian scout aren’t recognized by the ride command from indian chief. it doesn’t know what to do with the messages scout is sending so it fails. but!… what if i sent the ride command screen messages it did expect.. using another device? now we’re getting somewhere. i first needed to find what messages the ride command screen did understand. doing so would allow structuring a Canbus message the screen can understand even when not connected to the correct machine. make sense? good.

the idea of sniffing the canbus on an indian motorcycle is simple. we use the diagnostic port that dealers use to make various changes on the bike. thank you, engineers.

Diagnostic port on 2021 Indian Scout Bobber sixty

We’re lucky that majority of needed information comes across this port no issues. on 2022 indian chief, this port is behind the right midframe panel. the wires needed are yellow (CAN-hi) and green (CAN-Low). canbus wire color and diagnostic port wiring is the same on other indian motorcycles which is awesome as this process works the same on other models.

The device I would use to sniff messages on the wire is adafruit rp2040 MCP2515. This device is a low level arduino/raspberry pi base which is affordable and requires minimal work to get going. The star of this little device is the MCP25625 chip which is capable of receiving and transmitting CAN messages. RP2040 is also barely the size of a quarter which is favorable on motorcycles with minimal space.

adafruit rp2040 compared to sd card

adafruit rp2040 compared to sd card

numerous options are available to achieve similar results but I chose this route for the price and because other helpful youtube videos led me here. once I got the device running with working code, I needed a way to connect to the diagnostic port. Previously, I would just jam the wires in the port and hope they held. This worked and I did better.. I bought a male end diagnostic port (eBay special baby!) with wire pinouts giving me an oem style connection.

adafruit rp2040 connected via usb-c to the laptop (power supplied) and using the diagnostic port harness (can-hi/can-low wires only) for an oem style connection

adafruit rp2040 connected via usb-c to the laptop (power supplied) and using the diagnostic port harness (can-hi/can-low wires only) for an oem style connection

To get RP2040 to read data on the CAN, it needs the appropriate coding libraries. I went through several libraries before finding a few that would work and also software supported to decode messages. I’m currently settled on this library for receiving data. I made one minor tweak to the code by using value “PIN_CAN_CS” (A value of “10” for variable SPI_CS_PIN is default) for the chip selection value (SPI_CS_PIN) which allows MCP2515/MCP25625 to function. (An Adafruit necessary step for any library) I was hung up on this for a few days. Reading documentation on these devices helps, go figure.

receiving can messages using adafruit rp2040

receiving can messages using adafruit rp2040

Data on the CAN is sent and received hundreds of times a second in hexadecimal. As a human, that’s impossible to comprehend and gets us nowhere. It was critical to find software to interpret hex data and allow ease of reverse engineering messages. The software used is SAVVYCAN which is well known in the industry for its capabilities to interpret CAN messages with ease. Connecting RP2040 would take me a few tries/days and library combinations. The library mentioned supports Lawicel protocol which is supported in SavvyCan. The bus speed is set to 50000 and port depends on your own set up. It should auto detect the port although everything protocol related is beyond the scope here. It works.

After troubleshooting RP2040 to talk with SAVVYCAN via the serial port, (using lawciel protocol as a connection method) not only did I see the data but I had a way to find what these messages meant.

Using SAVVYCAN, I received about 250 messages a second before running Chief’s engine. this is resting data but allows decoding messages like a handlebar button press and temperature sensors easier. Each message is a sensor transmitting its data so others on the network can interpret it. With RP2040 hardware and SAVVYCAN software, I now have a reliable way to read messages for any Indian Motorcycle model. The first data set to interpret is Chief, then Scout. Hopefully, engineers don’t decide to add security to the can network on future models.

savvycan pulling data from 2022 indian chief dark horse

savvycan pulling data from 2022 indian chief dark horse

Previous
Previous

Installing TPMS Sensor 2022+ Indian Chief