
KNX2HovalGateway
Blizzard26/OAM-KNX2HovalGateway
OpenKNX Application to connect KNX Bus to Hoval TopTronic Bus

Embedded code and PCB for CAN FD to USB converter
CFDC embedded is an open-source printed circuit board by ucandevices, from the ucandevices/CFDC_embedded repository on GitHub, published under the LGPL-3.0 licence. It is a 2-layer board of 26 × 13.6 mm with 36 parts on 57 nets, routed with 298 tracks and 20 vias.
It is built around the USBLC6-2SC6 and PESD2CAN. Its parts include 11 capacitors, 4 ICs, 4 connectors, 2 resistors and 2 diodes. It belongs with the interfaces and adapters boards and the STM32 boards of this library.
Open source USB ↔ CAN FD bridge. ISO CAN FD and classic CAN to USB virtual COM port — no proprietary drivers on Windows, Linux or macOS. Python-can plugin included.
The CAN FD USB Converter (CFUC) is a small open-source USB dongle built around an STM32G431 (CAN FD-capable MCU) and an MCP2542FD transceiver. It exposes both classic CAN (up to 1 Mbit/s) and ISO CAN FD (data phase up to 5 Mbit/s) to a PC over a USB CDC virtual COM port, and ships with a python-can plugin so it slots into existing CAN tooling out of the box.
This repo is the embedded firmware and hardware. For the host-side python-can plugin and example scripts see tools/.
A commercial CAN FD adapter typically costs hundreds of euros. This one is around $22 on Tindie.
tools/firmware/)gsusb_firmware/budgetcan_fw/ — enumerates as a standard gs_usb device on Linux (works directly with SocketCAN's gs_usb kernel driver)pcb/)| Where | Region | Link |
|---|---|---|
| Tindie | Worldwide | https://www.tindie.com/stores/lll7/ |
| Lectronz | EU | https://lectronz.com/stores/ucandevices |
| Elty | Poland / EU | https://elty.pl/ |
| Kamami | Poland / EU | https://kamami.pl/ |
Flash the gsusb_firmware/budgetcan_fw/ build and the device appears as a native SocketCAN interface:
sudo ip link set can0 up type can bitrate 500000 dbitrate 2000000 fd on
candump can0import can
bus = can.Bus(interface='cfuc', channel='/dev/ttyACM0', bitrate=500000)
for msg in bus:
print(msg)The python-can plugin lives in tools/ along with example scripts.
| Directory | Contents |
|---|---|
firmware/ | Native CFUC firmware for STM32G431 (CubeMX project CDC_libUSB_basic.ioc, Makefile build). |
gsusb_firmware/budgetcan_fw/ | Alternative gs_usb / budgetcan firmware — enumerates as a standard gs_usb device on Linux. |
pcb/ | Open hardware KiCad project for the CFUC board. |
tools/ | python-can plugin, host-side helpers, examples and the uCAN_CAN_Viewer GUI. |
doc/ | Datasheets for the STM32G431, MCP2542FD transceiver, USB ESD protection. |
For per-folder detail see:
pcb/README.md — hardwarefirmware/README.md — embedded firmwaretools/README.md — host tools and python-can pluginThe firmware is built with arm-none-eabi-gcc and a hand-written Makefile:
cd firmware
make -j4Output: firmware/build/CDC_libUSB_basic.elf.
STM32_Programmer_CLI -c port=SWD freq=4000 -w firmware/build/CDC_libUSB_basic.elf -v -hardRstTrigger DFU from a running device (send boot\r over the virtual COM port), then:
STM32_Programmer_CLI -c port=USB1 -w firmware/build/CDC_libUSB_basic.elf -v -hardRstSee tools/CFUC_Upload.sh for a one-shot flashing script.
What is the cheapest open source USB CAN FD adapter?
The uCanDevices CAN FD USB Converter (CFUC) is around $22 and is fully open source — STM32G431 firmware in this repo, KiCad hardware sources in pcb/, python-can plugin in tools/. Commercial CAN FD adapters typically start at several hundred euros.
Does it support ISO CAN FD or only non-ISO? ISO CAN FD. The MCP2542FD transceiver and the STM32G431's FDCAN peripheral both support the ISO CAN FD specification (the one used in current automotive ECUs).
Does it work with python-can?
Yes — a python-can plugin is included under tools/. The device is also available as a gs_usb device using the alternate firmware under gsusb_firmware/, which is supported by python-can's built-in gs_usb interface and by Linux SocketCAN directly.
Can it work with Linux SocketCAN natively?
Yes — flash the gs_usb firmware from gsusb_firmware/budgetcan_fw/. The device then enumerates as a can0 SocketCAN interface and works with candump, cansend, cangw and other can-utils, as well as anything that talks SocketCAN.
What bit rates are supported? Up to 1 Mbit/s arbitration phase, up to 5 Mbit/s data phase (CAN FD bit rate switching). Classic CAN frames are also supported on the same channel.
Is a driver required? No driver on Linux or macOS. On Windows 10+ the device enumerates as a virtual COM port using the built-in CDC class driver.
See LICENSE.
| Qty | Value | Footprint | References |
|---|---|---|---|
| 9 | TestPoint | Measurement_Points:Measurement_Point_Round-SMD-Pad_Small | TP1, TP2, TP3, TP4, TP5, TP6, TP7, TP8, TP9 |
| 5 | 100n | Capacitors_SMD:C_0603 | C2, C3, C6, C9, C11 |
| 3 | 1u | Capacitors_SMD:C_0603 | C1, C4, C10 |
| 2 | 10u | Capacitors_SMD:C_0603 | C7, C8 |
| 2 | SolderJumper_2_Open | ucan_custom:mini_GS2 | JP1, JP2 |
| 1 | 120 | Resistors_SMD:R_0603 | R2 |
| 1 | 1k | Resistors_SMD:R_0603 | R3 |
| 1 | 4,7u | Capacitors_SMD:C_0603 | C12 |
| 1 | BLM18TG601TN1D | Resistors_SMD:R_0603 | L1 |
| 1 | Conn_01x02_Female | Pin_Header_Straight_1x02_Pitch2.54mm | J5 |
| 1 | Conn_01x04_Male | Pin_Headers:Pin_Header_Straight_2x02_Pitch1.27mm | J4 |
| 1 | LED | LEDs:LED_0603 | D2 |
| 1 | MCP1700-3302E_SOT23 | TO_SOT_Packages_SMD:SOT-23 | U1 |
| 1 | MCP2542FDxMF | Housings_DFN_QFN:DFN-8-1EP_3x3mm_Pitch0.65mm | U2 |
| 1 | PESD2CAN | TO_SOT_Packages_SMD:SOT-23 | D1 |
| 1 | STM32G431CBUx | Housings_DFN_QFN:QFN-48-1EP_7x7mm_Pitch0.5mm | U4 |
| 1 | Screw_Terminal_01x03/3,5 | TerminalBlocks_Phoenix:TerminalBlock_Phoenix_PT-3.5mm_3pol | J2 |
| 1 | SolderJumper_2_Open | Connectors:GS2 | JP3 |
| 1 | USBLC6-2SC6 | TO_SOT_Packages_SMD:SOT-23-6 | U3 |
| 1 | USBMCS1B5W | ucan_custom:USBMCS1B5W | J1 |

Blizzard26/OAM-KNX2HovalGateway
OpenKNX Application to connect KNX Bus to Hoval TopTronic Bus

cherry-embedded/HSCanT-hardware
HSCanT is a USB to 4-channel CAN FD tool designed based on the HPM5321 chip.






darshp848/bldc-controller-60v
60 V, 20 A / 80 A peak BLDC motor controller that fits the MD80 v3.0 mounting. KiCad 10, 6 layers.
It measures 26 × 13.6 mm and has 2 copper layers, 1.6 mm thick.
36 parts, built around the USBLC6-2SC6 and PESD2CAN. The full list of its parts is on this page, with links to each part's symbol and footprint where PCBKit's library has them.
From the ucandevices/CFDC_embedded repository on GitHub, at the commit this page was made from: the board is pcb/main/main.kicad_pcb. PCBKit opens the board in the browser, with nothing to install.
Its repository publishes it under the LGPL-3.0 licence: you may reuse it on that licence's terms (keep the author's notice, and for a copyleft licence share your changes alike).