Tool

PiCCANTE

Raspberry Pi Pico firmware and hardware designs for a low-cost CAN bus interface aimed at exploring and reverse engineering vehicle networks. It runs two CAN 2.0B channels on RP2040 boards or three on RP2350 boards through the PIO-based can2040 library and exposes them over USB as a GVRET device for SavvyCAN and as per-channel SLCAN devices for Linux SocketCAN via can-utils. A configuration shell, a partial ELM327 emulator for OBD-II PID requests with ISO-TP multi-frame replies, and Wi-Fi, Bluetooth and a web interface on Pico W boards complete the firmware, alongside perfboard and KiCad PCB designs with 3D-printable cases for an OBD-II dongle.

Targets
Protocol
Category
Protocol analysis tools
Relationship
Foundation tool
Sources reviewed

Requirements & limits

  • Only release at review: v0.0.1, published 2025-05-03 with UF2 and ELF firmware for Pico, Pico W, Pico 2 and Pico 2 W; a dev-latest pre-release is rebuilt from main and was built from the reviewed commit of 2026-01-26. The README marks the ELM327 emulator as partial, lacking CAN setup, protocol auto-detection and filters, and lists SD-card logging and software CAN filters as planned. CAN FD and CAN XL are not supported.
  • Hardware is any Raspberry Pi Pico or Pico 2 board with one to three 3.3 V CAN transceivers such as the SN65HVD; the Pico 2 W is recommended for Wi-Fi and Bluetooth. The README warns that the 120-ohm termination resistor on most transceiver breakout boards must be removed before joining an existing, terminated bus, and urges caution when connecting to vehicle systems. The OBD-II dongle can add a buck converter, an SD card slot and a voltage divider for battery voltage.
  • Source builds need the Raspberry Pi Pico SDK, CMake 3.13+ and the GCC ARM toolchain, with FreeRTOS-Kernel, a can2040 fork, littlefs, TinyUSB, pico-extras and FreeRTOS-FAT-CLI as submodules; PICO_BOARD defaults to pico2_w, and the web interface is a separate Svelte project in Web/. CI builds firmware for the four Pico boards on pushes to main and on pull requests, and no test suite is documented.
  • GPL-3.0-or-later per LICENSE.txt and the README notice; the README attributes the CAN 2.0B-only limit to can2040's licensing, and the bundled DHCP server code carries an MIT notice. No separate license is stated for the KiCad, STL and STEP hardware files. Nothing was built, flashed or connected to a vehicle, and the reviewed sources establish no REA connection.

About this entry

The description was reviewed against primary sources. This does not establish runtime testing, security auditing or verified compatibility.

Report an outdated entry Suggest a translation fix

Primary sources

  1. Readme.md GitHub · Alia5/PiCCANTE · Revision 62ede82
  2. .gitmodules GitHub · Alia5/PiCCANTE · Revision 62ede82
  3. CMakeLists.txt GitHub · Alia5/PiCCANTE · Revision 62ede82
  4. .github/workflows/build_base.yml GitHub · Alia5/PiCCANTE · Revision 62ede82
  5. .github/workflows/PR_check.yml GitHub · Alia5/PiCCANTE · Revision 62ede82
  6. hardware/PiCCANTE-OBD-Dongle GitHub · Alia5/PiCCANTE · Revision 62ede82
  7. src/ELM327 GitHub · Alia5/PiCCANTE · Revision 62ede82
  8. LICENSE.txt GitHub · Alia5/PiCCANTE · Revision 62ede82
  9. https://github.com/Alia5/PiCCANTE/releases/tag/v0.0.1
  10. https://github.com/Alia5/PiCCANTE/releases/tag/dev-latest

More in Protocols

All 38 entries in Protocols