Skip to the content
PCBKitNew board
2 layers3.3 × 5.6 mmPlaced, the printed circuit board in 3D

PCBAgent takes one circuit request and, with no further input, designs a private board on the ASUS Ascent GX10: simulated, sourced, and routed offline.

Size
3.3 × 5.6 mm
Copper layers
2
Thickness
1.6 mm
Parts
2
Nets
3
Pads
4
Tracks, vias
0, 0
Routed
Not yet
KiCad
KiCad 10.0 (file 20260206)
Created
10 Oct 2026
Updated
11 Oct 2026

Overview

Placed is an open-source printed circuit board by PCBAgent, from the PCBAgent/PCBAgent repository on GitHub. It is a 2-layer board of 3.3 × 5.6 mm with 2 parts on 3 nets.

README

README.md

PCBAgent-GX10

PCBAgent takes one circuit request and, with no further input, designs a private board on the ASUS Ascent GX10: simulated, sourced, and routed offline.

A schematic is the product. Part values, pinouts, and the board outline should not have to leave the machine before software can help. PCBAgent runs that work on the GX10, an ultra-small AI computer with the NVIDIA GB10 Grace Blackwell Superchip and 128 GB of unified memory. Nemotron, ngspice, a local JLCPCB catalog, KiCad, and Freerouting all run on the box. Unplugging the network does not stop a design.

Why local

Cloud schematic tools upload the design before they answer. Here the model and the checkers share the machine where the design is created. There is no cloud round trip, no vendor API for the netlist, and no infrastructure to keep up for a single board. The same flow still runs with the network disconnected.

What it does

One request becomes a checked board. The model writes the circuit. SPICE, the parts catalog, the placer, and KiCad decide whether that circuit is true. After the first prompt, the run continues on its own until you cancel it, and you can watch placement and routing in KiCad while it does.

  1. Specify and simulate. /design writes a circuit spec and a SKiDL file. SKiDL emits a SPICE netlist, and ngspice runs it. The model does not hand-write a simulator deck.
  2. Verify. Each acceptance number in the spec, such as output voltage and current, is compared with the ngspice measurement inside the stated tolerance. A value counts only when that simulation produced it. A miss stays inside /design: the model changes the circuit and the same checks run again. It does not edit the spec to hide a failure.
  3. Select parts and write the netlist. Passives and the regulator are matched to a local JLCPCB catalog. Stock, price, and footprint names are copied from that cache and from the installed KiCad libraries. The same connections become a KiCad netlist with those symbols and footprints.
  4. Place and route. /layout asks the model for placement constraints, such as a capacitor next to its IC. It does not emit coordinates or traces. A placer chooses positions, Freerouting draws the copper, and KiCad's design-rule check scores the board. layout.py --demo records that sequence and plays it in the PCB editor with no further prompts.

Demo

Two finished boards are in designs/:

  • 5v-to-3v3-divider, a 5 V to 3.3 V divider into a 33 ohm load
  • 5v-to-3v3-ldo-10uf-22uf-33ohm-25x20mm-jlcpcb, the same request on an AMS1117-3.3 with 10 µF in and 22 µF out

Replay the routed board in the KiCad PCB Editor from the GX10 desktop. Enable Preferences → Plugins → Enable KiCad API first.

bash
source .venv/bin/activate
.venv/bin/python skills/layout/demo.py designs/5v-to-3v3-ldo-10uf-22uf-33ohm-25x20mm-jlcpcb --replay

Parts move into place, then the copper appears. layout/board.png in the same design is the still image of the routed board. To record a new animation while laying out again, run skills/layout/layout.py designs/<slug> --demo.

A new design starts in Pi with a single command, for example:

text
/design 5 V supply to 3.3 V LDO using one linear regulator IC, a 10 µF input capacitor, and a 22 µF output capacitor, output voltage 3.3 V within 0.05 V, output current 0.1 A within 0.01 A into a 33 ohm load, maximum board size 25 mm by 20 mm, JLCPCB

