No Library is working with RF Receiver

I am working with a RF Remote (315MHz) with two buttons and a RF Receiver (315MHz). I need to signal two pins in Arduino when I press the buttons respectively.

For the last four days, I have used most of the libraries discussed in net to read the data sent by the remote.(e.g. - RadioHead, rc-switch, VirtualWire and SoftwareSerial) Except SoftwareSerial all libraries are numb to print anything in the Serial Monitor. Where SoftwareSerial is also giving junk like "⸮⸮⸮⸮⸮", in the Serial monitor, when any buttons are pressed in the remote.

I have even tried using analog pins to determine the pattern of data each button are sending. But for the same button it's different series of analog data, on different presses.

Do anyone have any idea how to overcome this, or any other libraries which can help.

Recently I tried NewRemoteReceiver. But that also didn't work. The Serial monitor is just blank. Even when I click the remote button, the receiver LED is not glowing in Arduino board.

Any help from anyone will be highly appreciated.

First, you have to determine what sort of transmissions are produced by your remote. There is literally an infinite variety.

This tutorial is a good place to start.

Thanks for replying.
I had already gone through that topic. The code for sniffing bits didn't work for me. So I checked with SoftwareSerial. And to my surprise, both the buttons produces same stream. And just after sometimes the pattern changes for both!! So it seems for this remote there is no particular pattern.

But the question is - how it's original stand alone receiver which is not connected to Arduino but a composite one with a relay, is detecting both the button with ease.

For detecting Below is the code I used:

#include <SoftwareSerial.h>
SoftwareSerial mySerial(10, 11); // RX, TX

void setup() {
  // Open serial communications and wait for port to open:
  Serial.begin(57600);
  while (!Serial) {
    ; // wait for serial port to connect. Needed for native USB port only
  }


  Serial.println("Goodnight moon!");

  // set the data rate for the SoftwareSerial port
  mySerial.begin(4800);
  mySerial.println("Hello, world?");
}

void loop() { // run over and over
  if (mySerial.available()) {
      byte buffer[500];
      mySerial.readBytes(buffer,500);
      for(int i=0; i<500; ++i){
        Serial.print(buffer[i], HEX);
        Serial.print(" ");
      }
      Serial.println();
      
      //Serial.write((const uint8_t *)buffer,3);
      //Serial.println(mySerial.read(), HEX);
  }
  
}

And for that I get the following output: - It's same for both the buttons and suddenly the pattern changes and again it's same for both. It always keeps changing and I am not able to find a proper pattern going through them.

