SIGNALDuino Empfänger Firmware V 3.3.2r-dev

Begonnen von Ralf9, 07 Januar 2018, 21:37:44

Vorheriges Thema - Nächstes Thema

plin

Zitat von: HomeAuto_User am 22 Dezember 2019, 14:31:55
Da hast du ja gleich den Wunschzettel vollgeschrieben ;) Ich denke das könnte man anstellen, wenn man den Empfang erstmal via Registerschreiben (manuell) sicherstellte mit plausiblen Ergebnis.
na ja, das sind die Themen die mich vor/seit einem Jahr bewegt haben. Damals habe ich mittels RF Studio die aus meiner Sicht erforderlichen Registereinstellungen ermittelt und mittels Script/Set Commands dem CC1101 eingeimpft. Das hat damals weder in puncto empfangen noch senden zum Erfolg geführt. Der SDUINO neighte bei meinen Commands in eine Sende-Loop zu gehen. Deshalb ist es schön, dass das Thema FSK wieder fahrt gewinnt.

ich habe mir den SIGNALduino_nanoCC1101_3322rc10t.hex geladen, die Frequenz auf meine letzten relevanten Werte (868.275 MHz bzw. lt. Messung 868.140 MHz) gesetzt, ich empfange aber nichts. Jetzt habe ich mein URH mit SDR-Stick aktualisiert und gemessen. Wenn ich mittels SDUINO sende sehe ich gar nichts im Spektrum des relevanten Frequenzbereichs. Die Baudrate ist lt. ccconf 115 kBaud (DataRate:115051.27Baud, Modulation:2-FSK). Ich sende die halbwegs brauchbaren OOK-Signale mit 5600 Baud. Wie kommt die Baudrate zustande? Über das entsprechende CC1101-Register?

Ciao, plin
FHEM1 (Main) Raspi4 mit CUL, Homematic, SDUINO 433/OOK, zentrale Steuerung
FHEM2 (Keller) x86 mit CUL/hmland, IP-basierte Module
FHEM3 (Erdgeschoss) Raspi2 mit SDUINO 868/GFSK
FHEM4 (Hausanschlussraum), USV und OBIS-Modul
FHEM5 (Docker) mit FHEM2FHEM, InfluxDB

HomeAuto_User

@plin,
Vorsicht und nicht zu schnell verzweifeln ;)

Was FSK und SDRSharp angeht, so kann ich nur meine Erfahrung wiedergeben. Ich dachte auch der Sender ist still weil in SDRSharp ich nichts sah. ABER ich wurde des besseren belehrt, also nicht täuschen lassen.

Manuell eingestelltes Register zeigte mir auf einmal den Empfang mit dem Signalduino.

@Ralf, ich erstelle mal das neue Thema weil wir hier sonst weiter abzeigen.


Gesendet von iPhone mit Tapatalk Pro
"Developer" heißt nicht, das man alles wissen kann!
- FHEM v5.9 | Rasberry PI 3
- radino CC1101 433Mhz (SIGNALduino)| - radino CC1101 868Mhz (CUL) | nano 433Mhz (SIGNALduino) - Sensoren: purer Dschungel querbeet

HomeAuto_User

"Developer" heißt nicht, das man alles wissen kann!
- FHEM v5.9 | Rasberry PI 3
- radino CC1101 433Mhz (SIGNALduino)| - radino CC1101 868Mhz (CUL) | nano 433Mhz (SIGNALduino) - Sensoren: purer Dschungel querbeet

Ralf9

#408
Ich habe "FSK mit dem SIGNALDuino" unter sonstige Systeme angelegt
https://forum.fhem.de/index.php/topic,106594.0.html

Nachtrag:
Ich hab mal angefangen zu programmieren. Die Interruptroutine müsste eigentlich so ausreichend sein:
void handleSyncInterrupt() {
  cli();
  FiFo.enqueue(digitalRead(PIN_SEND));
  sei();
}

