Reading “Smart Meters” with an RTL-SDR

rtlamr is a program that is capable of reading data from a variety of “smart meters”. It primarily works with Itron electrical, gas, and water meters, but there are other compatible 900 mHz ISM band meters that are supported. A full list of supported meters can be found here. The SDR dongle that I use is a Nooelec NESDR Smart v4, which can be found here.

I’ll be using the Windows version of rtlamr, but it is also available for Linux. Both versions are available on GitHub from Douglas Hall (bemasher). The Windows version of rtlamr are available as zipped pre-built binaries. You’ll also need a copy of the rtl-sdr binaries available here. After downloading and unzipping the 2 files (I put them in the same folder) you should have the following files:

Files included in the rtl-sdr binaries zip file

Before you can run rtlamr.exe you’ll first have to run the rtl_tcp.exe. With both programs running you’ll see something like this:

Screenshot of rtlamr running

rtlamr will display an endless stream of data. If you run it from the Command Prompt you have the ability to use flags. Running rtlamr -h will give you a list of flags, but I’ll mention the “-duration” flag. By using the command rtlamr -duration=” you have the ability to set the monitoring time in the form of “xhxmxs”, substituting x for a number. You can also use Ctrl+C to stop rtlamr at any time, however this will close the window if you ran it by clicking on the .exe file.

In the rtlamr output you will see the time that the reading was received, as well as the ID of the meter, the type of meter (listed below) and the reading, as well as tamper flags and a CRC value.

Meter Types:

  • Electric: 04, 05, 07, 08
  • Gas: 02, 09, 12
  • Water: 11, 13

I mainly did this as a bit of an experiment, however this can be useful for remotely monitoring your electrical, gas, or water usage.

Leave a Reply

Your email address will not be published. Required fields are marked *