Skip to the content
PCBKitNew board
2 layers80 × 50 mmStm32-blinky, the printed circuit board in 3D

Chat with an AI that designs real KiCad boards. Runs fully on your machine (or WSL).

Size
80 × 50 mm
Copper layers
2
Thickness
1.6 mm
Parts
13
Nets
53
Pads
102
Tracks, vias
134, 18
Routed
Yes
KiCad
KiCad 10.0 (file 20260206)
Created
4 Sep 2026
Updated
4 Sep 2026

Overview

Stm32-blinky is an open-source printed circuit board by Vickyrrrrrr, from the Vickyrrrrrr/pcb-studio repository on GitHub. It is a 2-layer board of 80 × 50 mm with 13 parts on 53 nets, routed with 134 tracks and 18 vias.

It is built around the AMS1117-3.3. Its parts include 4 capacitors, 3 resistors, 2 ICs, 2 connectors and 1 diode. It belongs with the STM32 boards of this library.

Main components

1

README

README.md

pcb-studio — OpenCode for PCBs, local-first

Chat with an AI that designs real KiCad boards. Runs fully on your machine (or WSL).

Before choosing a setup, read Windows and WSL. They can share board files, but they do not share OpenCode sessions, credentials, or global plugin installs.

Create a workspace from the release package

After the package is published to npm, create a new, empty workspace without copying files manually:

bash
npx pcb-studio create my-pcb-studio
cd my-pcb-studio

The command refuses to overwrite an existing directory. Until publication, use git clone in the setup instructions below.

Quick start — first time (WSL Ubuntu)

bash
git clone <this-repo> pcb-studio && cd pcb-studio
bun install                  # root scripts
bun --cwd viewer install     # board viewer UI
bun --cwd outputs install    # outputs gallery (renders + 3D)
bun run fetch:kicanvas       # once: vendors the KiCanvas viewer bundle (not on npm)
bun run fetch:freerouter     # once: autorouter engine, verified by SHA-256 (needs Java 17+)
opencode auth login          # once: pick any provider (Anthropic/OpenAI/Google/local)
bash scripts/link-global.sh  # once per machine: every session PCB-aware + project pointer
bun run doctor               # checks bun, node, opencode, auth, kicad-cli, java, ports
bun run dev                  # starts everything, opens all 3 tabs for you

Requirements: Bun >= 1.0, KiCad >= 8 with kicad-cli reachable (Windows C:\Program Files\KiCad\<ver>\bin\kicad-cli.exe works from WSL automatically), Java 17+ (only for autorouting), an OpenCode provider login. WSL has its own OpenCode login; run opencode auth login inside Ubuntu even if you are already signed in on Windows.

Native Windows (no WSL)

Everything works natively too — same repo, same commands, PowerShell instead of bash:

powershell
git clone <this-repo> pcb-studio; cd pcb-studio
bun install; bun --cwd viewer install; bun --cwd outputs install
bun run fetch:kicanvas; bun run fetch:freerouter
opencode auth login          # once for Windows TUI + Desktop; WSL login is separate
.\scripts\link-global.ps1    # optional: expose PCB tools to every Windows OpenCode workspace
bun run doctor               # must show ok opencode + ok provider auth
bun run dev                  # same 3 tabs: 4096 chat, 5173 viewer, 5174 gallery

Notes: link-global.ps1 falls back to privilege-free links automatically and refuses to overwrite an existing OpenCode file. Stop with Ctrl+C in the dev terminal. If the OpenCode web UI ever misbehaves on native Windows, switch to the WSL flow above — boards carry over when the repository is on the C: drive, but sessions and login do not.

Every day after

bash
cd pcb-studio
bun run dev

That's it. It starts all three servers, reuses (never duplicates) the pinned chat session, prints bookmark links, and opens the tabs:

TabURLWhat
Chathttp://localhost:4096 → ✅ PCB STUDIO session (use the printed deep link)talk to pcb-engineer
Board viewerhttp://localhost:5173live KiCad render, follows your session
Outputs galleryhttp://localhost:5174schematic SVG, PCB SVG, 3D, downloads

Stop

Ctrl+C in the bun run dev terminal stops everything. If a port stays busy afterwards (stale process from a killed terminal):

bash
pkill -f "opencode web"; pkill -f "vite.*5173"; pkill -f "outputs/src/server"
bun run doctor   # confirms all three ports free again

Troubleshooting

  • Tab shows "Nothing here yet", "Friendly greeting", or agent "Default" — that's the Desktop app's server, not ours. Close the tab. Only ever use the bookmarked links bun run dev prints. To remove the confusion entirely, quit the OpenCode Desktop app while doing PCB work.
  • Viewer looks outdated — hard refresh: Ctrl+F5. (The dev servers hot-reload; a stale browser tab does not.)
  • Tool says server not running / connection refused — the opencode server (:4096) isn't up. Start it with bun run dev, or just the API with opencode serve --port 4096 from this folder.
  • bun run doctor is the arbiter — run it first whenever anything behaves oddly; fix what it flags, top to bottom.

Layout

  • opencode.json — project-only config (model default, permissions, server). Never touches ~/.config.
  • .opencode/tools/kicad_*.ts — the PCB harness. Only thing custom-built.
  • .opencode/agents/ — pcb-engineer (primary) + pcb-reviewer (read-only subagent).
  • .opencode/skills/ — on-demand KiCad playbooks (ERC, DRC, layout).
  • .opencode/commands/ — /check, /export shortcuts.
  • hardware/ — your boards. Starts empty; the agent creates every project here via kicad_scaffold.
  • viewer/ — sidecar web UI (chat + KiCad board, talks to same local server).
  • outputs/ — final-renders gallery server (schematic/PCB SVG via tscircuit pipeline, 3D GLB via KiCad).
  • scripts/ — dev (launcher), doctor (health check), fetch-* (vendored engines), link-global.sh, test-tools.ts (15-check harness: bun scripts/test-tools.ts).
  • constraints/ — shareable versioned design-constraint packs (JSON).

