Skip to the content
PCBKitNew board
4 layers39.7 × 37 mmDisqo, the printed circuit board in 3D

Smartwatch / Wearable Synth

Size
39.7 × 37 mm
Copper layers
4
Thickness
0.98 mm
Parts
74
Nets
76
Pads
295
Tracks, vias
634, 161
Pours
2
Routed
Yes
KiCad
KiCad 6 (file 20211014)
Created
24 Dec 2022
Updated
28 Mar 2026

Overview

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.

Main components

4

README

README.md

Disqo

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

Hardware

Disqo is built around a custom PCB designed in KiCad.

ComponentDescription
ESP32-PICO-MINI-02Espressif SiP with 8 MB flash and 2 MB PSRAM
GC9A01 round LCD240×240 pixel 1.28" circular TFT display over SPI at 80 MHz
AS560012-bit magnetic rotary encoder over I2C — acts as a high-resolution scroll wheel (like a watch crown)
3 buttonsPhysical inputs for navigation, selection and sleep/wake
Piezo buzzerPWM-driven audio output (beep/boop, future synth capabilities)
MCP73831-2Single-cell Li-Po battery charger via USB
32.768 kHz crystalExternal RTC clock source for accurate timekeeping
Battery ADCMonitors 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.

Firmware

The firmware runs on MicroPython with a patched gc9a01_mpy C module compiled in for fast display drawing.

Structure

text
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 support

Watchface

The current primary watchface features:

  • DSEG7-style digital clock with "ghost" segments
  • Greeting text that changes by time of day (Good morning / afternoon / evening)
  • Battery icon with voltage display
  • Date with day-of-week
  • Double-buffered rendering with a textured background

Controls

  • Rotary encoder (scroll wheel): Scrolls through menus and adjusts values
  • Button 1 (B1): Wake from deep sleep; back/cancel in menus
  • Button 3 (B3): Open main menu; select in menus
  • B1 + B3 combo: Enter deep sleep

Apps

  • Clock — Date, time, battery status, encoder angle
  • Main Menu — Scrollable menu with items: date/time, alarm, theme, brightness, metronome, drone (sub-apps are still planned)

Building & Deploying

Prerequisites

  • MicroPython source
  • ESP-IDF toolchain
  • esptool and mpremote

Compile MicroPython

The build script compiles MicroPython for the GENERIC_SPIRAM board with the patched gc9a01_mpy module:

bash
cd firmware/scripts
./compile-micropython.sh

Patches are applied before building:

  • gc9a01_mpy.patch — Faster display init, adds draw_len for text measurement
  • micropython-ports-esp32.patch — Configures 80 MHz flash/SPIRAM, external RTC crystal, faster deep sleep wake

Deploy code to device

bash
cd firmware/scripts
./copy-code.sh

This uses mpremote to copy the Python source files to the device and syncs the RTC to the host clock.

Set time

bash
cd firmware/scripts
./set-time.sh

Future Plans

  • Audio synthesis: Wrap pwm_audio for better piezo output, classic Bluetooth audio, digital audio synthesis libraries
  • Sub-apps: Date/time setting, alarm, theme selector, brightness control, metronome, drone
  • Smarter input polling and debouncing
  • Theme persistence in non-volatile memory

Parts

