FHEM - Hausautomations-Systeme > Sonstige Systeme

FSK mit dem SIGNALDuino

(1/60) > >>

Ralf9:
Ab meiner firmware V 3.3.4.
https://forum.fhem.de/index.php/topic,82379.msg1010643.html#msg1010643
und
V 4.x.x
https://forum.fhem.de/index.php/topic,106278.msg1001477.html#msg1001477
ist auch ein Empfangen und Senden von FSK modulierten Signalen möglich. Es gibt auch 10 EEPROM Speicherbänke in denen die cc1101 Register gespeichert werden können.


Der sduino hat die Option, verschiedene Funk-Modi für die dauerhafte Nutzung zu speichern und zwischen den gespeicherten Funk-Modi per raw-Befehl flexibel und einfach umzuschalten.
In dem übernächsten Beitrag sind noch weitere Funk-Modi aufgeführt
u.a.
1. Empfang von IT+ Protokoll(Lacrosse Sensoren; FSK-Modulation bei 17.241 und 9.579 kbps)
2. Senden/Empfang von PCA301 (Funkmesssteckdosen bisher in der Regel nur per Jeelink oder LaCrosse Gateway zu empfangen)
3. Kopp Free Control

hier sind weitere Infos zu FSK mit dem SIGNALDuino:
https://forum.fhem.de/index.php/topic,106594.msg1150650.html#msg1150650


Für die einfache u. flexible Umschaltung werden im EEPROM (z.B. Nano oder Promini) 10 Speicherbänke, die mit 0-9 adressiert werden, genutzt. Die firmware des sduino hat zur Verwaltung die folgenden raw-Befehle:
 - get raw e<0-9>je nach Speicherbank; der Befehl initialisiert und aktiviert die jeweilige Speicherbank mit Standard-Settings[FactoryReset])
 - get raw b<0-9> je nach Speicherbank; der Befehl aktiviert die angegebene Speicherbank, dazu wird der cc1101 mit den in der Speicherbank gespeicherten Registern initialisiert.
   mit nachgestelltem W, also set raw bNW, wird die "Standard-Bank" dauerhaft im EEPROM gespeichert, so dass der sduino immer in diesem
   Modus startet
 - get raw CW, damit kann eine folge von cc1101 Registern gesetzt und in die aktuelle EEPROM Speicherbank geschrieben werden.
-  get raw b oder b?   damit wird eine Info über die aktive Speicherbank ausgegeben


Ab der firmware 4.x (z.Zt. nur für den Maple Mini) werden auch bis zu vier cc1101 Module und ein LAN-Modul unterstützt
https://forum.fhem.de/index.php/topic,106278.0.html

Für die zusätzlichen cc1101 gibt es die folgenden raw Befehle:

CR - configRadio
MIt CRE<A-D> kann ein cc1101 Modul aktiviert werden. z.B. CREA aktiviert das erste cc1101 Modul A
MIt CRD<A-D> kann ein cc1101 Modul deaktiviert werden. z.B. CRDA deaktiviert das erste cc1101 Modul A

Der Befehl b wurde erweitert:
 b <A-D><0-9>  damit wird ein cc1101 (A-D) mit einer Speicherbank (0-9) initialisiert. z.B. mit bA3 wird das das erste cc1101 Modul A mit der Speicherbank 3 initalisiert.
 b<A-D> damit wird ein cc1101 (A-D) selektiert. Die Befehle zum lesen und schreiben vom EEPROM und cc1101 Registern werden auf das selektierte cc1101 angewendet. Z.B. mit bA wird das erste cc1101 Modul A selektiert.


Ein FSK Sendekommando sieht so aus:

--- Code: ---SN;R=13;N=4;D=07FA5E1921CC0F02F0000000000000;
--- Ende Code ---
13 Wiederholungen
Mit N=4 wird angegeben, dass mit dem cc1101 Modul gesendet wird, das der Kopp Free Controll Speicherbank zugeordnet ist. Wenn z.B. die Bank 4 für Kopp verwendet wird und mit bA4 das cc1101 Modul A der Bank 4 zugeordnet ist, dann wird das cc1101 Modul A zum Senden verwendet.

