gitwtfhub

wtf is triumph-speed-400-can-map?

tbtanmay111/triumph-speed-400-can-map — explained in plain English

Analysis updated 2026-05-18

12Audience · developerComplexity · 2/5LicenseSetup · hard

TL;DR

A reverse-engineered reference map of the internal CAN bus data broadcast by the Triumph Speed 400 and Scrambler 400 X motorcycles.

Mindmap

mindmap
  root((CAN Map))
    What it does
      Decodes bike CAN signals
      Documents byte formulas
      Cross checks with ECU pinout
    Tech stack
      ESP32
      CAN bus
      DBC file format
    Use cases
      Build a custom dashboard
      Data logging for track days
      Diagnostic tool development
    Audience
      Motorcycle owners
      Hardware tinkerers
      Developers

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

Why would anyone build with this?

REASON 1

Build a custom dashboard or data logger for a Triumph Speed 400 or Scrambler 400 X.

REASON 2

Import the included DBC file into CAN analysis tools like SavvyCAN or cantools.

REASON 3

Look up the exact byte and formula for a specific signal like RPM, speed, or fuel level.

REASON 4

Use the passive listening method as a reference for reverse-engineering other vehicle CAN buses.

What's in the stack?

ESP32CAN busDBC

How it stacks up

tbtanmay111/triumph-speed-400-can-map0xdea/ttyinject-rs0xhossam/uncanny
Stars121212
LanguageRustC
Setup difficultyhardmoderatehard
Complexity2/54/55/5
Audiencedeveloperresearcherresearcher

Figures from each repo's GitHub metadata at analysis time.

How do you spin it up?

Difficulty · hard Time to first run · 1h+

Requires an ESP32, a CAN transceiver, and physical access to the motorcycle's diagnostic connector.

Use freely for any purpose, including commercial use, as long as you keep the copyright notice, attribution is appreciated.

Wtf does this do

This repository is a reference document, not a piece of software. It maps out the internal computer network of two motorcycle models, the Triumph Speed 400 and Scrambler 400 X, both built by Bajaj with a Bosch engine control system. Modern motorcycles constantly broadcast data such as speed, engine RPM, and gear position over an internal wiring network called a CAN bus, and this project figured out what each piece of that broadcast data means by listening to it, without sending any commands back to the bike. The author built a small listening device using an ESP32 microcontroller and a CAN transceiver chip, connected to the bike's diagnostic port, and recorded the traffic while performing specific actions like braking, shifting gears, and using the indicators, as well as during an actual ride. By watching which numbers changed when a specific action happened, they worked out the meaning of dozens of signals, including RPM, speed, throttle position, coolant temperature, fuel level, brake status, and battery voltage. The results are written up in a companion file with the exact byte positions and formulas, along with a database file that can be loaded into common CAN analysis tools. Some values, like intake air temperature and total mileage, are not sent out on this broadcast network at all. The author tracked these down separately using a different diagnostic connector and a common OBD tool, and also cross-checked the whole map against an official Triumph wiring diagram, which confirmed the findings were accurate. This project builds on and credits earlier work by another developer who had already decoded some of the same signals, and adds several new ones that were not previously documented. The repository is aimed at motorcycle owners, tinkerers, and developers who want to build their own dashboards, data loggers, or diagnostic tools for these bikes. The author includes a clear safety warning: only listen to this network passively, since actively sending data to it with a cheap adapter can disable the bike's onboard computer. The findings are shared as best effort and should be checked against your own motorcycle. It is released under the MIT license, which allows free use with attribution appreciated.

Yoink these prompts

Prompt 1
Help me wire an ESP32 and SN65HVD230 to passively listen to my motorcycle's CAN bus.
Prompt 2
Explain how to load speed400.dbc into SavvyCAN and decode live signals.
Prompt 3
Walk me through building a simple dashboard using the RPM and speed signals from this map.
Prompt 4
What is the difference between passive sniffing and active OBD polling, and why does it matter here?

Frequently asked questions

wtf is triumph-speed-400-can-map?

A reverse-engineered reference map of the internal CAN bus data broadcast by the Triumph Speed 400 and Scrambler 400 X motorcycles.

What license does triumph-speed-400-can-map use?

Use freely for any purpose, including commercial use, as long as you keep the copyright notice, attribution is appreciated.

How hard is triumph-speed-400-can-map to set up?

Setup difficulty is rated hard, with roughly 1h+ to a first successful run.

Who is triumph-speed-400-can-map for?

Mainly developer.

View the repo → Decode another repo

This repo across BitVibe Labs

Don't trust strangers blindly. Verify against the repo.