Video summary
AI CAN Bus Reverse Engineering [Claude Code]
Main summary
Key takeaways
Summary
The video demonstrates an AI-assisted workflow for reverse engineering proprietary CAN bus signals using Claude Code, Python, and the CANsub.2 interface. The presenter argues that AI can make the work faster and more accessible than manually inspecting CAN data with tools such as SavvyCAN, but it still needs a useful reference signal to know what to look for.
Why reverse-engineer CAN data?
Raw CAN logs contain message IDs and data bytes, not readily understandable values such as speed or RPM. Manufacturers hold the decoding rules that map those bytes to physical values.
Standardized options can help: J1939 covers much heavy-duty vehicle data, while OBD2 can provide values such as speed and RPM for many non-electric cars. However, OBD2 exposes only a subset of the data available on a vehicle’s CAN bus, so additional signals may need to be reverse engineered.
How the AI workflow works
The open-source Claude Code skill uses Python scripts and python-can to analyze CAN logs and produce DBC files. Rather than feeding a chatbot millions of raw frames, the scripts perform the analysis and pass Claude more focused results.
The process is broadly:
- Survey the log to identify changing bytes and possible counters, checksums, or irrelevant messages.
- Find CAN data fields that correlate with the reference signal.
- Search possible bit positions, lengths, byte orders, and signed or unsigned formats.
- Fit the signal’s scale and offset.
- Generate a DBC file and plots for review.
The presenter stresses that AI cannot reliably decode a signal from raw CAN data alone: it needs a reference that tracks the target value.
Demonstrations
- OBD2 reference: A Mercedes E350 log contains both proprietary CAN data and OBD2 values. Claude identifies speed and RPM from the OBD2 reference and generates a DBC file.
- Dashboard-video reference: Video of a digital speed display is converted into a time series using OCR. Claude then uses that series to find the proprietary speed signal, without access to OBD2 speed during the analysis. Stable camera positioning and synchronization with the computer’s time can help.
- Human-input reference: A slider app provides a reference while the presenter turns a physical gauge connected through a CANmod.input module. Because matching the values by hand is noisy, the workflow also allows samples at set values to anchor the signal. Claude decodes the first gauge, infers how the other gauges may be encoded, and creates a combined DBC that can be checked by moving the gauges and plotting the results.
Hardware and software notes
The workflow is built around CANsub.2 but can be adapted to other interfaces supported by python-can. The presenter highlights several CANsub.2 features that are useful for this work: an LCD showing bus status, silent mode and error-frame support, and dual CAN channels. Dual channels can help when OBD2 is available through the diagnostic connector but proprietary traffic must be captured separately, such as with a contactless CAN reader.
The accompanying webCAN tool is browser-based and hosted on the CANsub.2. It can work offline and supports DBC decoding, plotting, and transport protocols including J1939 and ISO-TP. The presenter uses it to inspect whether the generated DBC decodes correctly.
Results and limitations
Based on the presenter’s tests, clean reference signals often led to successful decoding; occasionally, Claude needed to reconsider an unpromising analysis. The presenter estimates that the workflow can take around 5–10 minutes per signal, compared with 2–6 hours using traditional methods for someone without extensive experience. These are the presenter’s estimates, not independent benchmarks.
The method still depends on obtaining a suitable reference and recording the reference and raw CAN data together.
Guide and resources
The presenter says the skill is open source on GitHub and that sample data, including the dashboard video, is available to try the workflow without the hardware. The setup uses Claude Code and Python; the presenter estimates setup takes about 10 minutes.
The video also outlines options for collecting vehicle data, from using OBD2 through the diagnostic connector to accessing proprietary CAN wiring with a contactless reader.
Main speaker/source: The presenter from CSS Electronics, identified in the video metadata as Martin Falch.
Rate this summary
Your feedback will help improve summaries.
Improve this summary
Reprocess with a stronger model when the summary feels incomplete or inaccurate.
Translate summary in another language
Ask questions to this video
Chat for follow-up questions, clarifications, and source-backed answers.