Skip to the content
PCBKitNew board
4 layers36 × 36 mmRl fc f405.routed, the printed circuit board in 3D

Rl fc f405.routed

GabuGravin41/rlpcb2

RL PCB sits beside KiCad and works like a senior hardware engineer looking over your shoulder. You describe what you want to build; it helps you choose real parts from your KiCad libraries, works out the values, places…

Size
36 × 36 mm
Copper layers
4
Thickness
1.6 mm
Parts
65
Nets
79
Pads
280
Tracks, vias
466, 64
Pours
3
Routed
Yes
KiCad
KiCad 10.0 (file 20260206)
Created
2 Oct 2026
Updated
11 Oct 2026

Overview

Rl fc f405.routed is an open-source printed circuit board by GabuGravin41, from the GabuGravin41/rlpcb repository on GitHub. It is a 4-layer board of 36 × 36 mm with 65 parts on 79 nets, routed with 466 tracks and 64 vias.

It is built around the STM32F405RGT6, BMP280 and W25Q128JVSIQ, with the AP2112K-3.3, ICM-20602 and TPS54302 among its other parts. Its parts include 26 capacitors, 12 resistors, 7 ICs, 6 connectors and 5 diodes. It belongs with the STM32 boards of this library.

Main components

10

README

README.md

RL PCB — an AI design copilot for KiCad

RL PCB sits beside KiCad and works like a senior hardware engineer looking over your shoulder. You describe what you want to build; it helps you choose real parts from your KiCad libraries, works out the values, places the symbols for you, tells you exactly which pin connects to which pin, and then checks your wiring. It also helps with the board: stackup, net classes, placement, routing guidance, autorouting and DRC.

The division of labour is deliberate: language models are bad at drawing schematics (floating "ghost" wires, near-misses), so RL PCB never draws wires. You draw, and it does everything around the drawing: research, parts, numbers, placement, instructions, and verification.

text
 you ──► "I need a 24 V PLC input card with 8 isolated inputs"
          │
 RL PCB ─►│ requirements → architecture → datasheet/app-note research → reference designs
          │ → parts from YOUR libraries → calculated values → design plan (parts + nets)
          │ → plan review (ERC before drawing) → symbols placed (no wires)
          │ → "wire U3 pin 7 (OUT) to R12 pin 1 …" → you wire → verify: 87 % done,
          │   R14.2 not connected, ghost wire at (120.6, 88.9) mm → fix → 100 %
          │ → stackup + net classes → placement → routing guidance / autoroute → DRC → Gerbers

You choose how much the AI does

The engineer sets the AI's autonomy for each part of the design:

  • teach: it explains.
  • advise: it guides; you edit.
  • propose: it prepares each change on a copy of the project, with the check results before and after, and you accept or reject it.
  • do: it edits; every change is journalled and can be undone.

For example, the power block can be in "do" while the routing is in "advise". Every result says what the checks verified and what they could not, such as part data without a datasheet or EMC that was not simulated, so a weaker model's mistakes are caught where checks exist and flagged where they do not. See docs/COPILOT.md.

