ev-open-can-tools

Start onboarding · Documentation · Plugin repository · Discord

Experimental open-source firmware for selected Tesla CAN experiments using ESP32 and other CAN-capable boards.

Read this first

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:

  1. Start the guided newcomer onboarding to choose a goal, vehicle mode, board, installation approach, and matching build path.
  2. Read CAN safety and testing.
  3. Follow Build and flash for the selected board.
  4. Keep injection stopped while learning the Dashboard.
  5. Read the Plugin system before installing a transmit rule.

What it does

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.

Supported boards

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

Quick technical start

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.

Documentation

Contributing

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.

License and dependencies

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.