Skip to the content
2 layers40 × 40 mmLED Module CH32V203, the printed circuit board in 3D

noknok LEDs - USB-controlled 8x WS2812b RGB LED module for the noknok ecosystem

Size
40 × 40 mm
Copper layers
2
Thickness
1.6 mm
Parts
51
Nets
44
Pads
183
Tracks, vias
448, 21
Pours
1
Routed
Yes
KiCad
KiCad 9.0 (file 20241229)
Created
8 May 2026
Updated
2 Oct 2026

Overview

LED Module CH32V203 is an open-source printed circuit board by buildwithnoknok, from the buildwithnoknok/module-usb-led repository on GitHub, published under the MIT licence. It is a 2-layer board of 40 × 40 mm with 51 parts on 44 nets, routed with 448 tracks and 21 vias.

It is built around the CH32V203G6U6, XC6206P332MR and WS2812B, with the ESD9B5.0ST5G among its other parts. Its parts include 18 capacitors, 12 diodes, 9 resistors, 5 connectors and 2 ICs. It belongs with the lEDs and displays boards and the RISC-V boards of this library.

Main components

4

README

README.md

noknok LEDs

A USB-controlled ring of 8 WS2812b RGB LEDs for the noknok ecosystem. The Raspberry Pi Pico drives it as a USB host; it can also be driven directly from a PC.

Features

  • 8× WS2812b RGB LEDs (ring)
  • CH32V203G6U6 microcontroller, USB 1.1 (CDC) device
  • USB-C power + data; 2× Qwiic / STEMMA QT compatible I2C pass-through connectors
  • Unique per-unit USB serial derived from the chip UID — so the Conductor can tell identical modules apart and map them to roles (the USB counterpart of the I2C UID)
  • Rich control: per-LED colour/brightness/timed-off in one command, plus 6 built-in animations (rainbow, breathe, theatre chase, colour wipe, twinkle, sundown)

Status

  • Firmware: v1.8.2 — complete (see firmware/readme.md for the full command protocol, flashing instructions, and version history)
  • Hardware: v1.0

How it's controlled

From a Raspberry Pi Pico (USB host) — the noknok Conductor

The Pico hosts the module over PIO-USB (D+ → GP16, D− → GP17, behind a powered hub such as the DataHub). The NoknokLEDs driver lives in brain-Pico/software/noknok_usb.py and is discovered by the Conductor:

python
from noknok import Conductor

c = Conductor()
c.enumerate_usb()          # brings up the USB host port, finds all LED modules
# (use c.enumerate_all() for a product that mixes I2C + USB modules)

leds = c.leds[0]                                  # or c.by_uid("<serial>"), or c.role["lamp"]
leds.set_all(255, 0, 0)                           # all red
leds.set_pixel(3, 0, 255, 0)                      # LED 3 green
leds.set_brightness(128)                          # global brightness
leds.set_led(0xFF, 0, 0, 255, brightness=200, duration_ms=1000)  # all blue 1 s, then off
leds.play_preset(leds.PRESET_RAINBOW, speed=40)  # non-blocking animation on the module
leds.play_preset(leds.PRESET_SUNDOWN, speed=30, r=0, g=0, b=255)  # 30 min fade to off, blue
leds.off()

Each module carries a unique serial, so multiple LED modules on one hub are addressed individually. See Ecosystem → enumeration.md (USB Module Discovery & Identity) and roles.md (role assignment — this is an output module, assigned by cue-and-confirm).

From a PC

PowerShell / Python helpers in tools/ (noknok_leds.ps1, noknok_leds_pc.py) auto-detect the module and expose the same commands.

Repository Structure

  • /hardware — KiCad files, schematics, 3D models
  • /firmware — source (src/), built binaries (bin/), and the firmware change record (readme.md)
  • /tools — PC control scripts

USB LED Module USB LED Module


Trademarks

noknok is a registered trademark in Switzerland (Swissreg 1300007033).

Qwiic is a registered trademark of SparkFun Electronics, Inc. STEMMA QT is a trademark of Adafruit Industries, LLC. Both are named here only to state connector compatibility - noknok is not affiliated with, endorsed by, or sponsored by either company.

Parts