Eine raw Nachricht sieht z.B. so aus:

--- Code: ---MN;D=07FA5E1721CC0F02FE000000000000;N=4;
--- Ende Code ---
Mit dem N=4 kann das 00_Signalduino Modul die raw Nachricht der Protocol ID 102 zuordnen und entsprechend weiter verarbeiten.


Für die FSK und EEPROM Speicherbank unterstützung ist eine angepasste und erweiterte Version der 00_SIGNALduino.pm und die signalduino_protocols.pm notwendig:
https://forum.fhem.de/index.php/topic,111653.msg1058900.html#msg1058900
https://github.com/Ralf9/RFFHEM/issues/4

In dem übernächsten Beitrag sind die die für FSK notwendigen Registeränderungen beschrieben.

Hier ist ein angepasstes Modul für PCA301
https://github.com/Ralf9/36_PCA301.pm

In der Anlage ist für Kopp ein angepasstes Modul

Für "DP100/ECOWITT/FineOffset WH51" und "BRESSER 5-in-1 Comfort Wetter Center" ist ein angepasstes 14_SD_WS.pm Modul (siehe Anlage) notwendig

Gruß Ralf

HomeAuto_User:
Bitte ergänzen.
Laut http://www.panstamp.org/forum/showthread.php?tid=3070 ist noch bei


--- Code: ---Mode 1 - IT+ 17.241 kbps
Mode 2 - IT+ 9.579 kbps
--- Ende Code ---

ein Synchronwort 0x2DD4 wichtig.
Das betrifft bestimmt


--- Code: ---0x04 SYNC1
0x05 SYNC0
--- Ende Code ---

Ralf9:
hier gehts u.a. um die für FSK notwendigen Registeränderungen.

Ab meiner firmware V 3.3.4.0 dev 200121 gibts ein neues Kommando "CW", damit kann eine folge von cc1101 Registern gesetzt und in die aktuelle EEPROM Speicherbank geschrieben werden. Es kann damit auch gleich die Konfigvariable ccN (Adr 3D) und ccmode (Adr 3E) gesetzt werden.

Ab der Firmware 4.1.0-dev200427 und 3.3.4-dev200914 wurde der CW Befehl (cc register write) erweitert, es kann nun auch eine max 8 Zeichen (Adr 0x40 bis 0x47) Bankkurzbeschreibung ins EEPROM geschrieben werden.

Bevor die cc1101 Registersequenz an den sduino gesendet wird, muß der EEPROM Speicherbereich mit e oder e<0-9> mit einem Factoryreset initialisiert werden. Wird eine nicht initialisierte Bank aktiviert, dann wird die Bank automatisch mit Standard-Settings[FactoryReset]) initialisiert.

Bei meiner Variante der 00_SIGNALduino.pm gibts seit 03.11.20 ein "set sduino rfmode", damit wird dann die ausgewählte Registersequenz mit dem CW Befehl gesendet.

Für ältere Versionen gibt es unten eine History.

aus der rf_native.c
Mode 1 - IT+ 17.241 kbps (LaCrosse)  - SYNC  = 2DD4,  bWidth = 203KHz, DataRate = 17257.69Baud, DEVIATN = 88.867kHz,  12 byte in RX, ccN=0,  ccmode=4

--- Code: ---get sduino raw CW0001,0246,0302,042D,05D4,06FF,0700,0802,0D21,0E65,0F6A,1089,115C,1206,1322,14F8,1556,1700,1818,1916,1B43,1C68,1D91,2211,23E9,242A,2500,2611,3D00,3E04,404d,4131,425f,4349,4454,452b,4600

--- Ende Code ---


