Skip to the content
PCBKitNew board
2 layers54.6 × 49.5 mmMulticdc, the printed circuit board in 3D

RP2040-based 6-channel USB to UART converter with Zephyr RTOS

Size
54.6 × 49.5 mm
Copper layers
2
Thickness
1.6 mm
Parts
35
Nets
47
Pads
177
Tracks, vias
251, 10
Routed
Yes
KiCad
KiCad 9.0 (file 20241229)
Created
9 Mar 2025
Updated
17 Mar 2026

Overview

Multicdc is an open-source printed circuit board by ondras12345, from the ondras12345/multicdc repository on GitHub, published under the MIT licence. It is a 2-layer board of 54.6 × 49.5 mm with 35 parts on 47 nets, routed with 251 tracks and 10 vias.

It is built around the Π122M30, RP2040-ZERO and ESD5Z3.3T1G, with the P4SMAJ5.0A among its other parts. Its parts include 12 capacitors, 10 connectors, 7 ICs and 2 diodes. It belongs with the RP2040 boards of this library.

Main components

4

README

README.md

MultiCDC

This is a simple RP2040-based 6-channel USB to UART converter.

This is my first project using the Zephyr RTOS, so there might be lots of mistakes. However, it seems to work.

top side of the MultiCDC pcb bottom side of the MultiCDC pcb

Operation

The device creates 7 /dev/ttyACM* devices when connected to a linux host. The first 6 are linked to hardware UARTs, and /dev/ttyACM6 is used for logging and shell.

The RP2040 only has 2 hardware UARTs. The other 4 channels use the PIOs.

Unfortunately, the pico-uart-pio driver doesn't allow changing the baud rate at runtime. For this reason, baud rates (current-speed) for those channels need to be set in the device tree (app.overlay).

Pin map (most of these can be changed arbitrarily):

pinfunction
P0Tx0
P1Rx0
P2Tx1
P3Rx1
P4Tx2
P5Rx2
P6Tx3
P7Rx3
P8Tx4
P9Rx4
P10Tx5
P11Rx5

Build

sh
. ~/zephyrproject/.venv/bin/activate
. ~/zephyrproject/zephyr/zephyr-env.sh
west build

# enter bootloader: press BOOT button, press & release RESET, release BOOT
west flash

Udev rules

sh
sudo tee /etc/udev/rules.d/99-multicdc.rules > /dev/null << "EOF"
SUBSYSTEM=="tty", ENV{ID_VENDOR_ID}=="2fe3", ENV{ID_MODEL_ID}=="6cdc", ENV{ID_USB_INTERFACE_NUM}=="00", SYMLINK+="tty-mcdc0ch0"
SUBSYSTEM=="tty", ENV{ID_VENDOR_ID}=="2fe3", ENV{ID_MODEL_ID}=="6cdc", ENV{ID_USB_INTERFACE_NUM}=="02", SYMLINK+="tty-mcdc0ch1"
SUBSYSTEM=="tty", ENV{ID_VENDOR_ID}=="2fe3", ENV{ID_MODEL_ID}=="6cdc", ENV{ID_USB_INTERFACE_NUM}=="04", SYMLINK+="tty-mcdc0ch2"
SUBSYSTEM=="tty", ENV{ID_VENDOR_ID}=="2fe3", ENV{ID_MODEL_ID}=="6cdc", ENV{ID_USB_INTERFACE_NUM}=="06", SYMLINK+="tty-mcdc0ch3"
SUBSYSTEM=="tty", ENV{ID_VENDOR_ID}=="2fe3", ENV{ID_MODEL_ID}=="6cdc", ENV{ID_USB_INTERFACE_NUM}=="08", SYMLINK+="tty-mcdc0ch4"
SUBSYSTEM=="tty", ENV{ID_VENDOR_ID}=="2fe3", ENV{ID_MODEL_ID}=="6cdc", ENV{ID_USB_INTERFACE_NUM}=="0a", SYMLINK+="tty-mcdc0ch5"
SUBSYSTEM=="tty", ENV{ID_VENDOR_ID}=="2fe3", ENV{ID_MODEL_ID}=="6cdc", ENV{ID_USB_INTERFACE_NUM}=="0c", SYMLINK+="tty-mcdc0shell"
EOF

sudo udevadm control --reload-rules
sudo udevadm trigger

Parts