void enableReceive() {
   if (ccmode == 0) { // normal
     attachInterrupt(digitalPinToInterrupt(PIN_RECEIVE), handleInterrupt, CHANGE);
   }
   else if (ccmode == 1) { // sync mode
     attachInterrupt(digitalPinToInterrupt(PIN_RECEIVE), handleSyncInterrupt, CHANGE);
   }
   #ifdef CMP_CC1101
   if (hasCC1101) cc1101::setReceiveMode();
   #endif
}
FHEM auf Cubietruck mit Igor-Image, SSD und  hmland + HM-CFG-USB-2,  HMUARTLGW Lan,   HM-LC-Bl1PBU-FM, HM-CC-RT-DN, HM-SEC-SC-2, HM-MOD-Re-8, HM-MOD-Em-8
HM-Wired:  HMW_IO_12_FM, HMW_Sen_SC_12_DR, Selbstbau IO-Module HBW_IO_SW
Maple-SIGNALduino, WH3080,  Hideki, Id 7

RaspII

#409
Hallo Kollegen,
ihr habt mir den anderen Thread beim Tippen quasi unterm Hintern weggezogen, deshalb hier nochmal als Abschluss:

Nach mehrfachem Nachdenken bin ich zum Schluss gekommen, dass man das FSK Protkoll doch besser nicht mit dem Signalduino implementiert, meine Gedanken:

  • Der Signalduino wurde entwickelt, damit man mehrere Protokolle empfangen kann ohne dazwischen Parameter umprogrammieren zu müssen, dadurch hatte er einige Vorteile gegenüber CUL und Ableger
  • Nutzen wir das FSK Protokoll gibt es diese Vorteile m.E. nicht mehr, da man sich bzgl.  Datenrate und damit Filterfrequenzen festlegen muss
  • Mein Fazit ist, für das FSK Protkoll bleibe ich beim CUL

Ich habe für den NanoCUL eine Testimplementierung gemacht, siehe Anhang.
Parameter: 868,3MHz, bWidth 162,5 kHz, Drate: 4785,5 Baud, Daten werden via FiFo gelesen, ohne Sync Pattern, d.h. man bekommt alle Daten mit, wenn RSSI über einer bestimmten Schwelle ist.

Für meine Fernbedienung kommen dann alle Daten korrekt an (meine FB sendet die identsiche Botschaften zig mal), unten könnt Ihr sehen, dass die 1. 3. 5. Botschaft sogar Bitgenau synchronisiert sind (müsste man eigentlich per Firmware machen, da ohne Syn Pattern empfangen wird). Verschiebt man die 2. 4. ... Botschaften um ein Paar Bit hin und her sieht man, das es die selben Botschaften sind.


