Anechoic Chamber DF Test: Results (20 Oct 2026)¶
On 20 Oct we ran the planned chamber test (schedule task 1.04, supporting REQ-001 / KPP1 through TP-1). The good news: the follower drone's direction-finding chain ran for the whole test on battery, and its bearings were rock steady and repeatable. The bad news: the bearings were off from the true angle by much more than the requirement allows, by a pattern that repeats. Our photos of the setup point to the most likely cause: the metal cart the array was sitting on.
What we tested¶
The KrakenSDR receiver, its 5-antenna array and the Raspberry Pis rode on a wheeled cart on the chamber's center turntable, with the array's channel 0 pointed at the transmitter. The HackRF sat fixed at the chamber edge, about 2.5–3 m away, sending a steady 915.1 MHz tone. With the array at 0° we stepped the transmit power up until the Kraken locked on, then turned the table by hand in 30° steps all the way round (0° to 330°) and back to 0°, holding each stop for 30–60 s while every Kraken bearing was logged.

The test cart on the turntable. The array (five black antennas) is on the top shelf, right next to the KrakenSDR and its cables.
What "Kraken error" means¶
At each stop we compare how far the Kraken's bearing moved with how far the table actually turned. The difference is what we call the Kraken error.
It is what the Kraken reported in this setup, cart and mounting effects included. It is not the true direction-finding error of the array on its own. That distinction matters for the findings below.
Results¶
| Result | |
|---|---|
| Kraken error | 24.0° RMS over 11 positions (12.1° RMS after removing a constant offset); worst −44° at 310° |
| Precision | Median spread 0.36° at each stop |
| Repeatability | Repeat visits to 0°, 30° and 60° agreed within 1° |
| Direction | Correct: the bearing turns the same way as the table |
| Mount offset | 335.1° (the bearing reported with channel 0 pointed at the transmitter) |
| Signal level | No lock at TX gain 30 (−63 dB, just above the noise floor); solid lock at gain 40 and up (−59 dB or stronger) |
The measured angle follows the true angle in the right direction but falls short at every stop, then lines back up after a full turn:

The Kraken error at each stop. It isn't random scatter; it's a smooth, angle-dependent bias that gets worse past 240°:

The whole run over time. The top panel shows a steady 12-minute reference at 0°, then a staircase of steady bearings as the table turns. The bottom panel shows the signal strength:

What we think is going on¶
The Kraken finds a bearing by comparing the timing (phase) of the signal at its five antennas, assuming one clean wave arriving from the transmitter. Anything metal near the antennas reflects or blocks part of the signal and shifts those phases, differently at each angle. Because the cart turns with the array, that produces exactly what we saw: a smooth bias that repeats perfectly every time we come back to the same angle.
The setup photos made this our leading suspect:
- Metal cart and electronics under the array. The array sat on the cart's metal top shelf, beside the KrakenSDR, with cables running past the antennas and the battery station and Pis on the shelves below. At 915 MHz (wavelength about 33 cm), metal that close acts as a reflector.
- Signal strength backs it up. RSSI held within 0.1 dB at each stop but varied 13 dB between stops. An isolated array in an anechoic chamber should vary by only a few dB as it turns.
- The array was off the turntable's axis. Turning an off-center array moves it around a circle, which changes the true direction to the transmitter. That explains part of the shape, but not all of it.
- Hand-read angles. The table was turned by hand and read off its dial, with no independent check.
We also checked simple array faults in simulation (wrong antenna order, wrong array radius, cable phase differences). None of them reproduces the curve on its own.
What it means for the requirement¶
To meet REQ-001's 20–50 m position accuracy, bearings need to be good to roughly 1–3°. 24° is about 445 m of sideways error at 1 km, so this setup does not meet REQ-001, and RISK-1 (geolocation accuracy) stays High. The test did what risk mitigation 1.1 asked: it measured the bearing error without the reflections that ruined our indoor tests. In the chamber, multipath is no longer the limiting error; the setup is.
There's a hopeful sign: because the error repeats to within 1°, a per-angle calibration table could bring it close to that 1° floor (about 17 m at 1 km). That still has to be shown.
Other things we learned¶
- The whole chain ran untethered: Kraken → Pi 4 → Ethernet → Pi 5, all on the cart battery at about 1% an hour.
- Bearing direction and mount offset are now known, which the pose-pairing code needs (see the DOA app).
- The logger only caught 35% of the Kraken's updates (it caught 100% the day before). Every stop still had at least 18 samples, but we'll find out why; one suspect is having the Kraken's web display open during the run.
- The Ethernet cable didn't reach the chamber edge, so the transmitter's power was changed at the HackRF itself. The new background transmit mode kept it running without a connection.
- Not run (out of time): the gain sweep at 0° and 90°, the drone timing test, a repeat sweep and the leader drone's array.
Next steps¶
- Re-run test point 1.04 with a clean setup: the array alone on a non-metallic stand, centered on the turntable, electronics off the turntable, 15° steps in both directions, every stop tagged in the logger, and angles checked against tape marks. This separates setup bias from the array's real error.
- Inspect the array: measure its radius, confirm the antenna order, and use length-matched coax cables (planned in the bill of materials, not yet received).
- If a repeatable bias remains, build a per-angle calibration table, apply it in the DOA app, and re-test.
- Fix the logger's capture rate.
- Carry-overs: the gain sweep (with a longer cable), the drone pose/timing test and the leader array.
Current status of every test is on the Tests page.
The raw logs, analysis script, figures, setup photos and the full test report are in the
team's private repo under
tests/2026-10-20-anechoic-chamber/
(team members only).