
HDD Synth Prototype MK5
MaverickUK/HDDSynth
Recreate the sound of mechanical spinning HDDs on retro PCs that use a solid state drive

A handheld retro game console with tilt controls, featuring 9 games on an 8x8 LED matrix. Designed at maakleerplek
TiltBox Voice A is an open-source printed circuit board by Tom-Michiels, from the Tom-Michiels/TiltBox repository on GitHub. It is a 4-layer board of 78 × 78 mm with 165 parts on 130 nets, routed with 1,906 tracks and 356 vias.
It is built around the ESP32-S3-WROOM-1U-N16R8, TPS63031DSKR and BQ25185DLHR, with the ICS-43434, LSM6DS3TR-C and SN74LVC2T45DCURE4 among its other parts. Its parts include 65 diodes, 28 resistors, 26 capacitors, 9 ICs and 3 switches. It belongs with the retro computing and games and lEDs and displays boards and the ESP32 boards of this library.
The custom ESP32-S3 PCB version adds a bottom-facing microphone and voice-generated games while retaining the 8×8 LED grid and the walnut enclosure style.
Hardware: electronics A.3, enclosure A.4, manufacturing package A.5. Software: Voice B (9 October 2026), for the same Voice A PCB; this is not a new PCB revision. Publication snapshot: 26 October 2026.
These are prototype files, not a claim of production certification. See the hardware notes for completed checks and outstanding electrical tests. Do not use the original ESP32-C3 firmware or its wiring instructions for the Voice PCB.
The original files below remain available unchanged. The root main/,
CMakeLists.txt, sdkconfig and the older files directly in hardware/ belong
to this original version, not TiltBox Voice.

A handheld retro game console with tilt controls, featuring 9 games on an 8x8 LED matrix. Designed at Maakleerplek.
| Component | Quantity | Description | Link |
|---|---|---|---|
| ESP32-C3 | 1 | Microcontroller (any ESP32-C3 dev board) | Amazon |
| WS2812 8x8 LED Matrix | 1 | 64 RGB LEDs in 8x8 grid | Amazon |
| ADXL345 | 1 | 3-axis accelerometer module (I2C) | Amazon |
| USB Charger Board | 1 | LiPo charging module with protection | Amazon |
| LiPo Battery | 1 | 3.7V lithium polymer battery | Amazon |
| Threaded Inserts | 4 | M3x5x7 heat-set inserts for enclosure | Amazon |
| M3 Screws | 4 | M3x6mm hex socket button head | Amazon |
| M3 Screws | 4 | M3x12mm hex socket button head | Amazon |
| Walnut Wood | 1 | 3.2mm x 115x368mm sheet | Gravierbedarf |
| Black PLA | 1 | 3D printer filament for enclosure | |
| Jumper wires | 7 | For connections |
| WS2812 Pin | ESP32-C3 Pin |
|---|---|
| VCC | 5V |
| GND | GND |
| DIN | GPIO 10 |
| ADXL345 Pin | ESP32-C3 Pin |
|---|---|
| VCC | 3.3V |
| GND | GND |
| SDA | GPIO 8 |
| SCL | GPIO 9 |
Print the enclosure parts in black PLA:

Cut the following from the wood and plexi.dxf file:
Solder the components according to the wiring diagram:


