Capturing RF data using a cheap receiver and Arduino; attempting to decode it.
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
public
t
.gitignore
Lightwave.pm
README.md
browser.coffee
browser.js
build.sh
captureanddecode.coffee
decode.coffee
index.html
lightwaverf.coffee
read_lwrf.pl
sample.coffee
send.coffee
send_lwrf.pl
signal_capture.ino
stream.coffee

README.md

RF Experiments

These are my experiments with cheap 433.92 MHz receiver/transmitter devices.

LightwaveRF

I've successfully decoded LightwaveRF RF data (NOTE: not the data involving the WifiLink, the actual RF data sent by the LightwaveRF remotes/etc). This code does that but it's poorly organised (sorry about that). I'll be writing this up in future, but for now, you can try decoding your own LightwaveRF captures:

Online LightwaveRF decoder

To capture some data, install the .ino file onto an Arduino using the Arduino IDE; connect the receiver's data pin to pin 3, transmitter to pin 4, VCC to 5V, GND to GND. Then you can either use my captureanddecode.coffee file or you can write your own using the following pseudocode:

DIVISOR = 0x28;
connection = serial.connect("/dev/tty..."); # Your Arduino - ttyUSB0 perhaps?
wait(2 seconds);
connection.write('D', DIVISOR, 'c'); # Write just these three bytes
data = connection.read(100000) # Read 100,000 bytes... this may take a while...
durations = array();
for each index i value v in bytearray data {
  # Treat `v` as an `unsigned char`
  durations.push(v * DIVISOR);
}

durations will be an array of durations in μs (microseconds). Export this as a comma separated list and then whack it into the online decoder:

Online LightwaveRF decoder

More to come...

Perl

There is also a (poorly written right now) perl module, and two example perl scripts you can run. They assume your arduino device is /dev/ttyACM0 and you have loaded the signal_capture.ino sketch into your arduino. You will need Modern::Perl and Device::SerialPort installed for your perl. (Anton Piatek)

License

Released under the MIT license.