CH1What it needs
- Python 3.8 or newer, standard library only, on a PC that reaches the scope's SCPI port (TCP 5555).
- A BNC cable from AUX OUT to a counting input set to 1 MOhm: one of the scope's own inputs (
--method aux-self), or better an input of a second DHO or MHO (--method aux-external), so the scope under test digitises its signal channel alone. - The signal comes from the scope's own generator by default: a 10 MHz square from 0 to 3 V into CH1.
python3 rate_kit.py identify --host SCOPE
python3 rate_kit.py measure --host SCOPE --method aux-external --counter COUNTER --counter-input 3
The README has the wiring, every option, the pitfalls we found, and every SCPI command the kit sends, each checked against Rigol's MHO900 and DHO800/DHO900 programming guides. METHOD has how we measured, with the raw numbers.
CH2Files
MIT licence (LICENSE). The zip holds everything below plus the raw runs (data/2026-10-16/, with serial numbers and addresses removed).
| File | Bytes | SHA-256 |
|---|---|---|
| rate-kit-2026-10-16.zip | 145,939 | c4af545c27b75cdf6ade61234de6ad91ced5d2a2904bd145adf1c9f0cd757762 |
| rate_kit.py | 75,120 | 66a9afb7f3351ba4b0e0d07fdfdd896a09b1bd06703a46f68e0f906a71002f51 |
| test_rate_kit.py | 29,110 | fe33bb6c03c888cb8ac98b058b07a2a55a43c6f9b5607affc79a8f0b12844454 |
| README.md | 32,848 | c5442357d38fd7227b01b3a9e2e537300e43d8123925421af0f14ec5f3a3ff3c |
| METHOD.md | 6,234 | 205d538e5f4331ad34d6916311afcec3e48aaf8b4a31e2a2ea6d9e37dc131f81 |
| LICENSE | 1,069 | 0f248fd800e1876da972b234d751e04f8ac6730364c6f9bc04bd0e1f89b62b06 |
| windows.csv | 8,616 | 957918a27c40dbca9eb634950e10a9756d2721a4c47be24911190095068f797b |
The same sums are in SHA256SUMS; check them with sha256sum -c SHA256SUMS. The kit's own tests run against a fake SCPI server: python3 -I test_rate_kit.py (37 tests).
CH3What we measured with it
Our results with the kit are on NovaOS vs stock, each with its date, method and raw data, and only while they are within a day old: the clean stock unit's rate counted from outside, and what a counter on the scope's own input and a measurement left on the screen cost it. Both lower the figure you are trying to measure. METHOD lists what we know is uncertain, and the zip holds every run of 2026-10-16.
Corrections and other people's numbers are welcome: send the rate-kit-<stamp>.json from your run, which holds the full command trace, to [email protected] or post in our EEVblog thread.