

Candidate srj
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
2AO3401A
SOT-231 P-Channel 14nC@10V 30V 47mΩ@10V、60mΩ@4.5V、85mΩ@2.5V 4A 55pF 645pF 80pF 900mV SOT-23 MOSFETs ROHSAlpha & Omega SemiconductorMOSFETsTYPE-C-31-M-12A
SMD-30℃~+85℃ 1 10,000 cycles 16P 20V 6A 7.35mm Female Surface Mount, Right Angle Type-C SMD USB Connectors ROHSHRO ElectronicsUSB Connectors
README
README.mdflexisette
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.
| Block | Part |
|---|---|
| MCU | ESP32-S3-WROOM-1-N16R8 (native USB) |
| Display | 0.96″ SSD1306 OLED (I²C), in the tape window |
| Audio | MAX98357A I²S class-D amp → speaker |
| Power | USB-C → TP4056 charger → LiPo → ME6211 3V3 |
All parts are JLCPCB/LCSC-stocked for turnkey assembly.
Repository layout
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 notesBuilding
- CAD:
make(or run thecad/*.pybuild123d scripts) → STL/STEP/FCStd incad/build/. - PCB: in
pcb/,npm installthenmake build(tscircuit) →index.circuit.kicad_pcb; place withmake outline/make routecheck, route with Freerouting (make freeroute) or in KiCad, and apply a fab rule set frompcb/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:
- PCB toolchain · Placement (the fast loop) · CAD enclosure
- 3D fit-check + renders · Fabrication (JLCPCB)
- Workflows — task recipes · Reference — every target/script/artifact
- Roadmap & known issues · Planned placement constraints
Project started June 25, 2026.
License
TBD. Vendor cassette assets under assets/ retain their original licenses — see
assets/DOWNLOADS.md for attribution.
Parts
31| Qty | Value | Footprint | References |
|---|---|---|---|
| 3 | 100nF | tscircuit:capacitor_0402 | C_EN, C1, C2 |
| 2 | 100kΩ | tscircuit:resistor_res0402 | R_G, R3 |
| 2 | 10kΩ | tscircuit:resistor_res0402 | R_BOOT, R_EN |
| 2 | 10uF | tscircuit:capacitor_0805 | C_BAT, C3 |
| 2 | 1uF | tscircuit:capacitor_0402 | C_IN, C_OUT |
| 2 | 22uF | tscircuit:capacitor_0805 | C_BULK, C5 |
| 2 | 4.7kΩ | tscircuit:resistor_res0402 | R1, R2 |
| 2 | 5.1kΩ | tscircuit:resistor_res0402 | R_CC1, R_CC2 |
| 2 | S2B_PH_SM4_TB_LF__SN_ | tscircuit:S2B_PH_SM4_TB_LF_SN | J_BAT, J_SPK |
| 2 | TS_1187A_B_A_B | tscircuit:TS_1187A_B_A_B | SW_A, SW_B |
| 1 | tscircuit:chip | OLED | |
| 1 | tscircuit:Unknown | ||
| 1 | 2kΩ | tscircuit:resistor_res0402 | R_PROG |
| 1 | AO3401A | tscircuit:AO3401A | Q1 |
| 1 | D | tscircuit:B5819W_SL | D1 |
| 1 | ESP32_S3_WROOM_1_N16R8 | tscircuit:ESP32_S3_WROOM_1_N16R8 | U1 |
| 1 | MAX98357AETE_T | tscircuit:MAX98357AETE_T | U2 |
| 1 | ME6211C33M5G_N | tscircuit:ME6211C33M5G_N | U_LDO |
| 1 | TP4056_42_ESOP8 | tscircuit:TP4056_42_ESOP8 | U_CHG |
| 1 | TYPE_C_31_M_12 | tscircuit:TYPE_C_31_M_12 | USBC |
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 mm

- 4 layers110 × 90 mm

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 mm

- 4 layers124.7 × 64.3 mm

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 mm

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 mm

- 2 layers40 × 40 mm

Project2
Parwaz-Dynamics/Embedded-In-Bones
My personal embedded systems learning journey projects.
48 parts - 2 layers66.5 × 35.8 mm
