candle-usb/candleLight_fw logo

candle-usb/candleLight_fw

Free

gs_usb compatible firmware for candleLight, cantact and canable

FreeFree tier
Type
Open Source

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

Implements gs_usb interface for Linux kernel module
Compatible with many STM32F042x/STM32F072xB-based USB-CAN adapters
Works out-of-the-box with Linux distros packaging gs_usb module
WCID USB descriptors for driverless Windows use
Open source firmware hosted on GitHub

Pros & Cons

Pros
  • 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
Cons
  • 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)

Best For

Connecting CAN bus networks to computers via USBAutomotive diagnostics and vehicle communicationIndustrial automation and control systemsDevelopment and debugging of CAN-based embedded systems

FAQ

What hardware is compatible with this firmware?
The firmware supports STM32F042x and STM32F072xB based USB-CAN adapters including candleLight, candleLight FD, cantact, canable, USB2CAN, CANAlyze, VulCAN Gen1, Entreé, CANable-MKS 1.0, ConvertDevice-xCAN, DSD TECH SH-C30A, FYSETC UCAN, and FalCAN Probe. STM32F103-based boards are not supported because the hardware cannot use both USB and CAN simultaneously.
Does it work on Linux?
Yes. The firmware implements the interface of the mainline Linux gs_usb kernel module and works out-of-the-box with Linux distributions that include this module, such as Ubuntu.
Does it work on Windows?
Yes. The firmware implements WCID USB descriptors, allowing it to be used on recent Windows versions without installing a custom driver.
What are the current limitations?
STM32G0B1 and STM32G431 devices are not yet supported. There is a known issue where the firmware sends an echo frame to the host when the frame is written to the CAN peripheral, not when it is actually sent on the bus, affecting timestamps and one-shot mode.