Mode 2 - IT+ 9.579 kbps (LaCrosse)   -  SYNC  = 2DD4,  bWidth = 203KHz, DataRate = 9571Baud, DEVIATN = 88.867kHz,  12 byte in RX, ccN=2,  ccmode=3

--- Code: ---get sduino raw CW0001,0246,0302,042D,05D4,06FF,0700,0802,0D21,0E65,0F6A,1088,1182,1206,1322,14F8,1556,1700,1818,1916,1B43,1C68,1D91,2211,23E9,242A,2500,2611,3D02,3E03,404d,4132,425f,4349,4454,452b,4600

--- Ende Code ---


Mode 3 - PCA 301 - 868.950 MHz, 6.631 kbps  -  SYNC  = 2DD4,  bWidth = 203KHz, DataRate = 6620.41Baud, DEVIATN = 69.824kHz,  32 byte in RX,  ccN=3,   ccmode=3

--- Code: ---get sduino raw CW0001,0246,0307,042D,05D4,06FF,0700,0802,0D21,0E6B,0FD0,1088,110B,1206,1322,14F8,1553,1700,1818,1916,1B43,1C68,1D91,2211,23E9,242A,2500,2611,3D03,3E03,4050,4143,4241,435f,4433,4530,4631,4700

--- Ende Code ---


Kopp Free Control Datarate: 4785,5 Baud (GFSK)  -  SYNC  = AA54,  bWidth = 101KHz, DataRate = 4785,5Baud, DEVIATN = 25.391kHz,  20 byte in RX,  ccN=4,   ccmode=2

--- Code: ---get sduino raw CW0001,0246,0304,04AA,0554,060F,07E0,0800,0D21,0E65,0FCA,10C7,1183,1216,1373,14F8,1540,170C,1829,1936,1B07,1C40,1D91,2211,23E9,242A,2500,261F,3D04,3E02,404b,416f,4270,4370,445f,4546,4643,4700

--- Ende Code ---


WS 1600 (TX22) Datarate: 8842 kbps  -  SYNC  = 2DD4,  bWidth = 203KHz, DataRate =  8852.01Baud , DEVIATN = 88.867kHz,  12 byte in RX,  ccN=5,   ccmode=3

--- Code: ---get sduino raw CW0001,0246,0302,042D,05D4,06FF,0700,0802,0D21,0E65,0F6A,1088,1165,1206,1322,14F8,1556,1700,1818,1916,1B43,1C68,1D91,2211,23E9,242A,2500,2611,3D05,3E03,404d,4135,425f,4349,4454,452b,4600
--- Ende Code ---
Ist noch nicht getestet


DP100/ECOWITT/FineOffset WH51 - 868.350 MHz, Datarate: 17.241 kbps   -   SYNC  = 2DD4,  bWidth = 812KHz, DEVIATN = 88.867kHz, 14  byte in RX,  ccN=6,   ccmode=3

--- Code: ---get sduino raw CW0001,0246,0303,042D,05D4,06FF,0700,0802,0D21,0E65,0FE8,1009,115C,1206,1322,14F8,1556,1700,1818,1916,1B43,1C68,1D91,2211,23E9,242A,2500,2611,3D06,3E03,4057,4148,4235,4331,4400
--- Ende Code ---
Es passen noch nicht alle Einstellungen, wie z.B. die Datarate und bWidth


BRESSER 5-in-1 Comfort Wetter Center - 868.350 MHz, Datarate: 8232.12 kbps   -  SYNC  = 2DD4,  bWidth =  203kHz, DEVIATN =  57.129kHz,  28 byte in RX ccN=7,   ccmode=4

--- Code: ---get sduino raw CW0001,0246,0306,042D,05D4,06FF,07C0,0802,0D21,0E65,0FE8,1088,114C,1202,1322,14F8,1551,1700,1818,1916,1B43,1C68,1D91,2211,23E9,242A,2500,2611,3D07,3E04,4042,4172,4265,4373,4473,4535,4631,4700
--- Ende Code ---


