The Windows workbench
The workbench is antennaknobs packaged for Windows: the same program as
pip install "antennaknobs[web]", frozen with its interpreter and its
compiled solver so there is nothing to install. Download, unzip,
double-click.
Setting it up
Section titled “Setting it up”- Download
antennaknobs-workbench-windows.zipfrom the latest release (the direct link is releases/latest/download/antennaknobs-workbench-windows.zip; releases before v0.73.0 shipped the Python package only). The release also carriesantennaknobs-workbench-windows-v<version>.zip: the same file, named with its version so a saved copy says which release it is. The version-less name is what keeps the link above pointing at the newest release, so either download is fine. - Before extracting, right-click the downloaded zip, choose Properties, tick
Unblock and click OK. Windows marks a downloaded file, every file
extracted from a marked zip inherits the mark, and unblocking the one zip
before it becomes several hundred files is the easy moment: the
“Windows protected your PC” screen never appears, and the files keep their
own dates instead of the download’s. Then unzip it anywhere. Keep the
folder together — the two executables need the
_internalruntime beside them, and a lone copied-out.exeis the one way a correct download still fails. - Double-click
antennaknobs-workbench.exe. A console window opens, the server starts on this computer athttp://127.0.0.1:8000, and your browser opens at it.
Keep the console window open while you work; closing it, or Ctrl-C, stops the
server. Nothing is installed and nothing is written outside the folder —
delete the folder to remove it. The server listens on 127.0.0.1 only, so
nothing on your network can reach it.
The page shows the running version just below the bold “AntennaKNoBs” in the
upper left, so you can always tell which release you launched. To update to
a new release, extract the whole new zip into a fresh folder rather than
copying just the .exe over an old one — the exe runs whatever _internal
sits beside it, so a copied-in .exe next to an old _internal runs the old
code under the new file name, with no sign of that beyond the version shown
on the page and in the console’s startup line. If the console says the new
version and the page still looks like the old one — no version under the
title, a missing view in the rail — the browser has kept a cached copy of the
page for 127.0.0.1:8000: press Ctrl+F5 (Ctrl+Shift+R in Firefox) once, or
open the address in a private window.
First launch takes appreciably longer than the rest: Windows scans the unpacked folder once. Measured on a laptop, the self-test ran 17.7 s cold and 2.2 s warm, and the warm number is the one you live with.
Options, from a PowerShell or Command Prompt window in the folder:
antennaknobs-workbench.exe --port 8123 serve somewhere elseantennaknobs-workbench.exe --no-browser print the URL onlyantennaknobs-workbench.exe --selftest prove the bundle and exitantennaknobs-workbench.exe --nec5-exe PATH use the NEC-5 engine at PATHantennaknobs-workbench.exe --nec2-exe PATH use the NEC-2 engine at PATHantennaknobs-workbench.exe --settings PATH start from this settings.tomlA settings.toml sets where the workbench starts: its switches, ground,
solver slots and engine paths. See Where the workbench starts.
The port is worth leaving alone. Your browser keeps what it remembers about the workbench — which views are pinned to the rail, rail or grid, light or dark — against the address it visited, and the address is the port. Launching on 8000 every time is what carries those across restarts. If something else on the machine already holds 8000, the workbench takes a free port instead and the console says so; that window starts with the default rail.
--selftest is worth running once if you are unsure the download is intact:
it solves a known antenna and checks the answer against the value the
unfrozen package produces, then exits.
A shortcut for each way you work
Section titled “A shortcut for each way you work”Each settings file is one way of starting, so two shortcuts can start the
workbench two ways. Say one run should leave every engine deck and printout
in a folder with the frequency sweep off, and the other should sweep and
capture nothing. Keep the everyday settings in settings.toml, and write the
other way into a second file beside it, capture.toml:
[switches]freq_sweep = false
[capture]dir = 'C:\ak-captures'Then make a shortcut that starts from it:
- Right-click
antennaknobs-workbench.exeand choose Send to → Desktop (create shortcut). On Windows 11, Send to is under Show more options. - Right-click the new shortcut, choose Properties, and at the end of the
Target box type a space and
--settings "C:\Users\you\.antennaknobs\capture.toml", with your own user folder in place ofyou. - Rename the shortcut to say which it is, such as
antennaknobs (capture).
A second shortcut made the same way, without the flag, starts from
settings.toml. The capture folder is created on the first run, and the
console window’s startup summary names the settings file each shortcut
started from. Save as my defaults writes to that same file, so each shortcut
keeps its own defaults. An [engines] table serves only the file it is in,
while a NEC5_EXE.txt beside the program serves both shortcuts.
Adding your NEC-5 engine
Section titled “Adding your NEC-5 engine”The workbench solves with momwire out of the box. If you own a licensed NEC-5 engine it can drive that too, as a second engine beside momwire — see NEC-5 as a third engine for what that buys you (the workbench folder carries momwire; the PyNEC engine of the pip install is not in it). antennaknobs never bundles, downloads, or hosts the engine.
Put the engine’s full path on one line in a text file named NEC5_EXE.txt
beside antennaknobs-workbench.exe, then start the workbench again. The
NEC-5 tab appears in the solver panel.
Adding a NEC-2 engine
Section titled “Adding a NEC-2 engine”The same door, for an engine you may already own: put the path to a NEC-2
console binary on one line in NEC2_EXE.txt beside the executable (or start
with --nec2-exe PATH, or set NEC2_EXE), and antennaknobs drives it as a subprocess —
see NEC-2 as an external engine. 4nec2 installs one as
nec2dxs*.exe; nec2c and nec2++ are free. No NEC-2 is bundled on
purpose: nec2++ is GPLv2, and shipping it would change this download’s
licence.
The NEC-2 tab appears in the solver panel the same way the NEC-5 one does, and
--engine nec2 reaches the same engine from the command line.
If you run EZNEC Pro+, the engine is already on your disk. EZNEC keeps it
in its Docs folder — not under Program Files, where people look first —
and the filename carries a build suffix, so it is NEC5CL_x13.exe rather
than a bare NEC5CL.exe. Look for:
C:\EZNEC 7.0\Docs\NEC5CL_*.exeand copy the name you actually find. If you are not sure which engine EZNEC
is driving, open Docs\LastRun.log — EZNEC records every run there as
Running ext engine <full path>, which is the path to paste.
If you start the workbench from a window rather than by double-clicking, you can name the engine on the command line instead. The flag reads the same in PowerShell and Command Prompt, and wins over the file:
antennaknobs-workbench.exe --nec5-exe "C:\EZNEC 7.0\Docs\NEC5CL_x13.exe"The NEC5_EXE environment variable works too: it wins over the file and
loses to the flag. So does nec5_exe under [engines] in
settings.toml, which loses to the variable and wins over
NEC5_EXE.txt.
The command line
Section titled “The command line”antennaknobs-cli.exe in the same folder is the same program’s command line —
what python -m antennaknobs runs for someone who installed from PyPI, so the
CLI reference is its documentation. Open a PowerShell
window in the folder (Shift+right-click the folder background, “Open
PowerShell window here”) and put .\ in front of the name:
.\antennaknobs-cli.exe --help.\antennaknobs-cli.exe sweep --param nominal_nsegs --builder dipoles.invvee:dipole --engine momwire:bsplineThe second line is a convergence study: one cold solve per segment count, a
table of R, X and the change in reflection coefficient per rung, and a
Richardson-extrapolated Z* under it. With no --fn the chart opens in a
window with the matplotlib toolbar, so the Smith chart zooms and pans; add
--fn out.png to write the picture to a file instead.
It finds NEC-5 and NEC-2 the way the workbench does — the same NEC5_EXE.txt
and NEC2_EXE.txt beside it, the same variables and the same settings.toml
— so an engine set up once is set up for both. It does its work by running
antennaknobs-workbench.exe, which is why the two executables and
_internal have to stay together.
When you want the Python package instead
Section titled “When you want the Python package instead”The workbench is the no-install path. If you want antennaknobs as a library —
to write your own designs or script a sweep — install the package and follow
the Quickstart instead. The two are the same code; only
the packaging differs, and a pip install puts the same antennaknobs command
on PATH.
For the NEC-5 working group: the corpus tool
Section titled “For the NEC-5 working group: the corpus tool”The NEC-5 regression-corpus tool (scripts/nec5_corpus/ in the repository:
fetch the public NEC-2 decks, translate them for NEC-5, run them through
your engine, compare two runs) is not in the workbench. It is published
on its own, as a signed nec5_corpus-windows.zip under a release tag of its
own, nec5-corpus-v<version>; the newest is at the top of
the tool’s release list.
Unzip it and read the README.txt inside; it runs without Python, and anyone
with a working Python 3.8 or newer can run the script itself instead. A
security review of the script ships in the zip beside the exe and the
release notes carry the checksums. It is
rebuilt when the tool changes, not with every antennaknobs release.