74
QtyValueFootprintReferences
1410kResistor_SMD:R_0402_1005MetricR1, R10, R11, R13, R16, R17, R20, R23, R24, R26, R27, R29, R30, R31
80.1uFCapacitor_SMD:C_0402_1005MetricC2, C3, C6, C7, C9, C10, C11, C17
4100kResistor_SMD:R_0402_1005MetricR3, R32, R33, R34
41kResistor_SMD:R_0402_1005MetricR6, R8, R9, R25
44.7uFCapacitor_SMD:C_0805_2012MetricC1, C4, C5, C8
45.1kResistor_SMD:R_0402_1005MetricR2, R7, R18, R19
3side-switchEVP-AKE31A:EVP-AKE31ASW3, SW4, SW5
20RResistor_SMD:R_0805_2012MetricR12, R28
222.1kResistor_SMD:R_0402_1005MetricR4, R21
23.3pFCapacitor_SMD:C_0603_1608MetricC13, C14
247.5kResistor_SMD:R_0402_1005MetricR5, R22
2DMN2004VK-7Package_TO_SOT_SMD:SOT-563Q1, Q3
2D_Schottky_SmallDiode_SMD:D_SOD-323D2, D3
2GNDtab:tabTP3, TP4
110RResistor_SMD:R_0402_1005MetricR15
11uFCapacitor_SMD:C_0603_1608MetricC15
122uFCapacitor_SMD:C_0805_2012MetricC16
132.768kHz 6pFCrystal:Crystal_SMD_3215-2Pin_3.2x1.5mmY1
16.8MResistor_SMD:R_0603_1608MetricR14
1AP7354-33W5-7sot-25:SOT-25U4
1AS5600-ASOTPackage_SO:SOIC-8_3.9x4.9mm_P1.27mmIC1
1BATT+TestPoint:TestPoint_THTPad_D1.5mm_Drill0.7mmTP1
1BuzzerPKMCS0909E4000-R1:SPKR_PKMCS0909E4000-R1BZ1
1CP2102N-Axx-xQFN24Package_DFN_QFN:QFN-24-1EP_4x4mm_P0.5mm_EP2.6x2.6mmU2
1Conn_01x02Connector_JST:JST_ACH_BM02B-ACHSS-GAN-ETF_1x02-1MP_P1.20mm_VerticalJ2
1DMP2004VK-7Package_TO_SOT_SMD:SOT-563Q2
1ESP32-PICO-MINI-02Espressif:ESP32-PICO-MINI-02_Hand-SolderingU3
1GC9A01gc9a01:GC9A01_IPS_display_underU5
1GNDTestPoint:TestPoint_THTPad_D1.5mm_Drill0.7mmTP2
1MCP73831-2-OTPackage_TO_SOT_SMD:SOT-23-5U1
1SP0503BAHTPackage_TO_SOT_SMD:SOT-143D1
1USB4105-GF-AUSB4105:USB4105-GF-AJ1
1top-switchKXT-311:KXT 311 LHSSW1

Questions

How big is the Disqo PCB?

It measures 39.7 × 37 mm and has 4 copper layers, 0.98 mm thick.

What parts does the Disqo use?

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.

Where can I download the Disqo KiCad files?

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.

Can I use the Disqo design in my own project?

Its repository states no licence, so its author keeps all rights: ask lerouxb before reusing the design.

Similar boards

  • 2 layers154 × 131.5 mmCombined Stencil3, the printed circuit board in 3D

    Combined Stencil3

    Project-Touchscape/Touchscape-PCB

    PCB designs for sensors, drivers, routing, and communication

    346 parts
  • 4 layers55 × 14.7 mmMinCab, the printed circuit board in 3D

    MinCab

    merocle/mincab

    small carrier board for Raspberry Pi CM4

    41 parts180CC-BY-SA-4.0
  • 2 layers58 × 38.3 mmEsp32-caliper, the printed circuit board in 3D

    Esp32-caliper

    Mew463/esp32-caliper

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

    44 parts59
  • 2 layers58.8 × 55.7 mmAiO i2s DAC, the printed circuit board in 3D

    AiO i2s DAC

    martinroger/ipodesp32

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

    102 parts24MIT
  • 4 layers60 × 60 mm3117 AUSIGN, the printed circuit board in 3D

    3117 AUSIGN

    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.

    151 parts3MIT
  • 4 layers42.8 × 103.8 mmUq phone, the printed circuit board in 3D

    Uq phone

    JamesB-Wood/UniQHW

    UniQHW

    146 partsCERN-OHL-S-2.0
  • 4 layers65.6 × 91.8 mmKronos V1, the printed circuit board in 3D

    Kronos V1

    AddeyX/Kronos-Hardware

    Kronos - By AddeyX

    229 parts1