Bytes in Fifo: 14  Received Data: AAAAAAAAAAAAAAAAAAAAAAAAAAA5407FA5E2265C
Bytes in Fifo: 14  Received Data: C0F028F00000000000000000000002AAAAAAAAAA
Bytes in Fifo: 14  Received Data: AAAAAAAAAAAAAAAAAAAAAAA9501FE9788997303C
Bytes in Fifo: 14  Received Data: 0A3C0000000000000000000000AAAAAAAAAAAAAA
Bytes in Fifo: 14  Received Data: AAAAAAAAAAAAAAAAAAAA5407FA5E2265CC0F028F
Bytes in Fifo: 14  Received Data: 00000000000000000000002AAAAAAAAAAAAAAAAA
Bytes in Fifo: 14  Received Data: AAAAAAAAAAAAAAAA9501FE9788997303C0A3C000
Bytes in Fifo: 14  Received Data: 0000000000000000000AAAAAAAAAAAAAAAAAAAAA
Bytes in Fifo: 14  Received Data: AAAAAAAAAAAAA5407FA5E2265CC0F028F0000000
Bytes in Fifo: 14  Received Data: 0000000000000002AAAAAAAAAAAAAAAAAAAAAAAA
Bytes in Fifo: 14  Received Data: AAAAAAAAA9501FE9788997303C0A3C0000000000
Bytes in Fifo: 14  Received Data: 000000000000AAAAAAAAAAAAAAAAAAAAAAAAAAAA
Bytes in Fifo: 14  Received Data: AAAAAA5407FA5E2265CC0F028F00000000000000
Bytes in Fifo: 14  Received Data: 000000002AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
Bytes in Fifo: 14  Received Data: AA9501FE9788997303C0A3C00000000000000000
Bytes in Fifo: 14  Received Data: 00000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA5
Bytes in Fifo: 14  Received Data: 407FA5E2265CC0F028F000000000000000000000
Bytes in Fifo: 14  Received Data: 02AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA9501F
Bytes in Fifo: 14  Received Data: E9788997303C0A3C0000000000000000000000AA
Bytes in Fifo: 14  Received Data: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA5407FA5E
Bytes in Fifo: 14  Received Data: 2265CC0F028F00000000000000000000002AAAAA
Bytes in Fifo: 14  Received Data: AAAAAAAAAAAAAAAAAAAAAAAAAAAA9501FE978899
Bytes in Fifo: 14  Received Data: 7303C0A3C0000000000000000000000AAAAAAAAA
Bytes in Fifo: 14  Received Data: AAAAAAAAAAAAAAAAAAAAAAAAA5407FA5E2265CC0
Bytes in Fifo: 14  Received Data: F028F0000000000000000000000FFFFFFFFFFFFF


bin jetzt erst mal eine Weile offline

Nachtrag: jetzt auf für den ProMicroCUL

!!!!!   Diese Versionen können nur noch Testweise Empfangen, die Integration in FHEM funktioniert damit nicht !!!!

Nachtrag2:
Um diesen Mode in der Firmware zu aktivieren, muss man direkt im Terminal oder FHEM (raw mode) folgendes Kommado schicken:
krS3
als Bestätigung muss dann folgende Antwot zu sehen sein:
krS-ReceiveStart
Nachtrag3:
Die Firmwäre läuft noch mit GFSK
RaspII

Ralf9

Hallo RaspII,
Zitat
Ich habe für den NanoCUL eine Testimplementierung gemacht, siehe Anhang.
Parameter: 868,3MHz, Drate: 4785,5 Baud, Daten werden via FiFo gelesen, ohne Sync Pattern, d.h. man bekommt alle Daten mit, wenn RSSI über einer bestimmten Schwelle ist.
kannst Du bitte auch noch die cc1101 register posten?

Gruß Ralf
FHEM auf Cubietruck mit Igor-Image, SSD und  hmland + HM-CFG-USB-2,  HMUARTLGW Lan,   HM-LC-Bl1PBU-FM, HM-CC-RT-DN, HM-SEC-SC-2, HM-MOD-Re-8, HM-MOD-Em-8
HM-Wired:  HMW_IO_12_FM, HMW_Sen_SC_12_DR, Selbstbau IO-Module HBW_IO_SW
Maple-SIGNALduino, WH3080,  Hideki, Id 7

plin

Zitat von: RaspII am 22 Dezember 2019, 18:14:59
Nach mehrfachem Nachdenken bin ich zum Schluss gekommen, dass man das FSK Protkoll doch besser nicht mit dem Signalduino implementiert, meine Gedanken:

  • Der Signalduino wurde entwickelt, damit man mehrere Protokolle empfangen kann ohne dazwischen Parameter umprogrammieren zu müssen, dadurch hatte er einige Vorteile gegenüber CUL und Ableger
  • Nutzen wir das FSK Protokoll gibt es diese Vorteile m.E. nicht mehr, da man sich bzgl.  Datenrate und damit Filterfrequenzen festlegen muss
  • Mein Fazit ist, für das FSK Protkoll bleibe ich beim CUL
