Skip to the content
PCBKitNew board
2 layers59.6 × 79 mmLoop coil, the printed circuit board in 3D

Generates a Loop Coil in KiCAD with select number of capacitive segments

Size
59.6 × 79 mm
Copper layers
2
Thickness
1.6 mm
Parts
13
Nets
7
Pads
27
Tracks, vias
27, 0
Routed
Yes
KiCad
KiCad 10.0 (file 20260206)
Created
17 Jul 2026
Updated
17 Jul 2026

Overview

Loop coil is an open-source printed circuit board by folkn, from the folkn/pcb-loop-coil-gen repository on GitHub. It is a 2-layer board of 59.6 × 79 mm with 13 parts on 7 nets, routed with 27 tracks and 0 vias.

Its parts include 12 capacitors and 1 connector.

README

README.md

pcb-loop-coil-gen

Generates a parametric, multi-segment, capacitor-loaded loop-antenna PCB in KiCad — entirely through the KiCad IPC API (kicad-python / kipy). PCB editor only; no schematic is involved.

It draws a ring of copper trace segments around a large center hole, bridges the gaps between segments with parallel capacitor sets, and feeds the loop through an edge-mount SMA connector. The board outline is a donut with a rectangular tab at the feed that borders the SMA connector.

Requirements

  • KiCad 10.x with the IPC API server enabled (Preferences > Plugins > Enable KiCad API)
  • Python 3.9+ and kicad-python built against your KiCad install (see kicad-python's own COMPILING.md)
  • The four footprints under libraries/ are already included (.kicad_mod files) — two custom hand-made parts, a Knowles part, and KiCad's stock trimmer capacitor copied out locally

Usage

  1. Open project/loop_coil.kicad_pcb in KiCad's PCB editor (or any blank .kicad_pcb), with the IPC API server running.
  2. Edit the parameters at the top of generate_loop_coil.py (hole diameter, trace width, number of segments, which capacitors to place, SMA orientation, etc).
  3. Run it against the open board:
    sh
    python generate_loop_coil.py
    This edits the currently open board in place as a single undo step. It does not save the file itself — save from the GUI (Ctrl+S) or call board.save() yourself.

If re-running against a board that already has a previous generation on it, clear it first:

python
from kipy import KiCad
board = KiCad().get_board()
board.remove_items(list(board.get_footprints()) + list(board.get_tracks()) + list(board.get_shapes()))

Topology

The loop is a circle of N trace segments and N gaps, evenly distributed by angle. One gap is the "feed" gap and contains the SMA connector; the other N-1 gaps each carry a user-chosen, identical set of parallel capacitors bridging the two neighbouring segments.

At the feed gap: coilLeft -- FEED_CAP_LEFT -- centerpad -- FEED_CAP_RIGHT -- coilRight. coilRight is tied directly (copper, no capacitor) to the SMA ground pads; centerpad drops straight down to the SMA center pin. One segment therefore shares the GND net with the SMA ground pads, while every other segment gets its own unique net (isolated by the capacitor gaps on both sides).

See the module docstring in generate_loop_coil.py for the full picture, and HANDOFF.md for implementation notes, environment quirks, and known simplifications (worth reading before making nontrivial changes).

Layout

text
generate_loop_coil.py   - the generator script; all user parameters are at the top
footprint_loader.py     - generic .kicad_mod parser + FootprintInstance builder (see HANDOFF.md
                          for why this exists: the IPC API has no "load footprint by name" call)
libraries/              - the .kicad_mod footprints this project uses
project/                - the KiCad project + board file
HANDOFF.md              - developer notes: environment setup, verification method, design
                          decisions and the reasoning behind them, known limitations

Verifying changes

Don't trust low-resolution renders for fine detail — small parts placed a fraction of a millimeter apart can look merged. Ground truth is the API: query board.get_nets() and each footprint's [(pad.number, pad.net.name) for pad in fp.definition.pads] to check wiring, and pull exact coordinates to check geometry (see HANDOFF.md for the matplotlib-based technique used during development). For a quick visual check, kicad-cli pcb export svg works well.

Parts

13
QtyValueFootprintReferences
7CAP_1111B-handgenerated:CAP_1111B-handC1, C3, C5, C7, C9, C11, C12
5C_Trimmer_Voltronics_JZgenerated:C_Trimmer_Voltronics_JZC2, C4, C6, C8, C10
1SMA_Amphenol_132289_EdgeMountgenerated:SMA_Amphenol_132289_EdgeMountJ1

Questions

How big is the Loop coil PCB?

It measures 59.6 × 79 mm and has 2 copper layers, 1.6 mm thick.

What parts does the Loop coil use?

13 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 Loop coil KiCad files?

From the folkn/pcb-loop-coil-gen repository on GitHub, at the commit this page was made from: the board is project/loop_coil.kicad_pcb. PCBKit opens the board in the browser, with nothing to install.

Can I use the Loop coil design in my own project?

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

Similar boards

  • 2 layers40 × 20 mmUsb uart, the printed circuit board in 3D

    Usb uart

    earthtojake/text-to-cad

    Design physical products with AI

    13 parts26kMIT
  • 2 layers35 × 29 mmMagSpoofTC, the printed circuit board in 3D

    MagSpoofTC

    samyk/magspoof

    A portable device that can spoof/emulate any magnetic stripe, credit card or hotel card "wirelessly", even on standard magstripe (non-NFC/RFID) readers.

    13 parts4.2k
  • 2 layers20.6 × 23.6 mmAO-03 signal amplifier, the printed circuit board in 3D

    AO-03 signal amplifier

    fossasia/pslab-scripts

    Pocket Science Lab - Scripts for Sensor Experiments

    13 parts1.6kApache-2.0
  • 2 layers47 × 35.6 mmMX7-C-35PL C11, the printed circuit board in 3D

    MX7-C-35PL C11

    rusefi/rusefi

    rusefi - GPL internal combustion engine control unit

    13 parts1.2k
  • 2 layers95 × 95 mmCube batteryboard, the printed circuit board in 3D

    Cube batteryboard

    willem-pennings/balancing-cube

    A cube that balances itself in a corner or edge using reaction wheels

    13 parts1.1kGPL-3.0
  • 2 layers15.2 × 20.3 mmPt100stick, the printed circuit board in 3D

    Pt100stick

    VoronDesign/Voron-Hardware

    Cool Hardware designed by the Voron Design group

    13 parts1.1kGPL-3.0
  • 2 layers53.9 × 23.2 mmBuffer, the printed circuit board in 3D

    Buffer

    hoglet67/RGBtoHDMI

    Bare-metal Raspberry Pi project that provides pixel-perfect sampling of Retro Computer RGB/YUV video and conversion to HDMI

    13 parts1kGPL-3.0