Domain 06 · Electronics Design Automation · Schematic to Silicon

PCB Design &
Software APIs

Complete electronic design automation guide — EDA software, 8 design APIs with code examples, circuit simulation, component libraries, and interactive browser-based design tools.

Launch a Designer ↓ 8 Design APIs Try Simulators →
$0
KiCad Full EDA
$2
JLCPCB 5 Boards
8+
Design APIs
24hr
PCB Turnaround
10M+
Open Source Parts
ESP32
Primary Platform

Launch a PCB Designer

Start designing immediately in your browser. No installation required. Click to open the tool in a new tab with ESP32 templates ready.

EasyEDA Standard

Free browser-based PCB designer with direct JLCPCB ordering and 600K+ LCSC parts library. Best for beginners.

Open EasyEDA → Free · Cloud · JLCPCB Integration
🤖

Flux.ai (AI-Powered)

Next-gen AI-assisted PCB design. AI auto-placement, intelligent routing, and collaborative real-time editing in browser.

Open Flux.ai → Free Tier · AI Layout · Collaborative
🔧

KiCad 8 (Desktop)

Industry-standard open-source EDA. Full schematic + PCB + SPICE + 3D. Python API for automation. Download for your OS.

Download KiCad → Free · Open Source · Python API
🧪

Wokwi ESP32 Simulator

Simulate ESP32 circuits and firmware in your browser. Test your PCB design logic before fabrication. Arduino + ESP-IDF support.

Simulate ESP32 → Free · Browser · ESP32 Native
💡

Falstad Circuit Simulator

Interactive analog circuit simulator. Visualize current flow, voltage, and waveforms in real-time. Great for learning and prototyping.

Open Simulator → Free · Browser · Real-time Visual
🎨

TinkerCAD Circuits

Beginner-friendly circuit designer with Arduino simulation. Drag-and-drop components, write code, and simulate.

Open TinkerCAD → Free · Browser · Arduino Sim

Interactive Simulators

Try these tools right here — no signup required. Design circuits, simulate ESP32 firmware, and visualize electronics.

Falstad Circuit Simulator

LIVE · Interactive

Wokwi ESP32 Simulator

LIVE · ESP32

PCB Design Workflow

The 6-step process from idea to manufactured circuit board.

1

Schematic Capture

Draw circuit diagram, connect pins, define nets. Outputs: Netlist, BOM, ERC.

2

PCB Layout

Place components, route traces, set design rules. Outputs: Placement, routing, DRC.

3

Simulation

SPICE simulation, signal integrity, thermal analysis. Outputs: Sim results, thermal map.

4

Design Review

DFM check, component availability, BOM optimization. Outputs: DFM report, cost estimate.

5

Generate Files

Export Gerber, drill files, pick-and-place, 3D STEP model. Outputs: Manufacturing package.

6

Fabrication

Submit to JLCPCB/PCBWay. Options: bare PCB, SMT assembly, or turnkey. 24hr-7 days.

EDA Software Comparison

Complete comparison of free and commercial PCB design tools.

Open Source / Free Tools

SoftwareSchematicPCB LayoutSimulation3D ViewPriceBest For
KiCad 8ExcellentPush & ShoveSPICE (ngspice)Full 3DFree / Open SourceBest overall free EDA
EasyEDA StandardGoodAuto-routeSPICE3DFree (Cloud)Beginners, JLCPCB integration
EasyEDA ProHierarchicalAdvanced routingEnhancedFull 3DFree (Desktop)Intermediate, local + cloud
FritzingBasicBasic$8 one-timeBreadboard visualization
LibrePCBGoodGood3DFree / Open SourceClean UI, modern
gEDA/PCBgschemPCB editorgnucapFree / Open SourceLinux-native, scriptable

Commercial / Professional Tools

SoftwareSchematicPCB LayoutSimulationPriceBest For
Altium DesignerIndustry standardBest-in-classFull signal/power$7,395/yrProfessional / Enterprise
Altium 365Cloud collabFull AltiumCloud sim$3,295/yrTeams / Cloud workflow
Cadence OrCADCapture CISAllegro PCBPSpice$6,000+/yrIC design, complex boards
Mentor PADSDxDesignerPADS ProHyperLynx$5,000+/yrAerospace, automotive
Eagle (Autodesk)GoodGoodBasic SPICEIncluded in Fusion 360Makers, Fusion 360 users
CircuitMakerAltium-basedAltium-basedFree (community)Open-source HW community
Flux.aiAI-assistedAI routingBrowser simFree / $25+/moAI-native PCB design

