
Combined Stencil3
Project-Touchscape/Touchscape-PCB
PCB designs for sensors, drivers, routing, and communication

Smartwatch / Wearable Synth
Disqo is an open-source printed circuit board by lerouxb, from the lerouxb/disqo repository on GitHub. It is a 4-layer board of 39.7 × 37 mm with 74 parts on 76 nets, routed with 634 tracks and 161 vias.
It is built around the AS5600-ASOT, DMN2004VK-7B and SP0503BAHTG, with the USB4105-GF-A among its other parts. Its parts include 34 resistors, 16 capacitors, 6 ICs, 4 switches and 3 diodes. It belongs with the wearables and audio and music boards and the ESP32 and RISC-V boards of this library.
A wearable synthesizer — a smartwatch with three buttons, a high-resolution magnetic scroll wheel and a circular LCD display, designed for building a synth you can run on your wrist.

Disqo is built around a custom PCB designed in KiCad.
| Component | Description |
|---|---|
| ESP32-PICO-MINI-02 | Espressif SiP with 8 MB flash and 2 MB PSRAM |
| GC9A01 round LCD | 240×240 pixel 1.28" circular TFT display over SPI at 80 MHz |
| AS5600 | 12-bit magnetic rotary encoder over I2C — acts as a high-resolution scroll wheel (like a watch crown) |
| 3 buttons | Physical inputs for navigation, selection and sleep/wake |
| Piezo buzzer | PWM-driven audio output (beep/boop, future synth capabilities) |
| MCP73831-2 | Single-cell Li-Po battery charger via USB |
| 32.768 kHz crystal | External RTC clock source for accurate timekeeping |
| Battery ADC | Monitors battery voltage |
The PCB files, schematic, BOM and 3D models live in the pcb/ directory. An interactive HTML BOM is available at pcb/bom/ibom.html.
The firmware runs on MicroPython with a patched gc9a01_mpy C module compiled in for fast display drawing.
firmware/
├── main.py # Entry point — launches the watchface
├── boot.py # MicroPython boot stub
├── apps/ # Applications (clock, main menu)
├── gui/ # UI framework (menus, themes, text layout)
├── system/ # Hardware abstraction layer (HAL)
├── utils/ # Encoder math, datetime formatting, font helpers
├── fonts/ # Bitmap and TTF font definitions
├── scripts/ # Build, deploy and helper scripts
├── patches/ # Patches for gc9a01_mpy and MicroPython ESP32 port
└── typings/ # MicroPython type stubs for IDE supportThe current primary watchface features:
esptool and mpremoteThe build script compiles MicroPython for the GENERIC_SPIRAM board with the patched gc9a01_mpy module:
cd firmware/scripts
./compile-micropython.shPatches are applied before building:
draw_len for text measurementcd firmware/scripts
./copy-code.shThis uses mpremote to copy the Python source files to the device and syncs the RTC to the host clock.
cd firmware/scripts
./set-time.shpwm_audio for better piezo output, classic Bluetooth audio, digital audio synthesis libraries| Qty | Value | Footprint | References |
|---|---|---|---|
| 14 | 10k | Resistor_SMD:R_0402_1005Metric | R1, R10, R11, R13, R16, R17, R20, R23, R24, R26, R27, R29, R30, R31 |
| 8 | 0.1uF | Capacitor_SMD:C_0402_1005Metric | C2, C3, C6, C7, C9, C10, C11, C17 |
| 4 | 100k | Resistor_SMD:R_0402_1005Metric | R3, R32, R33, R34 |
| 4 | 1k | Resistor_SMD:R_0402_1005Metric | R6, R8, R9, R25 |
| 4 | 4.7uF | Capacitor_SMD:C_0805_2012Metric | C1, C4, C5, C8 |
| 4 | 5.1k | Resistor_SMD:R_0402_1005Metric | R2, R7, R18, R19 |
| 3 | side-switch | EVP-AKE31A:EVP-AKE31A | SW3, SW4, SW5 |
| 2 | 0R | Resistor_SMD:R_0805_2012Metric | R12, R28 |
| 2 | 22.1k | Resistor_SMD:R_0402_1005Metric | R4, R21 |
| 2 | 3.3pF | Capacitor_SMD:C_0603_1608Metric | C13, C14 |
| 2 | 47.5k | Resistor_SMD:R_0402_1005Metric | R5, R22 |
| 2 | DMN2004VK-7 | Package_TO_SOT_SMD:SOT-563 | Q1, Q3 |
| 2 | D_Schottky_Small | Diode_SMD:D_SOD-323 | D2, D3 |
| 2 | GND | tab:tab | TP3, TP4 |
| 1 | 10R | Resistor_SMD:R_0402_1005Metric | R15 |
| 1 | 1uF | Capacitor_SMD:C_0603_1608Metric | C15 |
| 1 | 22uF | Capacitor_SMD:C_0805_2012Metric | C16 |
| 1 | 32.768kHz 6pF | Crystal:Crystal_SMD_3215-2Pin_3.2x1.5mm | Y1 |
| 1 | 6.8M | Resistor_SMD:R_0603_1608Metric | R14 |
| 1 | AP7354-33W5-7 | sot-25:SOT-25 | U4 |
| 1 | AS5600-ASOT | Package_SO:SOIC-8_3.9x4.9mm_P1.27mm | IC1 |
| 1 | BATT+ | TestPoint:TestPoint_THTPad_D1.5mm_Drill0.7mm | TP1 |
| 1 | Buzzer | PKMCS0909E4000-R1:SPKR_PKMCS0909E4000-R1 | BZ1 |
| 1 | CP2102N-Axx-xQFN24 | Package_DFN_QFN:QFN-24-1EP_4x4mm_P0.5mm_EP2.6x2.6mm | U2 |
| 1 | Conn_01x02 | Connector_JST:JST_ACH_BM02B-ACHSS-GAN-ETF_1x02-1MP_P1.20mm_Vertical | J2 |
| 1 | DMP2004VK-7 | Package_TO_SOT_SMD:SOT-563 | Q2 |
| 1 | ESP32-PICO-MINI-02 | Espressif:ESP32-PICO-MINI-02_Hand-Soldering | U3 |
| 1 | GC9A01 | gc9a01:GC9A01_IPS_display_under | U5 |
| 1 | GND | TestPoint:TestPoint_THTPad_D1.5mm_Drill0.7mm | TP2 |
| 1 | MCP73831-2-OT | Package_TO_SOT_SMD:SOT-23-5 | U1 |
| 1 | SP0503BAHT | Package_TO_SOT_SMD:SOT-143 | D1 |
| 1 | USB4105-GF-A | USB4105:USB4105-GF-A | J1 |
| 1 | top-switch | KXT-311:KXT 311 LHS | SW1 |
It measures 39.7 × 37 mm and has 4 copper layers, 0.98 mm thick.
74 parts, built around the AS5600-ASOT, DMN2004VK-7B, SP0503BAHTG and USB4105-GF-A. 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.
From the lerouxb/disqo repository on GitHub, at the commit this page was made from: the board is pcb/disqo.kicad_pcb and its schematic pcb/disqo.kicad_sch. PCBKit opens the board in the browser, with nothing to install.
Its repository states no licence, so its author keeps all rights: ask lerouxb before reusing the design.

Project-Touchscape/Touchscape-PCB
PCB designs for sensors, drivers, routing, and communication


Mew463/esp32-caliper
It features a built in 150mAh battery and a USB C interface for charging/uploading code.

martinroger/ipodesp32
An iPod emulator for 2006-2013 BMW Mini Coopers that need Bluetooth


r4hulrr/ausign
Real-time Auslan (Australian Sign Language) to English speech translation glove. Built with ESP32-S3, flex sensors, IMU on a custom PCB, and a Bluetooth-connected Python GUI.