Ansichtssache. Ich habe einen SIGNALduino für 433 MHz-Devices die OOK funken und einen auf 868 MHz für den Use Case "Rolläden" der FSK sprechen soll. Für One-UseCase-User lohnt sich die FSK-Implementierung immer noch.
FHEM1 (Main) Raspi4 mit CUL, Homematic, SDUINO 433/OOK, zentrale Steuerung
FHEM2 (Keller) x86 mit CUL/hmland, IP-basierte Module
FHEM3 (Erdgeschoss) Raspi2 mit SDUINO 868/GFSK
FHEM4 (Hausanschlussraum), USV und OBIS-Modul
FHEM5 (Docker) mit FHEM2FHEM, InfluxDB

RaspII

ZitatAnsichtssache. Ich habe einen SIGNALduino für 433 MHz-Devices die OOK funken und einen auf 868 MHz für den Use Case "Rolläden" der FSK sprechen soll. Für One-UseCase-User lohnt sich die FSK-Implementierung immer noch

Ja, das stimmt schon, nur wo ist da der Unterschied z.B. zu einem NanoCul?
Der schickt ja auch die Empfangenen Botschaften raus. Mag sein, ich bin da voreingenommen weil ich bisher viel auf dem CUL programmiert habe.

Hier meine Registerkonfiguration, Achtung die geänderten Werte sind doppelt vorhanden, einmal rauskommentiert.

/  CC1101 Register Initialisation (see CC1101 Page 70ff and 62ff)
//  Data    Adr  Reg.Name RESET STUDIO COMMENT
// ======  ==== ======== ===== ====== =================================================================================================================================
0x01, // 00  IOCFG2   *29   *0B    GDO2_CFG=1: GDO2 Asserts when the RX Fifo is filled or above the RX FIFO threshold or the end of package is reached. Deasserted if the Fifo is empty
0x2E, // 01  IOCFG1    2E    2E    no change yet
0x46, // 02  IOCFG0   *3F   *0C    GDO0_CFG=2: Associated to the TX FIFO: Asserts when the TX FIFO is filled at or above the TX FIFO threshold.
                //                    De-asserts when the TXFIFO is below the same threshold.   
0x04, // 03  FIFOTHR   04   *47 RX Fifo Threshold = 20 Bytes
0xAA, // 04  SYNC1     D3    D3    Sync High Byte = AA (assumption: High Byte is first send sync byte)
0x54, // 05  SYNC0     91    91    Sync Low  Byte = 54 (AA 54 should work with CC1101 as Sync word)
0x0F,                         // 06  PKTLEN   *FF    3D    Package length for Kopp 15 Bytes (incl. Cks+Zeros, because handled as data because no standard CC1101 checksum)
0xE0, // 07  PKTCTRL1  04    04    Preamble quality is maximum(7), No Auto RX Fifo Flush, No Status Bytes will be send, No Address check
// 0x00, // 08  PKTCTRL0 *45    32    Data whitening off,  Rx and Tx Fifo, CRC disabled, Fixed package length
0x02, // 08  PKTCTRL0 *45    32    ## NoSync Data whitening off,  Rx and Tx Fifo, CRC disabled, ## NoSync Infinite package length
0x00, // 09  ADDR      00    00    Device Adress (Address filter not used)
0x00, // 0A  CHANNR    00    00    Channel Number (added to Base Frequency) is not used
0x06, // 0B  FSCTRL1  *0F    06    152,34375 kHz IF Frquency (##Claus: to be adjusted for Kopp, later if RX is used)
0x00, // 0C  FSCTRL0   00    00    Frequency Offset = 0
0x21, // 0D  FREQ2    *1E    21    FREQ[23..0] = f(carrier)/f(XOSC)*2^16  -> 868,3Mhz / 26Mhz * 2^16 = 2188650 dez = 21656A hex  (f(XOSC)=26 Mhz)
0x65, // 0E  FREQ1    *C4    65    Alternativ für Kanumouse: 868,260 / 26Mhz * 2^16 = 2188550 dez = 216506 hex
0x6A, // 0F  FREQ0    *EC    e8    s.o.
0x97, // 10  MDMCFG4  *8C    55    bWidth 162,5 kHz   (Kopp 50 Khz!, but does not work))
0x83, // 11  MDMCFG3  *22   *43    Drate: 4785,5 Baud   (Kopp: 4789 Baud, measured value !! may be increase by 1 is needed (83) because value should be 4800) doesn't work better with 81/83 )
// 0x16, // 12  MDMCFG2  *02   *B0    DC Blocking filter enabled, GFSK modulation (Kopp uses FSK, do not know whether 2-FSK, GFSK odr 4-FSK),
0x14, // 12  MDMCFG2  *02   *B0    ## NoSync DC Blocking filter enabled, GFSK modulation (Kopp uses FSK, do not know whether 2-FSK, GFSK odr 4-FSK),
        //                           manchester en-decoding disabled, ## NoSync Only carrier-sense above threshold
