CAN bus reverse engineering skills

Three Claude Code skills that decode CAN bus signals into DBC files from CANsub recordings, with verification and merging

  • 255 ★ on the repository
  • Last commit
  • MIT
Skill

Extended access

Why this level

  • Scripts read the CAN stream through a USB or Ethernet interface wired to a vehicle
  • Connecting to the bus of someone else's or a working vehicle can interfere with its systems
All reasons and checks

css-electronics/can-bus-reverse-engineering-skills

Install

In your terminal, with SkillFoxx CLI

npx skillfoxx add skills/can-bus-reverse-engineering-skills

Detects the agents on your machine, shows the access level and pins the version.

Other ways to install

Access and checks

How we review

Extended accessThe tool runs code or makes network calls and only reads external data.

  • Scripts read the CAN stream through a USB or Ethernet interface wired to a vehicle
  • Connecting to the bus of someone else's or a working vehicle can interfere with its systems

This is third-party code. Review the repository files before installing.

What it does

The skill set helps turn raw CAN bus frames into decoding rules in DBC format. The agent, together with python-can scripts, finds which identifier and bits encode speed, RPM or battery charge, works out the start bit, length, byte order, scale and offset, and verifies the result with a decoded-versus-reference plot. There are three skills: `cansub-reverse-engineering` drives the process, `combine-dbc` merges per-signal DBCs into one application file, and `cansub-knowledge` holds the CANsub interface reference. The reference can be OBD2 data, GPS speed, video of the dashboard or a gauge-to-CAN module. Each confirmed signal is saved under `decoding-output/` with its DBC and a verification plot.

Who it is for. Automotive engineers and enthusiasts who decode the proprietary CAN bus of their own car or test bench.

Good fit when

  • You have a CAN bus recording in CSV and need to find where speed and RPM sit in the frames
  • You need a DBC for your own car's door lock state or a gauge needle position
  • Several decoded signals have to merge into one DBC to view in webCAN
  • GPS speed from a CANedge log is your reference and you must fit the signal's scale to it

Not a fit when

  • You lack a CSS Electronics interface: the skills assume CANsub and its API
  • The vehicle is not yours or you want control frames without the owner's permission: the set is for reading your own data
  • You need a polished product: the authors call the project an illustration of the approach

Example request

Reverse engineer Speed and RPM from Mercedes-E350-2010-obd2-can.csv, which contains OBD2 reference data

Limitations

The skills target the CANsub interface from CSS Electronics, with the CANsub.2 and an OBD2-DB9 cable as recommended hardware. Python 3.10 or newer and a local `.venv` are required. Do not attach a CSV to the chat: millions of frames flood the context, so reference the file path. The authors call the repository an illustration and ask you to read their article on AI CAN decoding first. The result depends on the reference quality: without GPS speed or dashboard video there is nothing to confirm a signal against.

How to disable. Delete the `cansub-*` and `combine-dbc` folders from `.claude/skills/` and the `.venv` directory. Finished DBC files sit in `decoding-output/` and stay with you.

FAQ

What is a DBC file?

A CAN decoding table: it says which bits of a frame with a given ID mean speed, RPM or another signal and what its scale and offset are.

Do I need a CANsub?

The skills are written for CANsub and its API. Recordings in CSV can also be analyzed without a live connection, for example from webCAN or CANedge.

What can confirm a decoding?

OBD2 data, GPS speed from a CANedge log, dashboard video or a gauge-to-CAN module. The skill plots the decoding against the reference.

How do I connect it to Claude Code?

Open the cloned folder in Claude Code and the skills in `.claude/skills/` load automatically. The authors recommend the VS Code extension.

Where do I get sample data?

The authors point to a CANsub CAN+OBD2 sample data pack on the CSS Electronics site.

Discussion

No questions or reviews yet.

Skills

The can-mcp MCP server opens a CAN bus to an agent: traffic, decoding, reverse engineering and OBD-II codes by tier.

MCP serverBroad access151Repository stars

A Claude Code skill for designing PCBs, CAD and firmware as code that writes fab files only after every gate passes

SkillBroad access94Repository stars

Two skills extract code from the installed ChatGPT macOS app and turn minified JavaScript into readable source with real names.

SkillBroad access140Repository stars

A Claude Code plugin that extracts behavioral specs, test vectors and acceptance criteria from a codebase, with a provenance trail

PluginBroad access303Repository stars

24 skills for microcontroller firmware: build, flash, GDB debugging, UART, Modbus, CAN, logic analyzers and static analysis

SkillBroad access1.1KRepository stars

Reverse engineering skill: an agent turns Java and Spring code into a model of functions, architecture, interfaces and database

SkillMinimal access132Repository stars

README in short

The project description states the goal: decode CAN frames into DBC files. Hardware, Python setup, Claude Code setup, connecting to a car, sample requests and the structure of results with DBC merging follow. The authors call the project an illustration of an approach.

README badge

Report a problem