Recommended Stack for YouInvent / IoT.NocodeAI.cloud

PCB Design Software APIs

8 APIs for automating PCB design, ordering, and component sourcing — with code examples.

1. KiCad Python API

Python scripting — embedded & standalone

KiCad exposes its full PCB and schematic engine via Python. Automate board creation, modify footprints, generate reports, create custom DRC rules, and build complete boards programmatically.

docs.kicad.org/master/en/python/pcbnew

## KiCad Python API — Create a PCB programmatically import pcbnew board = pcbnew.GetBoard() # Get active board in KiCad # Add a footprint fp = pcbnew.FootprintLoad("/usr/share/kicad/footprints/Resistor_SMD.pretty", "R_0805_2012Metric") fp.SetPosition(pcbnew.wxPointMM(50, 50)) fp.SetReference("R1") fp.SetValue("10k") board.Add(fp) # Add a track (trace) track = pcbnew.PCB_TRACK(board) track.SetStart(pcbnew.wxPointMM(50, 50)) track.SetEnd(pcbnew.wxPointMM(70, 50)) track.SetWidth(pcbnew.FromMM(0.25)) track.SetLayer(pcbnew.F_Cu) board.Add(track) # Add a via via = pcbnew.PCB_VIA(board) via.SetPosition(pcbnew.wxPointMM(70, 50)) via.SetDrill(pcbnew.FromMM(0.3)) via.SetWidth(pcbnew.FromMM(0.6)) board.Add(via) # Generate Gerber files plot_controller = pcbnew.PLOT_CONTROLLER(board) plot_options = plot_controller.GetPlotOptions() plot_options.SetOutputDirectory("./gerbers/") plot_controller.OpenPlotfile("F_Cu", pcbnew.PLOT_FORMAT_GERBER, "Front Copper") plot_controller.PlotLayer() plot_controller.ClosePlot() board.Save("output.kicad_pcb")

KiCad API Capabilities

  • pcbnew: Full PCB manipulation — footprints, tracks, zones, vias, text
  • eeschema: Schematic symbols, sheets, netlist generation
  • Footprint Wizard: Custom parametric footprint generators
  • DRC Scripting: Custom design rule checks in Python
  • BOM Export: Automated bill of materials
  • Gerber Generation: Programmatic fab file output
  • Action Plugins: GUI-integrated Python tools
  • CLI Tools: kicad-cli for automation pipelines

KiCad Plugin Ecosystem

  • Interactive HTML BOM: Visual BOM for assembly
  • KiBot: CI/CD automation (Gerber, BOM, docs)
  • Kikit: Panelization, automation, testing
  • SnapEDA integration: Part library import
  • JLC2KiCad: Import JLCPCB parts library
  • KiCost: Automated pricing from distributors
  • FreeRouting: Auto-router integration

2. EasyEDA / LCSC API

REST API — Cloud-based

JSON-based file format and REST API for managing projects, components, and designs. Direct integration with LCSC (600K+ parts) and JLCPCB.

// EasyEDA REST API — Component Search & Project Management // Search LCSC/EasyEDA component library GET https://easyeda.com/api/components/search?keyword=ESP32&type=1 // Get component details (includes symbol + footprint) GET https://easyeda.com/api/components/{uuid} // EasyEDA file format is JSON-based — programmatic board gen: { "editorVersion": "6.5", "docType": "1", // 1=Schematic, 2=SchematicLib, 3=PCB, 4=FootprintLib "title": "ESP32 Custom Board", "description": "IoT sensor node" } // One-click ordering to JLCPCB: POST https://easyeda.com/api/orders/jlcpcb { "projectId": "abc123", "quantity": 5, "layers": 2, "color": "green" }

3. Altium 365 Cloud API

REST API — Cloud platform

Cloud collaboration with API access for design data management, component libraries, BOM management, and manufacturing file sharing.

// Altium 365 API — Design Management POST https://api.altium365.com/auth/token { "client_id": "...", "client_secret": "..." } GET https://api.altium365.com/v1/workspaces/{id}/projects GET https://api.altium365.com/v1/projects/{id}/bom POST https://api.altium365.com/v1/projects/{id}/releases { "name": "Rev 2.1", "outputs": ["gerber", "bom", "pick-and-place"] }

