433 MHz, CC1101, Brauche Hilfe

Hallo,

Ich habe mir in der Bucht 433 mhz, cc1101 Empfänger bestellt ( https://www.ebay.de/itm/311720156783 ). Ich möchte mit diesen Teilen bestimmte Aktion vom Arduino ausführen lassen. Die Teile sollen auf handelsübliche Funkfernbedienungen für Steckdosen (Funksteckdosen) reagieren, wenn auf diesen an oder aus gedrückt wird. Die eine Funkfernbedienung die ich habe arbeitet auf 433,92 MHz. Die andere ist in 4 Stufen einstellbar auf 433,05-433,79Mhz. Ich habe das Teil jetzt entsprechend mit dem arduino verkabelt.
Arduino CC1101

VCC 3,3 V VDD / PIN 1
PIN D11 SI (MOSI) / PIN 3
PIN D13 SCK / PIN 4
PIN D12 SO (MISO) / PIN 5
PIN D02 GDO2 / PIN 6
PIN D10 CSn (SS) / PIN 7
PIN D03 GDO0 / PIN 8
PIN GND GND / PIN 9
unbelegt PIN 2 & 10

Als Libary nutze ich die "Panstamp" (siehe Anhang). Als Testprogramm habe ich jetzt folgendes laufen um zu sehen ob die Teile überhaupt mit dem Arduino kommunizieren.

#include "EEPROM.h"
#include "cc1101.h"

// The LED is wired to the Arduino Output 4 (physical panStamp pin 19)
#define LEDOUTPUT 4

// The connection to the hardware chip CC1101 the RF Chip
CC1101 cc1101;

byte b;
byte i;
byte syncWord = 199;
long counter=0;
byte chan=0;

// a flag that a wireless packet has been received
boolean packetAvailable = false;

void blinker(){
digitalWrite(LEDOUTPUT, HIGH);
delay(100);
digitalWrite(LEDOUTPUT, LOW);
delay(100);
}

/* Handle interrupt from CC1101 (INT0) gdo0 on pin2 */
void cc1101signalsInterrupt(void){
// set the flag that a package is available
packetAvailable = true;
}

void setup()
{
Serial.begin(38400);
Serial.println("start");

// setup the blinker output
pinMode(LEDOUTPUT, OUTPUT);
digitalWrite(LEDOUTPUT, LOW);

// blink once to signal the setup
blinker();
// initialize the RF Chip
cc1101.init();

cc1101.setSyncWord(&syncWord, false);
cc1101.setCarrierFreq(CFREQ_433);
cc1101.disableAddressCheck(); //if not specified, will only display "packet received"
//cc1101.setTxPowerAmp(PA_LowPower);

Serial.print("CC1101_PARTNUM "); //cc1101=0
Serial.println(cc1101.readReg(CC1101_PARTNUM, CC1101_STATUS_REGISTER));
Serial.print("CC1101_VERSION "); //cc1101=4
Serial.println(cc1101.readReg(CC1101_VERSION, CC1101_STATUS_REGISTER));
Serial.print("CC1101_MARCSTATE ");
Serial.println(cc1101.readReg(CC1101_MARCSTATE, CC1101_STATUS_REGISTER) & 0x1f);

attachInterrupt(0, cc1101signalsInterrupt, FALLING);

Serial.println("device initialized");
}

void ReadLQI()
{
byte lqi=0;
byte value=0;
lqi=(cc1101.readReg(CC1101_LQI, CC1101_STATUS_REGISTER));
value = 0x3F - (lqi & 0x3F);
Serial.print("CC1101_LQI ");
Serial.println(value);
}

void ReadRSSI()
{
byte rssi=0;
byte value=0;

rssi=(cc1101.readReg(CC1101_RSSI, CC1101_STATUS_REGISTER));

if (rssi >= 128)
{
value = 255 - rssi;
value /= 2;
value += 74;
}
else
{
value = rssi/2;
value += 74;
}
Serial.print("CC1101_RSSI ");
Serial.println(value);
}

void loop()
{
if(packetAvailable){
Serial.println("packet received");
// Disable wireless reception interrupt
detachInterrupt(0);

ReadRSSI();
ReadLQI();
// clear the flag
packetAvailable = false;

CCPACKET packet;

if(cc1101.receiveData(&packet) > 0){
if(!packet.crc_ok) {
Serial.println("crc not ok");
}

if(packet.length > 0){
Serial.print("packet: len ");
Serial.print(packet.length);
Serial.print(" data: ");
for(int j=0; j<packet.length; j++){
Serial.print(packet.data[j],HEX);
Serial.print(" ");
}
Serial.println(".");
}
}
// Enable wireless reception interrupt
attachInterrupt(0, cc1101signalsInterrupt, FALLING);
}
}

Im Serial-Monitor kommt jetzt auch mehrfach pro sekunde folgende Meldung:
packet received
CC1101_RSSI 98
CC1101_LQI 63
Wobei der Wert für rssi und LOI Immer unterschiedlich ist.

Nun bin ich aber ratlos, wie ich die Signale / Kennung von der Funkfernbedienung erfassen / auslesen kann. Hat jemand von euch Erfahrung mit den Dingern und kann mir beim Programmcode helfen?
Es gibt da so ein Beispiel für Infrarot-Fernbedienungen ( Besispiel Infrarot Fernbedienung ) so ähnlich würde ich das gern mit der Funkfernbedienung realisieren.

Vielen Dank für Eure Unterstützung.

Panstamp.zip (125 KB)

Leider wirst du mit deinem Vorhaben keinen Erfolg haben.
Die üblichen Funksteckdosen arbeiten mit ASK (Amplitudenmodulation), der CC1101 mit FSK (Frequenzmodulation).
Das passt nicht zusammen.
Da solltest du dir die einfachen 433MHz ASK-Sender anschaffen und passende Superhet-Empfänger.

Ok danke erstmal für die info. Hast evtl. ein Beispiel für mich welchen ich nehmen muss (evtl. Link). Will nicht schon wieder was falsches bestellen.

Hast du evtl. auch ein Beispielcode für mich, das ich mich schonmal einarbeiten kann. Ist die Wahrscheinlichkeit hoch, dass das ganze dann mit den handelsüblichen Funksteckdosen funktioniert.

Ich hab noch eine 868 Mhz fernbedienung für mein Garagentor. Arbeiten die meisten auch fsk. Hab auch diesen Empfänger besorgt. https://www.ebay.de/itm/181897708531

mrkw01:
Ok danke erstmal für die info. Hast evtl. ein Beispiel für mich welchen ich nehmen muss (evtl. Link). Will nicht schon wieder was falsches bestellen.

Diese Module setze ich mit Erfolg für die Funksteckdosen und weiteres ein:

433 MHz Sender
433 MHz Empfänger

Hast du evtl. auch ein Beispielcode für mich, das ich mich schonmal einarbeiten kann. Ist die Wahrscheinlichkeit hoch, dass das ganze dann mit den handelsüblichen Funksteckdosen funktioniert.

Um die Funksteckdosen zu Schalten, benötigst du die RCSwitch-Library, da findest du auch reichlich Beispiele, mit denen due üben kannst.

Ich hab noch eine 868 Mhz fernbedienung für mein Garagentor. Arbeiten die meisten auch fsk. Hab auch diesen Empfänger besorgt. https://www.ebay.de/itm/181897708531

Auf der Frequenz 868 MHz wird üblicherweise in FSK gesendet, da musst du nur das richtige Protokoll verwenden.

Danke für deine tolle Hilfe!!!

Ok dann werd ich mir die jetzt mal bestellen. Für mein vorhaben würden ja die empfänger reichen.

Kann ich für die 868 mhz dinger auch die rcswitch-libary verwenden?

mrkw01:
Danke für deine tolle Hilfe!!!

gerne...

Ok dann werd ich mir die jetzt mal bestellen. Für mein vorhaben würden ja die empfänger reichen.

Wieso Empfänger ? Die willst doch die Steckdosen schalten, da brauchst du einen Sender.

Kann ich für die 868 mhz dinger auch die rcswitch-libary verwenden?

Nein die funktioniert da nicht. Das wird sicher auch deutlich schwieriger, da brauchst das richtige Protokoll und wenn das noch keiner rausgemessen hat, wird es deine Aufgabe sein.

Ich will mit der fernbedienung am arduino schalten, deshalb nur die empfänger. Die fernbedienungen hab ich hier eh rumliegen.

mrkw01:
Ich will mit der fernbedienung am arduino schalten, deshalb nur die empfänger. Die fernbedienungen hab ich hier eh rumliegen.

Ah, ok...du willst mit der Fernbedienung den Arduino steuern. Ja, das geht dann mit einem Empfänger.

Hallo muss nochmal nachfragen. Hab jetzt in der Artikelbeschreibung gelesen. Dort steht frequenz 433,92. würde bedeuten eine Funkfernbedienung geht damit. Kann ich mit dem empfänger auch die andere Fernbedienung nutzen, die mit 433,05-433,79Mhz (4 Stufen fest voreingestellt) angeheben ist.

Danke für die Antworten.

Ich kenne diese Fernbedienung nicht, vermute aber, es funktioniert nicht.
Der Frequenzbereich passt ja schon nicht.

Hallo,

hab' ein ähnliches Problem: Den Transceiver CC1101 und Funksteckdosen.

Man kann in der Panstamp Bibliothek die Frequenzen verändern. Die genauen Werte erfährt man wohl über das WindowsProgramm "SmartRF Studio" (http://www.ti.com/tool/SMARTRFTM-STUDIO) des Chipherstellers. Leider kann ich die Emailvalidierung nicht vollenden und dies somit testen.

Hat Irgendjemand damit Erfolg gehabt? Oder kennt man die Werte für Brennenstuhl(Intertek) Funksteckdosen?

Danke

pazzodiborgo:
Hat Irgendjemand damit Erfolg gehabt? Oder kennt man die Werte für Brennenstuhl(Intertek) Funksteckdosen?

Danke

Dann lies dir mal den Post #1 durch, da steht es.

ES GEHT NICHT !

Hi
Das Thema ist zwar etwas älter, aber das cc1101 mit rcswitch nicht funktioniert stimmt nicht ganz. Der cc1101 muss nur richtig konfiguriert werden. Habe es geschafft die rx Demo von rcswitch mit dem cc1101 zum Laufen zu bekommen. Werde mich heute noch damit beschäftigen den Rest zum Laufen zu bekommen. Das gute ist das man mit dem cc1101 auch andere Frequenzen nutzen kann. Alles zwischen 300-348MHz, 387-464 MHz und 779-928 MHz . Also auch 433,05-433,79Mhz wie oben im Post gefragt.

LSatan:
Hi
Das Thema ist zwar etwas älter, aber das cc1101 mit rcswitch nicht funktioniert stimmt nicht ganz. Der cc1101 muss nur richtig konfiguriert werden. Habe es geschafft die rx Demo von rcswitch mit dem cc1101 zum Laufen zu bekommen. Werde mich heute noch damit beschäftigen den Rest zum Laufen zu bekommen. Das gute ist das man mit dem cc1101 auch andere Frequenzen nutzen kann. Also zum Beispiel auch 433,05-433,79Mhz.

Ok, kann durchaus sein, dass du RCSwitch für die CC1101 verwenden kannst.

Hier war aber die Frage, ob mit den CC1101 und RCSwitch auch Funksteckdosen geschaltet werden können.

Da ist nach wie vor ein klares NEIN.

Die handelsüblichen Funksteckdosen werden AM-moduliert, der CC1101 ist FM-moduliert. Damit bleibe ich bei meinem Nein.

Also dem kann ich mich nicht anschließen.
Meine 433mhz rf Fernbedienung mit der ich das getestet habe sendet in am. Dies wird mir in sdr shark unter der entsprechenden freqenz und am modulation mit klaren piep Tönen bestätigt. Unter fm höre ich nur verzertes Rauschen. Also gehe ich mal davon aus das die fb in am sendet. Den cc1101 habe ich im ask/ook modus laufen. Dies wird vom Modul offiziell unterstützt. Die Ausgabe im seriellen modus funktioniert mit rcswitch wunderbar bei allen 4 Tasten der fb. Um das ganze zum Laufen zu bringen habe ich eine cc1101 libary mit eingebunden und den sketch rc Switch simple leicht angepasst. Außerdem müssen die Configurationen in der der cc1101 libary komplett angepasst werden. Wenn da ein Wert nicht stimmt dann geht das ganze nicht. Habe eine weile rumprobiert um es zum laufen zu bekommen. Aber wie gesagt bei mir funzt es super und ich werde die TX sketches auch noch anpassen. Wenn alles läuft werde ich meine ergebnisse teilen wenn bedarf besteht. Ich habe geplant den modus der Frequenzen 315 / 433 mhz im sketch änderbar zu machen. Außerdem soll ein Fine tune über die Kanaleinstllung im sketch vorgenommen werden können. Ich werde ein eigenes demosketch mit beifügen wo die empfangenen Daten per Tastendruck gesendet werden. Hoffe das alles klappt. Ich gebe Bescheid.

LSatan:
Also dem kann ich mich nicht anschließen.
Meine 433mhz rf Fernbedienung mit der ich das getestet habe sendet in am.
.....

Ok...Asche auf mein Haupt.
Ich habe bisher noch kein Datenblatt vom CC1101 gesehen, bei dem das drin steht, das es auch mit ASK funktioniert.
Wenn du eins hast, poste bitte einen Link.

Dann liegt es evtl. daran, dass ich nicht tief genug eingestiegen bin.
Sorry....

Edit:
Und sicher ist eine weitere Information für alle interessant.

https://www.google.de/url?sa=t&source=web&rct=j&url=http://www.ti.com/lit/ds/symlink/cc1101.pdf&ved=2ahUKEwj298ecqe7ZAhWrBsAKHW1dB40QFjAAegQICRAB&usg=AOvVaw3MvR5svyNbAqF-e8K8Z1uc

Auf Seite 2, Links bei Analog Features.

Das schöne an dem Modul ist das man alles verändern kann empfangsbandbreite etc.

LSatan:
https://www.google.de/url?sa=t&source=web&rct=j&url=http://www.ti.com/lit/ds/symlink/cc1101.pdf&ved=2ahUKEwj298ecqe7ZAhWrBsAKHW1dB40QFjAAegQICRAB&usg=AOvVaw3MvR5svyNbAqF-e8K8Z1uc

Auf Seite 2, Links bei Analog Features.

Das schöne an dem Modul ist das man alles verändern kann empfangsbandbreite etc.

OK, danke...das hatte ich nicht vorliegen.
Das eröffnet ganz neue Ideen. :wink:

Und zum drauf drügge:
Link zum PDF, CC1101

MfG

Ich habe gute Nachrichten.
Hab nun gut 9 Stunden an der der cc1101 lib rumgebastelt.
Es war echt nicht einfach das Teil zum Singen zu bekommen.
Empfangen ging ja schon und was soll ich sagen ich habe es
geschafft! ;)) Problematisch war bei dem teil das alles über
crc und Puffer läuft. Trotz ausgeschaltetem crc wollte er nicht
Senden da er nur in Paketen Sendet. Den Ganzen mist der damit
zusammen hing hab entfernt und mit einem einfachen befehl verknüpft
der ihn zum Senden überredet. Was soll ich sagen die Modulation ist sauber
und mein empfänger zu der fb springt Super drauf an.
Ich muss noch ein parr kleine feineinstellungen bezüglich der frequenz vornehmen
dann werde ich die cc1101 kompatible RCSwitch Version veröffentlichen
und den link hier posten.