candle-usb/candleLight_fw
Freegs_usb compatible firmware for candleLight, cantact and canable
About candle-usb/candleLight_fw
gs_usb compatible firmware for STM32F042x/STM32F072xB-based USB-CAN adapters. Supports a wide range of devices including candleLight, cantact, canable, USB2CAN, CANAlyze, and others. Implements the gs_usb interface used by the Linux kernel module, enabling plug-and-play operation on Linux distributions like Ubuntu. Also includes WCID USB descriptors for driverless use on recent Windows versions. Built as an open-source project, it provides a firmware solution for connecting CAN bus networks to computers via USB, ideal for automotive diagnostics, industrial automation, and embedded systems development. Note: STM32G0B1 and STM32G431 devices are not yet supported, and there is a known echo frame timing limitation.
Key Features
Pros & Cons
- Open source and community-driven
- Broad hardware compatibility across many adapter boards
- Plug-and-play on Linux without additional drivers
- Works on Windows without driver installation due to WCID descriptors
- Actively maintained with 786 commits
- Does not support STM32G0B1-based devices (see issues #139, #176)
- Does not support STM32G431-based devices (e.g., CANable-MKS 2.0)
- Echo frame is sent when written to CAN peripheral, not when actually sent on bus (affects timestamps and one-shot mode)
- Known kernel bug in Linux 4.5 gs_usb module can crash kernel on device removal (fixed version available)
- Requires newlib-based arm-none-eabi-gcc toolchain (picolibc not supported on newer Debian)