Lookup/Troubleshooting/I hear nothing
Nothing decodes at all
Silence is not a diagnosis. Four causes produce identical empty output, and the whole job is turning that silence into one positive result.
Four completely different failures produce the same empty screen:
- The meter does not transmit, or transmits outside the band
- The antenna is wrong, broken, or the wrong length
- The dongle is not working, or its driver is wrong for it
- The decoder is configured for the wrong band or message type
Work them in that order. Not because it is the technically logical sequence, but because that is the order of cheapness — the first two cost nothing to check and account for the large majority of cases.
1. Prove the meter is a valid target
Free, takes two minutes, and invalidates everything else if it fails.
Look up the FCC ID from the faceplate. 288 of the 933 meter radios in the FCC dataset transmit outside 902–928 MHz entirely — licensed UHF near 450–470 MHz, the old 950–960 MHz utility band, 2.4 GHz, or an inductive pad that never transmits at all. If yours is one of them, no receiver you can buy for $40 will hear it and the rest of this page is wasted effort.
If there is no FCC ID anywhere on the meter, that settles it too: no FCC ID means no intentional radiator. Check your other two utilities instead — they were installed by different companies at different times.
2. Prove the antenna — against your neighbours
This is the step that gets skipped and the step that most often finds the fault.
On one deployment, an entire working receiver went deaf after a hardware move. A full day went into driver versions, sample rates, and service configuration. Both dongles tested clean on a bench.
The cause was a physically bad antenna element. Swapping the radiator fixed it immediately. Every hour spent in software was spent on a component that was never broken — because a dead antenna and a silent meter produce identical output, and there was no positive result anywhere in the system to reason from.
The fix for that whole class of problem is to stop trying to receive your meter and receive anybody's:
rtl_433 -f 915M -s 1024k
No ID filter, no message type, everything on. In any residential neighbourhood this should produce strangers' meters, weather stations, tyre-pressure sensors, and doorbells within a few minutes.
- Something appears → the antenna and receiver are good. Your problem is elsewhere; skip to only neighbours.
- Absolutely nothing appears → suspect the antenna, hard. Continue below.
The antenna checks, in order
- Length. A quarter-wave at 915 MHz is 8.2 cm. The telescopic whip in a cheap SDR kit is cut for VHF/UHF television and is roughly four times too long. Collapse it to 8.2 cm, or buy a whip actually specified for 900–930 MHz.
- Continuity. Elements break internally, and a broken element looks exactly like a good one. If you have a second antenna, swap it — substitution beats inspection.
- Ground plane. These whips need one. The magnetic base in the kit is the ground plane; sitting the antenna on a wooden desk with nothing underneath it costs you real signal.
- Position. Get it away from the computer and toward a window. A Raspberry Pi is an unshielded digital board radiating broadband hash right through 900 MHz. A $6 USB extension that moves the dongle 50 cm away is frequently a bigger improvement than a better dongle.
3. Prove the dongle
rtl_test -t
You want a tuner type reported and no USB errors. Two specific traps:
The V4 does not use the R820T2 that every other dongle uses — it uses an R828D, and it requires a librtlsdr build that knows about it. On an older distribution the V4 will be detected, will appear to open successfully, and will return noise or nothing, with no error message pointing at the cause.
If you have a V4, install RTL-SDR Blog's own driver fork before drawing any conclusion about your meter.
Every dongle ships as serial 00000001. Run two and librtlsdr cannot
tell them apart, so your services will fight over whichever enumerates first — and
the symptom is intermittent, which makes it expensive to diagnose. Set unique
serials once with rtl_eeprom -s and address them by serial, never by
index. Full detail on the hardware page.
Also worth ruling out: power. RTL dongles draw more than a typical USB device, and an underpowered supply or an unpowered hub produces intermittent USB resets that present as random decode failures rather than as an obvious hardware error.
4. Prove the band, then the decoder
If the antenna and dongle are both proven and you still have nothing, look at the spectrum directly rather than through a decoder. A sweep answers "is there any energy here" without any protocol assumptions:
rtl_power -f 902M:928M:25k -i 10 -e 10m sweep.csv
Meter traffic shows up as narrow, intermittent spikes scattered across the band — not as a steady carrier. If the sweep is flat, the problem is still upstream of the decoder. If there are spikes but nothing decodes, now it is worth suspecting configuration:
- Message type. Ask for all of them at once. A gas meter sending SCM+ is
invisible to a decoder listening only for SCM.
rtlamr -msgtype=scm,scm+,idm,r900,r900bcd -filterid= - Frequency. Do not park on a single number. A grant of 910–920 MHz means the device may operate anywhere in that span and will typically hop within it — the authorised band is not a tuning target. Let the decoder work a wide capture.
- Sample rate. Too low a rate narrows your window and you can miss the channel
entirely. 1.024 MSPS is a reasonable floor;
rtlamrdefaults are sensible and usually best left alone.
When to stop
If a wide unfiltered capture over fifteen minutes produces neighbours' meters but never yours, the honest answer may be that your meter has no radio in it — and that is a real result, not a failure of method. It is also the single most common outcome. At one surveyed address, exactly one meter of three transmitted: the gas meter decoded, the mechanical water register was silent, and the electric induction disk was silent because it contains no electronics at all.
One in three is normal. Two silent meters is not a setup you failed to configure.
Next
Where this leads.