Repository navigation
v0.6.2 - Measured like a tester
Somewhere on the second day I noticed I was no longer measuring Bluetooth.
I was measuring the thing that measures Bluetooth, against a fake transmitter and a fake tester I had built to check how well it measures. Then I measured how long all that measuring took. Then I measured whether measuring faster changed the measurements. It did, so I put it back and measured again. Then again, to be sure. Then once more, because by then I no longer trusted the one that told me to be sure.
The old i3 this is developed on has stopped making eye contact with me.
What came out of it: some numbers moved. Most by a few percent, and one by a factor of two, which is exactly the kind of thing you want to find before anyone else does. 😌
The figures a tester would give you
0.6.1 made NET honest about what it measured. This one makes it measure what a Bluetooth tester measures. The SIG's test suites (RF-PHY.TS for LE, RF.TS for classic) define df1, df2, the initial carrier and the drift on special test patterns. sdrtop now reads the same quantities, by the same definitions, from the ordinary traffic in your room, and a reference built from those suites holds it to them in every test run.
Building the reference was humbling:
- a classic transmitter sending a modulation index of 0.88 read 0.28 to 0.54. It now reads 0.93, as a compliant tester does;
- BLE df2 sat 8.7 % low, because at four samples a symbol the straight line between two readings runs under the curve;
- classic Bluetooth counted, live, about one packet in five, and fitted its slot timing to the survivors.
All fixed. A classic piconet also gets a CARRIER section of its own: f0, drift and drift rate against the limits in the Core Specification. A reading taken while the next channel was shouting is refused, not bent.
Faster, at parity
The rule was simple: a speed-up stays only if the reference prints the same figures to the last digit. Two did not, and are gone. The rest, on the i3:
| View | 0.6.1 | 0.6.2 |
|---|---|---|
| Classic, 4 Msps | 1.91x real time | 0.73x |
| Classic, 20 Msps | 11.22x | 3.28x |
| Survey, 20 Msps | 1.52x | 0.99x |
The Classic view at 4 Msps now keeps up with the radio on a machine that was chosen for being slow. The Survey spends some of the room on marking classic hits in the coexistence history, on as many channels as its measured load allows, and says so when it has none.
What is honest to say
These figures are held to a reference built from the specification. That is not the same as a real tester next to a real transmitter, and I am not going to pretend it is. That comparison is the next job.
Upgrading
No config change, and the export columns are the same; the numbers in them are just read better now.
cargo install sdrtop --lockedOr the installer, same as before.
As ever: if a number looks wrong, it might be. Open an issue, ideally with the CSV. ❤️
Full Changelog: v0.6.1...v0.6.2