• Stars
    star
    120
  • Rank 294,259 (Top 6 %)
  • Language CMake
  • License
    GNU General Publi...
  • Created almost 11 years ago
  • Updated almost 3 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

A GNU Radio block that decodes packets transmitted by Elster R2S smart meters

gr-elster

Author: Clayton Smith
Email: [email protected]

This GNU Radio block and sample flow graph are intended to receive packets transmitted by Elster smart meters on the 902-928 MHz band. In particular, I have tested it with the Elster R2S hydro meters used in the Ottawa area. It may work with other Elster meters. Please let me know what you manage to receive with it.

It is not yet complete, as I have not fully reverse engineered the packet structure, nor the payload data. But it is able to dump complete packets, and can display meter readings and hourly electricity usage data. When running, it dumps all packets to the console in hex, and decodes those packets containing meter readings as follows:

Meter reading for meter #XXXXXXX: YYYYY kWh
Hourly readings: Z.ZZ, Z.ZZ, Z.ZZ, Z.ZZ, Z.ZZ, Z.ZZ

It also stores packets to a pcap file (beginning with elster-001.pcap) which can then be decoded using the decode_pcap.py script.

In my area, usage data is transmitted every six hours (beginning at 05:30, 11:30, 17:30 and 23:30 UTC), so it may be necessary to wait a while before such packets will appear.

The flow graph in /apps/elster_rx_multi.grc is intended for use with an RTL-SDR dongle, but can likely be used with other SDR receivers as well. It receives six out of the 25 frequency-hopping channels used in my area, but that should be sufficient to receive most traffic since packets are repeated a few times on different channels. The number of simultaneous channels is limited by the bandwidth of the SDR. An RTL-SDR dongle can reliably receive up to about 2.4 MHz, which is sufficient for six 400-kHz channels.

For best reception with an RTL-SDR dongle, set the frequency correction slider to the appropriate value (in PPM) for your particular tuner.

Build instructions:

mkdir build
cd build
cmake ../
make
sudo make install

If your GNU Radio is installed in /usr (rather than /usr/local), then replace the third line above with:

cmake -DCMAKE_INSTALL_PREFIX=/usr ../

After following the build instructions, be sure to restart GNU Radio Companion so that the new block will be available there.

Any help you can offer with reverse engineering or coding would be greatly appreciated!

More Repositories

1

sdr-examples

A collection of GNU Radio flow graphs
Python
375
star
2

secplus

A software implementation of the Security+ system used by garage door openers
Python
147
star
3

gr-dsd

GNU Radio block for Digital Speech Decoder
C++
131
star
4

gr-nrsc5

A GNU Radio implementation of HD Radio (NRSC-5)
Python
101
star
5

gr-qam

A QAM-64 transmitter for GNU Radio. This project was merged into GNU Radio in version 3.7.10.
Python
47
star
6

gr-ham

A collection of GNU Radio blocks useful for amateur radio
Python
37
star
7

contest-sdr

An SDR-based transeciver for amateur radio contests
Python
35
star
8

gr-flarm

FLARM receiver for GNU Radio
CMake
26
star
9

gr-tenna

goTenna Mesh receiver and transmitter for GNU Radio
Python
26
star
10

nrsc-5

Prototype implementation of HD Radio (NRSC-5). Superseded by https://github.com/argilo/gr-nrsc5
Python
21
star
11

pico-jiggler

Simulate periodic mouse movements using a Raspberry Pi Pico
C
18
star
12

BusFollower

Ottawa Bus Follower Android app
Java
16
star
13

gr-queue

GNU Radio queue block, useful for trunked radio systems
CMake
11
star
14

grcon22

Challenges for GRCon 2022
Python
7
star
15

ham-utils

Various amateur radio utilities
Python
6
star
16

gr-dsdcc

GNU Radio block for DSDcc
CMake
5
star
17

bbhn-utils

Utilities that may be useful for Broadband-Hamnet nodes
Python
5
star
18

BlackHatBadgeReader

Read the contents of your Black Hat USA 2012 badge on your NFC-enabled Android phone
Java
4
star
19

pico-projects

Projects for the Raspbery Pi Pico
Python
3
star
20

pi-frontend

A tool to configure a Raspbery Pi as a MythTV frontend
Shell
3
star
21

ringzer0

My solutions for RingZer0 CTF problems
Python
1
star
22

argilo-net

La persona retejo de Clayton Smith
HTML
1
star
23

advent

My solutions for Advent of Code puzzles
Python
1
star
24

anagramoj

Programo por trovi anagramojn en Esperanto
C
1
star
25

irrational-net

The personal website of Clayton Smith
HTML
1
star