culfw - Frequenz und Modulationsverfahren

Begonnen von oh2fan, 03 Januar 2019, 15:56:22

Vorheriges Thema - Nächstes Thema

oh2fan

Hallo Gemeinde,

versuche verzweifelt das Signal eines RF Senders zu sniffen.

Verwende zum sniffen ein 868 MHz CUL mit dem ich in 100 kHz Schritten alles zwischen 433,000 und 434,000 MHz und 867,500 und 868,500 MHz probiert habe.
Jetzt hatte ich den Sender offen. Verbaut ist ein RF60SC2 mit einem 10.000 Quartz.

Was ich im Netz an Manuals zu dem Chip gefunden habe:

https://nz.apexelex.com/specs/rf_ics_ism_band/RF60.pdf
http://www.hoperf.de/upload/rf/RFM60_en.pdf

Das einzige, was ich meine hier verstanden zu haben ist, dass bei 433,92 MHz die Abweichung max. +/- 108 kHz betragen soll.

Warum empfange ich dann nichts wenn ich mein CUL auf diese Frequenz einstelle?
Für meine schaltbaren Steckdosen, die auch auf 433,92 MHz funken, sehe ich den traffic.

Ich habe bei den Kollegen im mikrocontroller.net (https://www.mikrocontroller.net/topic/465784) nun einen Hinweis bekommen,
dass es evtl. an einer Unstimmigkeit in dem verwendeten Modulationsverfahren liegt, dass ich im Log nichts sehe.

Wer kann mir nun genau hierbei helfen.

Laut dem http://www.ti.com/lit/ds/symlink/cc1101.pdf steht die Modulationsart des CUL in Register 0x12.

Mit Einträgen in Register 0x0F 0x10 0x11 ändere ich derzeit die Frequenz.
Hier entnommen http://culfw.de/commandref.html

--- SNIP ---

Change frequency
FREQ2(0D), FREQ1(0E), FREQ0(0F), Fosc = 26MHz
Fcarrier = Fosc/65536*(FREQ2.FREQ1.FREQ0)

Example: W0F21, W1065, W11E8 (868.35MHz)
W0F21, W1062, W1176 (868.00MHz)

--- SNIP ---

Das passt nicht so ganz zusammen.
Wieso schreibt das Kommando in Register 0x0F 0x10 0x11 und nicht 0x0D 0x0E 0x0F wo es laut Formel erwartet wird?
Shiftet das screen Kommando (um 2) beim Schreiben.

Lese ich das Register 0x12 aus bekomme ich

Hex 55 = Dez 85 = Bin 01010101

Laut Tabelle auf Seite 77 des cc1101.pdf "0x12: MDMCFG2–Modem Configuration" würde das für  die verwendete Modulation 2 (010) und damit "-" bedeuten.
Kann ich so kaum glauben.

Lese ich das Register 0x14 (also shift 2) bekomme ich

Hex 30 = Dez 48 = Bin 00110000

Laut Tabelle auf Seite 77 cc1101.pdf "0x12: MDMCFG2–Modem Configuration" würde das für  die verwendete Modulation 0 (000) und damit den default 2-FSK bedeuten.
Wenn ich mir hier mit dem zu ändernden Register sicher wäre, könnte ich mal mit ASK/OOK (011) probieren.

Wer kann mir hier Nachhilfe geben?

Achja, wenn ich auf 433MHz schalte, kann ich sehr wohl (mit X67) die RAW Daten einer Brennenstuhl RC 4001 Steckdose sehen.
Also generell scheint das schon so zu funktionieren...

Danke und Grüße
Florian

KölnSolar

#1
Hi Florian,
wie Du ja schon Im Thema schreibst, brauchst Du erst einmal das gemeinsame Modulationsverfahren. Das bekommst Du über diesen Weg nicht raus. Lt. pdf kann der Sendechip FSK/OOK. Der CUL macht im slowRF-Modus OOK. Ein 433-er mit 433.92 MHz und ein 868er mit 868.?? MHz. Und dann gibt es noch soooo viele Parameter die das Empfangsverhalten des CC1101 beeinflussen.

Ich denke ohne etwas Hilfe des Herstellers oder ein Oszilloskop kommst Du so nicht weiter.  :'( Bei Oszilloskop fällt mir dann nur noch ein, dass sich das Frequenzspektrum mit einem DVB-T-Stick ermitteln lässt. Ich guck mal, was ich von plin auf die Schnelle an Info finde. Der hatte sich vor geraumer Zeit ähnlich versucht wie Du....

Grüße Markus

Edit:
https://wiki.fhem.de/wiki/Funksignalanalyse_mit_DVB-T_Stick
https://wiki.fhem.de/wiki/Unbekannte_Funkprotokolle
RPi3/2 buster/stretch-SamsungAV_E/N-RFXTRX-IT-RSL-NC5462-Oregon-CUL433-GT-TMBBQ-01e-CUL868-FS20-EMGZ-1W(GPIO)-DS18B20-CO2-USBRS232-USBRS422-Betty_Boop-EchoDot-OBIS(Easymeter-Q3/EMH-KW8)-PCA301(S'duino)-Deebot(mqtt2)-zigbee2mqtt

oh2fan

Hi Markus,

danke für die Tipps! Zweiteren Link hatte ich schon mal überflogen, dachte aber so schneller ans Ziel zu kommen...

Du hast recht, es gibt sicherlich ein paar mehr Punkte die den Empfang beeinträchtigen.
Aber das richtige Modulationsverfahren zu verwenden würde die Chancen etwas zu sehen vll. doch signifikant erhöhen. :)

Was ich gerade in der Referenz der culfw gefunden habe:

Configuration registers foe "SlowRF" as described in the "Table 37: "SPI Address space" of the CC1101 datasheet (Version SWRS061C).
Note: all EEPROM Values have an offset of 2.

Das erklärt die "Shift 2" Vermutung.

Um das vom CUL verwendete Modulationsverfahren zu erfahren muß ich also Register 0x14 (nicht 0x12 wie in der Tabelle des cc1101.pdf beschrieben) auslesen.
Das interessante:

Wenn ich die Frequenz vom default 868MHz auf 433MHz runter setze ändert sich an dieser Stelle nichts.
Es bleibt bei R0014 = 30 / 48

Hex 30 = Dez 48 = Bin 00110000

Auf Seite 77 des cc1101.pdf "0x12: MDMCFG2–Modem Configuration" kann nun das verwendeten Modulationsverfahren entnommen werden.
Hier hatte ich wohl noch einen Fehler drin. Ich hatte die Bit-Reihenfolge - vermute ich - nur verkehrt herum interpretiert.  :-[

Das 6 bis 4 Bit ist 00110000 und damit wird laut Tabelle ASK/OOK verwendet.
Sowohl bei 868 als auch bei 433.

Ich habe jetzt mal mit W1400 auf 2-FSK umgeschaltet. Hat leider nichts gebracht.
Werde heute Abend nochmal mit GFSK probieren.

Wenn das auch nicht geht, dann zerlege ich den ganzen Sch... und ersetze den Mist durch einen enocean Rolladen Aktor... :)

Aber die Familie blökt schon, weil durch die Bastelei jetzt auch der Beamer nicht mehr runter fährt...  ;D

Grüße
Florian

KölnSolar

Das Problem ist halt, dass Du in Unkenntnis des vom Sender eingesetzten Modulationsverfahrens mit dem CUL im Heuhaufen suchst. Da helfen dann auch Deine verzweifelten Versuche die EEPROM-/Registerstruktur der culfw bzw. des CC1101 zu verstehen nicht viel. Der CC1101 hat einfach viel zu viele Register, die auf das Empfangsverhalten einen Einfluss haben.

Wenn Du aber unbedingt den CUL verstehen willst, guck mal hier

Wegen des offsets von 2 Bytes(magic bytes genannt) finde ich gerade den Link nicht... :'(
RPi3/2 buster/stretch-SamsungAV_E/N-RFXTRX-IT-RSL-NC5462-Oregon-CUL433-GT-TMBBQ-01e-CUL868-FS20-EMGZ-1W(GPIO)-DS18B20-CO2-USBRS232-USBRS422-Betty_Boop-EchoDot-OBIS(Easymeter-Q3/EMH-KW8)-PCA301(S'duino)-Deebot(mqtt2)-zigbee2mqtt