Honeywell ActivLink - 868.350 MHz, Datarate: 6248.47 kbps   -  bWidth =  203kHz,  DEVIATN =  50.781kHz  ccN=0,   ccmode=0

0x12   CC1100_MDMCFG2, 0x00,   // Modulation:2-FSK (SYNC_MODE:No preamble/sync)

--- Code: ---get sduino raw CW000D,022D,0307,04D3,0591,063D,0704,0832,0D21,0E65,0FE8,1087,11F8,1200,1323,14B9,1550,1700,1818,1914,1B43,1C00,1D91,2211,23E9,242A,2500,2611,3D00,3E00,4048,4177,4253,436C,446F,4577,4652,4746
--- Ende Code ---


Rojaflex - 433.920MHz, Datarate: 9992.60Baud (GFSK)  - SYNC  = D391 D391, bWidth =  101KHz, DEVIATN =  20.630kHz, 12 byte in RX, ccN=8,  ccmode=4

0x08: PKTCTRL0,  0x05  //  CRC enabled / Variable packet length mode. Packet length configured by the first byte after sync word

--- Code: ---get sduino raw CW0001,0246,0302,04D3,0591,06FF,0700,0805,0D10,0EB0,0F71,10C8,1193,1213,1322,14F8,1535,1700,1818,1916,1B43,1C40,1D91,2211,23E9,242A,2500,2611,3D08,3E04,4052,416f,426a,4361,4466,456c,4665,4778
--- Ende Code ---


Avantek - 433.300MHz, Datarate: 49987.79Baud  - SYNC  = 0869, bWidth =  203KHz, DEVIATN = 57.129kHz, 8 byte in RX, ccN=9,  ccmode=4

--- Code: ---get sduino raw CW0001,0246,0301,0408,0569,06FF,0780,0802,0D10,0EAA,0F56,108A,11F8,1202,1322,14F8,1551,1700,1818,1916,1B43,1C40,1D91,2211,23E9,242A,2500,2611,3D09,3E04,4041,4176,4261,436e,4474,4565,466b,4700
--- Ende Code ---


WH24_WH25 - 868.300 MHz, Datarate: 17.241 kbps (LaCrosse)  - SYNC  = 2DD4,  bWidth = 203KHz, DataRate = 17257.69Baud, DEVIATN = 88.867kHz,  20 byte in RX, ccN=0,  ccmode=4

--- Code: ---get sduino raw CW0001,0246,0304,042D,05D4,06FF,0700,0802,0D21,0E65,0F6A,1089,115C,1206,1322,14F8,1556,1700,1818,1916,1B43,1C68,1D91,2211,23E9,242A,2500,2611,3D00,3E04,4057,4148,4232,4334,4457,4548,4632,4735
--- Ende Code ---


W136 - 868.300 MHz, Datarate: 4797.94 kbps  - SYNC  = 2DD4,  bWidth = 203KHz, DEVIATN = 88.867kHz,  24 byte in RX, ccN=10,  ccmode=4

--- Code: ---get sduino raw CW0001,0246,0305,042D,05D4,06FF,0700,0802,0D21,0E65,0F6A,1087,1183,1206,1322,14F8,1556,1700,1818,1916,1B43,1C68,1D91,2211,23E9,242A,2500,2611,3D0A,3E04,4057,4131,4233,4336,4400
--- Ende Code ---



Konfiguration von RaspII für async Mode von Kopp Free Control (GFSK)

--- Code: ---ccreg 00: 0D 2E 2D 47 D3 91 3D 04 32 00 00 06 00 21 65 6A 
ccreg 10: 97 83 16 63 B9 47 07 00 18 14 6C 07 00 91 87 6B 
ccreg 20: F8 B6 11 EF 2A 16 1F 41 00 59 7F 3F 88 31 0B

reichen diese Register gegenüber default?

00  IOCFG2 0D  Serial Data Output. Used for asynchronous serial mode.
01  IOCFG1 2E 
02  IOCFG0 2D

0B  FSCTRL1 06
0C  FSCTRL0 00

