Hallo allenmaal,
ik heb de onderstaande sketch geupload op een arduino nano aangwsloten op een cc1101 module.
Hij werkt goed alleen kan ik geen key fob ontvangen.
De afstandbediening van mijn ventilator die ontvangt hij wel.
Na een beetje googlelen ben ik erachter gekomen dat de keyfob op ask werkt.
Denk dat daar de fout ligt.
Heeft iemand een iedee hoe ik dit zou kunnen veranderen ?
Dit is de sketch :

#include <ELECHOUSE_CC1101_SRC_DRV.h>
#include <RCSwitch.h>

int pin; // int for Receive pin.

RCSwitch mySwitch = RCSwitch();

void setup() {
Serial.begin(9600);

#ifdef ESP32
pin = 4; // for esp32! Receiver on GPIO pin 4.
#elif ESP8266
pin = 4; // for esp8266! Receiver on pin 4 = D2.
#else
pin = 0; // for Arduino! Receiver on interrupt 0 => that is pin #2
#endif

if (ELECHOUSE_cc1101.getCC1101()){ // Check the CC1101 Spi connection.
Serial.println("Connection OK");
}else{
Serial.println("Connection Error");
}

//CC1101 Settings: (Settings with "//" are optional!)
ELECHOUSE_cc1101.Init(); // must be set to initialize the cc1101!
//ELECHOUSE_cc1101.setRxBW(812.50); // Set the Receive Bandwidth in kHz. Value from 58.03 to 812.50. Default is 812.50 kHz.
//ELECHOUSE_cc1101.setPA(10); // set TxPower. The following settings are possible depending on the frequency band. (-30 -20 -15 -10 -6 0 5 7 10 11 12) Default is max!
ELECHOUSE_cc1101.setMHZ(433.92); // Here you can set your basic frequency. The lib calculates the frequency automatically (default = 433.92).The cc1101 can: 300-348 MHZ, 387-464MHZ and 779-928MHZ. Read More info from datasheet.

mySwitch.enableReceive(pin); // Receiver on interrupt 0 => that is pin #2

ELECHOUSE_cc1101.SetRx(); // set Receive on
}

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

Weet je zeker dat de keyfob op een frequentie werkt die de cc1101 kan ontvangen en niet op 125kHz?

Hoi de keyfob zit op 433.92 mhz.
Heb het gecheckt met mijn flipper.

Moet je ASK niet ergens instellen?

Klopt dat heb ik nu gedaan maar hij pakt de keyfob nogsteeds niet.

#include <ELECHOUSE_CC1101_SRC_DRV.h>
#include <RCSwitch.h>

int pin; // int for Receive pin.

RCSwitch mySwitch = RCSwitch();

void setup() {
Serial.begin(9600);

#ifdef ESP32
pin = 4; // for esp32! Receiver on GPIO pin 4.
#elif ESP8266
pin = 4; // for esp8266! Receiver on pin 4 = D2.
#else
pin = 0; // for Arduino! Receiver on interrupt 0 => that is pin #2
#endif

if (ELECHOUSE_cc1101.getCC1101()){ // Check the CC1101 Spi connection.
Serial.println("Connection OK");
}else{
Serial.println("Connection Error");
}

//CC1101 Settings: (Settings with "//" are optional!)
ELECHOUSE_cc1101.Init(); // must be set to initialize the cc1101!
ELECHOUSE_cc1101.setModulation(2); // set modulation mode. 0 = 2-FSK, 1 = GFSK, 2 = ASK/OOK, 3 = 4-FSK, 4 = MSK.
//ELECHOUSE_cc1101.setRxBW(812.50); // Set the Receive Bandwidth in kHz. Value from 58.03 to 812.50. Default is 812.50 kHz.
//ELECHOUSE_cc1101.setPA(10); // set TxPower. The following settings are possible depending on the frequency band. (-30 -20 -15 -10 -6 0 5 7 10 11 12) Default is max!
ELECHOUSE_cc1101.setMHZ(433.92); // Here you can set your basic frequency. The lib calculates the frequency automatically (default = 433.92).The cc1101 can: 300-348 MHZ, 387-464MHZ and 779-928MHZ. Read More info from datasheet.

mySwitch.enableReceive(pin); // Receiver on interrupt 0 => that is pin #2

ELECHOUSE_cc1101.SetRx(); // set Receive on
}

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

Dag fossie
een andere insteek; ik heb meerdere keyfobs gerepareerd en gecontroleerd met zo'n SDR rtl2832 usb radiostick in combinatie met een Android app. Werkt goed, duidelijk te zien of de keyfob een signaal geeft (of niet)
Douwe

Volgens de datasheet is ASK mode 3, niet 2...
(of die library moet om een of andere duistere reden de zaak overhoop gooien...)

Dat kan de codering ook nog anders zijn: kijk eens hier: https://en.wikipedia.org/wiki/Line_code#Common_line_codes

Sommige codes lijken erg veel op elkaar maar geven een ander resutaat.

@Arco ik heb ze allenmaal geprobeerd.