Skip to the content
PCBKitNew board
2 layers16.3 × 11.7 mmBrains, the printed circuit board in 3D

A collection of audio projects for the CH32V003J4M6 RISC-V microcontroller, demonstrating various audio synthesis and playback techniques on an 8-pin, $0.10 microcontroller.

Size
16.3 × 11.7 mm
Copper layers
2
Thickness
1.6 mm
Parts
15
Nets
12
Pads
36
Tracks, vias
64, 6
Routed
Yes
KiCad
KiCad 9.0 (file 20241229)
Created
5 Oct 2025
Updated
20 Nov 2025

Overview

Brains is an open-source printed circuit board by atomic14, from the atomic14/ch32v003-audio repository on GitHub, published under the MIT licence. It is a 2-layer board of 16.3 × 11.7 mm with 15 parts on 12 nets, routed with 64 tracks and 6 vias.

It is built around the MLT-5030 and MMBT2222A. Its parts include 2 capacitors, 2 resistors, 2 connectors, 1 IC and 1 transistor. It belongs with the RISC-V boards of this library.

Main components

2

README

README.md

Build Firmware Buzzer Studio CI

CH32V003J4M6 Audio Projects

A collection of audio projects for the CH32V003J4M6 RISC-V microcontroller, demonstrating various audio synthesis and playback techniques on an 8-pin, $0.10 microcontroller. From simple 1-bit music to compressed audio sample playback and speech synthesis. Click on the image to watch a video and hear the results.

Talking 10 cent MCU

$0.10 Music Machine

Project Overview

This repository contains several firmware projects and development tools:

Firmware Projects

  1. SimpleSoundFirmware - Single-voice 1-bit music playback (monophonic)
  2. PolyphonicSoundFirmware - Advanced 8-voice polyphonic music with PWM synthesis
  3. SamplePlayback - Compressed audio sample playback (IMA ADPCM, QOA, 2-bit ADPCM)
  4. Talkie - Speech synthesis using the Talkie library

Development Tools

  1. Buzzer Studio - Interactive web app for designing 1-bit sound effects and exporting MIDI tracks

The Buzzer Studio project is available here: https://buzzer-studio.atomic14.com/

A word of warning - the Buzzer Studio codebase was creating with a lot of help from AI tools. It all runs client side, there is no backend for anyone to hack. But the code may not always be easy for a human to understand.

Quick Start

Building the Firmware

All firmware projects build with PlatformIO. To build locally:

Simple Sound Firmware (1-bit monophonic):

bash
cd SimpleSoundFirmware
pio run

Polyphonic Sound Firmware (8-voice PWM):

bash
cd PolyphonicSoundFirmware
pio run

Sample Playback (compressed audio):

bash
cd SamplePlayback
pio run

Talkie (speech synthesis):

bash
cd Talkie
pio run

For detailed firmware information, see each project's README:

Converting Music Files and Creating Sound Effects

Buzzer Studio (Web App):

bash
cd buzzer-studio
npm install
npm run dev

The app allows you to:

  • Export tracks from MIDI files for 1-bit playback
  • Design sound effects with real-time preview
  • Export to C arrays for microcontrollers
  • Export to Python for MicroPython/CircuitPython
  • Choose from preset effects (jump, coin, laser, etc.)
  • Play LPC encoded audio
  • Encode WAV files to LPC

Hardware Requirements

  • Microcontroller: CH32V003J4M6 (RISC-V, 8-pin SOIC)
  • Power: 3.3V supply
  • Programming: WCH-Link or compatible programmer

Pin Configurations

SimpleSoundFirmware (1-bit music):

  • Output: Piezo buzzer or small speaker (connected to PD6)
  • Input: Trigger button or signal (connected to PC1)

PolyphonicSoundFirmware (8-voice music):

  • Output: Piezo buzzer or small speaker (connected to PA1)
  • No trigger input: Plays automatically on startup

SamplePlayback (compressed audio):

  • Output: PWM audio output on PA1 (8-bit via PWM)
  • No trigger input: Plays automatically on startup

Talkie (speech synthesis):

  • Output: PWM audio output on PA1 (8-bit via PWM)
  • No trigger input: Plays speech on startup

Project Structure

text
brain-transplant/
├── SimpleSoundFirmware/      # 1-bit monophonic music playback
│   ├── src/                  # Source code (main.cpp, music data)
│   ├── platformio.ini        # Build configuration
│   └── README.md             # Documentation
│
├── PolyphonicSoundFirmware/  # 8-voice polyphonic music
│   ├── src/                  # Source code (polyphonic player)
│   ├── platformio.ini        # Build configuration
│   └── README.md             # Documentation
│
├── SamplePlayback/           # Compressed audio sample playback
│   ├── src/                  # Source code (ADPCM decoders, PWM player)
│   │   ├── AudioStream.h     # Base interface for codecs
│   │   ├── IMAAdpcmStream.*  # IMA ADPCM decoder
│   │   ├── ADPCM2BitStream.* # 2-bit ADPCM decoder
│   │   ├── player.*          # PWM playback engine
│   │   └── audio/            # Audio data files
│   ├── platformio.ini        # Build configuration
│   └── README.md             # Documentation
│
├── Talkie/                   # Speech synthesis
│   ├── src/                  # Source code (Talkie library port)
│   │   ├── Talkie.*          # Speech synthesis engine