The LED matrix needs a diffuser layer to blend the individual LEDs into a smooth display:
Switch between games by flipping the board upside down.
Navigate a ball through a randomly generated maze. Tilt to move the yellow ball to the red goal. A rainbow animation plays when you win.
A simple ball that leaves a fading trail as it moves. Tilt to control direction.
A glowing ball with a smooth gradient effect that follows your tilt movements.
Classic snake game. Tilt to change direction and eat the red food to grow. Don't hit yourself!
Break the colored bricks at the top with a bouncing ball. Tilt left/right to move the paddle.
Avoid falling obstacles. Tilt left/right to move your player at the bottom. Score increases as obstacles pass.
Displays scrolling text: "maakleerplek"
Cycles through animated patterns:
Classic falling block game. Tilt left/right to move pieces, tilt forward to rotate, tilt backward for fast drop.
Requires ESP-IDF v4.3+.
# Source ESP-IDF environment
source ~/esp/esp-idf/export.sh
# Build
idf.py build
# Flash
idf.py flash
# Monitor serial output
idf.py monitorThe WS2812 LEDs use GRB color format. Pixels are addressed row by row, 0-63.
| Qty | Value | Footprint | References |
|---|---|---|---|
| 64 | WS2812B-B/T (V5) | LED_SMD:LED_WS2812B_PLCC4_5.0x5.0mm_P3.2mm | D1, D2, D10, D11, D12, D13, D14, D15, D16, D17, D18, D19, D20, D21, D22, D23 +48 |
| 9 | 100k | Resistor_SMD:R_0402_1005Metric | R10, R11, R13, R16, R19, R22, R26, R27, R28 |
| 9 | 100n | Capacitor_SMD:C_0402_1005Metric | C70, C78, C79, C81, C83, C84, C85, C86, C90 |
| 9 | 22u | Capacitor_SMD:C_0805_2012Metric | C67, C69, C71, C72, C73, C74, C75, C76, C80 |
| 8 | 1u | Capacitor_SMD:C_0603_1608Metric | C65, C66, C68, C77, C82, C87, C88, C89 |
| 6 | Fiducial 1mm / mask 2mm | FID1, FID2, FID3, FID4, FID5, FID6 | |
| 5 | 10k | Resistor_SMD:R_0402_1005Metric | R7, R8, R14, R17, R18 |
| 4 | M3 / NPTH 3.2 | MountingHole:MountingHole_3.2mm_M3 | H1, H2, H3, H4 |
| 4 | M3 / NPTH 3.2 | MountingHole_3.2mm_M3 | H5, H6, H7, H8 |
| 2 | 1M | Resistor_SMD:R_0402_1005Metric | R20, R21 |
| 2 | 22 | Resistor_SMD:R_0402_1005Metric | R3, R4 |
| 2 | 4k7 | Resistor_SMD:R_0402_1005Metric | R24, R25 |
| 2 | 5k1 | Resistor_SMD:R_0402_1005Metric | R1, R2 |
| 2 | TS-1187A-B-A-B | Button_Switch_SMD:SW_Push_1P1T_XKB_TS-1187A | SW2, SW3 |
| 1 | 150k | Resistor_SMD:R_0402_1005Metric | R23 |
| 1 | 18k | Resistor_SMD:R_0402_1005Metric | R5 |
| 1 | 1k | Resistor_SMD:R_0402_1005Metric | R6 |
| 1 | 33 | Resistor_SMD:R_0402_1005Metric | R15 |
| 1 | 3V3 | TestPoint:TestPoint_Pad_D1.5mm | TP4 |
| 1 | 49k9 | Resistor_SMD:R_0402_1005Metric | R12 |
| 1 | 5V_RAW | TestPoint:TestPoint_Pad_D1.5mm | TP5 |
| 1 | 732k | Resistor_SMD:R_0402_1005Metric | R9 |
| 1 | BAT_NTC | TestPoint:TestPoint_Pad_D1.5mm | TP12 |
| 1 | BOOT_N | TestPoint:TestPoint_Pad_D1.5mm | TP10 |
| 1 | BQ25185DLHR | Package_DFN_QFN:Texas_DLH0010A_WSON-10-1EP_2.2x2mm_P0.4mm_EP0.9x1.5mm | U2 |
| 1 | ESP32-S3-WROOM-1U-N16R8 | TiltBoxA:ESP32-S3-WROOM-1U | U1 |
| 1 | ESP_EN | TestPoint:TestPoint_Pad_D1.5mm | TP9 |
| 1 | FNR4018S1R0MT | Inductor_SMD:L_Changjiang_FNR4018S | L2 |
| 1 | FNR4018S1R5MT | Inductor_SMD:L_Changjiang_FNR4018S | L1 |
| 1 | GND | TestPoint:TestPoint_Pad_D1.5mm | TP1 |
| 1 | I2C_SCL | TestPoint:TestPoint_Pad_D1.5mm | TP14 |
| 1 | I2C_SDA | TestPoint:TestPoint_Pad_D1.5mm | TP13 |
| 1 | ICS-43434 | Sensor_Audio:InvenSense_ICS-43434-6_3.5x2.65mm | U8 |
| 1 | LED_5V | TestPoint:TestPoint_Pad_D1.5mm | TP6 |
| 1 | LED_64 | TestPoint:TestPoint_Pad_D1.5mm | TP11 |
| 1 | LSM6DS3TR-C | Package_LGA:LGA-14_3x2.5mm_P0.5mm_LayoutBorder3x4y | U7 |
| 1 | MIC_SD | TestPoint:TestPoint_Pad_D1.5mm | TP15 |
| 1 | S2B-PH-SM4-TB(LF)(SN) | Connector_JST:JST_PH_S2B-PH-SM4-TB_1x02-1MP_P2.00mm_Horizontal | J2 |
| 1 | SDNT1608X103F3435FTF | Resistor_SMD:R_0603_1608Metric | TH1 |
| 1 | SN74LVC2T45DCUR | Package_SO:VSSOP-8_2.3x2mm_P0.5mm | U6 |
| 1 | TPS22918DBVR | Package_TO_SOT_SMD:SOT-23-6 | U9 |
| 1 | TPS2553DBVR-1 | Package_TO_SOT_SMD:SOT-23-6 | U5 |
| 1 | TPS61023DRLR | Package_TO_SOT_SMD:SOT-563 | U4 |
| 1 | TPS63031DSKR | Package_SON:WSON-10-1EP_2.5x2.5mm_P0.5mm_EP1.2x2mm | U3 |
| 1 | TS-1101VS-C-A-A | TiltBoxA:KEY-SMD_TS-1101VS-C-A-A | SW1 |
| 1 | TYPE-C 16PIN 2MD(073) | Connector_USB:USB_C_Receptacle_HCTL_HC-TYPE-C-16P-01A | J1 |
| 1 | UART_RX | TestPoint:TestPoint_Pad_D1.5mm | TP8 |
| 1 | UART_TX | TestPoint:TestPoint_Pad_D1.5mm | TP7 |
| 1 | USBLC6-2SC6 | Package_TO_SOT_SMD:SOT-23-6 | D65 |
| 1 | VBAT | TestPoint:TestPoint_Pad_D1.5mm | TP2 |
| 1 | VSYS | TestPoint:TestPoint_Pad_D1.5mm | TP3 |
It measures 78 × 78 mm and has 4 copper layers, 1.6 mm thick.
165 parts, built around the ESP32-S3-WROOM-1U-N16R8, TPS63031DSKR, BQ25185DLHR and ICS-43434. 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 Tom-Michiels/TiltBox repository on GitHub, at the commit this page was made from: the board is hardware/voice-a/pcb/TiltBox-Voice-A.kicad_pcb and its schematic hardware/voice-a/pcb/TiltBox-Voice-A.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 Tom-Michiels before reusing the design.

MaverickUK/HDDSynth
Recreate the sound of mechanical spinning HDDs on retro PCs that use a solid state drive

Ghost3379/NX-ISD
A more sophisticated version of the Artemis Watch by Circuitmess.

GuzziFlipFlops/ESP32-Walkie-Talkie
An open source ESPNOW based walkie talkie with a 600 meter tested distance, with an OLED and multiple buttons to interact with

fcoury/knuckles
An open-source, wireless column-staggered ergonomic keyboard.

LEDs-by-glowingkitty/GlowCore-Mini
A small PCB for controlling an LED strip via USB-C or DC power. WLED compatible and with an integrated microphone for sound reactive animations!

LEDs-by-glowingkitty/GlowBand
GlowBand is an exciting LED wristband. For dancing at parties and festivals, for long-time exposure photography, and for everyday situations that need some light.

