Trying to receive the 868 Mhz signals from my Buienradar br-1000 station with a Hope RFM69HW tranceiver. Problem is that obviously I don't know what is the NETWORKID for example. I use the below sketch but it does not catch any signal from my thermometer. Any ideas? So basically I want to make a 868 Mhz sniffer with my Arduino Uno and RFM69HW.
#define NETWORKID 100 //the same on all nodes that talk to each other #define RECEIVER 1 //unique ID of the gateway/receiver #define SENDER 2 #define NODEID RECEIVER //change to "SENDER" if this is the sender node (the one with the button)
//Match frequency to the hardware version of the radio on your Moteino (uncomment one):
//#define FREQUENCY RF69_433MHZ #define FREQUENCY RF69_868MHZ
//#define FREQUENCY RF69_915MHZ
//#define ENCRYPTKEY "sampleEncryptKey" //exactly the same 16 characters/bytes on all nodes! #define IS_RFM69HW_HCW //uncomment only for RFM69HW/HCW! Leave out if you have RFM69W/CW!
//***************************************************************************************************************************** #define ENABLE_ATC //comment out this line to disable AUTO TRANSMISSION CONTROL #define ATC_RSSI -75
//********************************************************************************************* #define SERIAL_BAUD 115200 #ifdef ENABLE_ATC
RFM69_ATC radio; #else
RFM69 radio; #endif
void setup() {
Serial.begin(SERIAL_BAUD);
radio.initialize(FREQUENCY,NODEID,NETWORKID); #ifdef IS_RFM69HW_HCW
radio.setHighPower(); //must include this only for RFM69HW/HCW! #endif
// radio.encrypt(ENCRYPTKEY);
void loop() {
//check if something was received (could be an interrupt from the radio)
// Serial.println("check");
if (radio.receiveDone())
{
//print message received to serial
Serial.print('[');Serial.print(radio.SENDERID);Serial.print("] ");
Serial.print((char*)radio.DATA);
Serial.print(" [RX_RSSI:");Serial.print(radio.RSSI);Serial.print("]");
Serial.println();
//check if sender wanted an ACK
if (radio.ACKRequested())
{
radio.sendACK();
Serial.print(" - ACK sent");
}
}
// radio.receiveDone(); //put radio in RX mode
// Serial.flush(); //make sure all serial data is clocked out before sleeping the MCU
// LowPower.powerDown(SLEEP_8S, ADC_OFF, BOD_ON); //sleep Moteino in low power mode (to save battery)
}
erwin-66:
Any ideas? So basically I want to make a 868 Mhz sniffer with my Arduino Uno and RFM69HW.
Dont see how that is going to work.
Most RF devices work in pairs, so that for example only another RFM69 will receive valid data from an RFM69.
Even then you have to be sure the same RF devices are set up to match on frequency, modulation type, datarate, preamble, syncwords, packet length, CRC or not, deviation, bandwidth etc.
The chances of a generic RF module being able to act a general purpose data sniffer are less than zero, I would suggest.
You could have a look into SDR (software defined radio). There are fairly cheap USB dongles available that allow you to capture radio waves. There are even some programs that decode some known protocols from all kinds of home radio devices like weather stations ....
Google: RTL SDR, HackRF, Nooelec, RTL_433 to get you started.
Even with lots of information available from the internet this is not an easy task. You could be lucky and somebody figured this out before.
Most RF devices work in pairs, so that for example only another RFM69 will receive valid data from an RFM69.
Even then you have to be sure the same RF devices are set up to match on frequency, modulation type, datarate, preamble, syncwords, packet length, CRC or not, deviation, bandwidth etc.
The chances of a generic RF module being able to act a general purpose data sniffer are less than zero, I would suggest.
Newbie as I am, I don't understand why I did succeed in "catching" the 433 Mhz signal from my remote "klik-aan" system which switches on and off a lamb at distance. I could even copy the signal and switch the light on and off with my Wemos. I used a AC-RX2/CS receiver for that. Why is a 868 Mhz siganl more difficult?
Being more difficult has nothing to do with the 868 MHz. You were just lucky before.
Just look at the following standards: WiFi, Bluetooth Classic, Bluetooth LE, ANT and ZigBee they all work in the 2.4 GHz band. Additional to many others like baby monitors, cordless phones and even your microwave oven. But they are not compatible with each other and cannot decode each others the signals.
The same is true for 868 MHz. It is a band that is freely licensed in many countries and engineers have made up all kinds of protocols. Many are proprietary and a few are standardized like LoRa, Sigfox and Z-Wave.
If you want to understand better what is going on google some of the keywords srnet has given you or look them up in Wikipedia.
Not easy with the receiver you have chosen. You need a broadband detector (like SDR, as already mentioned) to first determine the characteristics of the transmitted signal of interest. Then you can start to think about decoding the signal.