

Linux ch32v003
Linux on a $0.15 RISC-V microcontroller
- Size
- 36.1 × 21 mm
- Copper layers
- 2
- Thickness
- 1.6 mm
- Parts
- 16
- Nets
- 27
- Pads
- 73
- Tracks, vias
- 115, 0
- Pours
- 2
- Routed
- Yes
- KiCad
- KiCad 7 (file 20221018)
- Created
- 17 Feb 2024
- Updated
- 27 Aug 2025
Overview
Linux ch32v003 is an open-source printed circuit board by tvlad1234, from the tvlad1234/linux-ch32v003 repository on GitHub, published under the MIT licence. It is a 2-layer board of 36.1 × 21 mm with 16 parts on 27 nets, routed with 115 tracks and 0 vias.
It is built around the CH32V003F4P6, CH330N and AMS1117-3.3. Its parts include 5 capacitors, 4 ICs, 3 connectors and 1 switch. It belongs with the computers and single-board computers boards and the RISC-V boards of this library.
Main components
3CH32V003F4P6
TSSOP-20-175milTSSOP-20-175mil Microcontrollers (MCU/MPU/SOC) ROHSWCH (Nanjing Qinheng Microelectronics)Microcontrollers (MCU/MPU/SOC)CH330N
SOP-8-20℃~+70℃ 15mA 2Mbps 3.3V、5V Transceiver SOP-8 USB Converters ROHSWCH (Nanjing Qinheng Microelectronics)USB ConvertersAMS1117-3.3
SOT-223-40℃~+125℃ 0.003%Vout 1 1.1V@(800mA) 15V 1A 3.3V 5mA 72dB@(120Hz) Fixed Over Current Protection、Short Circuit Protection、Thermal shutdown Positive SOT-223 Voltage Regulators - Linear, Low Drop Out (LDO) Regulators ROHSAdvanced Monolithic SystemsVoltage Regulators - Linear, Low Drop Out (LDO) Regulators
README
README.mdlinux-ch32v003
Linux on a $0.15 RISC-V microcontroller
This project enables the CH32V003 microcontroller to run Linux. It achieves this by using an 8 megabyte SPI PSRAM chip and the mini-rv32ima RISC-V emulator by cnlohr, packaged into the tiny-rv32ima library. Emulating the system is necessary because the PSRAM cannot be mapped into the address space of the microcontroler. Storage for the Linux kernel, device tree binary and rootfs image is provided by an SD card.
This application is enabled by the ch32fun SDK.
How to use
The PSRAM and SD card are connected to the hardware SPI interface of the CH32V003. The chip select pins are defined in the pins.h file. The system console is exposed over the UART.
The SD card containing the Linux kernel and rootfs image must be formatted as FAT32 or FAT16, with the necessary files placed in the root directory.
A suggested schematic and corresponding single-layer PCB design is included in the hardware folder (it's a KiCad 7 project).
Boot time is around 7 minutes. The provided Linux image includes the coremark benchmark.
Building the Linux image
The Linux distribution meant to be used with tiny-rv32ima is built from buildroot-tiny-rv32ima. Pre-built images are available in the Releases section of the buildroot-tiny-rv32ima repo.
Parts
16| Qty | Value | Footprint | References |
|---|---|---|---|
| 5 | C | Capacitor_SMD:C_0805_2012Metric_Pad1.18x1.45mm_HandSolder | C1, C2, C3, C4, C5 |
| 3 | TestPoint | TestPoint:TestPoint_THTPad_D2.0mm_Drill1.0mm | TP1, TP2, TP3 |
| 1 | AMS1117-3.3 | Package_TO_SOT_SMD:SOT-223-3_TabPin2 | U4 |
| 1 | CH32V003f4p6 | Package_SO:TSSOP-20_4.4x6.5mm_P0.65mm | U1 |
| 1 | CH330N | Package_SO:SOIC-8_3.9x4.9mm_P1.27mm | U3 |
| 1 | ESP-PSRAM32 | Package_SO:SOIC-8_3.9x4.9mm_P1.27mm | U2 |
| 1 | SD | Connector_PinHeader_2.54mm:PinHeader_1x07_P2.54mm_Vertical | J1 |
| 1 | SWIO | Connector_PinHeader_2.54mm:PinHeader_1x02_P2.54mm_Vertical | J2 |
| 1 | SW_Push | Button_Switch_SMD:SW_SPST_B3U-1000P | SW1 |
| 1 | USB_B_Micro | Connector_USB:USB_Micro-B_Amphenol_10104110_Horizontal | J3 |
Similar boards
- 4 layers46 × 74 mm

- 2 layers64.3 × 88.3 mm

- 2 layers

- 2 layers99.9 × 79.3 mm

Led controller
azaslavskis/WLED-Controller
Simple project that takes care of LED strips and connect them using esp32 to home assistant interface
65 partsMIT - 4 layers57.4 × 51.4 mm

- 4 layers110 × 80 mm

- 2 layers33.5 × 43.5 mm

Stm32-io extend
hardenedlinux/cheap-pcb
Cheap PCB: Better understanding the current status of hardware supply chain
37 parts170CC0-1.0 - 2 layers50.5 × 94.7 mm

SwordOfSecretsUSBProd
gili-yankovitch/SwordOfSecrets
To solve the challenge you will need to discover a series of flags, hidden inside the sword. Each one will help you unlock the next step in the challenge, to finally reveal the ultimate secret the sword holds.
16 parts47MIT
Questions
How big is the Linux ch32v003 PCB?
It measures 36.1 × 21 mm and has 2 copper layers, 1.6 mm thick.
What parts does the Linux ch32v003 use?
16 parts, built around the CH32V003F4P6, CH330N and AMS1117-3.3. 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 Linux ch32v003 KiCad files?
From the tvlad1234/linux-ch32v003 repository on GitHub, at the commit this page was made from: the board is hardware/linux-ch32v003.kicad_pcb and its schematic hardware/linux-ch32v003.kicad_sch. PCBKit opens the board in the browser, with nothing to install.
Can I use the Linux ch32v003 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).