Skip to the content
PCBKitNew board
4 layers30 × 14 mmSma launch, the printed circuit board in 3D

Entirely vibecoded python KiCAD to EMS wrapper for validation of EM structures.

Size
30 × 14 mm
Copper layers
4
Thickness
1.65 mm
Parts
3
Nets
2
Pads
14
Tracks, vias
1, 28
Pours
3
Routed
Yes
KiCad
KiCad 10.0 (file 20260206)
Created
9 Oct 2026
Updated
7 Nov 2026

Overview

Sma launch is an open-source printed circuit board by lowprocess, from the lowprocess/kicad2ems repository on GitHub, published under the GPL-3.0 licence. It is a 4-layer board of 30 × 14 mm with 3 parts on 2 nets, routed with 1 track and 28 vias.

README

README.md

kicad2ems

kicad2ems simulates KiCad boards. It reads the stackup, copper, vias and outline from a .kicad_pcb, takes ports from marker footprints and R/L/C parts from the components, and solves the board with one or more electromagnetic solvers. Each run writes Touchstone S-parameters, plots, a JSON summary and an HTML report that compares the solvers.

kicad2ems is the core: the board model, the line model, the settings, the runs and the results. The rest are packages of their own, each in its repository:

RepositoryWhat it isInstalled with
kicad2ems-guithe window: settings, runs, plots, fields, antennas, the Filter pagepip install '.[gui]'
kicad2ems-ipcthe KiCad plugin: the impedance map, and simulations set up from the PCB editorKiCad's Plugin and Content Manager
kicad2ems-fdtdthe FDTD solvers, openEMS and gfdtd, on one shared FDTD modelpip install '.[openems]', '.[gfdtd]'
mom25dthe 2.5D Method-of-Moments solver, with its kicad2ems pluginspip install '.[mom]'
gfdtda 3D FDTD engine for the GPU or the CPU (kicad2ems-fdtd runs it)pip install '.[gfdtd]'
dfsynthdistributed filter synthesis (the GUI's Filter page)pip install '.[filter]'
SolverNameBest forNeeds
openEMS (3D FDTD)openemsanything: planes, board edges, connectors, enclosures, antennasopenEMS, and the openems extra
mom25d (2.5D method of moments)momplanar circuits over a ground plane: filters, couplers, matching networks, patch antennasthe mom extra; a GPU optional
gfdtd (3D FDTD on the GPU)gfdtdopenEMS's model, 8–20x faster on a GPU, ~2x on the CPU, without conductor lossthe gfdtd extra; a GPU, or its compiled CPU core
Transmission-line modellinesa quick estimate: impedance steps, delays, layout mistakesscikit-rf or qucsator

By default kicad2ems picks the full-wave solver it expects to be fastest for your board and adds the line model (which solver).

Gallery

The KiCad plugin beside KiCad's PCB editor, set up to simulate an HDMI pair

The KiCad plugin beside KiCad 10's PCB editor with its CM5 Minima demo board: the HDMI D0 pair selected in KiCad, and the region and ports the plugin set up around it.

The impedance map filling in An HDMI section read on the map The pair's S-parameters against the line model

The impedance map of the board's 94 signal nets filling in; the HDMI pairs against their 100 ohm class, a section read out at the bottom; the D0 pair's mixed-mode S-parameters from gfdtd (solid) and the line model (dashed).

Differential E field of the HDMI pair

The same pair driven differentially from the module: its E field just inside the F.Cu and B.Cu dielectrics, in dB re the peak (30 dB range), from gfdtd's field dumps of the two legs' runs.

3D field of a patch antenna 3D field of a stub notch filter

The E field of a 2.45 GHz patch antenna (--dump E@volume+12@2.45) and of a stub notch filter at its 2.4 GHz notch, over one period: the GUI's 3D field view, translucent over the copper.

S-parameters of a hairpin filter from three solvers

A hairpin band-pass filter solved by gfdtd (FDTD), mom25d (MoM) and the line model (qucsator), overlaid in the GUI with a Smith chart.

Surface current standing wave Antenna panel

Left: mom25d's surface current on the stub notch at 2.4 GHz (--mom-dump 2.4 --dump-animate gif): the quarter-wave stub holds the standing wave and nothing passes it. Right: the patch in antenna mode: match, gain and efficiency over frequency, polar cuts.

mom25d's mesh in the GUI's plan view Transmission-line sections

The hairpin's mom25d mesh in the Viewer's plan (rings of thin cells along the copper's edges), and the line sections the line model finds. kicad2ems-gui's tools/readme_media.py makes these pictures again from the examples; the plugin's were recorded from KiCad 10, driven by a script.

Features

  • KiCad import (KiCad 5 to 10): stackup, tracks, arcs, zones, graphics, pads, vias and outline. Gerber files work too.
  • Ports from footprints with a Fab text P1, P2, …, including differential pairs (P1+ / P1-) and gap ports for antennas.
  • Lumped parts from two-pad R/L/C footprints.
  • Antenna mode: gain, efficiency and radiation patterns; phased arrays steered after the run.
  • Field dumps of E, H or current density: images, animations, and a 3D view.
  • GUI (kicad2ems-gui) for setup, preview, progress and results.
  • KiCad plugin (KiCad 9+, IPC API): the open board's trace impedances in the PCB editor, and a region with ports to simulate (KiCad plugin).
  • GPU acceleration for gfdtd and mom25d: any GPU through Vulkan, or CuPy on CUDA or ROCm.
  • Solver plugins: other solvers can be added as packages.

Install

Linux and macOS:

bash
git clone https://github.com/lowprocess/kicad2ems.git && cd kicad2ems
./setup.sh
source .venv/bin/activate

Windows (Python 3.10 or newer from python.org, and Git):

bat
git clone https://github.com/lowprocess/kicad2ems.git && cd kicad2ems
py install.py
.venv\Scripts\activate

The installer (install.py; ./setup.sh runs it) asks where to install (a venv in this checkout by default, or for your user, system-wide, or into the Python itself) and which optional parts you want: the GUI, the solvers and their compiled cores, a GPU package, openEMS, qucsator and a launcher entry. --yes takes the defaults. Getting started has the options and installing by hand. Without any full-wave solver, kicad2ems runs the line model alone; kicad2ems --check shows what your setup can run.

Quick start

bash
kicad2ems examples/rf_interdig.toml --preview            # model, mesh and line model only: seconds
kicad2ems examples/rf_interdig.toml --solvers mom,lines  # MoM and the line model: about a minute
kicad2ems examples/rf_interdig.toml --solvers all        # every solver, compared

Results go to examples/out/: filter_<solver>.s2p for each solver, plots, filter_run.json and filter_report.html. To simulate your own board, see Getting started.

Documentation

Start with Getting started, then Usage. The documentation index lists every page.

License

GPL-3.0-or-later (see LICENSE). kicad2ems uses openEMS (GPL-3.0-or-later) and CSXCAD (LGPL-3.0-or-later) as Python packages and runs qucsator (GPL-2.0-or-later) as a separate program. No third-party code is copied into the repository.

Parts

3
QtyValueFootprintReferences
2RF_Portmom25d:RF_PortTP1, TP2
1732511151ar_connector:Molex 73251-1151J7

Questions

How big is the Sma launch PCB?

It measures 30 × 14 mm and has 4 copper layers, 1.65 mm thick.

What parts does the Sma launch use?

3 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 Sma launch KiCad files?

From the lowprocess/kicad2ems repository on GitHub, at the commit this page was made from: the board is examples/sma_launch.kicad_pcb. PCBKit opens the board in the browser, with nothing to install.

Can I use the Sma launch design in my own project?

Its repository publishes it under the GPL-3.0 licence: you may reuse it on that licence's terms (keep the author's notice, and for a copyleft licence share your changes alike).

More from lowprocess/kicad2ems

1
  • 2 layers15 × 15 mmHairpin, the printed circuit board in 3D

    Hairpin

    lowprocess/kicad2ems

    Entirely vibecoded python KiCAD to EMS wrapper for validation of EM structures.

    2 parts2GPL-3.0

Similar boards

  • 4 layers44.7 × 29 mmPcb motor prototype 1, the printed circuit board in 3D

    Pcb motor prototype 1

    hackclub/OnBoard

    💡 Join 1,000 teenagers and make your first PCB with a $100 grant!

    3 parts915
  • 4 layers14.8 × 21 mmUsb splitter, the printed circuit board in 3D

    Usb splitter

    dennisss/dacha

    Monorepo for awesome tools/projects/libraries

    3 parts397Apache-2.0
  • 4 layers27.3 × 13.2 mmSiw, the printed circuit board in 3D

    Siw

    loxodes/vna

    Under development open hardware microwave vector network analyzer

    3 parts205
  • 4 layers33.5 × 15 mmCover c, the printed circuit board in 3D

    Cover c

    solokeys/solo-hw

    Hardware sources for Solo 1

    3 parts195CC-BY-SA-4.0
  • 4 layers19 × 9 mmSma dcblock, the printed circuit board in 3D

    Sma dcblock

    azonenberg/starshipraider

    Open hardware test equipment

    3 parts193BSD-3-Clause
  • 4 layers80 × 40 mmGround truth, the printed circuit board in 3D

    Ground truth

    Hongcheng-Gao/EngiWorld

    Engiworld: What Can Frontier Agents Deliver in Professional Engineering Environments?

    3 parts52MIT
  • 4 layers22.5 × 10 mmTransformer, the printed circuit board in 3D

    Transformer

    oresat/oresat-live-handheld-ground-station

    MCAD, ECAD, software, firmware, build instructions, and everything else you should need for the OreSat Live Handheld Ground Station project.

    3 parts20GPL-3.0
  • 4 layers6.5 × 7 mmQspi dfn8-host, the printed circuit board in 3D

    Qspi dfn8-host

    azonenberg/dumptruck

    FPGA based dumper for flashes and more

    3 parts17BSD-3-Clause