4. Flux.ai API (AI-Powered)

REST + WebSocket — AI-native design

AI auto-routing, component recommendation, design rule checking, and collaborative design. Programmatic design creation and AI-assisted layout optimization.

// Flux.ai — AI-Assisted PCB Design API POST https://api.flux.ai/v1/projects { "name": "ESP32 Sensor Node", "boardSize": { "width": 50, "height": 40 } } // Add components with AI placement POST https://api.flux.ai/v1/projects/{id}/components { "parts": [ { "mpn": "ESP32-S3-WROOM-1", "quantity": 1 }, { "mpn": "BME280", "quantity": 1 } ], "aiPlacement": true // AI suggests optimal placement } // AI auto-route POST https://api.flux.ai/v1/projects/{id}/route { "strategy": "optimize_area", "layers": 2 } // Export manufacturing files GET https://api.flux.ai/v1/projects/{id}/export?format=gerber

5. JLCPCB / PCBWay Ordering APIs

REST API — Manufacturing integration

Upload Gerber files, get instant quotes, place orders, and track production status programmatically.

// JLCPCB API — Automated Quote & Ordering POST https://api.jlcpcb.com/v1/quote { "gerber": [gerber_zip_file], "quantity": 10, "layers": 2, "thickness": 1.6, "color": "green", "assembly": true, "sides": "top" } // Response: { "pcb_cost": 2.00, "assembly_cost": 8.50, "components_cost": 12.30, "shipping": 5.00, "total": 27.80, "turnaround": "3-5 days" }

6. Nexar / Octopart API (Component Intelligence)

GraphQL API — Component data & pricing

Real-time access to component data, pricing, stock levels, and datasheets across 100+ distributors.

// Nexar/Octopart GraphQL API — Component Search POST https://api.nexar.com/graphql { "query": "{ supSearch(q: \"ESP32-S3-WROOM-1\", limit: 5) { results { part { mpn manufacturer { name } shortDescription bestDatasheet { url } sellers { company { name } offers { inventoryLevel prices { quantity price currency } } } } } } }" }

7. SnapEDA / Ultra Librarian API

REST API — Symbols, footprints & 3D models

Access millions of schematic symbols, PCB footprints, and 3D models in KiCad, Altium, Eagle, and EasyEDA formats.

// SnapEDA API — Download symbols & footprints GET https://api.snapeda.com/v1/parts/search?q=ESP32-WROOM-32&format=kicad GET https://api.snapeda.com/v1/parts/{part_id}/download { "format": "kicad", "includes": ["symbol", "footprint", "3d_model"] } // Ultra Librarian — broader coverage GET https://api.ultralibrarian.com/v1/search?keyword=BME280&cad=kicad

8. CircuitPython / MicroPython — Hardware Testing

On-device scripting — Hardware validation

After PCB fabrication, use CircuitPython or MicroPython for rapid hardware bring-up and testing.

# CircuitPython — PCB Hardware Test Script import board, digitalio, analogio, busio # Test GPIO led = digitalio.DigitalInOut(board.GPIO2) led.direction = digitalio.Direction.OUTPUT led.value = True print("GPIO2 LED: ON") # Test I2C bus i2c = busio.I2C(board.SCL, board.SDA) while not i2c.try_lock(): pass devices = i2c.scan() print(f"I2C devices: {[hex(d) for d in devices]}") # Test ADC (battery voltage) adc = analogio.AnalogIn(board.GPIO34) voltage = (adc.value / 65535) * 3.3 * 2 print(f"Battery: {voltage:.2f}V") print("All hardware tests PASSED")

Circuit Simulation Software

SimulatorTypeAPI/CLIPriceBest For
ngspiceSPICE (analog/mixed)CLI + Python (PySpice)FreeKiCad integrated, SPICE3
LTspiceSPICE (analog)CLI batch modeFreeAnalog Devices, fast sim
QUCS-SSPICE frontendCLI + netlist exportFreeGUI for ngspice/Xyce
FalstadInteractive (browser)URL-based, JS APIFreeEducation, visualization
WokwiESP32/Arduino simVS Code, CI APIFree / ProESP32 simulation in browser
PySpicePython SPICE wrapperFull Python APIFreeScriptable circuit sim
TinkercadArduino simulatorFreeBeginners, Arduino sim
SimulIDEReal-time circuitFreeMCU + circuit co-sim

