Low Cost 433Mhz Scanner

Some folk asked me about linking up 433Mhz Mains remote control plugs with an SBC like and Arduino or RP. They did not have a scope but wanted to see the raw data, and be able to decode the data for their own uses.



1) Record the codes send by an existing remote
2) Understand the data / signal / encoding

Their goal was to understand what was needed for the transmitter and use this scanning tool for testing, debugging.

The code to do this was simple the sample code from the library worked first time. There is a lot going on under the bonnet in the code and the data from the unit is far from clean HOWEVER the library seems perfect as no noise or data loss is seen. From this sample code / output the mySwitch.getReceivedValue() function looks like it can be used in the sender program. The library delivered everything that was wanted.

The graphs were generated on a website link below and in sample code. The community around the library seems active and knowledgeable with many contributors. There is even a low CPU fork which is less CPU demanding used to switch a triac in a dimmer circuit

https://github.com/sui77/rc-switch/

/*
  Example for receiving
  
  https://github.com/sui77/rc-switch/
  
  If you want to visualize a telegram copy the raw data and 
  paste it into http://test.sui.li/oszi/
*/

#include

RCSwitch mySwitch = RCSwitch();

void setup() {
  Serial.begin(9600);
  mySwitch.enableReceive(0);  // Receiver on interrupt 0 => that is pin #2
}

void loop() {
  if (mySwitch.available()) {
    output(mySwitch.getReceivedValue(), mySwitch.getReceivedBitlength(), mySwitch.getReceivedDelay(), mySwitch.getReceivedRawdata(),mySwitch.getReceivedProtocol());
    mySwitch.resetAvailable();
  }
}


Sample output

Decimal: 2727765 (24Bit) Binary: 001010011001111101010101 Tri-State: not applicable PulseLength: 305 microseconds Protocol: 1
Raw data: 9544,284,920,292,912,892,308,292,916,888,316,292,920,284,920,888,316,888,320,284,924,280,920,884,324,884,320,880,328,880,324,880,328,268,932,876,332,268,940,868,332,268,940,868,332,272,936,872,364,

Decimal: 2727765 (24Bit) Binary: 001010011001111101010101 Tri-State: not applicable PulseLength: 308 microseconds Protocol: 1
Raw data: 9568,276,932,276,928,880,324,272,936,872,328,280,928,276,928,880,324,880,328,268,936,280,920,880,328,876,332,872,332,872,332,876,328,268,936,876,332,268,936,876,328,264,936,872,336,268,940,868,364,

904,300,900,304,896,308,892,316,888,316,288,920,884,320,284,916,888,316,288,920,884,320,880,324,880,356,

And the website recommended in the code worked perfectly

http://test.sui.li/oszi/