Copilot toolWhat it does
copilot_status, copilot_modeShow or set the modes and scopes.
proposals, proposal_show, proposal_accept, proposal_rejectReview changes prepared on a copy. The chat panel has a Proposals button.
undo, design_journalHistory of who changed what, in which mode; any change can be undone.
assurance_reportWhat is verified and what is not, before you order boards.
kickoff, kickoff_applyFrom an idea to an architecture, questions, pitfalls and a project skeleton.
explain_component, explain_netWhat a part or net does in this circuit, and why it is there.
review_layout, compare_layoutsPlacement, routing, EMC and current-capacity review (IPC-2221 track widths against the plan's currents) with reasons; side-by-side layout studies.
widen_power_tracksWidens the tracks of current-carrying nets as far as KiCad's DRC allows.
interface_changesNotices between this board and the mechanical design (RL CAD).

What's inside

AreaWhat it does
Connectivity engineComputes nets from the drawing itself (pins, wires, junctions, labels, power symbols, hierarchical sheets, buses incl. bus aliases). Validated against KiCad's own netlister: identical nets on all 13 KiCad 7 demo projects, and on the KiCad 9/10 demos (Jetson Thor carrier, CM5, VME) it matches the boards' own netlists apart from stale/mechanical items. Reads KiCad 4/5 .sch too.
Ghost-wire detectorDangling wire ends (with "near-miss: meant for U3 pin 7, 0.6 mm away"), floating wire groups, wire ends on the middle of another wire without a junction (KiCad treats these as not connected), labels touching nothing, off-grid pins, shorted power nets, misused no-connect flags.
Library indexSQLite/FTS search over every symbol and footprint in your KiCad libraries (stock + global + project tables, KiCad 7–10 incl. .kicad_symdir). Pins, footprint filters, pad counts, pitch. The AI never invents a part name.
Design planThe agreed circuit (parts + nets + no-connects + requirements + decisions), stored in <project>/.rlpcb/plan.json. Pins can be named (U1.VIN, U2.GND → all GND pins, U1.GPIO20 finds IO20).
Plan reviewERC for intent before drawing: unconnected power pins, floating inputs, output conflicts, missing decoupling, symbol/footprint pin-count mismatches.
Symbol placementGroups each IC with the passives that serve it and lays them out around the pins they connect to (decoupling next to VCC, pull-up next to the output…), packs the groups on the sheet, grid-aligned, value & footprint set — no wires. Clipboard mode (Ctrl+V into the open editor) or file mode (with backups). Hierarchical sheets per block (add_sheet). Optional net labels exactly on pin ends for wide buses.
Parts from anywhereStock/global/project libraries; LCSC/JLCPCB parts converted on the fly (import_lcsc_part C2040 → symbol + footprint + 3D, LCSC field set); symbols borrowed from open designs in the corpus; datasheets downloaded into the knowledge base (fetch_datasheet).
ManufacturingGerbers/drill/positions/STEP via kicad-cli; JLCPCB BOM + CPL (export_jlcpcb); plan fields (MPN, LCSC, voltage…) written back into drawn symbols (sync_fields_from_plan).
Circuit blocksPre-verified sub-circuits (buck, LDO, battery input, ADC divider, STM32F405 core, IMU, barometer, SPI flash, USB-C device, LED, connectors) with calculated values. MCUs connect by function (SPI1_SCK, USART1_TX, USB_DP) — the block knows the pins and refuses conflicts. The drone board rebuilt from 16 blocks verifies at 100 % with KiCad agreeing on every net.
Design checksEngineering review beyond ERC: MCU pin functions, USB-C CC/data wiring, STM32 VCAP, TVS orientation, pin role vs net (swapped regulators), LED polarity, cap voltage ratings, inductor current, missing pull-ups, back-feed between supplies, nets that go nowhere, board fit; on the PCB: decoupling distance, crystal distance, track width vs current.
Guided flownext_step reads the project and returns the single next action (with the exact tool call) plus a checklist — so smaller models (and beginners) don't get lost.
Multi-board systemssystem.json with boards and harnesses: every cable pin pair checked (ground/power/voltage/TX↔RX/driver conflicts/open pins/pin count/per-pin current) plus the supply budget across boards.
Wiring guidePer net: shortest wiring order (minimum spanning tree over the real pin coordinates), power symbols for rails, labels for far-apart pins, done/not-done per step.
VerificationHand-drawn schematic vs plan: progress %, missing connections, shorts between planned nets, unplanned connections, wrong values/footprints, unplaced units, plus ghost wires.
See the drawingRenders sheets to images and "pulls up" any section: zoomed crop around U3, R7 with red highlight boxes.
PCB toolsBoard overview & routing progress, stackup advisor (layer count from BGA pitch/interfaces/rails), net classes from the plan written into .kicad_pro, custom DRC rules, placement suggestions with target coordinates for every small passive (decoupling one cap per supply pin, pull-ups/load caps at their pin, two-sided, collision-free), footprint moves and flips (live or file), DRC, fabrication outputs.
RoutingGuidance by net class; Freerouting autorouting round-trip (DSN → router → SES, with a pure-Python SES importer) into a copy of your board; live track/via creation through the KiCad API for agreed simple routes.
Live KiCad APIKiCad 9/10 IPC API (kicad-python): highlight parts, read the selection, move footprints in one undo step, add tracks/vias, refill zones.
Knowledge base~35 dense engineering guides (power, decoupling/PDN, buck/boost, LDOs, BMS/UPS, high current, PLC I/O, motor drives, analog, EMC, stackups, SI, USB/Ethernet/PCIe/DDR, BGA & GPU-class boards, MCU/FPGA, RF, aerospace/high-rel, printers, DFM, KiCad workflow), 10 industry reference architectures (PLC, elevator, conveyor, humanoid joint, UPS, load sharing, printer mainboard, GPU accelerator, avionics, IoT), review/bring-up/fab checklists — plus your own PDFs/books/datasheets (ingest_documents).
Reference corpusIngests open-source KiCad projects (KiCad demos, GitHub repos, your folders; KiCad 4–10) and learns how real designs wire each IC: "how do others wire the DRV8302?" returns every pin's net and neighbours in the VESC design, with a consensus across designs. Seed list: Jetson Orin/Nano & Kria carriers, VESC, LibreSolar BMS/MPPT, LumenPnP, HackRF, Cynthion…
CalculatorsIPC-2221 trace width, trace/via resistance & current, microstrip/stripline/differential impedance + width solver, critical length, skew, IPC-2221 clearance, E-series, feedback dividers, LED, RC, crystal load caps, buck/boost power stage, LDO thermal, MOSFET loss, PDN target impedance, capacitor SRF, shunts, thermal vias, wavelength. Every result shows the formula and caveats.

Three ways to talk to it

  1. Claude Desktop (works with your Claude Pro plan — no API key). The installer registers RL PCB as an MCP server; open Claude Desktop and all 90 tools are available. Say "Open my KiCad project in Documents\KiCad\myboard and help me design…".
  2. The RL PCB panel inside KiCad. A toolbar button (PCB editor; also the schematic editor on KiCad 10) opens a chat panel. It needs either an Anthropic API key (Settings ⚙) or a local model through any OpenAI-compatible server (Ollama, LM Studio…).
  3. Claude Code / any MCP client: claude mcp add rlpcb -- <venv python> -m rlpcb.agent.mcp_server.

Install (Windows)

Requirements: KiCad 8, 9 or 10 (9/10 recommended), Python 3.10+, Git (for the corpus), optionally Java 21 for autorouting.

powershell
cd path\to\rlpcb
powershell -ExecutionPolicy Bypass -File .\install_windows.ps1            # add -SeedCorpus to download reference designs

It creates .venv, installs mcp, kicad-python, pymupdf, indexes your libraries, installs the KiCad plugins into Documents\KiCad\<version>\, registers with Claude Desktop, makes a desktop shortcut, then runs python -m rlpcb doctor.

Then in KiCad 9/10: Preferences → Plugins → Enable KiCad API (for live highlighting and moves) and restart.

Linux/macOS: ./install.sh [--seed-corpus].

First session

text
You:     Open C:\Users\me\Documents\KiCad\plc_input and let's design an 8-channel 24 V digital input card
         for a Raspberry Pi CM5, IEC 61131-2 type 1, galvanically isolated.
RL PCB:  (asks about channel count, isolation voltage, connectors, power) … proposes architecture …
         searches the knowledge base (industrial_plc_io) and reference designs … calculates the input
         divider/current limiter … builds the plan … plan_review: 0 errors …
         places 41 symbols (Ctrl+V) … "Block 'input_ch1': 1) Draw a wire from J1 pin 1 at (25.4, 40.6) to
         R1 pin 1 at (38.1, 40.6) …"
You:     done with channel 1
RL PCB:  verify → 92 %: R3 pin 2 is not connected; the wire from U2 pin 3 ends 0.64 mm short of it
         (dangling end at 120.65, 88.90). Everything else in channel 1 matches the plan.

Command line

text
python -m rlpcb doctor                    # check everything
python -m rlpcb index [--force]           # (re)index libraries
python -m rlpcb check  path\to\project    # ghost wires & drawing problems
python -m rlpcb verify path\to\project    # schematic vs plan
python -m rlpcb nets   path\to\project [regex]
python -m rlpcb ingest-docs D:\Books\Electronics
python -m rlpcb corpus seed | owner/repo | D:\OpenHardware
python -m rlpcb tool <tool_name> '{"json": "args"}'
python -m rlpcb serve --open              # chat panel
python -m rlpcb mcp                       # MCP server (stdio)

Safety of your files

  • Schematic/board edits are splices: the rest of the file stays byte-for-byte identical, the result is parsed before writing, and a timestamped backup goes to <project>\.rlpcb\backups\.
  • If KiCad has the file open (lock file present), RL PCB warns you; clipboard mode and the live API avoid the conflict entirely.
  • The autorouter writes <name>.routed.kicad_pcb, never your original.
  • mech_export writes <board>.mech.json, which describes the board for the product around it: outline, holes, connectors with the edge they face, and part heights. mech_check checks the board against the enclosure.json that RL CAD writes. See ../rlcad/docs/INTEGRATION.md.
  • finish_routing closes what the autorouter left (plane stitching, grid router, rip-up, negotiated congestion) and writes <name>.finished.kicad_pcb, checked with KiCad's own DRC after every step.
  • The panel server only listens on 127.0.0.1 and rejects cross-origin requests. allow_file_writes=false in Settings makes RL PCB read-only.

Honest limits (and the roadmap)

  • It will not draw wires, by design. Net labels on pin ends are offered for buses.
  • The AI's design judgement is only as good as its research: it cites the knowledge base, the datasheet section and real reference designs, and you should still read the datasheet's typical-application circuit.
  • Autorouting is for non-critical nets; power loops, high-speed and analog nets should be routed by hand with the guidance given.
  • A Blackwell-class accelerator board (20+ layer HDI, ~1000 A core rail, PCIe Gen5/6) is not a first project; the gpu_accelerator_board architecture file lays out a realistic learning path toward it.

See docs/EVALUATION.md for how a small model performs with and without blocks, examples/drone_fc/ for a complete worked project (a drone flight controller, idea → routed board), docs/USER_GUIDE.md for the workflow in depth and docs/ARCHITECTURE.md for how it works.

Parts

65
QtyValueFootprintReferences
12100nCapacitor_SMD:C_0402_1005MetricC8, C10, C11, C12, C13, C18, C21, C22, C23, C24, C26, C27
4MountingHole_3.2mm_M3MountingHole_3.2mm_M3H1, H2, H3, H4
310kResistor_SMD:R_0402_1005MetricR3, R5, R10
31kResistor_SMD:R_0402_1005MetricR4, R6, R7
32.2uCapacitor_SMD:C_0402_1005MetricC15, C16, C25
210u 50VCapacitor_SMD:C_1206_3216MetricC1, C2
218pCapacitor_SMD:C_0402_1005MetricC19, C20
21uCapacitor_SMD:C_0402_1005MetricC6, C17
222u 10VCapacitor_SMD:C_0805_2012MetricC4, C5
24.7kResistor_SMD:R_0402_1005MetricR8, R9
24.7uCapacitor_SMD:C_0603_1608MetricC7, C14
25.1kResistor_SMD:R_0402_1005MetricR11, R12
2600R@100MHzInductor_SMD:L_0603_1608MetricFB1, FB2
110nCapacitor_SMD:C_0402_1005MetricC3
115uInductor_SMD:L_Bourns_SRP7028A_7.3x6.6mmL1
13.01kResistor_SMD:R_0402_1005MetricR2
18MHzCrystal:Crystal_SMD_3225-4Pin_3.2x2.5mmY1
19.31kResistor_SMD:R_0402_1005MetricR1
1AP2112K-3.3Package_TO_SOT_SMD:SOT-23-5U2
1B340ADiode_SMD:D_SMAD1
1BATTConnector_Wire:SolderWire-1.5sqmm_1x02_P6mm_D1.7mm_OD3mmJ1
1BMP280Package_LGA:Bosch_LGA-8_2x2.5mm_P0.65mm_ClockwisePinNumberingU5
1BOOTButton_Switch_SMD:SW_SPST_TL3342SW1
1ESCConnector_JST:JST_SH_SM08B-SRSS-TB_1x08-1MP_P1.00mm_HorizontalJ3
1ICM-20602Package_LGA:LGA-16_3x3mm_P0.5mm_LayoutBorder3x5yU4
1RXConnector_JST:JST_SH_SM04B-SRSS-TB_1x04-1MP_P1.00mm_HorizontalJ4
1SMAJ28ADiode_SMD:D_SMAD2
1SS34Diode_SMD:D_SMAD5
1STM32F405RGT6Package_QFP:LQFP-64_10x10mm_P0.5mmU3
1SWDConnector_PinHeader_1.27mm:PinHeader_1x04_P1.27mm_VerticalJ6
1TPS5430Package_SO:TI_SO-PowerPAD-8_ThermalViasU1
1USB-CConnector_USB:USB_C_Receptacle_GCT_USB4105-xx-A_16P_TopMnt_HorizontalJ2
1USBLC6-2SC6Package_TO_SOT_SMD:SOT-23-6U7
1VTXConnector_JST:JST_SH_SM04B-SRSS-TB_1x04-1MP_P1.00mm_HorizontalJ5
1W25Q128JVPackage_SO:SOIC-8_5.23x5.23mm_P1.27mmU6
1blueLED_SMD:LED_0603_1608MetricD3
1greenLED_SMD:LED_0603_1608MetricD4

Questions

How big is the Rl fc f405.routed PCB?

It measures 36 × 36 mm and has 4 copper layers, 1.6 mm thick.

What parts does the Rl fc f405.routed use?

65 parts, built around the STM32F405RGT6, BMP280, W25Q128JVSIQ and AP2112K-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 Rl fc f405.routed KiCad files?

From the GabuGravin41/rlpcb repository on GitHub, at the commit this page was made from: the board is examples/drone_fc/output/rl_fc_f405/rl_fc_f405.routed.kicad_pcb and its schematic examples/drone_fc/output/rl_fc_f405/connectors.kicad_sch. PCBKit opens the board in the browser, with nothing to install.

Can I use the Rl fc f405.routed design in my own project?

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

Similar boards

  • 4 layers50 × 47.1 mmFlightController, the printed circuit board in 3D

    FlightController

    12Robert20/STM32F7-Flight-Controller

    A custom 4-layer high-performance flight controller for FPV drones. Built around the STM32F777, featuring DShot600, CRSF support, and advanced LC filtering.

    79 parts
  • 4 layers52.9 × 79.1 mmRealFCV1, the printed circuit board in 3D

    RealFCV1

    bapsenpai-blip/STM32F405-4-layer-flight-controller

    My first PCB revision, not fabricated yet, looking for design review

    94 parts1
  • 4 layers36 × 36 mmFc f405, the printed circuit board in 3D

    Fc f405

    fkontiebo/flight-controller

    Contrôleur de vol 4 layers basé sur STM32F405RGT6, conçu comme plateforme de navigation autonome avec bus CAN.

    97 partsMIT
  • 6 layers40.6 × 40.5 mmFlight Controller, the printed circuit board in 3D

    Flight Controller

    desanv01/Flight-Controller-V2

    STM32H743 controller: regulated power, signal-only ESC, neutral ArduPilot firmware, manufacturing data and engineering history.

    169 partsCERN-OHL-S-2.0
  • 4 layers70 × 100 mmSkylink fc, the printed circuit board in 3D

    Skylink fc

    ajisrawi/5g-3d-printed-drone

    3D-printed quadcopter with a custom F405 flight controller, 4G/5G companion connectivity, and phone control

    136 parts
  • 4 layers40 × 40 mmShiroFPV Flight Controller, the printed circuit board in 3D

    ShiroFPV Flight Controller

    ShiroFPV/ShiroFPV_Flight_Controller_Collection

    Official repository for public ShiroFPV flight controller designs, encompassing fully verified productions as well as ongoing, untested hardware revisions.

    116 parts1CERN-OHL-S-2.0
  • 2 layers94.5 × 64 mmAir monitor, the printed circuit board in 3D

    Air monitor

    kaushalch1/air-monitor

    this is a portable air quality monitoring device designed to measure particulate matter and environmental conditions in real time.

    42 parts
  • 2 layers50 × 50 mmUpper board, the printed circuit board in 3D

    Upper board

    Peize-Liu/404APDdemo

    404 auto pilot drone demo

    125 parts9