# Automaticphysics Kicad-EMS — Antenna Designer > Antenna Designer is a plugin for KiCad's PCB editor (pcbnew) for designing > and simulating PCB antennas without leaving the board editor. There are two > ways to work: simulate the board you already have, with a bundled FDTD field > solver that meshes your real copper, stack-up and drills; or design an > antenna from scratch with a wizard > that sweeps a topology's dimensions, ranks the candidates by how well they > match at your target frequency, and places the winner on the board as a > footprint. No deep EM background is required to get an answer — the mesh, the > boundaries and the run length are all worked out from the board and the > frequency you name — and nothing is held back from the engineer who would > rather set them: it is the same solver either way, on real boards. It is free > to download and use, with no account to make and no trial period to run out. This file is the homepage said in plain text, for language models and other readers that would rather not parse a page of markup, with more detail on the two things the page shows in figures rather than words: how the mesh is built, and how a dimension sweep runs. It follows the [llms.txt](https://llmstxt.org/) convention. The page it summarises is ; the fullest documentation is the plugin's own [README](https://github.com/admin-2026/kicad_ems_plugin_pub), which is where anything here was taken from and where it should be checked against. ## The two ways to use it **Simulate the board you have.** The solver meshes the layout itself — copper, stack-up and drills. Rebuilding a board inside a field solver is slow work, and keeping that copy honest is worse: every trace moved on the real board has to be repeated in it, and when someone forgets, the simulation carries on giving confident answers about a board that no longer exists. There is no second model here to drift. The only thing marked by hand is where the antenna is fed, and what comes back is a full antenna report: how it radiates, how well it is matched across the band, where the current runs on the copper, and where the power that does not radiate went instead. **Design an antenna from scratch.** Several topologies ship as wizards — among them an **L-shaped monopole** and a **meandered inverted-F** — and the set grows with each release. Mark the area the antenna may occupy, choose which dimensions to sweep — the resonant length, the track width, the topology's own knobs — and the plugin simulates the candidates and ranks them on how the antenna performs: the match at your target frequency, and the other figures that decide whether a design is worth having. Each candidate is simulated on a copy of the board, so the board itself is never modified. The winner can be placed as a footprint and saved for reuse. ## Unique features - **The simulation lives in the board editor.** Not a separate application with the layout exported into it: the answer comes back in the window the board is drawn in, with nothing to export and nothing to import. - **The model is the board.** Other field solvers ask you to build the geometry again in their own terms. This one reads the copper, the outline, the stack-up and the drills the board already has, so the thing simulated is the thing that will be fabricated — and it stays true after the next layout change, with nothing to re-export. - **The mesh is derived, not written.** The usual FDTD workflow has you place mesh lines by hand, in a script, and get quietly wrong answers when you place them badly. Here the cell sizes are measured off the board and the band. - **It designs, not just checks.** Most tools tell you how the antenna you drew performs. This one takes a rectangle of free board area and a target frequency, searches a topology's dimensions by simulating the candidates, and hands back a footprint placed on the board. Analysis and synthesis are the same tool. - **It runs on your machine.** A self-contained solver ships in the package — nothing to install beside it, no cloud queue, no account, and no board of yours leaving the building. ## Easy to pick up, built for real work The inputs are the two things a board designer already knows: the frequency the antenna is for, and what the layers are made of. Everything an EM tool normally asks an expert to choose is derived from those and printed for you to see — the cell size, the absorbing boundary and how far out to put it, the feed port's axis and width and the gap cut through it, and how long the run has to be before the answer has settled. Marking the feed is a click on the trace. What that leaves is a plain sequence — set the frequency, click the feed, look at the mesh, run it — and a report written to be read rather than decoded: one gain figure rather than several a fraction of a dB apart, an efficiency breakdown that adds up instead of leaving the arithmetic to you, and plots that state their frequency, impedance and VSWR in words rather than waiting to be hovered over. The guardrails matter more for a beginner than for an expert, because a wrong EM answer looks exactly like a right one. Rather than let a badly posed run finish and hand back a confident pattern, the plugin refuses it and says which part of the board it could not honour — see below. And nothing has to be paid for on faith: the mesh is viewable before the solve, and a slider previews candidates before any of them are simulated. None of this is a beginner mode with the real tool behind it. There is one solver and one full-wave solve; the derived numbers are printed rather than hidden, and any of them can be set by hand by someone who wants to. What the automation removes is the setup, not the physics — the answer is meant to be good enough for boards that go to fabrication, and for the professional work that gets paid for. There are [example boards](https://github.com/admin-2026/kicad_ems_plugin_examples) to open and simulate, which is the shortest way to see a real run end to end. ## The mesh builds itself Meshing is the part of EM simulation that usually costs the day, and here there is nothing to draw. The plugin exports the board's own fabrication data — the copper layers, the outline, the plated and non-plated drills — and the solver rasterises that directly. Traces, pads and slots land at their drawn width; a multi-layer stack-up stacks at the thicknesses the board setup already states; plated holes become vias tying the inner planes to the top, and non-plated ones are drilled out of the substrate. There is no second model to build, and none to keep in sync when the layout moves. The cell size is measured off the board rather than guessed. It has to be fine enough to carry the wave at the top of the band and fine enough to resolve the thinnest copper the feed drives, and the tighter of those two requirements wins; the copper is measured from the drawn shapes, so the answer does not depend on where the feed marker was dropped. Too coarse on either count and the antenna resonates in the wrong place — which is the mistake a default cell size quietly makes for you. The lattice is graded, not uniform, so resolution is spent where the RF current is: fine over the board, coarse through the air margin and the absorbing boundary, and finer again in a window pinned across the feed, so the gap the port drives survives the grid instead of being painted shut — the failure that otherwise turns into a confident, wrong answer. The vertical cells are sized per dielectric slab, with a node landing exactly on each foil. Copper is modelled as zero-thickness sheet rather than a 35 µm slab, which keeps the foil from setting the timestep and is worth roughly 3.5x on the length of a run. The air margin follows the analysis wavelength, far enough out that the absorber sits clear of the antenna's reactive near field. None of which is hidden from you. The mesh can be looked at in 3D, with its cell counts, before any time goes into the solve; every number the rules arrived at — the cell size, the vertical cells, the air margin — is printed in the run log; and any of them can be set by hand instead, if you want the mesh finer than the board asked for. And when the board asks for something the mesh cannot deliver, the run says so in as many words rather than running anyway. A feed marker that is not on copper stops the run; a cell too coarse for the trace it has to resolve is called out with the numbers that make it wrong ("cell 0.4 mm resolves only 11 cells per wavelength"). Each of those messages carries a short code, so it can be looked up, searched for, or quoted in a bug report. The alternative — the one this exists to avoid — is a run that finishes and hands back a radiation pattern that looks perfectly reasonable and is off by a band. ## Templates and the dimension sweep The wizards are for the other half of the job: not "is this antenna any good?" but "what shape should it be?" Each ships as a topology with its dimensions exposed — an **L-shaped monopole** and a **meandered inverted-F** are two of them, more arrive with later releases — and none of them asks you to draw anything. 1. **Mark the area.** Say where the antenna may live and which edge it is fed from. That is the whole of the geometry the designer needs; the topology supplies the rest. 2. **Choose what varies.** Pick the dimensions to sweep — the resonant length, the track width, and the topology's own knobs. Moving a slider previews that candidate on the board, so the space being searched is visible before anything is simulated. 3. **Scan.** Each candidate is meshed and solved in full, on a *copy* of the board — the board itself is never touched — and the results table ranks them on the figures that matter for the antenna, the match at the target frequency among them. Every number in the table came out of a simulation of that candidate, not out of a formula interpolated between two of them. 4. **Place the winner.** **Generate + place footprint** puts it on the board as an ordinary footprint, saved for reuse on the next design. A scan is long-running work treated as such. Progress goes to a live log while the board editor stays usable; a run can be stopped early and still produce a report from what was simulated, or sampled mid-run without stopping. Results are saved beside the scan, so reopening the plugin days later brings the ranked table back rather than re-running the sweep. ## Requirements - KiCad 9.0 or later is recommended. - Windows, Linux and macOS are all supported. One package carries the simulator for each, and the plugin runs whichever belongs to the machine it starts on. The Windows and Linux builds are x86-64; the macOS build is Apple Silicon (ARM). ## Installing Download `AntennaDesigner--pcm.zip` from the repository's [`dist` folder](https://github.com/admin-2026/kicad_ems_plugin_pub/tree/main/dist) — the [releases page](https://github.com/admin-2026/kicad_ems_plugin_pub/releases) keeps the older versions — and let KiCad install it: 1. **Plugin and Content Manager → Install from File…**, and pick the zip. 2. Restart KiCad. The package is a plain zip, so the install is only a folder copy and can be done by hand if the manager refuses the file: unzip it, put the `plugins` folder inside it into the directory that **Tools → External Plugins → Open Plugin Directory** opens, and rename it to `antenna_plugin`. On Linux and macOS, check afterwards that the solver binary in `antenna_plugin/binaries/` is still executable (`chmod +x`) — some archive managers drop the execute bit. ## Using it To simulate an existing board: set the pattern frequency and the layer materials; press **Generate feed marker** and click the feed trace; press **Generate grid** for a look at the mesh; press **Run simulation** for the full solve. To design one: pick a designer in the sidebar (**L-monopole**, **Inverted-F** and the others); place the area marker, a rectangle with a triangle marking the feed edge; choose the dimensions to sweep; press **Start scan**; then **Generate + place footprint** for the winner. A full solve takes anywhere from minutes to several hours, and can be stopped early or sampled as it goes, as above. Everything a run produces — inputs, configs and results — goes in a `simulation/` folder beside the board file, inside the KiCad project directory. A run comes back as one report rather than as something to plot afterwards. It carries the far field — a rotatable 3D radiation pattern, the principal-plane cuts, the pattern drawn over the board itself, peak directivity and gain — and the port, swept across the band: input impedance, return loss (|S11|), VSWR and a Smith locus with the target frequency marked. Alongside those it shows where the current actually runs, as a surface-current map on each copper layer, which is what tells you whether the radiator or the ground return is doing the work; and an efficiency breakdown accounting for all of the power the source offered — radiated, reflected and lost — as shares of one number, so a well-radiating antenna that is badly matched is not flattered. ## Licence **Free to use.** Download it and run as many simulations as you like. Personal projects, teaching and research are all free, the reports they produce are yours to publish or print, and the package may be passed on unchanged to anyone else. The plugin itself is MIT, so it can also be read, changed and shipped. The simulator it carries is free for non-commercial use. ## Links - [Homepage](https://www.automaticphysics.com/): the same material as this file, with the figures — an interactive 3D radiation pattern, the meshed board, and two screen captures of the plugin at work. - [Repository](https://github.com/admin-2026/kicad_ems_plugin_pub): the plugin itself, and the fullest documentation there is. - [Getting started](https://github.com/admin-2026/kicad_ems_plugin_pub#getting-started): both workflows, step by step and with screenshots. - [Downloads](https://github.com/admin-2026/kicad_ems_plugin_pub/tree/main/dist): the current package; [releases](https://github.com/admin-2026/kicad_ems_plugin_pub/releases) keeps the older ones. - [Examples](https://github.com/admin-2026/kicad_ems_plugin_examples): boards to open and simulate. - [Licence](https://github.com/admin-2026/kicad_ems_plugin_pub/blob/main/LICENSE): MIT for the plugin; `LICENSE-solver.txt` for the simulator. - [Development](https://github.com/admin-2026/kicad_ems_plugin_pub/blob/main/docs/DEVELOPMENT.md): building, packaging, the module layout, and how to add an antenna topology. - [Discord](https://discord.gg/XDY6EE5WA): where questions are answered, and where a commercial licence is arranged. ## Terms it may be searched for KiCad antenna simulation, PCB antenna design, FDTD solver, electromagnetic simulation in KiCad, pcbnew plugin, antenna design wizard, L-shaped monopole, meandered inverted-F antenna, dimension sweep, return loss, S11, VSWR, Smith chart, impedance matching, radiation pattern, directivity, gain, antenna efficiency, 2.4 GHz board antenna, automatic mesh generation, automatic meshing, no manual meshing, mesh from gerbers, graded mesh, non-uniform grid, cell size, cells per wavelength, mesh preview, antenna template, parametric sweep, parameter scan, antenna optimisation, candidate ranking, footprint generation, antenna simulation for beginners, EM simulation without deep EM expertise, antenna design for PCB designers, free antenna simulator, offline EM simulation, alternative to script-driven FDTD.