0x63, // 13  MDMCFG1  *22    23    Error Correction disabled, min 16 preamble bytes, Channel spacing = 350 khz
0xb9, // 14  MDMCFG0  *F8    b9    Channel spacing 350kHz  (Copied from somfy, do not know if ok )
0x47, // 15  DEVIATN  *47    00    frequency deviation = 47,607 khz (default, do not know if right, for RFM12b I used 45khz)
0x07, // 16  MCSM2     07    07   
0x0C,                 // 17  MCSM1     30    30    see above
0x29, // 18  MCSM0    *04    18    Calibration after RX/TX -> IDLE, PO_Timeout=2 ##Claus 0x01: Oszillator always on for testing
0x36, // 19  FOCCFG   *36    14
0x6C, // 1A  BSCFG     6C    6C
0x07, // 1B  AGCCTRL2 *03   *03    42 dB instead of 33dB
0x40, // 1C  AGCCTRL1 *40   *40
0x91, // 1D  AGCCTRL0 *91   *92   
0x87, // 1E  WOREVT1   87    87
0x6B, // 1F  WOREVT0   6B    6B
0xF8, // 20  WORCTRL   F8    F8
0x56, // 21  FREND1    56    56
0x11, // 22  FREND0   *16    17   0x11 for no PA ramping (before 16, this was the reason why transmission didn't run)
0xE9, // 23  FSCAL3   *A9    E9   as calculated by Smart RF Studio
0x2A, // 24  FSCAL2   *0A    2A   as calculated by Smart RF Studio
0x00, // 25  FSCAL1    20    00   as calculated by Smart RF Studio
0x1F, // 26  FSCAL0    0D    1F   as calculated by Smart RF Studio
0x41, // 27  RCCTRL1   41    41
0x00, // 28  RCCTRL0   00    00


Der NanoCul kann bisher nur Empfangen,
Folgenden Befehl muss man hierfür in die Konsole eingeben:
krS3
RaspII

Ralf9

Danke, wenn dies auch mit dem FIFO ohne Sync geht, dann ist der sync-Mode nicht mehr notwendig.
FHEM auf Cubietruck mit Igor-Image, SSD und  hmland + HM-CFG-USB-2,  HMUARTLGW Lan,   HM-LC-Bl1PBU-FM, HM-CC-RT-DN, HM-SEC-SC-2, HM-MOD-Re-8, HM-MOD-Em-8
HM-Wired:  HMW_IO_12_FM, HMW_Sen_SC_12_DR, Selbstbau IO-Module HBW_IO_SW
Maple-SIGNALduino, WH3080,  Hideki, Id 7

RaspII

Jups,
allerdings muss man sich noch mit dem Parameter "carrier-sense above threshold" auseinandersetzten.
Man kann hier absolute Schwellen vorgeben oder eine Erhöhung der RSSI.

