USB to CAN Adapter UCAN STM32F072 – Klipper & CANable
UCAN Board – USB to CAN Adapter Based on STM32F072
The UCAN Board is a compact, low-cost, open-source USB to CAN adapter built on the reliable STM32F072 microcontroller. Whether you're running Klipper firmware on a 3D printer, developing embedded systems on a Raspberry Pi, or working with CAN bus diagnostics, this versatile adapter bridges your computer and CAN bus with ease. Compatible with CANable hardware and supporting both CANable and CandleLight firmware, UCAN is the go-to tool for hobbyists, makers, and engineers alike.
Key Features
- STM32F072 MCU: A proven, high-performance ARM Cortex-M0 microcontroller at the core
- Type-C USB Socket: Modern, reversible USB-C connectivity for hassle-free plug-in
- CAN2.0A & B Support: Handles both standard and extended CAN frames with baud rates up to 1 Mbps
- CANable Compatible: Drop-in hardware compatibility with the popular CANable ecosystem
- Multi-Firmware Support: Works with CANable, CandleLight, and Klipper firmware out of the box
- 3-Pin Screw Terminal: Clearly labeled CANH, CANL, and GND for secure, reliable connections
- Bootloader Jumper: Easily enter bootloader mode for seamless firmware updates
- 120Ω Onboard Termination: Default 120R termination resistor with a jumper to enable or disable as needed
- Broad Platform Compatibility: Works with Raspberry Pi, Raspberry Pi Zero, ODROID, BeagleBone, and other ARM-based platforms
How It Works
Running CANable firmware, the UCAN enumerates as a virtual serial port on your computer, acting as a serial-line CAN bus interface. Switch to CandleLight firmware and it becomes a native local CAN interface recognized directly by Linux. For 3D printing enthusiasts, UCAN integrates seamlessly as a USB-to-CAN interface within the Klipper ecosystem — a perfect companion for toolheads and CAN-bus-based boards.
Specifications
| Microcontroller | STM32F072 |
| USB Connector | Type-C |
| CAN Standard | CAN2.0A & CAN2.0B |
| Max Baud Rate | 1 Mbps |
| Termination | 120Ω (jumper selectable) |
| Terminals | 3-pin screw terminal (CANH, CANL, GND) |
| Material | Plastic + Metal |
| Package Size | 12 × 8 × 1 cm |
| Package Contents | 1 × UCAN Board |
| Country of Origin | Made in Mainland China |
Compatible Platforms
- Raspberry Pi & Raspberry Pi Zero
- ODROID
- BeagleBone
- Any ARM-based embedded Linux system
- Klipper 3D printing setups
Related Products You May Like
- 1.5M Nylon Braided 3.5mm AUX Audio Cable | Car, Phone & Speaker
- 1/4" Hex Shank Wire Twister Drill Attachment | Rebar Tie Tool
- 1/4" NPT Nickel Plated Brass Air Compressor Tank Fill Valve
Further Reading
For electronics safety standards and best practices when working with embedded hardware and USB devices, refer to the U.S. Consumer Product Safety Commission (CPSC).
Learn more: Microprocessor development board
Frequently Asked Questions
Q: What firmware does the UCAN STM32F072 USB to CAN adapter support?
A: The UCAN board supports three popular firmware options: CANable, CandleLight, and Klipper. With CANable firmware it acts as a virtual serial port; with CandleLight it is recognized as a native CAN interface on Linux; and with Klipper it serves as a USB-to-CAN bridge for 3D printer toolhead boards.
Q: Is the UCAN board compatible with Raspberry Pi?
A: Yes! The UCAN USB to CAN adapter is fully compatible with Raspberry Pi (including Raspberry Pi Zero), ODROID, BeagleBone, and other ARM-based embedded platforms, making it ideal for a wide range of maker and engineering projects.
Q: How do I update the firmware on the UCAN board?
A: The UCAN board features a dedicated bootloader jumper. Simply set the jumper to enter bootloader mode, connect via USB-C, and flash your desired firmware (CANable, CandleLight, or Klipper) using the appropriate flashing tool on your computer.
Q: What is the 120Ω termination resistor on the UCAN board for?
A: CAN bus networks require 120-ohm termination resistors at each end of the bus to prevent signal reflections and ensure reliable communication. The UCAN board includes an onboard 120Ω resistor that is enabled by default, with a jumper allowing you to enable or disable it as your network topology requires.