The antenna pattern your AP actually has
Vendor pattern plots are coarse, often years old, and rarely show all three bands. This rig spins a Wi-Fi access point on a turntable and listens to its beacons from a few metres away, building the real pattern at 2.4, 5 and 6 GHz, from a horizon cut up to the full sphere.
What it measures
Everything is shown the way the AP hangs in the building: face down on a ceiling, so the floor is straight below and the horizon is where most clients live. Two cradles cover the directions that matter.
Flat cradle: the horizon
The AP lies on its back and turns through 360°. One sweep gives the horizon ring, the cut that decides coverage down a corridor or across an open office.
Standing up: the whole sphere
The AP stands on the turntable, on one edge or on a corner in a printed wedge, and is rolled by hand in 15° steps. Each sweep is a vertical great circle through the face and back. Twelve roll positions add up to 432 readings covering every direction.
How a measurement works
The AP transmits its normal beacons. Nothing about it is modified, so the pattern is the one your clients see.
Step and settle
The turntable moves the AP 10° and settles. The final approach is always in the same direction, so gear backlash never shifts the angle.
Listen to the beacons, both ways
A spectrum analyzer 3 m away, level with the AP's centre, parks on each channel in turn for 4 seconds per stop. It waits on a level trigger so every scan holds a beacon: 5 and 6 GHz beacons are short enough that an untriggered scan misses most of them. At 5 and 6 GHz it averages five frequencies across the 20 MHz channel, because a single narrow slice dips and peaks from one angle to the next. The probe antenna picks up one polarization, so every position is measured twice, vertical and horizontal, and the two are added as power.
Check every pass against itself
Each pass starts and ends with the AP face-on to the probe. If those two readings disagree, the AP or the setup drifted and the pass is suspect. Sessions on different days are joined by repeating one cut and lining the two up. A second analyzer on the mast also records, but it hasn't been steady enough yet to correct the data with.
A client's view, too
An Oscium Nomad captures every beacon by BSSID at the same time, giving a second, client-like view of the same stop. It agrees with the analyzer at 5 and 6 GHz. At 2.4 GHz it runs out of headroom this close to the AP, so the analyzer is the reference there.
Map it
Turntable and roll angles become directions on the sphere, and the readings become a 3D pattern, a heat map and the classic polar cuts.
The rig
Built from printed parts and hobby-grade instruments, checked against each other on the bench. Nothing metal sits above the base.
| Turntable | Printed PETG, two 608 bearings on an M8 shaft, 4:1 GT2 belt, NEMA-17 stepper, hall-sensor homing |
|---|---|
| Roll | By hand: the AP stands on an edge or sits in printed wedges (15°, 30°, 45°), giving every 15°. A motorised roll ring is the next version. |
| Mast | ¾ inch PVC, cables run inside it |
| Probe | tinySA Ultra+ ZS407 with a directional antenna, 3 m from the AP, in its far field |
| Reference | A second ZS407 on the mast, recorded but not yet used to correct |
| Capture | Oscium Nomad, per-beacon RSSI by BSSID |
| Control | Raspberry Pi 5 at the turntable, a MacBook recording the session over one Ethernet cable |
| Site | Outdoors on open farmland, with the property's own Wi-Fi moved off the test channels |
Status
The first real pattern, a RUCKUS R770, is being measured now. The viewer switches to it once all twelve roll planes are in and checked.
- Sept 2026Turntable, cradles and roll disc designed and printed
- Sept 2026Turntable and roll firmware, Pi agent, instruments validated on all three bands
- Sept 29First field run: R770 horizon ring at all three bands, repeated the next night within 1 to 2 dB
- Sept 30R770 roll planes by hand, using printed wedges
- NextThe last R770 roll planes, then the full pattern published
- ThenA motorised roll ring for unattended full-sphere runs, then more APs, starting with the ones I deploy most