Entwicklung SIGNALDuino Empfänger Firm- und Hardware V4 für Maple Mini und ESP32

Begonnen von Ralf9, 13 Dezember 2019, 12:48:26

Vorheriges Thema - Nächstes Thema

killah78

Sehr cool. Hat geklappt nach ein paar Änderungen. Ich darf ja natürlich nicht mit der gleichen Adresse senden, denn der Gong reagiert ja nicht auf sich selbst. Aber ein Anlernen eines neuen Codes hat geklappt.
Ich hatte das alles vorher mit Radio B getestet, jetzt aber, nach deinem Hinweis, auf Radio A umgestellt.
Zusätzlich habe ich 50 Wiederholungen eingestellt:
set maple_sduino raw SRA;;R=50;;P0=-381;;P1=100;;P2=260;;P3=-220;;P4=419;;P5=-544;;D=52310102310231023101023101010102310232310101010101010231010101010101010101010101010101010101010234;;
Mit diesem konnte ich jetzt einen neuen Sender anlernen und auch einen Gong auslösen.
Toll.
Allderings klappte das nicht mit sendMsg:
2021.04.22 10:04:30 5: maple_sduino: sendmsg msg=P200#000100101010010000101100000001000000000000000000001111#R50
2021.04.22 10:04:30 5: maple_sduino: sendmsg Preparing rawsend command for protocol=200, repeats=50, clock=100 bits=000100101010010000101100000001000000000000000000001111
2021.04.22 10:04:30 5: AddSendQueue: maple_sduino: SR;R=50;P0=420;P1=-540;P2=260;P3=-220;P4=100;P5=-380;D=01454545234545234523452345452345454545234523234545454545454523454545454545454545454545454545454545454523232323; (1)
2021.04.22 10:04:30 4: maple_sduino/set: sending via SendMsg: SR;R=50;P0=420;P1=-540;P2=260;P3=-220;P4=100;P5=-380;D=01454545234545234523452345452345454545234523234545454545454523454545454545454545454545454545454545454523232323;
2021.04.22 10:04:31 5: maple_sduino SW: SR;R=50;P0=420;P1=-540;P2=260;P3=-220;P4=100;P5=-380;D=01454545234545234523452345452345454545234523234545454545454523454545454545454545454545454545454545454523232323;
2021.04.22 10:04:31 4: maple_sduino SendrawFromQueue: msg=SR;R=50;P0=420;P1=-540;P2=260;P3=-220;P4=100;P5=-380;D=01454545234545234523452345452345454545234523234545454545454523454545454545454545454545454545454545454523232323;
2021.04.22 10:04:31 4: maple_sduino/msg READ: Radio B is not active!
2021.04.22 10:04:31 5: maple_sduino/noMsg Parse: Radio B is not active!
2021.04.22 10:04:31 4: maple_sduino/msg READ: 1. Received answer (Radio B is not active!) for sendraw does not match ^S(R|C|M|N);
2021.04.22 10:04:33 4: maple_sduino/HandleWriteQueue: sendraw no answer (timeout)
2021.04.22 10:04:33 4: maple_sduino/HandleWriteQueue: nothing to send, stopping timer

Da stimmen erstens die vor-"000" und End-"111" nicht. Und er will immer durch das Radio B senden. Das hatte ich jetzt für diesen Test deaktiviert. Kann man diese Vor- und Nachsymbole im Protokol so einstellen? Der start passt ja so, aber wie wird das hinten angehangen?

Ralf9

ZitatUnd er will immer durch das Radio B senden.
Dafür gibts das Attribut "sendSlowRF_A_IDs"
ZitatNur für MapleSduino Firmware ab V 4.12
Hier können komma getrennt die protocolId angegeben bei denen das cc1101 Modul A zu senden verwendet wird.
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

killah78

Das Attribut "sendSlowRF_A_IDs" habe ich nicht. Per userattr hinzugefügt hat es keine Funktion.
Ich habe zwischenzeitlich mal im Log mal die Sequenz genommen, was sendMsg erstellt, und das dann per raw gesendet. Und das hat tatsächlich funktioniert. Also muss wohl das Ende nicht mit den "111" abgeschlossen werden. Soweit so gut.

Ich nutze die Version "v3.4.5-ralf_18.08.", ist das nicht die aktuellste dev Version?


Ralf9

ZitatDas Attribut "sendSlowRF_A_IDs" habe ich nicht. Per userattr hinzugefügt hat es keine Funktion.
dies ist momentan nur in der dev Version enthalten.
Eine Testversion von 00_SIGNALduino.pm und signalduino_protocols.pm habe ich unter "FSK mit dem SIGNALDuino" gepostet, dort ist das Honeywell bereits enthalten:
https://forum.fhem.de/index.php/topic,106594.msg1152006.html#msg1152006

Dort ist 000 am Anfang und 111 am Ende

start           => [-5.4],
end             => [4.2],


Beim sendMsg können die Daten auch in Hex angegeben werden
sendmsg P200#0x942160200009#50

