pimatic / RFControl

433mhz rf sniffer and receiver
GNU General Public License v3.0
116 stars 34 forks source link

RFControl

Arduino library for 433mhz RF sniffing and receiving.

#include <RFControl.h>

void setup() {
  Serial.begin(9600);
  RFControl::startReceiving(0);
}

void loop() {
  if(RFControl::hasData()) {
    unsigned int *timings;
    unsigned int timings_size;
    unsigned int pulse_length_divider = RFControl::getPulseLengthDivider();
    RFControl::getRaw(&timings, &timings_size);
    for(int i=0; i < timings_size; i++) {
      unsigned long timing = timings[i] * pulse_length_divider;
      Serial.print(timing);
      Serial.write('\t');
      if((i+1)%16 == 0) {
        Serial.write('\n');
      }
    }
    Serial.write('\n');
    Serial.write('\n');
    RFControl::continueReceiving();
  }
}

Outputs raw timings to serial if the same code gets received twice:

294  2630 294  242  296  1262 292  248  288  1268 286  1262 288  260  280  254  
286  1274 278  256  282  1276 280  258  276  1280 276  1272 276  270  274  1274 
274  284  276  1272 274  272  270  1278 272  272  274  262  270  1290 268  1280 
270  274  268  270  268  1288 266  270  266  1292 264  1284 264  280  266  272  
264  1302 268  272  262  1294 264  274  262  1294 262  1286 262  282  262  278  
260  1294 262  274  262  1296 262  1286 262  282  262  1286 262  282  264  274  
260  1310 260  1288 260  284  262  274  260  1298 260  276  260  1296 260  1290 
260  284  260  276  258  1300 258  278  260  1296 260  278  258  1296 260  278  
260  1292 254  10196     

It can also compress the outputs:

b: 269 2632 1286 10196 0 0 0 0 
t: 010002000202000002000200020200020002000200000202000002000202000002000200020200000200020200020000020200000200020200000200020002000203

The raw timings should be the same as outputed by pilight debug: http://wiki.pilight.org/doku.php/arctech_switch