Component Libraries & Part Sourcing

LibraryParts CountFormatsAPI
SnapEDA5M+ symbols/footprintsKiCad, Altium, Eagle, EasyEDAREST
Ultra Librarian12M+ partsAll major EDA formatsREST
LCSC / EasyEDA Lib600K+ in-stockEasyEDA, KiCad (converter)REST
Samacsys (Mouser)8M+ partsAll formats + 3D STEPPlugin
KiCad Official20K+ symbols/footprintsKiCad nativeGit
Component Search EngineAggregatorAll formatsYes

ESP32 Custom Board Design Guide

The key transition from prototype to product. Custom ESP32 boards cost $2-5/unit vs $25+ for dev boards.

Minimal ESP32 Board

  • ESP32-WROOM-32E module
  • AMS1117-3.3 regulator
  • 10uF + 22uF caps
  • 10k pull-up on EN
  • USB-C + CP2102N UART
  • Boot/Reset buttons
  • LED on GPIO2
$0.40/board (PCB qty 10)
BOM: $3.50/board (qty 100)

IoT Sensor Node Board

  • BME280 environmental (I2C)
  • TP4056 LiPo charger
  • 18650 battery holder
  • Solar panel input (6V)
  • Battery voltage divider
  • LoRa module header (SX1276)
  • SMA antenna connector
$0.60/board (PCB qty 10)
BOM: $8.50/board (qty 100)

Motor Controller (48V)

  • ESP32-S3-WROOM-1
  • Gate driver IC (IR2110)
  • SiC MOSFET power stage
  • Current sensing (ACS712)
  • CAN bus transceiver
  • Isolated gate driver PSU
  • 4-layer PCB, 2oz copper
$4.80/board (4-layer qty 10)
BOM: $35-60/board (qty 100)

ESP32 PCB Design Rules

ParameterMinimumRecommendedNotes
Trace width (signal)0.15mm (6 mil)0.25mm (10 mil)Standard signal traces
Trace width (power)0.5mm (20 mil)1.0mm+ (40 mil+)1A per 0.5mm (1oz Cu)
Trace clearance0.15mm (6 mil)0.2mm (8 mil)Between different nets
Via drill size0.2mm0.3mmSmaller = higher cost
Via annular ring0.15mm0.2mmPad radius minus drill radius
Board thickness0.6mm1.6mmStandard for most apps
Copper weight1oz (35um)1oz signal / 2oz power2oz for high current
Antenna clearance15mm keepout zoneNo copper under antenna
Decoupling caps<5mm from IC pin100nF on every power pin

Desktop PCB Prototyping

Voltera V-One

Desktop PCB printer — conductive ink traces + solder paste directly onto FR-4.

  • Trace width: 0.2mm min
  • 2-layer with via rivets
  • Built-in reflow oven
  • 30-90 min per board
$4,199

Bantam Tools Mill

CNC mill carves copper traces from copper-clad FR-4 boards.

  • Trace width: 0.15mm min
  • 2-layer with plated vias
  • Accuracy: ±0.076mm
  • 15-45 min per board
$3,899

DIY Chemical Etching

Traditional photoresist + chemical etching for budget prototyping.

  • Trace width: 0.3mm practical
  • 1-2 layers
  • Ferric chloride etch
  • 2-4 hours per board
$50-200 equipment kit

PCB Fabrication Services

ServicePCB (5pcs)SMT AssemblyTurnaroundParts LibraryBest For
JLCPCB$2.00$8+ setup24hr - 5 daysLCSC (600K+)Best price, EasyEDA integration
PCBWay$5.00$30+ setup24hr - 7 daysVariousFlexible options, stencils
AllPCB$5.00$25+ setup24hr - 5 daysYesMulti-layer, flex-rigid
OSH Park$5/sq inch12 daysUS-made purple boards
Seeed Fusion$4.90$20+ setup3-7 daysYesOpen hardware community
MacroFabQuoteTurnkey5-15 daysFull sourcingUS-based turnkey
Euro Circuits€29+Full3-7 daysYesEuropean, high-quality