Bitte teste mal ob dies so passt:
CW000D,012E,022D,0307,04D3,0591,063D,0704,0832,0D21,0E65,0F6A,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
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

killah78

Nein, mit den Registern kommt nichts an.
Ich muss die Frequenz auf 868.350 lassen damit es funktioniert. Ich weiss, da sagt mein Screenshot aus sdr# was anderes.... Sollte ich vielleicht mal kalibrieren....
Ich habe derzeit folgende Register gesetzt, mit der es klappt:
ccreg 00: 0D 2E 2D 07 D3 91 3D 04 32 00 00 06 00 21 65 E8
ccreg 10: 57 F8 00 23 B9 50 07 00 18 14 6C 07 00 90 87 6B
ccreg 20: F8 56 11 EF 2C 17 1F 41 00 59 7F 3F 88 31 0B


Habe die dev Version vom Modul gefunden und funktioniert wunderbar. sendMsg funktioniert damit auch.

Ralf9

ich habe die cc1101 Register für das Honeywell ActivLink auch bei "FSK mit dem SIGNALDuino" eingetragen
https://forum.fhem.de/index.php/topic,106594.msg1005067.html#msg1005067

Bei den cc1101 Registern 1B und 1D hast Du noch andere Werte als bei den anderen FSK Protokollen üblich.

Bitte teste mal ob es mit 1B43 und 1D91 genausogut funktioniert.
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

FunkOdyssey

Sind MapleSduino und MapleCU(N|L) eigentlich wirklich so viel unterschiedlich, dass die LAN-Firmware von einem MapleSduino nicht auf einen MapleCUN passt?

Ich hatte hier vor langer Zeit im Thread mal erwähnt, dass ich es mal testen möchte. Aber ich bin vom CUL weg und muss eine CUN-Lösung haben. Für einen MapleCUN gibt es leider keine Signalduino-Firmware.

Ist hier noch etwas in Planung? Oder kann ich auch einfach versuchen, die LAN-Firmware des MapleSduino zu flashen?

Ralf9

Die LAN-Firmware des MapleSduino wird nicht auf dem MapleCUN funktionieren.
Beim MapleSduino ist das LAN an SPI1 des Maplemini angeschlossen.
Beim MapleCUN ist das LAN an SPI2 des MapleMini angeschlossen.

Ich habe das hier gefunden
https://github.com/arduino-libraries/Ethernet/pull/134
Demnach sind an der Ethernet lib einige Anpassungen nötig, damit das LAN auch an SPI2 funktioniert.