35
QtyValueFootprintReferences
12100nCapacitor_SMD:C_0805_2012Metric_Pad1.18x1.45mm_HandSolderC1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12
6Conn_02x04_Odd_EvenConnector_PinHeader_2.54mm:PinHeader_2x04_P2.54mm_VerticalJ1, J2, J3, J4, J5, J6
6Π122M30Package_SO:SOIC-8_3.9x4.9mm_P1.27mmU1, U2, U3, U4, U5, U6
4MountingHoleMountingHole:MountingHole_3.2mm_M3H1, H2, H3, H4
3Conn_01x06_PinConnector_PinHeader_2.54mm:PinHeader_1x06_P2.54mm_VerticalJ7, J8, J9
1Conn_01x08_PinConnector_PinHeader_2.54mm:PinHeader_1x08_P2.54mm_VerticalJ10
1ESD5Z3.3T1GDiode_SMD:D_SOD-523D2
1P4SMAJ5.0ADiode_SMD:D_SMA_HandsolderingD1
1RP2040-Zeroondra:RP2040-ZeroU7

Questions

How big is the Multicdc PCB?

It measures 54.6 × 49.5 mm and has 2 copper layers, 1.6 mm thick.

What parts does the Multicdc use?

35 parts, built around the Π122M30, RP2040-ZERO, ESD5Z3.3T1G and P4SMAJ5.0A. 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.

Where can I download the Multicdc KiCad files?

From the ondras12345/multicdc repository on GitHub, at the commit this page was made from: the board is hardware/multicdc/multicdc.kicad_pcb and its schematic hardware/multicdc-LEDs/multicdc-LEDs.kicad_sch. PCBKit opens the board in the browser, with nothing to install.

Can I use the Multicdc design in my own project?

Its repository publishes it under the MIT licence: you may reuse it on that licence's terms (keep the author's notice, and for a copyleft licence share your changes alike).

More from ondras12345/multicdc

1
  • 2 layers116 × 30 mmMulticdc LEDs, the printed circuit board in 3D

    Multicdc LEDs

    ondras12345/multicdc

    RP2040-based 6-channel USB to UART converter with Zephyr RTOS

    37 parts1MIT

Similar boards

  • 2 layers71.1 × 38.1 mmMower, the printed circuit board in 3D

    Mower

    ondras12345/mower

    Some notes + hardware designs for my OpenMower Mowgli build

    28 partsMIT
  • 6 layers60 × 55 mmPoE Ethernet GPIB Adapter, the printed circuit board in 3D

    PoE Ethernet GPIB Adapter

    Kofen/PoE_Ethernet_GPIB_Adapter

    This folder contains the necessary hardware files for the PoE Ethernet GPIB Adapter project.

    198 parts120GPL-3.0
  • 2 layers39 × 58.5 mmAtari SIO2SD Mini, the printed circuit board in 3D

    Atari SIO2SD Mini

    RichardRozehnal/Atari-SIO2SD-Mini

    Atari SIO2SD disk drive emulator for 8bit Atari.

    41 parts2GPL-3.0
  • 4 layers115 × 76.3 mmApm, the printed circuit board in 3D

    Apm

    TeHSiGGi/agp-power-monitor

    Power minitoring utility for AGP graphics cards

    119 parts2GPL-3.0
  • 4 layers36.5 × 69 mmStorm tracker, the printed circuit board in 3D

    Storm tracker

    solderable/storm-tracker-hardware

    Open-source-ready Storm Tracker hardware design, documentation, BOM, and manufacturing package

    102 parts58
  • 4 layers100 × 50 mmPsu ext, the printed circuit board in 3D

    Psu ext

    PSU-Ext-Org/psu-ext-hardware

    A repository to store PSU-EXT hardware design assets, schematics, circuit diagrams, CAD files and manufacturing data.

    137 parts9CERN-OHL-S-2.0
  • 4 layers83 × 67.5 mmMarineBoard, the printed circuit board in 3D

    MarineBoard

    Cadburies/SisuAssistant

    Sailing yacht Sisu: Home Assistant + ESPHome Marine Board (alternator regulation, tanks) + MQTT kernel, Signal K/Grafana/InfluxDB on a NAS, and Sisu Nav chart & weather-routing cockpit.

    162 parts1Apache-2.0
  • 4 layers101.6 × 128.7 mmQCB board, the printed circuit board in 3D

    QCB board

    bartkepl/QCB_board

    Quad Card Backplane

    222 partsMIT