23:54:59.492 -> 0 0 FC 0 1 20 0 1 2 82 23 A3 0 1 3A 0 0 1 25 0 1 0 A8 6 FF 8 F4 7 1 8 F4 2 BB 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 DF 7D FA 3B CF 5B 7F 86 CF EF 99 FF F8 2D CF 57 BB 7C 86 EF 7F FA CE F6 64 ED 1D A2 7F DB BA FC 7F 53 BE B9 5F 96 69 F3 97 FC 6C F5 DE 79 46 F5 FD 3F 6F 95 6A BF DA 74 F6 77 FE 6D B7 F9 6F 92 A3 AB CF FD 73 75 41 C1 FF F5 DB 7F DE BF 57 F6 95 FF DF F5 BC FB F7 7D 5B 9D 77 F2 CE AE 6B CD ED A0 66 FC FB FA 8A 2E B7 DB BF FB B7 BF C1 B9 3C 1D E6 BE FD 23 B5 EB 3F DB E4 F1 EC EF BF DD 30 BE CF BD DF 37 FF EF FF E0 95 F7 E7 EF DF C7 3F FB 77 5F 26 BF F5 57 FF FB 76 9B 1C AF 3 58 1 20 1 96 3D 3E 1 A 0 2 2 0 23 A3 0 1 3B 0 1 1 28 0 2 0 A8 7 D3 8 D3 8 D3 7 D5 2 E1 0 0 0 0 0 0 FC C0 0 0 0 0 0 1E 0 0 0 0 0 0 0 0 0 0 0 C0 7C 0 0 0 0 0 FC 0 0 0 1 20 1 94 C D 8 88 0 E1 2 B5 2 B5 0 C1 0 0 0 0 40 7F 2 16 35 0 0 6 7A 6 64 2 16 5 E7 0 0 0 F8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 CB BF F8 DF FB E7 ED 6A 38 FF FB 39 6F EF FB A9 2D DF DB 80 63 8F FC FE 6B CA 7E 66 BF E3 3F 5F C3 DD F3 CB FF B5 F FB F FE F3 7A 7F BF AC FB ED F7 73 51 CD FF 2E FD F7 B8 DE 7F BD F2 A5 AF FD AC 5D A9 8E 75 7E DF AE 6D 9B DF 9A F7 FF FD DA 23 FD E6 7E B2 6B AF F1 BC 1A 25 FF DC FF FA BD 47 F5 DC 6 63 2 51 2 51 0 6 63 2 51 2 51 0 2 B5 1 20 1 96 2F 30 1 A 0 2 2 B5 0 C1 0 0 40 7F 0 0 0 0 0 40 2 8 0 0 0 6 91 2 16 5 E2 31 31 31 31 31 31 31 31 31 31 31 31 
23:55:02.769 -> 0 10 FC 0 1 20 0 1 2 82 23 A3 0 1 3A 0 0 1 25 0 1 0 A8 6 FF 8 F4 7 1 8 F4 2 BB 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 DF 7D FA 3B CF 5B 7F 86 CF EF 99 FF F8 2D CF 57 BB 7C 86 EF 7F FA CE F6 64 ED 1D A2 7F DB BA FC 7F 53 BE B9 5F 96 69 F3 97 FC 6C F5 DE 79 46 F5 FD 3F 6F 95 6A BF DA 74 F6 77 FE 6D B7 F9 6F 92 A3 AB CF FD 73 75 41 C1 FF F5 DB 7F DE BF 57 F6 95 FF DF F5 BC FB F7 7D 5B 9D 77 F2 CE AE 6B CD ED A0 66 FC FB FA 8A 2E B7 DB BF FB B7 BF C1 B9 3C 1D E6 BE FD 23 B5 EB 3F DB E4 F1 EC EF BF DD 30 BE CF BD DF 37 FF EF FF E0 95 F7 E7 EF DF C7 3F FB 77 5F 26 BF F5 57 FF FB 76 9B 1C AF 3 58 1 20 1 96 3D 3E 1 A 0 2 2 0 23 A3 0 1 3B 0 1 1 28 0 2 0 A8 7 D3 8 D3 8 D3 7 D5 2 E1 0 0 0 0 0 0 FC C0 0 0 0 0 0 1E 0 0 0 0 0 0 0 0 0 0 0 C0 7C 0 0 0 0 0 FC 0 0 0 1 20 1 94 C D 8 88 0 E1 2 B5 2 B5 0 C1 0 0 0 0 40 7F 2 16 35 0 0 6 7A 6 64 2 16 5 E7 0 0 0 F8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 CB BF F8 DF FB E7 ED 6A 38 FF FB 39 6F EF FB A9 2D DF DB 80 63 8F FC FE 6B CA 7E 66 BF E3 3F 5F C3 DD F3 CB FF B5 F FB F FE F3 7A 7F BF AC FB ED F7 73 51 CD FF 2E FD F7 B8 DE 7F BD F2 A5 AF FD AC 5D A9 8E 75 7E DF AE 6D 9B DF 9A F7 FF FD DA 23 FD E6 7E B2 6B AF F1 BC 1A 25 FF DC FF FA BD 47 F5 DC 6 63 2 51 2 51 0 6 63 2 51 2 51 0 2 B5 1 20 1 96 2F 30 1 A 0 2 2 B5 0 C1 0 0 40 7F 0 0 0 0 0 40 2 8 0 0 0 6 91 2 16 5 E2 31 31 31 31 31 31 31 31 31 31 31 31 
23:55:04.908 -> 0 10 FC 0 1 20 0 1 2 82 23 A3 0 1 3A 0 0 1 25 0 1 0 A8 6 FF 8 F4 7 1 8 F4 2 BB 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 DF 7D FA 3B CF 5B 7F 86 CF EF 99 FF F8 2D CF 57 BB 7C 86 EF 7F FA CE F6 64 ED 1D A2 7F DB BA FC 7F 53 BE B9 5F 96 69 F3 97 FC 6C F5 DE 79 46 F5 FD 3F 6F 95 6A BF DA 74 F6 77 FE 6D B7 F9 6F 92 A3 AB CF FD 73 75 41 C1 FF F5 DB 7F DE BF 57 F6 95 FF DF F5 BC FB F7 7D 5B 9D 77 F2 CE AE 6B CD ED A0 66 FC FB FA 8A 2E B7 DB BF FB B7 BF C1 B9 3C 1D E6 BE FD 23 B5 EB 3F DB E4 F1 EC EF BF DD 30 BE CF BD DF 37 FF EF FF E0 95 F7 E7 EF DF C7 3F FB 77 5F 26 BF F5 57 FF FB 76 9B 1C AF 3 58 1 20 1 96 3D 3E 1 A 0 2 2 0 23 A3 0 1 3B 0 1 1 28 0 2 0 A8 7 D3 8 D3 8 D3 7 D5 2 E1 0 0 0 0 0 0 FC C0 0 0 0 0 0 1E 0 0 0 0 0 0 0 0 0 0 0 C0 7C 0 0 0 0 0 FC 0 0 0 1 20 1 94 C D 8 88 0 E1 2 B5 2 B5 0 C1 0 0 0 0 40 7F 2 16 35 0 0 6 7A 6 64 2 16 5 E7 0 0 0 F8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 CB BF F8 DF FB E7 ED 6A 38 FF FB 39 6F EF FB A9 2D DF DB 80 63 8F FC FE 6B CA 7E 66 BF E3 3F 5F C3 DD F3 CB FF B5 F FB F FE F3 7A 7F BF AC FB ED F7 73 51 CD FF 2E FD F7 B8 DE 7F BD F2 A5 AF FD AC 5D A9 8E 75 7E DF AE 6D 9B DF 9A F7 FF FD DA 23 FD E6 7E B2 6B AF F1 BC 1A 25 FF DC FF FA BD 47 F5 DC 6 63 2 51 2 51 0 6 63 2 51 2 51 0 2 B5 1 20 1 96 2F 30 1 A 0 2 2 B5 0 C1 0 0 40 7F 0 0 0 0 0 40 2 8 0 0 0 6 91 2 16 5 E2 31 31 31 31 31 31 31 31 31 31 31 31 
23:55:09.926 -> 0 0 0 FE 0 0 0 0 2 82 23 A3 0 1 3A 0 0 1 25 0 1 0 A8 6 FF 8 F4 7 1 8 F4 2 BB 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 DF 7D FA 3B CF 5B 7F 86 CF EF 99 FF F8 2D CF 57 BB 7C 86 EF 7F FA CE F6 64 ED 1D A2 7F DB BA FC 7F 53 BE B9 5F 96 69 F3 97 FC 6C F5 DE 79 46 F5 FD 3F 6F 95 6A BF DA 74 F6 77 FE 6D B7 F9 6F 92 A3 AB CF FD 73 75 41 C1 FF F5 DB 7F DE BF 57 F6 95 FF DF F5 BC FB F7 7D 5B 9D 77 F2 CE AE 6B CD ED A0 66 FC FB FA 8A 2E B7 DB BF FB B7 BF C1 B9 3C 1D E6 BE FD 23 B5 EB 3F DB E4 F1 EC EF BF DD 30 BE CF BD DF 37 FF EF FF E0 95 F7 E7 EF DF C7 3F FB 77 5F 26 BF F5 57 FF FB 76 9B 1C AF 3 58 1 20 1 96 3D 3E 1 A 0 2 2 0 23 A3 0 1 3B 0 1 1 28 0 2 0 A8 7 D3 8 D3 8 D3 7 D5 2 E1 0 0 0 0 0 0 FC C0 0 0 0 0 0 1E 0 0 0 0 0 0 0 0 0 0 0 C0 7C 0 0 0 0 0 FC 0 0 0 1 20 1 94 C D 8 88 0 E1 2 B5 2 B5 0 C1 0 0 0 0 40 7F 2 16 35 0 0 6 7A 6 64 2 16 5 E7 0 0 0 F8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 CB BF F8 DF FB E7 ED 6A 38 FF FB 39 6F EF FB A9 2D DF DB 80 63 8F FC FE 6B CA 7E 66 BF E3 3F 5F C3 DD F3 CB FF B5 F FB F FE F3 7A 7F BF AC FB ED F7 73 51 CD FF 2E FD F7 B8 DE 7F BD F2 A5 AF FD AC 5D A9 8E 75 7E DF AE 6D 9B DF 9A F7 FF FD DA 23 FD E6 7E B2 6B AF F1 BC 1A 25 FF DC FF FA BD 47 F5 DC 6 63 2 51 2 51 0 6 63 2 51 2 51 0 2 B5 1 20 1 96 2F 30 1 A 0 2 2 B5 0 C1 0 0 40 7F 0 0 0 0 0 40 2 8 0 0 0 6 91 2 16 5 E2 31 31 31 31 31 31 31 31 31 31 31 31 
23:55:12.991 -> 0 0 0 FE 0 0 0 0 2 82 23 A3 0 1 3A 0 0 1 25 0 1 0 A8 6 FF 8 F4 7 1 8 F4 2 BB 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 DF 7D FA 3B CF 5B 7F 86 CF EF 99 FF F8 2D CF 57 BB 7C 86 EF 7F FA CE F6 64 ED 1D A2 7F DB BA FC 7F 53 BE B9 5F 96 69 F3 97 FC 6C F5 DE 79 46 F5 FD 3F 6F 95 6A BF DA 74 F6 77 FE 6D B7 F9 6F 92 A3 AB CF FD 73 75 41 C1 FF F5 DB 7F DE BF 57 F6 95 FF DF F5 BC FB F7 7D 5B 9D 77 F2 CE AE 6B CD ED A0 66 FC FB FA 8A 2E B7 DB BF FB B7 BF C1 B9 3C 1D E6 BE FD 23 B5 EB 3F DB E4 F1 EC EF BF DD 30 BE CF BD DF 37 FF EF FF E0 95 F7 E7 EF DF C7 3F FB 77 5F 26 BF F5 57 FF FB 76 9B 1C AF 3 58 1 20 1 96 3D 3E 1 A 0 2 2 0 23 A3 0 1 3B 0 1 1 28 0 2 0 A8 7 D3 8 D3 8 D3 7 D5 2 E1 0 0 0 0 0 0 FC C0 0 0 0 0 0 1E 0 0 0 0 0 0 0 0 0 0 0 C0 7C 0 0 0 0 0 FC 0 0 0 1 20 1 94 C D 8 88 0 E1 2 B5 2 B5 0 C1 0 0 0 0 40 7F 2 16 35 0 0 6 7A 6 64 2 16 5 E7 0 0 0 F8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 CB BF F8 DF FB E7 ED 6A 38 FF FB 39 6F EF FB A9 2D DF DB 80 63 8F FC FE 6B CA 7E 66 BF E3 3F 5F C3 DD F3 CB FF B5 F FB F FE F3 7A 7F BF AC FB ED F7 73 51 CD FF 2E FD F7 B8 DE 7F BD F2 A5 AF FD AC 5D A9 8E 75 7E DF AE 6D 9B DF 9A F7 FF FD DA 23 FD E6 7E B2 6B AF F1 BC 1A 25 FF DC FF FA BD 47 F5 DC 6 63 2 51 2 51 0 6 63 2 51 2 51 0 2 B5 1 20 1 96 2F 30 1 A 0 2 2 B5 0 C1 0 0 40 7F 0 0 0 0 0 40 2 8 0 0 0 6 91 2 16 5 E2 31 31 31 31 31 31 31 31 31 31 31 31 
23:55:19.965 -> 0 0 0 FE 0 0 0 0 2 82 23 A3 0 1 3A 0 0 1 25 0 1 0 A8 6 FF 8 F4 7 1 8 F4 2 BB 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 DF 7D FA 3B CF 5B 7F 86 CF EF 99 FF F8 2D CF 57 BB 7C 86 EF 7F FA CE F6 64 ED 1D A2 7F DB BA FC 7F 53 BE B9 5F 96 69 F3 97 FC 6C F5 DE 79 46 F5 FD 3F 6F 95 6A BF DA 74 F6 77 FE 6D B7 F9 6F 92 A3 AB CF FD 73 75 41 C1 FF F5 DB 7F DE BF 57 F6 95 FF DF F5 BC FB F7 7D 5B 9D 77 F2 CE AE 6B CD ED A0 66 FC FB FA 8A 2E B7 DB BF FB B7 BF C1 B9 3C 1D E6 BE FD 23 B5 EB 3F DB E4 F1 EC EF BF DD 30 BE CF BD DF 37 FF EF FF E0 95 F7 E7 EF DF C7 3F FB 77 5F 26 BF F5 57 FF FB 76 9B 1C AF 3 58 1 20 1 96 3D 3E 1 A 0 2 2 0 23 A3 0 1 3B 0 1 1 28 0 2 0 A8 7 D3 8 D3 8 D3 7 D5 2 E1 0 0 0 0 0 0 FC C0 0 0 0 0 0 1E 0 0 0 0 0 0 0 0 0 0 0 C0 7C 0 0 0 0 0 FC 0 0 0 1 20 1 94 C D 8 88 0 E1 2 B5 2 B5 0 C1 0 0 0 0 40 7F 2 16 35 0 0 6 7A 6 64 2 16 5 E7 0 0 0 F8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 CB BF F8 DF FB E7 ED 6A 38 FF FB 39 6F EF FB A9 2D DF DB 80 63 8F FC FE 6B CA 7E 66 BF E3 3F 5F C3 DD F3 CB FF B5 F FB F FE F3 7A 7F BF AC FB ED F7 73 51 CD FF 2E FD F7 B8 DE 7F BD F2 A5 AF FD AC 5D A9 8E 75 7E DF AE 6D 9B DF 9A F7 FF FD DA 23 FD E6 7E B2 6B AF F1 BC 1A 25 FF DC FF FA BD 47 F5 DC 6 63 2 51 2 51 0 6 63 2 51 2 51 0 2 B5 1 20 1 96 2F 30 1 A 0 2 2 B5 0 C1 0 0 40 7F 0 0 0 0 0 40 2 8 0 0 0 6 91 2 16 5 E2 31 31 31 31 31 31 31 31 31 31 31 31

