

Touch volume controller
A modern, USB-powered capacitive volume controller that uses a single touchpad and an RGB LED to simulate digital volume control behavior.
- Size
- 26.8 × 59.6 mm
- Copper layers
- 2
- Thickness
- 1.6 mm
- Parts
- 18
- Nets
- 61
- Pads
- 120
- Tracks, vias
- 181, 12
- Routed
- Yes
- KiCad
- KiCad 8.0 (file 20240108)
- Created
- 15 May 2025
- Updated
- 15 May 2025
Overview
Touch volume controller is an open-source printed circuit board by akmalbnazir, from the akmalbnazir/touch_volume_controller repository on GitHub. It is a 2-layer board of 26.8 × 59.6 mm with 18 parts on 61 nets, routed with 181 tracks and 12 vias.
It is built around the RP2040 and WS2812B. Its parts include 5 capacitors, 5 resistors, 2 diodes, 2 connectors and 1 IC. It belongs with the lEDs and displays boards and the RP2040 boards of this library.
Main components
2README
README.md🔊 Capacitive Touch Volume Controller
A modern, USB-powered capacitive volume controller that uses a single touchpad and an RGB LED to simulate digital volume control behavior. Built with the RP2040 microcontroller, this project integrates capacitive sensing, RGB visual feedback, and optional OLED display output — all designed in KiCad.
🚀 Features
- 🖐️ Capacitive touch input (single-point)
- 🌈 WS2812B RGB LED for visual feedback
- ⚡ USB-C powered (with fuse and Schottky protection)
- 🧠 RP2040 microcontroller core
- 🖥️ Optional 0.96" I²C OLED header
- 🧩 Beginner-friendly, surface-mount layout (SMD)
🧠 How It Works
- When a user touches the copper pad, the RP2040 measures capacitive charge delay through a 1MΩ resistor.
- The firmware interprets this as a "volume adjust" interaction.
- The RGB LED brightness or color changes to reflect volume level.
- Optionally, volume level can be displayed numerically via OLED.
📐 Schematic Blocks
🔋 Power & Protection
J1: USB-C Receptacle (16-pin)F1: Resettable PTC fuseD1: Schottky diode (SS14)C1: 0.1 µF decoupling capacitor
🧠 Microcontroller Core
U1: RP2040 QFN-56Y1: 3.2x2.5mm crystal (optional)C2–C4: Bypass and regulator caps (1µF + 0.1µF)R1: 10kΩ pull-up for RUN pin
✋ Touch Sensing
TP1: Touch pad test pointR2: 1MΩ sensing resistor
🌈 RGB LED Output
D2: WS2812B (PLCC4)R3: 330Ω data-line protectionC5: 100 µF bulk cap
🖥️ Optional OLED Display
J2: Conn_01x04 (SDA, SCL, GND, 3.3V)R4,R5: 4.7kΩ I²C pull-up resistors
📦 Bill of Materials (BOM)
| Ref | Value/Part | Notes |
|---|---|---|
| C1 | 0.1 µF | USB input filter |
| C2 | 1 µF | VREG_VOUT cap |
| C3, C4 | 0.1 µF | IOVDD/DVDD bypass |
| C5 | 100 µF | WS2812B power smoothing |
| D1 | Schottky | SS14 or similar |
| D2 | WS2812B | PLCC4 5050 |
| F1 | PTC Fuse | 500mA or similar |
| J1 | USB-C | HRO_TYPE-C-31-M-12 |
| J2 | OLED Header | 1x04, 2.54mm |
| R1 | 10kΩ | RUN pin pull-up |
| R2 | 1MΩ | Capacitive touch |
| R3 | 330Ω | LED data resistor |
| R4, R5 | 4.7kΩ | I²C pull-ups |
| TP1 | Test Point | Touch surface |
| U1 | RP2040 | QFN-56 |
| Y1 | Crystal | 3.2x2.5mm SMD |
🛠️ Getting Started
- Flash firmware via SWD or USB bootloader
- Touch pad triggers volume state change
- LED reflects level (brightness, hue, etc.)
- (Optional) OLED displays numerical volume level
📸 Preview
🧑💻 Author
Designed by Akmal Nazir — May 2025
Built in KiCad 8 — RP2040-powered — USB-C elegance
🪪 License
MIT License — free to use, remix, and distribute.
Parts
18| Qty | Value | Footprint | References |
|---|---|---|---|
| 3 | 0.1µF | Capacitor_SMD:C_0603_1608Metric | C1, C3, C4 |
| 2 | 4.7kΩ | Resistor_SMD:R_0603_1608Metric | R4, R5 |
| 1 | 100µF | Capacitor_SMD:C_1206_3216Metric | C5 |
| 1 | 10kΩ | Resistor_SMD:R_0603_1608Metric | R1 |
| 1 | 1MΩ | Resistor_SMD:R_0603_1608Metric | R2 |
| 1 | 1µF | Capacitor_SMD:C_0805_2012Metric | C2 |
| 1 | 330Ω | Resistor_SMD:R_0603_1608Metric | R3 |
| 1 | Conn_01x04 | Connector_PinSocket_2.54mm:PinSocket_1x04_P2.54mm_Vertical | J2 |
| 1 | Crystal | Crystal:Crystal_SMD_3225-4Pin_3.2x2.5mm | Y1 |
| 1 | D_Schottky | Diode_SMD:D_SMA | D1 |
| 1 | Fuse | Fuse:Fuse_1206_3216Metric | F1 |
| 1 | RP2040 | Package_DFN_QFN:QFN-56-1EP_7x7mm_P0.4mm_EP3.2x3.2mm | U1 |
| 1 | TestPoint | TestPoint:TestPoint_Pad_D2.0mm | TP1 |
| 1 | USB_C_Receptacle_USB2.0_16P | Connector_USB:USB_C_Receptacle_HRO_TYPE-C-31-M-12 | J1 |
| 1 | WS2812B | LED_SMD:LED_WS2812B_PLCC4_5.0x5.0mm_P3.2mm | D2 |
Questions
How big is the Touch volume controller PCB?
It measures 26.8 × 59.6 mm and has 2 copper layers, 1.6 mm thick.
What parts does the Touch volume controller use?
18 parts, built around the RP2040 and WS2812B. 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 Touch volume controller KiCad files?
From the akmalbnazir/touch_volume_controller repository on GitHub, at the commit this page was made from: the board is touch_volume_controller.kicad_pcb and its schematic touch_volume_controller.kicad_sch. PCBKit opens the board in the browser, with nothing to install.
Can I use the Touch volume controller design in my own project?
Its repository states no licence, so its author keeps all rights: ask akmalbnazir before reusing the design.
Similar boards
- 4 layers82.6 × 82.5 mm

- 4 layers94.4 × 72.8 mm

RP2040 base
Twisted-Fields/rp2040-motor-controller
A dual channel brushless motor controller based on the RP2040 microcontroller, designed in Kicad.
325 parts419 - 2 layers285 × 94.6 mm

- 2 layers285 × 94.6 mm

PH60Slim Choc
ph-design/PH60-SC
A printable low-profile 60% wireless mechanical keyboard kit powered by ZMK firmware.
219 parts132 - 4 layers137 × 141 mm

- 2 layers220 × 70 mm

Bemini rp
ianklug/bemini
A miniature mechanical keyboard controller with a rotary encoder for staggered-key rhythm games.
70 parts55CC-BY-SA-4.0 - 2 layers233.7 × 91.5 mm

Skywatch
ozkan/skywatch
35% ergonomic ortholinear keyboard, powered by RP2040, along with OLED and hotswap sockets support
133 parts41MIT - 2 layers36 × 45.8 mm

Xiaomao
tigard-tools/xiaomao
Xiǎomāo is a development board geared toward hardware hacking and hardware implant design that can safely interfacing with a wide range of logic levels
84 parts37CERN-OHL-S-2.0