Skip to the content
PCBKitNew board
2 layers102.2 × 63.8 mmCandidate srj, the printed circuit board in 3D

Flex-PCB cassette-tape multimedia object — ESP32-S3 + a 0.96" OLED in the tape window, code-driven CAD + PCB

Size
102.2 × 63.8 mm
Copper layers
2
Thickness
1.6 mm
Parts
31
Nets
22
Pads
159
Tracks, vias
581, 66
Pours
1
Routed
Yes
KiCad
KiCad 9.0 (file 20241229)
Created
27 Jun 2026
Updated
5 Oct 2026

Overview

Candidate srj is an open-source printed circuit board by audiodestrukt, from the audiodestrukt/flexisette repository on GitHub. It is a 2-layer board of 102.2 × 63.8 mm with 31 parts on 22 nets, routed with 581 tracks and 66 vias.

It is built around the AO3401A and TYPE-C-31-M-12A. Its parts include 2 resistors, 2 ICs, 1 diode and 1 transistor. It belongs with the lEDs and displays boards and the ESP32 boards of this library.

Main components

2

README

README.md

flexisette

A flex-PCB cassette-tape multimedia object — a parametric, cassette-shaped board that plays its own music with a tiny animated display where the tape window would be. Designed as reproducible "drops": the whole thing regenerates from source (CAD, PCB, renders, firmware).

Status: work in progress. The mechanical CAD and the PCB design are functional and fabbable; the on-device firmware is early.

The idea

It's the size and shape of a compact cassette. A 0.96″ OLED sits behind the cassette's central tape window and plays a looping tape-winding animation — the one spot on a cassette where you expect to see motion. An ESP32-S3 plays the baked-in audio out a small speaker; it charges over USB-C and runs off a LiPo.

BlockPart
MCUESP32-S3-WROOM-1-N16R8 (native USB)
Display0.96″ SSD1306 OLED (I²C), in the tape window
AudioMAX98357A I²S class-D amp → speaker
PowerUSB-C → TP4056 charger → LiPo → ME6211 3V3

All parts are JLCPCB/LCSC-stocked for turnkey assembly.

Repository layout

text
cad/        parametric CAD (build123d) of the physical parts — frame, panel, insert, spacer —
            extracted from real vendor cassette STLs; mate-based assembly + MuJoCo sim
pcb/        the electronics PCB, code-driven with tscircuit (modules/ -> index.circuit.tsx),
            finished in KiCad. Includes the encoded place->route->measure tooling (scripts/)
            and per-fab DRC rule files (rules/)
display/    the 128x64 tape-winding animation for the OLED (display/tape_anim.py)
render/     Blender product renders / .blend files
assets/     vendor cassette shell STLs the CAD is derived from (see assets/DOWNLOADS.md for sources)
specs/      design specs
PARTS.md    component sourcing / BOM notes

Building

  • CAD: make (or run the cad/*.py build123d scripts) → STL/STEP/FCStd in cad/build/.
  • PCB: in pcb/, npm install then make build (tscircuit) → index.circuit.kicad_pcb; place with make outline / make routecheck, route with Freerouting (make freeroute) or in KiCad, and apply a fab rule set from pcb/rules/. The board outline is the real cassette face (derived from the same profile as the CAD).
  • Animation: python3 display/tape_anim.py → a 128×64 GIF preview.

The PCB workflow follows the code-driven, placement-first approach (modular subcircuits, deterministic placement, ground pours, then route) — see docs/pcb-toolchain.md and docs/workflows.md.

Documentation

Full documentation lives in docs/ — start with docs/architecture.md for the big picture, then:

Project started June 25, 2026.

License

TBD. Vendor cassette assets under assets/ retain their original licenses — see assets/DOWNLOADS.md for attribution.

Parts

31
QtyValueFootprintReferences
3100nFtscircuit:capacitor_0402C_EN, C1, C2
2100kΩtscircuit:resistor_res0402R_G, R3
210kΩtscircuit:resistor_res0402R_BOOT, R_EN
210uFtscircuit:capacitor_0805C_BAT, C3
21uFtscircuit:capacitor_0402C_IN, C_OUT
222uFtscircuit:capacitor_0805C_BULK, C5
24.7kΩtscircuit:resistor_res0402R1, R2
25.1kΩtscircuit:resistor_res0402R_CC1, R_CC2
2S2B_PH_SM4_TB_LF__SN_tscircuit:S2B_PH_SM4_TB_LF_SNJ_BAT, J_SPK
2TS_1187A_B_A_Btscircuit:TS_1187A_B_A_BSW_A, SW_B
1tscircuit:chipOLED
1tscircuit:Unknown
12kΩtscircuit:resistor_res0402R_PROG
1AO3401Atscircuit:AO3401AQ1
1Dtscircuit:B5819W_SLD1
1ESP32_S3_WROOM_1_N16R8tscircuit:ESP32_S3_WROOM_1_N16R8U1
1MAX98357AETE_Ttscircuit:MAX98357AETE_TU2
1ME6211C33M5G_Ntscircuit:ME6211C33M5G_NU_LDO
1TP4056_42_ESOP8tscircuit:TP4056_42_ESOP8U_CHG
1TYPE_C_31_M_12tscircuit:TYPE_C_31_M_12USBC

Questions

How big is the Candidate srj PCB?

It measures 102.2 × 63.8 mm and has 2 copper layers, 1.6 mm thick.

What parts does the Candidate srj use?

31 parts, built around the AO3401A and TYPE-C-31-M-12A. 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 Candidate srj KiCad files?

From the audiodestrukt/flexisette repository on GitHub, at the commit this page was made from: the board is pcb-rerun/results/candidate-srj.kicad_pcb. PCBKit opens the board in the browser, with nothing to install.

Can I use the Candidate srj design in my own project?

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

Similar boards

  • 2 layers76.2 × 119.7 mmLaunchpad, the printed circuit board in 3D

    Launchpad

    NeilKhera/Launchpad

    159 partsMIT
  • 4 layers110 × 90 mmUsb hub 3s, the printed circuit board in 3D

    Usb hub 3s

    misko/prompt2device

    The separate vNext PCB skill and orchestrator package is available alongside the reference workflow below; existing projects keep their accepted toolchain until an explicit migration.

    116 parts3MIT
  • 4 layers75 × 55 mmFish pi, the printed circuit board in 3D

    Fish pi

    CXJ007/fish_pi

    全志H3的一个小项目

    214 parts5
  • 4 layers124.7 × 64.3 mmRP2040 SOS band, the printed circuit board in 3D

    RP2040 SOS band

    abhinav937/RP2040_SOS_band

    PCB design files for RP2040 based SmartWatch. It features an accelerometer, a GPS module and a cellular module.

    107 parts3
  • 4 layers91 × 68 mmStage0-raw autorun, the printed circuit board in 3D

    Stage0-raw autorun

    audiodestrukt/einhander

    One-handed MIDI controller: parametric enclosure (build123d) + 4-layer RP2040 USB-MIDI PCB (tscircuit/KiCad)

    42 parts
  • 2 layers50 × 35 mmPerpetualClock, the printed circuit board in 3D

    PerpetualClock

    CXJ007/LP_Clock

    Low-power clock

    93 parts
  • 2 layers40 × 40 mmProject2, the printed circuit board in 3D

    Project2

    Parwaz-Dynamics/Embedded-In-Bones

    My personal embedded systems learning journey projects.

    48 parts