CC1101 und Arduino

Hallo zusammmen,

ich hab mir ein 433 Mhz Modul zugelegt mit dem CC1101 Chip.

Nun find ich keine passende Library / Beispielprogramme dazu.
Die ELECHOUSE_CC1101 Lib hab ich gefunden, aber die scheint veraltet / defekt zu sein. Da bekomme ich immer Kompilierungsfehler.

Habt ihr Infos, welche Lib fehlerfrei funktioniert?

Poste doch mal einen Link zum 433 MHz Modul.

https://www.amazon.de/Stable-Funk-Module-Technische-externer-Antenne/dp/B00GBW6WJY/ref=cm_cd_al_qh_dp_t

nettworker:
https://www.amazon.de/Stable-Funk-Module-Technische-externer-Antenne/dp/B00GBW6WJY/ref=cm_cd_al_qh_dp_t

Was Du gepostet hast, ist zwar eine Webadresse, aber kein Link. Ich habe das mal korrigiert:

https://www.amazon.de/Stable-Funk-Module-Technische-externer-Antenne/dp/B00GBW6WJY/ref=cm_cd_al_qh_dp_t

Gruß

Gregor

Danke an Gregor.

Wichtig wäre hier, welche IDE-Version du verwendest.

Bei neueren könnte es Probleme machen, da die Libs wohl nicht auf aktuellem Stand sind.

Teste diese mal: Library

Und hier eine etwas neuere: Library

ich sage nur:

Produktbeschreibungen

Um die effektive Kommunikation Abstand zu verstärken, wurde CC1101 Modul von einem inländischen Einheiten erforscht und entwickelt.

Beschreibung:

Verbesserte Unechte reagieren auf
Closer Phasenrauschen
Besser um die Leistung der Nachbarkanalleistung zu verbessern (AKP)
Sättigungspegel Eingang höher
Höhere Leistung Leistung
Kontinuierliche Frequenzbänder Erweiterungen
Arbeitsfrequenz: 433 MHz
Max. Arbeitsgeschwindigkeit: 500 Kbps
Unterstützt 2 FSK, GFSK, MSK Modulationen
Hohe Empfindlichkeit ( 110 dBm @ 1.2Kbps, 1% Datenfehlerrate)
Built in CRC Fehlererkennung und zeigen auf Multi Point Kommunikationsadresse Steuer
Niedriger Stromverbrauch (RX Modus 15.6mA, 2.4Kbps, 433 MHz)
Programmierbare Ausgangsleistung bis zu +10 dBm für alle Frequenz
Wireless wach Funktion
Unterstützt Low Power elektromagnetische Welle aktivierte Funktion
Unterstützt Auto sauber CCA vor der Übertragung
Carrier Überwachungssystem
Schnellfrequenzvariation Synthesizer für die richtige Frequenzsprung System
Standard DIP Pin Pitch
Einzelnen 64 Byte RX und TX FIFO Daten
Reichweite: 200 Meter
Betriebsspannung: 1,8 ~ 3,6 V
Modell: CC1101
Material: PCB
Farbe: Blau
Anwendung: Für DIY Projekt

Das mag die Seite des Verkäufers sein. Ist aber ein Texas Chip:

Warum kauft man was ohne vorher zu schauen, wie man es ansteuern kann?

Programming examples gibts hier:

mde110:
Warum kauft man was ohne vorher zu schauen, wie man es ansteuern kann?

Wo ist das Problem?
Es gibt doch uns bzw. dieses Forum. :wink:

mde110:
Warum kauft man was ohne vorher zu schauen, wie man es ansteuern kann?

Ich hab vorher geschaut, ob es eine Library gibt! Das die veraltet ist und nicht mit meiner IDE 1.6.7 funktioniert habe ich natürlich nicht probiert, Asche auf mein Haupt.

Wenn ich mich darauf verlassen würde, was der Verkäufer schreibt, dann dürfte ich fast gar nichts in dem Bereich kaufen, denn auch unsere deutschen Händler sind da vielfach nur Kistenschieber und können einem bei einem verkauften Produkt nicht wirklich weiter helfen.

Ich habs jetzt mit der Panstamp Lib komiliert bekommen und auch der Init Prozess des Beispielprogramms läuft sauber durch.

Nun bekomme ich ab und zu Pakete rein. Zum einen weis ich nicht woher und ich weis auch nicht, wie ich die auswerten könnte. Kann mir jemand was zu der Struktur / Inhalt der Pakete sagen. Die Daten scheinen ja in einem Array vorzuliegen. Und bitte verweist mich nicht auf irgendeine englischsprachige Dokumentation, das krieg ich nicht gereglt mit meinem 45 Jahre alten Schulenglisch.

Hier ein Bild von der Ausgabe:
KLICK

#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(9600);
  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);
  }
}

nettworker:
Hier ein Bild von der Ausgabe:
KLICK

Poste das Bild bitte hier im Forum.

Nicht alle User möchten fremde Webseiten besuchen.

nettworker:
Und bitte verweist mich nicht auf irgendeine englischsprachige Dokumentation, das krieg ich nicht gereglt mit meinem 45 Jahre alten Schulenglisch.

Dann vergiss das Ganze.
In deutsch wirst du nichts finden.

Solltest du dir es anders überlegen, dann schau hier.

HotSystems:
Poste das Bild bitte hier im Forum.

Bitteschön:
unspecified1a.jpg

Text als Bild... - dafür gäbe es doch diese berüchtigte Copy-Paste-Funktion :wink:

uxomm:
Bitteschön:

Dankeschön...

Hab's grad erst gefunden, wie ich hier das Bild hochladen kann, Danke....

Leider sehe ich jetzt erst das Datum

cb1pa:
'@ HotSystems,
grade du, der schon in den elechouse Lib's mit LSatan herumgeschrieben hat sollte wissen das die elechouse lib's so nicht mehr funktionieren können. (Siehe diverse Beiträge in diversen Foren und auch bei Github , von euch!)

So....hab ich das ?
Wusste ich noch garnicht. Aber jetzt....danke.

Ja, HotSystems, so bist du! :smiling_imp: :smiling_imp: :smiling_imp:

cb1pa:
Leider sehe ich jetzt erst das Datum

Wer lesen kann ist klar im Vorteil.