Tracking down a Water Leak with RTLAMR

Earlier in the year Clayton discovered that his water bill had suddenly gone up one month. Suspecting a leaky appliance he set out to discover what it was by using an RTL-SDR and the rtlamr decoder. The rtlamr decoder is able to decode water meters that transmit usage data wirelessly via the Itron ERT protocol which is typically found in the unlicensed 900 - 920 MHz band in the USA and Canada.

Clayton wrote a simple Python script to plot the usage data extracted by rtlamr, and after a week determined that water was being consumed at 10 liters an hour even while away from home. Suspecting a leak in the toilets he turned off their valves and the next day saw that the reading remained constant when away, indicating that he'd found the leak.

A water leak graphed by decoding an Itron ERT water meter with RTL-SDR
A water leak graphed by decoding an Itron ERT water meter with RTL-SDR
Notify of

Inline Feedbacks
View all comments

I asked about this a few months ago on reddit, seeing if i could read my new smart water meter. I bought the beginner gear, but never figured out how to go about getting readings.


Water meters are less likely to use full time broadcast AMR (where readings go out constantly) due to their nature of being unpowered devices (they use permanent batteries that only xmit when triggered by a reader truck driving around). Getting RTLAMR running is stunningly easy. Plug the SDR into a linux system like an rpi and make sure its detected with driver modules (if not run a few get commands to download from a repo), install GO, download the software from github, run two commands, and bang youre meter-reading.