Chat window

The same agent, in its own window instead of the terminal. Skills, commands, and checks are unchanged. On the GX10 desktop:

bash
python3 chat/window.py

/design and the rest of the flow work as they do in pi. Close the window to stop that session.

Run it on the GX10

KiCad 9 or newer is installed separately. From this checkout:

bash
./setup.sh
source .venv/bin/activate
ollama list

setup.sh installs Pi and uv when they are missing, installs SKiDL into .venv, and downloads Freerouting 2.5.0. Use an exact model id from ollama list. Start the Ollama bridge in one terminal:

bash
export PCB_OLLAMA_MODEL=<id from ollama list>
.venv/bin/python tools/ollama_bridge.py

In another terminal, from this checkout:

bash
export PCB_OLLAMA_MODEL=<id from ollama list>
pi --provider pcb-ollama --model "$PCB_OLLAMA_MODEL" --thinking off

Trust the project when asked. .pi/settings.json loads this package. Restart Pi after pulling extension changes, or run /reload in a session that is already open. Stop a run yourself with Escape in Pi, or Ctrl+C in a CLI process.

From another machine on the LAN, the GX10 is reached with ssh <user>@<hostname>.local, or ssh <user>@<gx10-ip> if .local does not resolve. At the GX10 keyboard, whoami, hostname, and hostname -I print those values.

Checks

bash
.venv/bin/python -m pytest tests -q
node --test tests/test_policy.mjs

Stage commands, when you want to run them without the agent:

bash
.venv/bin/python tools/pcb_stage.py designs/<slug> prepare
.venv/bin/python tools/pcb_stage.py designs/<slug> verify
.venv/bin/python tools/pcb_stage.py designs/<slug> parts
.venv/bin/python tools/pcb_stage.py designs/<slug> netlist
.venv/bin/python skills/layout/layout.py designs/<slug>

Each stage prints a short JSON result and writes a full log. Simulation evidence, part ratings, and the netlist report stay next to the design. A passing check covers the measurements and rules the runners implement.

Parts

2
QtyValueFootprintReferences
110 ΩR_0402_1005MetricR1
147 ΩR_0603_1608MetricR2

Questions

How big is the Placed PCB?

It measures 3.3 × 5.6 mm and has 2 copper layers, 1.6 mm thick.

What parts does the Placed use?

2 parts. 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 Placed KiCad files?

From the PCBAgent/PCBAgent repository on GitHub, at the commit this page was made from: the board is designs/5v-to-3v3-divider/layout/demo/20261011T024955-87ac81f3/attempt-1/placed.kicad_pcb. PCBKit opens the board in the browser, with nothing to install.

Can I use the Placed design in my own project?

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

More from PCBAgent/PCBAgent