51
QtyValueFootprintReferences
90.1uFCapacitor_SMD:C_0603_1608Metric_Pad1.08x0.95mm_HandSolderC6, C9, C10, C11, C12, C13, C14, C15, C16
8WS2812BLED_SMD:LED_WS2812B_PLCC4_5.0x5.0mm_P3.2mmD9, D10, D11, D12, D13, D14, D15, D16
410uFCapacitor_SMD:C_0603_1608Metric_Pad1.08x0.95mm_HandSolderC1, C2, C5, C8
31uFCapacitor_SMD:C_0603_1608Metric_Pad1.08x0.95mm_HandSolderC3, C4, C7
210kResistor_SMD:R_0603_1608Metric_Pad0.98x0.95mm_HandSolderR6, R7
218pFCapacitor_SMD:C_0603_1608Metric_Pad1.08x0.95mm_HandSolderC17, C18
222RResistor_SMD:R_0603_1608Metric_Pad0.98x0.95mm_HandSolderR3, R4
24.7kResistor_SMD:R_0603_1608Metric_Pad0.98x0.95mm_HandSolderR8, R9
25.1kResistor_SMD:R_0603_1608Metric_Pad0.98x0.95mm_HandSolderR1, R2
2ESD9B5.0ST5GDiode_SMD:D_SOD-923D2, D3
2TestPointTestPoint:TestPoint_THTPad_D1.0mm_Drill0.5mmTP1, TP2
1100RResistor_SMD:R_0603_1608Metric_Pad0.98x0.95mm_HandSolderR5
11N4007Diode_SMD:D_SOD-123D1
1CH32V203G6U6Package_DFN_QFN:WQFN-28-1EP_4x4mm_P0.4mm_EP2.7x2.7mmU1
1CrystalCrystal:Crystal_SMD_3225-4Pin_3.2x2.5mm_HandSolderingY1
1D_SchottkyDiode_SMD:D_SOD-323_HandSolderingD4
1Jumper CapConnector_PinHeader_2.54mm:PinHeader_1x02_P2.54mm_VerticalJ2
1LOGOfootprints:noknok_KiCad_Logo_10x10mmG***
1Qwiic / StemmaQT ConnectorChris_Library:JST_SH_SM04B-SRSS-TB_1x04-1MP_P1.00mm_Horizontal_CHRISJ3
1Qwiic / StemmaQT ConnectorConnector_JST:JST_SH_BM04B-SRSS-TB_1x04-1MP_P1.00mm_VerticalJ4
1Resettable PolyfuseFuse:Fuse_1206_3216MetricF1
1TagConnect_TC2030Connector:Tag-Connect_TC2030-IDC-NL_2x03_P1.27mm_VerticalJ5
1USB_C_Receptacle_USB2.0_16PConnector_USB:USB_C_Receptacle_GCT_USB4105-xx-A_16P_TopMnt_HorizontalJ1
1XC6206P332MRPackage_TO_SOT_SMD:SOT-23-3U2

Similar boards

  • 2 layersLED Module CH32V203, the printed circuit board in 3D

    LED Module CH32V203

    buildwithnoknok/module-usb-led-16x

    noknok LEDs 16x - USB-controlled 16x RGBW LED module (round board, CH32V203)

    97 partsMIT
  • 4 layers38 × 28 mmCH32V203 mouse, the printed circuit board in 3D

    CH32V203 mouse

    m-fudala/CH32V203_mouse_PCB

    30 parts
  • 2 layers70 × 71 mmJewelled lc1, the printed circuit board in 3D

    Jewelled lc1

    matthiasnowak/jewelled

    This is a panel meant for production of the Earrings, allowing for 2 Earrings per panel.

    148 parts3
  • 2 layers48 × 15 mmCat32, the printed circuit board in 3D

    Cat32

    acornitum/cat32

    ch32 devboard ish keychain thingy

    35 parts1
  • 4 layers67.2 × 90.4 mmLinkodrive08, the printed circuit board in 3D

    Linkodrive08

    jediminer543/animated-robot

    Easily PCBA-able BLDC driver

    161 parts1Apache-2.0
  • 2 layers151 × 150.2 mmPanel, the printed circuit board in 3D

    Panel

    simonyiszk/sem-armpanel-2025

    2$ ARM devboard for the 2025 SEM basic course

    580 parts1
  • 4 layers43 × 40 mmClock box, the printed circuit board in 3D

    Clock box

    betz-engineering/clock_box

    A handy clock-generator for the FPGA lab.

    95 partsCERN-OHL-P-2.0
  • 4 layers32.8 × 15 mmUsbc-7seg, the printed circuit board in 3D

    Usbc-7seg

    cHemingway/usbc-7seg

    A tiny 7 segment display, USB controlled

    26 parts

Questions

How big is the LED Module CH32V203 PCB?

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

What parts does the LED Module CH32V203 use?

51 parts, built around the CH32V203G6U6, XC6206P332MR, WS2812B and ESD9B5.0ST5G. 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 LED Module CH32V203 KiCad files?

From the buildwithnoknok/module-usb-led repository on GitHub, at the commit this page was made from: the board is hardware/kicad/LED_Module_CH32V203.kicad_pcb and its schematic hardware/kicad/LED_Module_CH32V203.kicad_sch. PCBKit opens the board in the browser, with nothing to install.

Can I use the LED Module CH32V203 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).