Skip to the content
2 layers36.1 × 21 mmLinux ch32v003, the printed circuit board in 3D

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

3

README

README.md

linux-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
QtyValueFootprintReferences
5CCapacitor_SMD:C_0805_2012Metric_Pad1.18x1.45mm_HandSolderC1, C2, C3, C4, C5
3TestPointTestPoint:TestPoint_THTPad_D2.0mm_Drill1.0mmTP1, TP2, TP3
1AMS1117-3.3Package_TO_SOT_SMD:SOT-223-3_TabPin2U4
1CH32V003f4p6Package_SO:TSSOP-20_4.4x6.5mm_P0.65mmU1
1CH330NPackage_SO:SOIC-8_3.9x4.9mm_P1.27mmU3
1ESP-PSRAM32Package_SO:SOIC-8_3.9x4.9mm_P1.27mmU2
1SDConnector_PinHeader_2.54mm:PinHeader_1x07_P2.54mm_VerticalJ1
1SWIOConnector_PinHeader_2.54mm:PinHeader_1x02_P2.54mm_VerticalJ2
1SW_PushButton_Switch_SMD:SW_SPST_B3U-1000PSW1
1USB_B_MicroConnector_USB:USB_Micro-B_Amphenol_10104110_HorizontalJ3

Similar boards

  • 4 layers46 × 74 mmOpenRetroPad, the printed circuit board in 3D

    OpenRetroPad

    OpenRetroPad/OpenRetroPadHW

    Custom PCB for OpenRetroPad

    71 parts2
  • 2 layers64.3 × 88.3 mmThesis V2, the printed circuit board in 3D

    Thesis V2

    VichekaMET/Thesis

    103 parts1
  • 2 layersDev board, the printed circuit board in 3D

    Dev board

    a-s-adam/pcb_work

    Repository for PCB designs

    35 parts
  • 2 layers99.9 × 79.3 mmLed controller, the printed circuit board in 3D

    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 mmBQ24257, the printed circuit board in 3D

    BQ24257

    eigenlucy/BQ24257-MPPT-TEST-KIT

    68 parts
  • 4 layers110 × 80 mmAkkupack ng, the printed circuit board in 3D

    Akkupack ng

    eurovibes/akkupack-ng

    A AKKU-Pack gas gauge

    156 parts
  • 2 layers33.5 × 43.5 mmStm32-io extend, the printed circuit board in 3D

    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 mmSwordOfSecretsUSBProd, the printed circuit board in 3D

    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).