Start onboarding · Documentation · Plugin repository · Discord
Experimental open-source firmware for selected Tesla CAN experiments using ESP32 and other CAN-capable boards.
This project is not plug-and-play. CAN connects vehicle computers, including safety-critical systems. A wrong wire, bitrate, filter, checksum, or injected byte can cause dangerous behavior or damage.
Use an isolated bench harness or listen-only tool first. Do not begin on a public road. You are responsible for hardware, testing, local law, warranty, and the result of every frame sent.
New to the project? Follow this order:
Depending on board and build, firmware can:
Dashboard builds are the easiest starting point. Built-in handlers provide observation; enabled plugins are the automatic injection path.
| PlatformIO environment | Board | CAN | Dashboard |
|---|---|---|---|
esp32_twai |
Generic ESP32 Dev Module | TWAI | Yes |
esp32s2_twai |
ESP32-S2 Saola | TWAI | Yes |
esp32c6_twai |
ESP32-C6 DevKitC-1 | TWAI | Yes |
lilygo_tcan485_hw3 |
LILYGO TCAN485 | TWAI | Yes |
lilygo_t2can |
LILYGO T-2CAN | SPI MCP2515 (CAN A / Party CAN) | Yes |
m5stack-atomic-can-base |
M5Stack Atom CAN Base | TWAI | Yes |
m5stack-atoms3-mini-can-base |
M5Stack AtomS3 Mini CAN Base | TWAI | Yes |
esp32_feather_v2_mcp2515 |
Feather ESP32 V2 + MCP2515 | SPI MCP2515 | Yes |
esp32_ext_mcp2515 |
ESP32-S3 + MCP2515 | SPI MCP2515 | Yes |
waveshare_ESP32_S3_RS485_CAN |
Waveshare ESP32-S3 RS485/CAN | TWAI | Yes |
feather_rp2040_can |
Feather RP2040 CAN | MCP2515 | No |
feather_m4_can |
Feather M4 CAN Express | Native CAN | No |
Install PlatformIO, then from the repository root:
cp platformio_profile.example.h platformio_profile.h
pio run -e esp32_ext_mcp2515
pio run -e esp32_ext_mcp2515 -t upload
Replace the environment with the exact board. Configure the local profile before building. Never commit or share platformio_profile.h; it can contain credentials and keys.
After flashing an ESP32 dashboard board, connect to its hotspot and open http://192.168.4.1/. Read the first-boot steps.
Useful contributions include sanitized CAN captures, board wiring notes, regression tests, documentation improvements, and carefully reviewed code. When reporting a problem, include board/environment, firmware version, bus/bitrate, exact IDs and DLCs, timestamps, Support diagnostics, and the smallest sanitized capture that demonstrates it. Remove credentials, keys, VINs, and private payloads.
GPL-3.0. Main dependencies include ESP-IDF, ArduinoJson, arduino-mcp2515, and Adafruit_CAN. See THIRD_PARTY_LICENSES for full notices.
Version is tracked in VERSION; release notes are in CHANGELOG.md.