10  MDMCFG4 97
11  MDMCFG3 83
12  MDMCFG2 16
13  MDMCFG1 63
14  MDMCFG0 B9
15  DEVIATN 47
--- Ende Code ---


History:

für ältere Versionen als V 4.1.0-dev200427 und 3.3.4-dev200914

Wichtig: Bevor die cc1101 Registersequenz an den sduino gesendet wird, muß der EEPROM Speicherbereich mit e oder e<0-9> mit einem Factoryreset initialisiert werden.

Mode 1 - IT+ 17.241 kbps (LaCrosse)  -  ccN=0,  ccmode=3

--- Code: ---get sduino raw CW0001,012E,0246,0302,042D,05D4,06FF,0700,0802,0D21,0E65,0F6A,1089,115C,1206,1322,14F8,1556,1700,1818,1916,1B43,1C68,1D91,2211,23E9,242A,2500,2611,3D00,3E03
--- Ende Code ---

Mode 2 - IT+ 9.579 kbps (LaCrosse)   -  ccN=2,  ccmode=3

--- Code: ---get sduino raw CW0001,012E,0246,0302,042D,05D4,06FF,0700,0802,0D21,0E65,0F6A,1088,1182,1206,1322,14F8,1556,1700,1818,1916,1B43,1C68,1D91,2211,23E9,242A,2500,2611,3D02,3E03
--- Ende Code ---

Mode 3 - PCA 301 - 868.9500MHz, 6.631kbps  -  ccN=3,   ccmode=3

--- Code: ---get sduino raw CW0001,012E,0246,0307,042D,05D4,06FF,0700,0802,0D21,0E6B,0FD0,1088,110B,1206,1322,14F8,1553,1700,1818,1916,1B43,1C68,1D91,2211,23E9,242A,2500,2611,3D03,3E03
--- Ende Code ---

Kopp Free Control Datarate: 4785,5 Baud (GFSK)  -  ccN=4,   ccmode=2

--- Code: ---get sduino raw CW0001,012E,0206,0304,04AA,0554,060F,07E0,0800,0D21,0E65,0F6A,1097,1183,1216,1363,1547,170C,1829,1936,1C40,1D91,23E9,242A,2500,3D04,3E02
--- Ende Code ---

ECOWITT/FineOffset WH51 - Datarate: 17.241 kbps   -  ccN=6,   ccmode=3

--- Code: ---CW0001,012E,0246,0303,042D,05D4,06FF,0700,0802,0D21,0E65,0FE8,1009,115C,1206,1322,14F8,1556,1700,1818,1916,1B43,1C68,1D91,2211,23E9,242A,2500,2611,3D06,3E03
--- Ende Code ---

Gruß Ralf

plin:
Ich habe gerade noch mal den minimalistischen Ansatz verfolgt: Zurück zu SIGNALDuino_nanocc1101_331rc7.hex, Register 12 auf GFSK bzw. 2-FSK geändert und bei
--- Code: ---ccconf: freq:868.275MHz bWidth:650KHz rAmpl:42dB sens:4dB (DataRate:5603.79Baud, Modulation:GFSK)
--- Ende Code ---
empfange ich jetzt MU-Nachrichten.

Der SDUINO hat das Register auf
0x12 MDMCFG2  - 0x30 -> 00110000 (ASK/OOK)
gesetzt.

Die für FSK relevanten Varianten sind
00000000 (2-FSK)
00010000 (GFSK)

RaspII:
Ich habe noch ein paar Fragen:
Welchen SDR Stick hast Du?, dabei geht es mir um die Genauigkeit der Frequenz

Bzgl. Der Datenrate:  Im Datenblatt deines Senderchips steht 20khz
, bist Du Dir bei  2482 Baud ganz sicher?

Nachtrag:
Kannst du nicht den Originalsender  zum Testen mit der culfw nehmen?

Navigation

[0] Themen-Index

[#] Nächste Seite

Zur normalen Ansicht wechseln