Any suggestion will be of great help.

The code for sniffing bits didn't work for me.

There is no point in using code until you understand the transmission protocol.

Following that tutorial, you first use Audacity to look at the receiver output, and decide on the transmission protocol.

If you want help on this, post some screenshots of receiver output from Audacity, and explain what you think they mean.

Hi,

Though I couldn't log anything in Audacity because I don't have input port in Sound card, but I am able to graph the analog output in excel sheet. And now the graph makes some sense. They are of different pattern for both buttons.

Below is the code I used:

#define rfReceivePin A0  //RF Receiver pin = Analog pin 0
#define ledPin 13        //Onboard LED = digital pin 13

 #define dataSize 10000
 
 unsigned int data = 0;   // variable used to store received data
 const unsigned int upperThreshold = 345;  //upper threshold value
 const unsigned int lowerThreshold = 320;  //lower threshold value
 

 void setup(){
   pinMode(ledPin, OUTPUT);
   Serial.begin(9600);
 }

 void loop(){
   data=analogRead(rfReceivePin);    //listen for data on Analog pin 0

      unsigned long startTime=micros();
      int i=0;
      for(; i < dataSize && data < lowerThreshold; ++i)
      {
        digitalWrite(ledPin, HIGH);
        data = analogRead(rfReceivePin);
        Serial.println(data);
      }
      unsigned long endTime=micros();

      if(i){
        Serial.print("Total Time Elapsed: ");
        Serial.println(endTime-startTime);
      }
      

   digitalWrite(ledPin, LOW);
}

From the output generated by the above code I am able to get the following graphs as attached.

Is it possible to use any library with this. Or which way should I proceed.

Sorry, those plots are hopeless. Your sampling program is way too slow to capture anything useful from the receiver.

For example, if you print each ADC value at 9600 Baud, it takes longer to print the results than to sample the data.

Either find a PC you can use with Audacity, or try one of the programs to capture IR remote data, like this one.