Für meine Zwecke gibt es hier keinen Bedarf (ich brauche keine Reichweite), aber für eine professionelle Implementierung sollt man sich anschauen wie man damit umgeht.
RaspII

Ralf9

Irgendwas passt nicht. Ich habe den CUL als Sender benutzt, aber am sduino kommen keine MU-Nachrichten an
defmod myCUL CUL /dev/serial/by-id/usb-FTDI_FT232R_USB_UART_A600G900-if00-port0@38400 1234
attr myCUL rfmode KOPP_FC
attr myCUL room CUL_TCM97001

defmod culfsk KOPP_FC 21 FA5E 02 11
attr culfsk IODev myCUL
attr culfsk model Switch_8080_01
attr culfsk room CUL_TCM97001


und den sduino so wie hier im async Mode konfiguriert
https://github.com/RFD-FHEM/RFFHEM/issues/711#issuecomment-564270161

Hier sind die cc1101 register
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 0C 3D 1F 41 00 59 7F 3F 88 31 0B
FHEM auf Cubietruck mit Igor-Image, SSD und  hmland + HM-CFG-USB-2,  HMUARTLGW Lan,   HM-LC-Bl1PBU-FM, HM-CC-RT-DN, HM-SEC-SC-2, HM-MOD-Re-8, HM-MOD-Em-8
HM-Wired:  HMW_IO_12_FM, HMW_Sen_SC_12_DR, Selbstbau IO-Module HBW_IO_SW
Maple-SIGNALduino, WH3080,  Hideki, Id 7

RaspII

#416
welchen CUL hast Du geflasht?
Du brauchst den hier:
https://forum.fhem.de/index.php/topic,82379.msg1004292.html#msg1004292

Hier meine aktuellen Settings (Deine müssten aber auch gehen):
ccreg 00: 0D 2E 2D 77 AA 54 02 04 32 00 00 06 00 21 65 6A  ccreg 10: 97 83 14 63 B9 47 07 00 18 14 6C F8 00 CF 87 6B  ccreg 20: F8 B6 11 EF 2A 16 1F 41 00 59 7F 3F 88 31 0B

Nachtrag:

Hast Du beim Signalduino noch den Empfang enabled?
XE

Musste ich bei FSK immer machen
RaspII

Ralf9

ja den habe ich geflasht
https://sourceforge.net/p/culfw/code/HEAD/tree/trunk/culfw/Devices/nanoCUL/

habe testweise den mode auf slowrf gewechselt, dann kann ich Intertechno v1 empfangen und schalten
FHEM auf Cubietruck mit Igor-Image, SSD und  hmland + HM-CFG-USB-2,  HMUARTLGW Lan,   HM-LC-Bl1PBU-FM, HM-CC-RT-DN, HM-SEC-SC-2, HM-MOD-Re-8, HM-MOD-Em-8
HM-Wired:  HMW_IO_12_FM, HMW_Sen_SC_12_DR, Selbstbau IO-Module HBW_IO_SW
Maple-SIGNALduino, WH3080,  Hideki, Id 7

RaspII

RaspII

Ralf9

hat nichts gebracht
ccreg 00: 0D 2E 2D 77 AA 54 02 04 32 00 00 06 00 21 65 6A
ccreg 10: 97 83 14 63 B9 47 07 00 18 14 6C F8 00 CF 87 6B
ccreg 20: F8 B6 11 EF 0C 3C 1F 41 00 59 7F 3F 88 31 0B
FHEM auf Cubietruck mit Igor-Image, SSD und  hmland + HM-CFG-USB-2,  HMUARTLGW Lan,   HM-LC-Bl1PBU-FM, HM-CC-RT-DN, HM-SEC-SC-2, HM-MOD-Re-8, HM-MOD-Em-8
HM-Wired:  HMW_IO_12_FM, HMW_Sen_SC_12_DR, Selbstbau IO-Module HBW_IO_SW
Maple-SIGNALduino, WH3080,  Hideki, Id 7