Evtl funktioniert es auch ohne diese Anpassungen, wenn in der SIGNALDuino.ino dies
#ifdef MAPLE_CUL
SPIClass SPI_1(28, 29, 30);
Ethernet.init((31);
#endif

vor dieser Zeile eingefügt wird
if (ip[3] != 0) {
https://github.com/Ralf9/SIGNALDuino/blob/5b00e34846327c665186a2393f18b085ef126f62/SIGNALDuino.ino#L344

Kann dies bitte mal jemand mit einem MapleCUN testen?

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

Jake

Hallo Ralf9,

zuerst mal guten Tag hier im Forum.

Meine Funksteckdosen vom Typ Well-Light (433 MHz) werden vom Maple_Signalduino leider nicht erkannt.
Der Versuch des Sendens des Befehls schlägt fehl:

set maple_sduino raw MC;;LL=-1048;;LH=908;;SL=-562;;SH=418;;D=A8CA345ACB860A916AFB7;;C=489;;L=84;;R=221;;s1;;b1;;


Zitat2021.05.16 14:10:38 4: maple_sduino: KeepAlive, ok, retry = 0
2021.05.16 14:10:39 4: maple_sduino: Set_raw, raw MC;LL=-1048;LH=908;SL=-562;SH=418;D=A8CA345ACB860A916AFB7;C=489;L=84;R=221;s1;b1;
2021.05.16 14:10:39 5: maple_sduino: AddSendQueue, maple_sduino: MC;LL=-1048;LH=908;SL=-562;SH=418;D=A8CA345ACB860A916AFB7;C=489;L=84;R=221;s1;b1; (1)
2021.05.16 14:10:39 4: maple_sduino: HandleWriteQueue, called
2021.05.16 14:10:39 4: maple_sduino: SendFromQueue, called
2021.05.16 14:10:39 5: maple_sduino: SimpleWrite, MC;LL=-1048;LH=908;SL=-562;SH=418;D=A8CA345ACB860A916AFB7;C=489;L=84;R=221;s1;b1;
2021.05.16 14:10:39 4: maple_sduino: Read, msg: Unsupported command
2021.05.16 14:10:39 5: maple_sduino: Parse, noMsg: Unsupported command
2021.05.16 14:10:39 4: maple_sduino: HandleWriteQueue, called
2021.05.16 14:10:39 4: maple_sduino: HandleWriteQueue, nothing to send, stopping timer


Warum sendet der Maple_Sduino den Raw Befehl nicht?

Grüße Jake (i.A. juergs)

Ralf9

ZitatMeine Funksteckdosen vom Typ Well-Light (433 MHz) werden vom Maple_Signalduino leider nicht erkannt.
ich habe dafür unter Sonstige Syteme ein neues Thema aufgemacht
https://forum.fhem.de/index.php/topic,121103.0.html

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

killah78

Hi Ralf, funktioniert genauso.
Viele Grüße
Zitat von: Ralf9 am 29 April 2021, 20:08:55
Bitte teste mal ob es mit 1B43 und 1D91 genausogut funktioniert.

FunkOdyssey

Zitat von: Ralf9 am 16 Mai 2021, 00:40:09

Evtl funktioniert es auch ohne diese Anpassungen, wenn in der SIGNALDuino.ino dies
#ifdef MAPLE_CUL
SPIClass SPI_1(28, 29, 30);
Ethernet.init((31);
#endif

vor dieser Zeile eingefügt wird
if (ip[3] != 0) {
https://github.com/Ralf9/SIGNALDuino/blob/5b00e34846327c665186a2393f18b085ef126f62/SIGNALDuino.ino#L344

Kann dies bitte mal jemand mit einem MapleCUN testen?


Ich versuche aktuell mein MapleCUL mit der Signalduino-USB-Firmware in Betrieb zu nehmen.
Ich habe den Maple bereits mehrmals geflasht und auch den Bootloader vorsichtshalber per FTDI-Adapter neu geschrieben.
Sobald der CUL in FHEM bei mir läuft, werde ich die deinen Patch für LAN-Variante für den MapleCUN ausprobieren.

Da ich dann erstmals Signalduino kompiliere, habe ich noch eine Frage.  Ich muss doch nur folgendes anpassen, oder?

// #define MAPLE_SDUINO 1
#define MAPLE_CUL 1
//#define BLACK_BOARD 1  // 1 - USB, 2 - serial USART2 fuer ESP
#define LAN_WIZ 1        // nur fuer MAPLE_SDUINO mit USR-ES1 W5500
#define LAN_INIT_DHCP 1  // damit wird bei der ersten Inbetriebnahme DHCP verwendet
#define MAPLE_WATCHDOG 1



Ich teste gerade, wie ich für STM32-boards kompilieren kann. Ich habe "Arduino core support for STM32 based boards" (Quelle: https://github.com/stm32duino/Arduino_Core_STM32) eingebunden.
Aber dennoch habe ich folgenden Fehler in der IDE. Hast du einen Tipp für mich?
Branch: https://github.com/Ralf9/SIGNALDuino/tree/dev-r412_cc1101


Arduino: 1.8.15 (Windows 10), Board: "Generic STM32F1 series, Generic F103CBTx, Maple DFU Bootloader 2.0, Enabled (no generic 'Serial'), None, Low/Full Speed, Fast (-O1), Newlib Nano (default)"


In file included from Y:\SIGNALDuino\cc1101.h:12,

                 from Y:\SIGNALDuino\SIGNALDuino.ino:98:

Y:\SIGNALDuino\tools.h: In function 'void tools::EEwrite(uint16_t, uint8_t)':

tools.h:82:3: error: 'eeprom_buffered_write_byte' was not declared in this scope

   82 |   eeprom_buffered_write_byte(adr, val);

      |   ^~~~~~~~~~~~~~~~~~~~~~~~~~

Y:\SIGNALDuino\tools.h: In function 'void tools::EEbankWrite(uint8_t, uint8_t)':

tools.h:92:3: error: 'eeprom_buffered_write_byte' was not declared in this scope

   92 |   eeprom_buffered_write_byte(bankOffset + reg, val);

      |   ^~~~~~~~~~~~~~~~~~~~~~~~~~

Y:\SIGNALDuino\tools.h: In function 'void tools::EEstore()':

tools.h:102:3: error: 'eeprom_buffer_flush' was not declared in this scope

  102 |   eeprom_buffer_flush();  // Copy the data from the buffer to the flash

      |   ^~~~~~~~~~~~~~~~~~~

Y:\SIGNALDuino\tools.h: In function 'void tools::EEbufferFill()':

tools.h:109:3: error: 'eeprom_buffer_fill' was not declared in this scope

  109 |   eeprom_buffer_fill();

      |   ^~~~~~~~~~~~~~~~~~

Y:\SIGNALDuino\tools.h: In function 'uint8_t tools::EEread(uint16_t)':

tools.h:117:11: error: 'eeprom_buffered_read_byte' was not declared in this scope

  117 |    return eeprom_buffered_read_byte(adr);

      |           ^~~~~~~~~~~~~~~~~~~~~~~~~


exit status 1

'eeprom_buffered_write_byte' was not declared in this scope



FunkOdyssey

Das hatte ich schon gelesen, aber deine Lösung gibt es nicht mehr.

Zitat von: juergs am 21 März 2020, 18:09:59
Die fehlende Installatation von "STM32 cores STMicroelectronics" über den BoardManager war dann wohl das Problem ...
Hoffe das vertägt sich mit allen anderen Instralationen ...

Jürgen