Skip to content

STM32G0B1-based USB to dual isolated CAN-FD interface with 8 Mbit/s support - Hardware design files and firmware

Notifications You must be signed in to change notification settings

cck56/DualCANFD-G0

Repository files navigation

STM32G0B1 USB to Dual Isolated CAN-FD Interface

A compact USB to dual isolated CAN-FD interface featuring high-speed communication and isolation for robotics and industrial applications.

Key Features

  • Dual CAN-FD Channels: Independent channels supporting up to 8 Mbit/s
  • Galvanic Isolation: 3kV
  • Software-Controlled Termination: Split-type termination with PhotoMOS isolation
  • Status Indicators: Green link/activity and orange termination LEDs per channel
  • Compact Design: 35mm × 26mm × 65.5mm aluminum enclosure
  • Linux SocketCAN Compatible: Firmware based on CANnectivity project

PCB 3D Render

Aluminium Enclosure

Mechanical Specifications

  • Dimensions: 35mm (W) × 26mm (H) × 65.5mm (L)
  • Material: Aluminum enclosure
  • 3D Model: STEP file included (shell.stp)

Technical Specifications

Core Components

  • MCU: STM32G0B1
  • USB: Type-C connector, USB 2.0 Full-Speed
  • Isolation: CA-IS3721HS digital isolators
  • Protection: Low capacitance ESD diodes

CAN-FD Interface

  • Channels: 2 independent CAN-FD channels
  • Data Rate: Up to 8 Mbit/s (CAN-FD)
  • Termination: Software-controllable split termination per channel
  • Connectors: Spring-type push-in PCB terminal blocks

Repository Contents

  • Complete Altium Designer project files
  • Schematic PDF
  • 3D enclosure model (STEP)
  • PCB renders and enclosure images

Firmware

The device firmware is based on the CANnectivity project, providing native Linux SocketCAN support for seamless integration with existing CAN tools and applications.

Source Code

The firmware source code is available in our forked repository: https://github.com/cck56/cannectivity/tree/dualcanfd_g0

Flashing the Firmware

  1. Enter DFU Mode:

    • For unprogrammed/erased device: Simply plug in the USB cable
    • For programmed device: Short the J3 jumper, then plug in the USB cable
  2. Flash the firmware (Ubuntu/Linux):

    sudo dfu-util -d 0483:df11 -c 1 -i 0 -a 0 -s 0x08000000 -D ./dualcanfd_g0_0910.bin
  3. Verify: Unplug and reconnect the device. can0 and can1 should appear in your system.

  4. Set up udev rules: Add the 99-cannectivity.rules file from the CANnectivity repository to enable non-root access. Update the rules if necessary for your system.

Usage Example

Configure the CAN interface on Linux:

sudo ip link set can0 type can bitrate 1000000 dbitrate 5000000 fd on termination 120

This sets up can0 with 1 Mbps nominal bitrate, 5 Mbps data bitrate, CAN-FD enabled, and 120Ω termination.


About

STM32G0B1-based USB to dual isolated CAN-FD interface with 8 Mbit/s support - Hardware design files and firmware

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published