Which tab is mine? (important)

bun run dev prints two bookmark links and opens them for you:

  • board viewer: http://localhost:5173 — live KiCad render, follows your session
  • chat: deep link straight into the pinned ✅ PCB STUDIO — talk HERE session

Always use those links. The opencode web UI also sees your Desktop app's server — any tab showing "Friendly greeting" or agent "Default" is the Desktop server, not us. Close it. If you lose the chat link, re-run bun run dev and it prints it again (the pinned session is reused, never duplicated).

Relationship to tscircuit, Copperhead, et al.

Same dream (describe a board, get a board), opposite bet on source of truth:

  • tscircuit ("React for Electronics"): the board IS TypeScript code. Powerful — registry, playground, fast autorouter — but existing KiCad projects can't enter, only leave via export, and the cloud APIs it depends on are occasionally down.
  • pcb-studio: the board IS KiCad files. Any .kicad_sch/.kicad_pcb ever made (including tscircuit KiCad exports — feed them to kicad_import) works on day one, KiCad GUI stays usable side-by-side, everything runs locally, and every step is verified (ERC/DRC/netlist) instead of trusted.

Import from code-first tools; do not fight them. No framework lock-in either way.

Existing OpenCode users

Safe by default: the repo never edits your global config. The optional scripts/link-global.sh / scripts/link-global.ps1 install only missing PCB tools, agents, skills, guardrail, and shared tool library into ~/.config/opencode. They refuse to overwrite an existing file. This makes the PCB agent available in every session while the repository remains the source of truth.

Parts

13
QtyValueFootprintReferences
220pFCapacitor_SMD:C_0603_1608MetricC3, C4
25.1kResistor_SMD:R_0603_1608MetricR2, R3
1100nFCapacitor_SMD:C_0603_1608MetricC1
110uFCapacitor_SMD:C_0805_2012MetricC2
11kResistor_SMD:R_0603_1608MetricR1
18MHzCrystal:Crystal_HC49-4H_VerticalY1
1AMS1117-3.3Package_TO_SOT_SMD:SOT-223-3_TabPin2U1
1GREENLED_SMD:LED_0603_1608MetricD1
1STM32F103C8TxPackage_QFP:LQFP-48_7x7mm_P0.5mmU2
1SWD_10Connector_PinHeader_1.27mm:PinHeader_2x05_P1.27mm_VerticalJ2
1USB_C_6PConnector_USB:USB_C_Receptacle_HRO_TYPE-C-31-M-12J1

Questions

How big is the Stm32-blinky PCB?

It measures 80 × 50 mm and has 2 copper layers, 1.6 mm thick.

What parts does the Stm32-blinky use?

13 parts, built around the AMS1117-3.3. 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 Stm32-blinky KiCad files?

From the Vickyrrrrrr/pcb-studio repository on GitHub, at the commit this page was made from: the board is hardware/stm32-blinky/stm32-blinky.kicad_pcb and its schematic hardware/stm32-blinky/stm32-blinky.kicad_sch. PCBKit opens the board in the browser, with nothing to install.

Can I use the Stm32-blinky design in my own project?

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

Similar boards

  • 2 layers290.1 × 130 mmPro V2, the printed circuit board in 3D

    Pro V2

    kata0510/Lily58

    6×4+4keys column-staggered split keyboard.

    312 parts2.3k
  • 2 layers26.2 × 45.5 mmPL18 multiprotocol, the printed circuit board in 3D

    PL18 multiprotocol

    pascallanger/DIY-Multiprotocol-TX-Module

    Multiprotocol TX Module (or MULTI-Module) is a 2.4GHz transmitter module which controls many different receivers and models.

    24 parts1.9kGPL-3.0
  • 4 layers99 × 53.3 mmPSLab, the printed circuit board in 3D

    PSLab

    fossasia/pslab-hardware

    PSLab Hardware Design and Schematics https://pslab.io

    199 parts1.7kApache-2.0
  • 4 layers85 × 56 mmPslab mini, the printed circuit board in 3D

    Pslab mini

    fossasia/pslab-mini-hardware

    PSLab Mini Hardware https://pslab.io

    182 parts1.2kApache-2.0
  • 4 layers100 × 54 mm32Bit shift register, the printed circuit board in 3D

    32Bit shift register

    MaltWhiskey/Mega-Cube

    16x16x16 PL9823 Cube with Teensy 4.0 and FlexIO driver

    64 parts766
  • 2 layers44.2 × 29.3 mmI2c tiny usb, the printed circuit board in 3D

    I2c tiny usb

    harbaum/I2C-Tiny-USB

    Cheap and simple I²C to USB interface

    27 parts454
  • 2 layers78 × 60 mmIce viz, the printed circuit board in 3D

    Ice viz

    muni-works/vcad

    BRep CAD kernel in Rust/WASM

    44 parts442Apache-2.0
  • 2 layers59.1 × 99.9 mmCheap FOCer 2 60mm, the printed circuit board in 3D

    Cheap FOCer 2 60mm

    shamansystems/Cheap-FOCer-2

    Low-Cost Motor Controller based on the VESC 6

    193 parts407