Antenna work has a credibility problem for hobbyists. You build a patch antenna, you hold it up, the signal bars look better, and you write "it works great" in your build log. Nobody — including you — knows whether that was the antenna or the fact that you moved two feet to the left. Real answers need a bench: repeated measurements on both antennas under matched conditions, statistics over the samples rather than eyeballing a peak, and a record of the conditions the numbers were taken under. That is lab equipment territory, and lab equipment is expensive. So: build the instrument in software, and point it at hardware for hobbyists.
Changing the paradigm on hobby antenna testingI etched a 2.4 GHz patch antenna on a whim. Then came the question every antenna builder faces: "is it actually any good?" The hobby answer is guesswork — hold it up, squint at the signal bars, move two feet, convince yourself. I wanted the answer a lab would give: repeated measurements under a stated procedure, statistics with error bars, and a record I could stand behind.
Antenna Lab is that bench: a Java 26 desktop app that turns an M5Stack Tab5 into an automated antenna test instrument — and its defining feature is that it refuses to overstate what the data shows.
The Tab5 is the instrument: it measures WiFi RSSI and carries an RF switch between its chip antenna and an external MMCX port. Antenna Lab is its pipeline:
The Java angle is not incidental. "Take Java where Java hasn't gone before" is the category, and RF test and measurement is squarely a place Java isn't. This is a domain owned by LabVIEW, MATLAB, and a long tail of Python scripts. The argument this project makes is that modern Java — virtual threads, structured concurrency, records, sealed types, pattern matching — is a genuinely good fit for real-time instrument software, and that the code comes out *cleaner* than the alternatives, not merely possible.
Why it mattersEvery home has the same unsolved RF problems: the room WiFi never reaches, the sensor that drops offline, the LoRa node that needs a better antenna. The moment you change an antenna you are running an experiment, whether you admit it or not. This bench is the difference between "the bars look better" and knowing, with error bars — built entirely from things you already own: a laptop and a $60 tablet. No VNA, no spectrum analyser, no lab.
Build it yourselfEverything is public and free:
1. App: clone [project-platypus-antenna-lab (https://github.com/Matthewjg95/project-platypus-antenna-lab), install Temurin JDK 26, `./gradlew :app:run`. Starts in synthetic mode — no hardware needed to try it.
2. Instrument: flash [Tab5-Antenna-Scope](https://github.com/Matthewjg95/Tab5-Antenna-Scope) onto a Tab5 with PlatformIO. It boots straight into the bench.
3. Antenna (optional): etch the [open-hardware patch PCB](https://github.com/Matthewjg95/project-platypus-patch-antenna), or measure any MMCX antenna you like.
GPLv3 software, CERN-OHL-S hardware.
What's nextSession A/B overlay, an S11 sweep on a real VNA (the measurement this rig honestly can't make), and SCPI support for bench instruments — every modern oscilloscope speaks it, and the screenshots-onto-a-flash-drive ritual at real test benches is two commands nobody wired up. This program will continue to be developed and used in personal projects.
---
Real measurements. Honest conclusions. Built from things you already own.










Comments