Skip to the content
2 layers116 × 30 mmMulticdc LEDs, the printed circuit board in 3D

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

Size
116 × 30 mm
Copper layers
2
Thickness
1.6 mm
Parts
37
Nets
24
Pads
86
Tracks, vias
97, 0
Pours
1
Routed
Yes
KiCad
KiCad 9.0 (file 20241229)
Created
9 Mar 2025
Updated
17 Mar 2026

Overview

Multicdc LEDs 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 116 × 30 mm with 37 parts on 24 nets, routed with 97 tracks and 0 vias.

It is built around the AO3400A, 0ZCF0150FF2C and 0ZCJ0025AF2E, with the P6SMBJ24A among its other parts. Its parts include 12 resistors, 11 connectors, 5 transistors, 2 capacitors and 2 fuses.

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

37
QtyValueFootprintReferences
8Conn_01x01Connector_Wire:SolderWire-0.25sqmm_1x01_D0.65mm_OD1.7mm_ReliefJ2, J3, J4, J5, J6, J7, J8, J9
5100Resistor_SMD:R_0805_2012Metric_Pad1.20x1.40mm_HandSolderR1, R2, R3, R4, R5
5100kResistor_SMD:R_0805_2012Metric_Pad1.20x1.40mm_HandSolderR6, R7, R8, R9, R10
5AO3400APackage_TO_SOT_SMD:SOT-23Q1, Q2, Q3, Q4, Q5
4MountingHoleMountingHole:MountingHole_3.2mm_M3H1, H2, H3, H4
10ZCF0150FF2CFuse:Fuse_2920_7451Metric_Pad2.10x5.45mm_HandSolderF1
10ZCJ0025AF2EFuse:Fuse_1206_3216Metric_Pad1.42x1.75mm_HandSolderF2
1100n / 50VCapacitor_SMD:C_1206_3216Metric_Pad1.33x1.80mm_HandSolderC1
11kResistor_SMD:R_0805_2012Metric_Pad1.20x1.40mm_HandSolderR11
14k7Resistor_SMD:R_0805_2012Metric_Pad1.20x1.40mm_HandSolderR12
1EGF477M1VG16RRTHP-RCapacitor_THT:CP_Radial_D10.0mm_P5.00mmC2
1P6SMBJ24ADiode_SMD:D_SMB_HandsolderingD1
1Screw_Terminal_01x06ondra:TerminalBlock_Xinya_XY301VA-5.00-6P_1x06_P5.00mm_HorizontalJ10
1TBG-5-KB-3P/GNondra:TBG-5-KB-3P_1x03_P5.08mm_HorizontalJ1
1soldered wiresConnector_Wire:SolderWire-0.25sqmm_1x04_P4.2mm_D0.65mm_OD1.7mm_ReliefJ11

More from ondras12345/multicdc

1
  • 2 layers54.6 × 49.5 mmMulticdc, the printed circuit board in 3D

    Multicdc

    ondras12345/multicdc

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

    35 parts1MIT

Similar boards

  • 2 layers94 × 87.6 mmCNC relays, the printed circuit board in 3D

    CNC relays

    ondras12345/CNC

    My CNC 1610 and Stepcraft model 600 configuration and CNC-related notes

    100 partsMIT
  • 2 layers49.5 × 59.7 mmPm sensor UART, the printed circuit board in 3D

    Pm sensor UART

    ondras12345/pm-sensor

    SPS30-based PM2.5 particulate matter sensor with RS485

    38 partsMIT
  • 8 layers280 × 195 mmMaxwell main, the printed circuit board in 3D

    Maxwell main

    azonenberg/starshipraider

    Open hardware test equipment

    997 parts193BSD-3-Clause
  • 2 layers213.3 × 96 mmRelay module, the printed circuit board in 3D

    Relay module

    sq9nje/matrix_antenna_switch

    A 2x6 matrix antenna switch for HF HAM radio

    154 parts15Unlicense
  • 2 layers43 × 24 mmBIAS TEE PCB, the printed circuit board in 3D

    BIAS TEE PCB

    ByTechLab/RF---Mostly-3D-Printed-Discone-Antenna--0.08-1-GHz-

    Mostly 3D printed discone antenna for Software Definied Radio.

    24 parts4
  • 2 layers99.7 × 31.8 mmVetrnik wind sensor, the printed circuit board in 3D

    Vetrnik wind sensor

    ondras12345/vetrnik

    Electronics for heating water with power from a 2 kW wind turbine

    41 parts
  • 4 layers149 × 95 mmMobo, the printed circuit board in 3D

    Mobo

    opulo-inc/lumenpnp

    The LumenPnP is an open source pick and place machine.

    399 parts3.7k
  • 4 layers40 × 23 mmPixl.js, the printed circuit board in 3D

    Pixl.js

    solosky/pixl.js

    An emulator for Amiibo!

    45 parts1.4kGPL-2.0

Questions

How big is the Multicdc LEDs PCB?

It measures 116 × 30 mm and has 2 copper layers, 1.6 mm thick.

What parts does the Multicdc LEDs use?

37 parts, built around the AO3400A, 0ZCF0150FF2C, 0ZCJ0025AF2E and P6SMBJ24A. 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 LEDs KiCad files?

From the ondras12345/multicdc repository on GitHub, at the commit this page was made from: the board is hardware/multicdc-LEDs/multicdc-LEDs.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 LEDs 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).