GNU Radio for EverFlourish remote control plug
Switch branches/tags
Nothing to show
Latest commit ae384a6 Sep 18, 2013 @alexbirkett alexbirkett Update README.md
Change section heading
Permalink
Failed to load latest commit information.
images added square_pulse waveform Sep 18, 2013
EverFlourish.grc Added threshold Sep 18, 2013
README.md Update README.md Sep 18, 2013
remote_control_recording Added remote control recording. Sep 13, 2013

README.md

GNU Radio for EverFlourish remote control plug

Objective

This is my first foray into GNURadio. The objective of this project is to decode the messages sent by a EverFlourish plug socket remote control using GNU Radio Companion, idealy without using any custom blocks.

The remote control and plug

Purchased from Clas Ohlson in norway. Available here

Remote control recording

The file remote_control_recording contains a recording of all buttons on the remote control being pressed. The buttons were pressed in the following order:

  • Button 1 On
  • Button 1 Off
  • Button 2 On
  • Button 2 Off
  • Button 3 On
  • Button 3 Off

This sqeuence was repeated on all 'channels' (A though D).

The recording was made using the EverFlourish.grc flowgraph on GNU Radio 3.7.1 using a USRP N210. The same flowgraph can playback the recording.

Opening in Baudline

The recording can be opened in the Baudline signal analyser. The following settings should be used

  • File type - raw
  • Sample rate - custom 250000
  • Decode format - 32 bit float le endian
  • Channels - 2 (enable quadrature)

Closeup of waveform showing long and short pulses

Waveform showing complete message

RF Protocol

My hypothesis is that the device uses OOK modulation.

When a button on the remote control is held down a message is repeatedly broadcast. The message is 33.6 ms long and is followed by 10.4 ms of silence. The message is built up of 25 pulses of carrier. There appear to be two types of pulses:

  • Long - 975 µs of carrier followed by 332 of silence
  • Short - 344 µs of carrier followed by 1002 µs of silence

Pulses

S = short pulse L = long pulse

Channel Socket On / Off Pulses
A 1 On SSSLSLSLSSSLSLSLSLSLSLLLS
Off SSSLSLSLSSSLSLSLSLSLSLSSS
2 On SSSLSLSLSLSSSLSLSLSLSLLLS
Off SSSLSLSLSLSSSLSLSLSLSLSSS
3 On SSSLSLSLSLSLSSSLSLSLSLLLS
Off SSSLSLSLSLSLSSSLSLSLSLSSS
B 1 On SLSSSLSLSSSLSLSLSLSLSLLLS
Off SLSSSLSLSSSLSLSLSLSLSLSSS
2 On SLSSSLSLSLSSSLSLSLSLSLLLS
Off SLSSSLSLSLSSSLSLSLSLSLSSS
3 On SLSSSLSLSLSLSSSLSLSLSLLLS
Off SLSSSLSLSLSLSSSLSLSLSLSSS
C 1 On SLSLSSSLSSSLSLSLSLSLSLLLS
Off SLSLSSSLSSSLSLSLSLSLSLSSS
2 On SLSLSSSLSLSSSLSLSLSLSLLLS
Off SLSLSSSLSLSSSLSLSLSLSLSSS
3 On SLSLSSSLSLSLSSSLSLSLSLLLS
Off SLSLSSSLSLSLSSSLSLSLSLSSS
D 1 On SLSLSLSSSSSLSLSLSLSLSLLLS
Off SLSLSLSSSSSLSLSLSLSLSLSSS
2 On SLSLSLSSSLSSSLSLSLSLSLLLS
Off SLSLSLSSSLSSSLSLSLSLSLSSS
3 On SLSLSLSSSLSLSSSLSLSLSLLLS
Off SLSLSLSSSLSLSSSLSLSLSLSSS

Decoding

Converting sinusoids to square pulses

This can be achived using the Complex to Mag^2 block

Message waveform after being passed through Complex to Mag^2 block

Links

Key Fob Lab: Demodulating Over the Air OOK

Discussion on Reddit