Documentation

Firmware Projects

Development Tools

  • Buzzer Studio - Web app for designing 1-bit sound effects and exporting MIDI
  • Scripts - Python tools for audio conversion and ADPCM encoding

Development

Prerequisites

For Firmware Development:

  • PlatformIO - Embedded build system
  • CH32V platform support (installed automatically by PlatformIO)
  • WCH-Link programmer (or compatible)

For Buzzer Studio App:

  • Node.js 18+ and npm
  • Modern web browser with Web Audio API support

For Python Scripts:

  • Python 3.8+
  • uv package manager

How It Works

Firmware Approaches

SimpleSoundFirmware (1-bit music):

  1. Waits for trigger signal on pin PC1
  2. Toggles output pin (PD6) at specified frequencies
  3. Uses microsecond-precision delays for accurate timing
  4. Simple 1-bit audio (square wave)

PolyphonicSoundFirmware (8-voice music):

  1. Automatically starts on power-up
  2. Manages up to 8 simultaneous voices using PWM synthesis
  3. Outputs mixed audio through PA1 at 8 kHz sample rate
  4. Software mixing with real-time voice generation

SamplePlayback (compressed audio):

  1. Decodes compressed audio using codec decoders (IMA ADPCM, 2-bit ADPCM)
  2. Outputs 8-bit audio via PWM on PA1 at 8 kHz
  3. Supports multiple codec formats with extensible architecture
  4. Compression ratios of 2:1 and 4:1

Talkie (speech synthesis):

  1. Uses Linear Predictive Coding (LPC) for speech synthesis
  2. Pre-defined vocabulary of phonemes and words
  3. Outputs synthesized speech via PWM on PA1
  4. Real-time speech generation from phrase data

Parts

15
QtyValueFootprintReferences
4LEDTestPoint:TestPoint_Pad_1.5x1.5mmLA1, LA2, LK1, LK2
21KResistor_SMD:R_0603_1608MetricR1, R4
2Conn_01x04_SocketConnector_PinHeader_2.54mm:PinHeader_1x04_P2.54mm_VerticalJ1, J2
1100nCapacitor_SMD:C_0603_1608MetricC1
110nCapacitor_SMD:C_0603_1608MetricC2
1BAT+TestPoint:TestPoint_Pad_1.5x1.5mmB+1
1BAT-TestPoint:TestPoint_Pad_1.5x1.5mmB-1
1CH32V003JxMxPackage_SO:JEITA_SOIC-8_3.9x4.9mm_P1.27mmU1
1MLT-5030easyeda2kicad:BUZ-SMD_3P-L5.2-W5.2-P3.50-BRBUZZER1
1MMBT2222APackage_TO_SOT_SMD:SOT-23Q2

Questions

How big is the Brains PCB?

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

What parts does the Brains use?

15 parts, built around the MLT-5030 and MMBT2222A. 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 Brains KiCad files?

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

Can I use the Brains 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).

Similar boards

  • 2 layers74 × 123.3 mmBadge-2025, the printed circuit board in 3D

    Badge-2025

    uamseif/badge-2025

    Este repositorio contiene el diseño y firmware de la badge oficial del evento de ciberseguridad Cibertracks. Este badge está compuesta por tres placas PCB ensambladas como un sandwich, cada una diseñada en KiCad.

    57 parts4
  • 2 layers130 × 32 mmQfbms32.20261014-170025, the printed circuit board in 3D

    Qfbms32.20261014-170025

    Focerqc/Fungineers-PCB-designs

    High-precision hall sensor PCB designed for the Fungineers Superflux motor.

    146 parts
  • 2 layers75 × 100 mmPhased, the printed circuit board in 3D

    Phased

    Neumi/open_echo

    Open Source echo sounder / depth sounder / SONAR for bathymetry and research. Arduino based and compatible.

    77 parts530
  • 2 layers80 × 129.1 mmSmart Plant, the printed circuit board in 3D

    Smart Plant

    JGAguado/Smart_Plant

    The Smart Plant is a board that can be plugged directly on the soil, close to the plant, that allows the measurement of the environment (soil moisture, environment temperature & illuminance), and presents the…

    75 parts303
  • 2 layers80 × 107.5 mmMinino, the printed circuit board in 3D

    Minino

    ElectronicCats/Minino

    Minino is an original multiprotocol and multiband board made for sniffing, communicating, and attacking IoT devices. It was designed as a mini Cat that integrates the powerful ESP32C6, GPS, microSD and OLED.

    79 parts183GPL-3.0
  • 2 layers92.8 × 71.8 mmUSBSID Pico v1.3f, the printed circuit board in 3D

    USBSID Pico v1.3f

    LouDnl/USBSID-Pico

    USBSID-Pico is a RPi Pico (RP2040/W RP2350/W) based board for interfacing one or two MOS SID chips and/or hardware SID emulators over (WEB)USB with your computer, phone, ASID supporting player or USB midi controller

    116 parts125GPL-2.0
  • 4 layers125.7 × 76.5 mmUGC Main R4K, the printed circuit board in 3D

    UGC Main R4K

    HandHeldLegend/GC-Ultimate

    The 3D shell, buttons, and other associated models are licensed under a Creative Commons Attribution 4.0 International License .

    168 parts62