9
  • 2 layers18.9 × 18.3 mmLdo-5v-3v3-lm358, the printed circuit board in 3D

    Ldo-5v-3v3-lm358

    PCBAgent/PCBAgent

    PCBAgent takes one circuit request and, with no further input, designs a private board on the ASUS Ascent GX10: simulated, sourced, and routed offline.

    9 parts
  • 2 layers10.1 × 13.6 mm5v to-3v3-ldo-10uf-22uf-33ohm-25x20mm jlcpcb, the printed circuit board in 3D

    5v to-3v3-ldo-10uf-22uf-33ohm-25x20mm jlcpcb

    PCBAgent/PCBAgent

    PCBAgent takes one circuit request and, with no further input, designs a private board on the ASUS Ascent GX10: simulated, sourced, and routed offline.

    4 parts
  • 2 layers3.3 × 5.6 mm5v to-3v3-divider, the printed circuit board in 3D

    5v to-3v3-divider

    PCBAgent/PCBAgent

    PCBAgent takes one circuit request and, with no further input, designs a private board on the ASUS Ascent GX10: simulated, sourced, and routed offline.

    2 parts
  • 2 layers3.3 × 5.6 mmAttempt-1, the printed circuit board in 3D

    Attempt-1

    PCBAgent/PCBAgent

    PCBAgent takes one circuit request and, with no further input, designs a private board on the ASUS Ascent GX10: simulated, sourced, and routed offline.

    2 parts
  • 2 layers3.3 × 5.6 mmDemo, the printed circuit board in 3D

    Demo

    PCBAgent/PCBAgent

    PCBAgent takes one circuit request and, with no further input, designs a private board on the ASUS Ascent GX10: simulated, sourced, and routed offline.

    2 parts
  • 2 layers3.3 × 5.6 mmDemo, the printed circuit board in 3D

    Demo

    PCBAgent/PCBAgent

    PCBAgent takes one circuit request and, with no further input, designs a private board on the ASUS Ascent GX10: simulated, sourced, and routed offline.

    2 parts
  • 2 layers3.3 × 5.6 mmDemo, the printed circuit board in 3D

    Demo

    PCBAgent/PCBAgent

    PCBAgent takes one circuit request and, with no further input, designs a private board on the ASUS Ascent GX10: simulated, sourced, and routed offline.

    2 parts
  • 2 layers3.3 × 5.6 mmDemo, the printed circuit board in 3D

    Demo

    PCBAgent/PCBAgent

    PCBAgent takes one circuit request and, with no further input, designs a private board on the ASUS Ascent GX10: simulated, sourced, and routed offline.

    2 parts
  • 2 layers3.3 × 5.6 mmPlaced, the printed circuit board in 3D

    Placed

    PCBAgent/PCBAgent

    PCBAgent takes one circuit request and, with no further input, designs a private board on the ASUS Ascent GX10: simulated, sourced, and routed offline.

    2 parts

Similar boards

  • 2 layers37 × 19 mmPassive rpi hub75-adapter, the printed circuit board in 3D

    Passive rpi hub75-adapter

    hzeller/rpi-rgb-led-matrix

    Controlling up to three chains of 64x64, 32x32, 16x32 or similar RGB LED displays using Raspberry Pi GPIO

    2 parts4.4kGPL-2.0
  • 2 layersDiode template, the printed circuit board in 3D

    Diode template

    adamws/kicad-kbplacer

    KiCad plugin for automatic keyboard's key placement and routing

    2 parts547GPL-3.0
  • 2 layers20.3 × 15.2 mmL0 button, the printed circuit board in 3D

    L0 button

    Luos-io/luos_engine

    Open-source and real-time orchestrator for cyber-physical-systems, to easily design, test and deploy embedded applications and digital twins.

    2 parts546MIT
  • 2 layers35.1 × 46.8 mmSDEX2M2 Breakout Board, the printed circuit board in 3D

    SDEX2M2 Breakout Board

    NVNTLabs/switch2-SDEX2M2

    Micro SD Express to M.2 NVME Adapter for Nintendo Switch 2

    2 parts542GPL-3.0
  • 2 layers59.3 × 36.6 mmExpansionBoardTemplate, the printed circuit board in 3D

    ExpansionBoardTemplate

    BlueSCSI/BlueSCSI-v2

    BlueSCSI v2/Ultra - an open source, open hardware, SCSI emulator using the Pi Pico PR2040 and Pico 2 RP2350

    2 parts459GPL-3.0
  • 2 layersAlpha.9mm.wire, the printed circuit board in 3D

    Alpha.9mm.wire

    ohmtech-rdi/eurorack-blocks

    Software to Hardware Prototyping for Eurorack using C++, Max/Gen~ or Faust

    2 parts410
  • 2 layers26.7 × 64 mmGpu power, the printed circuit board in 3D

    Gpu power

    dennisss/dacha

    Monorepo for awesome tools/projects/libraries

    2 parts397Apache-2.0