Autor Thema: Entwicklung SIGNALDuino Empfänger Firm- und Hardware V 4.x.x auch auf Maple Mini  (Gelesen 62912 mal)

Offline killah78

  • Full Member
  • ***
  • Beiträge: 250
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?

Offline Ralf9

  • Developer
  • Hero Member
  • ****
  • Beiträge: 3701
Zitat
Und er will immer durch das Radio B senden.
Dafür gibts das Attribut "sendSlowRF_A_IDs"
Zitat
Nur 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

Offline killah78

  • Full Member
  • ***
  • Beiträge: 250
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?


Offline Ralf9

  • Developer
  • Hero Member
  • ****
  • Beiträge: 3701
Zitat
Das 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

Offline killah78

  • Full Member
  • ***
  • Beiträge: 250
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.

Offline Ralf9

  • Developer
  • Hero Member
  • ****
  • Beiträge: 3701
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

Offline FunkOdyssey

  • Hero Member
  • *****
  • Beiträge: 2208
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?

Offline Ralf9

  • Developer
  • Hero Member
  • ****
  • Beiträge: 3701
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

Offline Jake

  • New Member
  • *
  • Beiträge: 6
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;;

Zitat
2021.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)
« Letzte Änderung: 16 Mai 2021, 14:25:44 von Jake »

Offline Ralf9

  • Developer
  • Hero Member
  • ****
  • Beiträge: 3701
Zitat
Meine 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

Offline killah78

  • Full Member
  • ***
  • Beiträge: 250
Hi Ralf, funktioniert genauso.
Viele Grüße
Bitte teste mal ob es mit 1B43 und 1D91 genausogut funktioniert.

Offline FunkOdyssey

  • Hero Member
  • *****
  • Beiträge: 2208

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
« Letzte Änderung: 20 Mai 2021, 17:26:43 von FunkOdyssey »

Offline juergs

  • Hero Member
  • *****
  • Beiträge: 1928
    • github

Offline FunkOdyssey

  • Hero Member
  • *****
  • Beiträge: 2208
Das hatte ich schon gelesen, aber deine Lösung gibt es nicht mehr.

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

Offline juergs

  • Hero Member
  • *****
  • Beiträge: 1928
    • github

 

decade-submarginal