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

Ralf9

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

jochen_f

Funktioniert prima  :)

Diesen Patch nutze ich noch für die Umleitung der seriellen Schnittstelle auf den ESP01:


diff --git a/SIGNALDuino.ino b/SIGNALDuino.ino
index 993cd1e..843df96 100644
--- a/SIGNALDuino.ino
+++ b/SIGNALDuino.ino
@@ -143,6 +143,12 @@ Callee rssiCallee;
   HardwareSerial HwSerial(SerialNr);
#endif

+#ifdef SER_USART2
+  #include <HardwareSerial.h>
+
+  HardwareSerial HwSerial2(USART2);
+#endif
+
#define pulseMin  90

#define maxCmdString 600
@@ -350,6 +356,9 @@ void setup() {
   #ifdef DEBUG_SERIAL
        HwSerial.begin(BAUDRATE);
   #endif
+  #ifdef SER_USART2
+  HwSerial2.begin(BAUDRATE);
+  #else
        Serial.begin(BAUDRATE);
        while (!Serial) {
                ; // wait for serial port to connect. Needed for native USB
@@ -360,6 +369,7 @@ void setup() {
                        break;
                }
        }*/
+  #endif
        digitalWrite(PIN_LED, LOW);
#ifdef DEBUG_SERIAL
        HwSerial.println(F("serial init ok"));
@@ -604,9 +614,10 @@ void loop() {
        bool state;
        uint8_t fifoCount;
       
-/*#ifdef MAPLE_Mini
+#ifdef SER_USART2
        serialEvent();
#endif*/
+
#ifdef LAN_WIZ
        serialEvent();
        ethernetLoop();
diff --git a/compile_config.h b/compile_config.h
index 844b992..5d64622 100644
--- a/compile_config.h
+++ b/compile_config.h
@@ -2,9 +2,10 @@

// Config flags for compiling correct options / boards Define only one

-#define MAPLE_SDUINO 1
+//#define MAPLE_SDUINO 1
//#define MAPLE_CUL 1
-//#define BLACK_BOARD 1
+#define BLACK_BOARD 1
+#define SER_USART2 1
//#define LAN_WIZ 1  // nur fuer MAPLE_SDUINO mit USR-ES1 W5500

#define MAPLE_WATCHDOG 1
diff --git a/src/_micro-api/libraries/output/src/output.h b/src/_micro-api/libraries/output/src/output.h
index d14650a..bcb2e38 100644
--- a/src/_micro-api/libraries/output/src/output.h
+++ b/src/_micro-api/libraries/output/src/output.h
@@ -58,6 +58,10 @@
   extern EthernetClient client;

#define MSG_PRINTER client
+#elif SER_USART2
+  extern HardwareSerial HwSerial2;
+
+#define MSG_PRINTER HwSerial2
#else
#define MSG_PRINTER Serial
#endif
@@ -65,6 +69,8 @@
#ifdef LAN_WIZ
//#ifdef ETHERNET_DEBUG
#define DBG_PRINTER client
+#elif SER_USART2
+#define DBG_PRINTER HwSerial2
#else
#define DBG_PRINTER Serial
#endif


Gruß,
Jochen

Ralf9

ZitatDiesen Patch nutze ich noch für die Umleitung der seriellen Schnittstelle auf den ESP01:
Ich habe versucht es etwas einfacher hinzubekommen:

In der Arduino IDE habe ich beim board: "USART Support: Enabled (no generic serial)"

in der compile_config.h

#define BLACK_BOARD 2  // 1 - USB, 2 - serial USART2 für ESP

#if BLACK_BOARD == 2
#define SERIAL_USART2
#endif


in der output.h
#ifdef SERIAL_USART2
  extern HardwareSerial Serial;
#endif


In der Signalduino.ino
#if defined(DEBUG_SERIAL) || defined(SERIAL_USART2)
  #include <HardwareSerial.h>
#endif
#ifdef DEBUG_SERIAL
  HardwareSerial HwSerial(SerialNr);
#endif
#ifdef SERIAL_USART2
  HardwareSerial Serial(USART2);
#endif

in der loop()
#ifdef SERIAL_USART2
serialEvent();
#endif


Mir ist dabei nicht klar warum jetzt die "serialEvent()" nicht mehr automatisch aufgerufen wird.

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

jochen_f

Zitat von: Ralf9 am 06 Februar 2021, 21:53:08
Ich habe versucht es etwas einfacher hinzubekommen:

Funktioniert prima.

Zitat von: Ralf9 am 06 Februar 2021, 21:53:08
Mir ist dabei nicht klar warum jetzt die "serialEvent()" nicht mehr automatisch aufgerufen wird.

Ich habe es nicht weiter untersucht, aber ohne das serialEvent() ist der SIGNALDuino auf USART2 taub.

Gruß, Jochen

bublik10

Hallo Zusammen, eins vorweg: Tolle Idee und tolle Software!!
Ich habe diese auf einem 4x Maple CUL laufen. Der 433MHz läuft problemlos aber ich habe Probleme mit LaCrosse Sensoren.
Mal kommen die Daten im Minutentakt dann aber(meistens) nur alle 15 bis 30 Minuten oder noch gößeren Abständen.
Meine Konfiguartion ist:
Chip A: b=1 rx=0 freq:868.300MHz bWidth:203KHz rAmpl:33dB sens:8dB (DataRate:17257.69Baud) [boffs=0100*] a_ccconfFSK ccmode=3 sync=2DD4 Modulation:2-FSK
(SYNC_MODE:16/16 + carrier-sense above threshold)
Chip B: b=0 rx=0 freq:433.920MHz bWidth:325KHz rAmpl:42dB sens:4dB (DataRate:5603.79Baud,Modulation:ASK/OOK) [boffs=0000]
Chip C: b=2 rx=0 freq:868.300MHz bWidth:203KHz rAmpl:33dB sens:8dB (DataRate:9571.08Baud) [boffs=0140]
Ich habe zwei Sensoren TX35DTH und TX29, was mache ich falsch??

Ralf9

Mein TX29 wird zuverlässig alle ca 5 - 10 Sek empfangen.

Evtl passt die Frequenz nicht genau.
Es gibt cc1101 Module und Sensoren bei denen die Frequenz nicht passt.
Habe hier im Forum was darüber gelesen, kann es aber gerade nicht finden.

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

jochen_f

Ja, siehe https://forum.fhem.de/index.php/topic,91740.0.html

Das zuletzt in dem Beitrag vorgestellte 868MHz CC1101 Board wäre für das Blackboard auch noch eine interessante Option, dann aber nicht mehr ganz lötfrei.

Gruß, Jochen

Ralf9

ZitatDas zuletzt in dem Beitrag vorgestellte 868MHz CC1101 Board wäre für das Blackboard auch noch eine interessante Option, dann aber nicht mehr ganz lötfrei.
Der Vorteil vom Blackboard ist, daß man nicht löten muss.
Wenn man ein 868MHz CC1101 benötigt und deshalb beim Blackboard löten müsste, ist die Platine von Ranseyer die bessere Wahl

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

Zitat von: Ralf9 am 08 Februar 2021, 19:19:21
Mein TX29 wird zuverlässig alle ca 5 - 10 Sek empfangen.

Evtl passt die Frequenz nicht genau.
Es gibt cc1101 Module und Sensoren bei denen die Frequenz nicht passt.
Habe hier im Forum was darüber gelesen, kann es aber gerade nicht finden.

Gruß Ralf

Also zu dem Thema muss ich leider auch sagen, dass es bei mir nicht korrekt mit Lacrosse funktioniert. Allerdings liegt es nicht an der Signalduino Software. Ich habe das auch mit dem MapleCUL beobachtet. Auch auf beiden Platinen (sduino, CUL) mit der signalduino software getestet.
Zum Thema Modul und Frequenz: Ich hatte Module verwendet, aus einer vermeintlich zuverlässigen Aliexpress-Quelle. Aber das muss ja erstmal nix heißen. Ich habe dann auch das Homematic Frequenzestprogramm mal durchlaufen lassen. Ergebnis war sehr gut. Also keine Abweichungen.
Trotzdem habe ich diese Empfangsaussetzer bei Lacrosee. Mit einem  TX35-IT (Mode 2).
Aber es ist interessant, dass weitere diese Aussetzer haben, auch mit Mode 1.

@bublik10 Du nutzt die Briefmarkenmodule? Wo hast du diese gekauft? Aber wie gesagt, ich glaube nicht, dass es an den Funkmodulen liegt.

Ralf9

Es kann auch sein dass bei der a-culw die cc1101 Registerwerte für Lacrosse nicht ganz stimmen, ich habe die cc1101 Registerwerte von der a-culw übernommen.
Bei CSccmode=4 verwende ich für den Empfang die selbe Routinen wie die a-culw.

Solange keiner der Entwickler solch einen Lacrosse Sensor mit Aussetzern hat, wird es schwierig den Fehler zu finden

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

juergs

Zum Thema TX35-IT :
https://github.com/merbanan/rtl_433/blob/master/src/devices/lacrosse_tx35.c

Zitat...tune to 868240000Hz...

Aussetzer zeigen eigentlich an, dass das Empfangsfenster nur in der Nähe der Sendefrequenz des Sensors liegt.
Wahrscheinlich ist es besser, mal mit der Frequenz etwas zu variieren ...
Außerdem gibt es ja auch noch andere Rahmenbedingungen: "schlechte" Antenne, zu große Dämpfung der Zuleitung etc. 

Eine #SDRSharp-Session  (neue Version ) gäbe u.U. auch Aufschluss über die Sachlage.  ;)

MapleCUL868 ccconf => freq:868.550MHz bWidth:325KHz rAmpl:42dB sens:8dB
Bei bWidth:325KHz sind es ca. 162KHz um die Mittenfrequenz!

Grüße,
Jürgen

killah78

Ich kann das mal probieren, mit SDRSharp.
Ich hatte übringens auch schon mal getestet, ob mit rtl_433 korrekt empfange wird, weil ich ausschließen wollte, dass der Sender irgendwie defekt ist. aber damit wurde korrekt empfangen.
Aber ich versuche das mal mit SDRSharp. Kann aber ein paar Tage dauern.

bublik10

Ich hatte einen ersten AHA Effekt nachdem ich den MapleCUL von meine NAS-Geäuse entfernt habe.
Allerdings hat es das Problem nicht ganz gelöst, hier mal eine Beispielhistorie, wie unregelmäßig die Daten eintrudeln:
Die Position der Sensoren habe ich nicht verändert.
2021-02-16_00:47:58 16.7
2021-02-16_01:31:38 16.6
2021-02-16_01:54:58 16.5
2021-02-16_03:05:58 16.4
2021-02-16_03:06:18 16.4
2021-02-16_03:06:28 16.4
2021-02-16_03:07:58 16.4
2021-02-16_03:17:13 16.4
2021-02-16_03:17:18 16.4
2021-02-16_04:12:48 16.5
2021-02-16_04:12:58 16.5
2021-02-16_04:14:28 16.5
2021-02-16_04:14:58 16.5
2021-02-16_05:05:58 16.8
2021-02-16_07:14:58 16.7
#laTemp4:temperature:::
Na ja ich werde mal auch mit den Frequenzen rumspielen.

Ralf9

Zitat von: Ralf9 am 05 Februar 2021, 16:53:09
Hallo Jochen,

was für ein STM32 ist auf Deinem Black Board drauf?
STM32F103CBT6 mit 128K flash oder
STM32F103C8T6 mit nur 64K flash?

Die V 4.1.2 passt mit ca 69K nicht mehr auf den STM32F103C8T6 drauf

Gruß Ralf
Zitat von: jochen_f am 05 Februar 2021, 17:40:13
Hallo Ralf,

Ist wohl ein Fake STM32F103C8T6 mit 128k.
Die V 4.1.2 hat gepasst.

Gruß, Jochen

Ich hab das hier dazu gefunden:
https://community.st.com/s/question/0D53W000003MAHkSAO/stm32f103c8t6-with-128kb-of-flash-instead-of-64-fake-or-genuine
ZitatSTM32F103x8 and STM32F103xB are the same chip. So the 128k flash are on chip.
On a STM32F103xB, the upper 64 kB are fully tested, on a a STM32F103x8 the flash is probably not tested or was tested bad.
So if you play with a a STM32F103x8, you can try to use the upper flash. But do not rely on that flash to work right!

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

juergs

Hallo Ralf,

vielen Dank fürs aktuelle "aufs Gleis"  setzen!   ;D :D ;)

TYPE: SIGNALduino
a_ccconf: b=0 rx=0 freq:868.320MHz bWidth:325KHz rAmpl:42dB sens:4dB (DataRate:5603.79Baud,Modulation:ASK/OOK) [boffs=0000]
b_ccconf: b=1 rx=0 freq:433.920MHz bWidth:325KHz rAmpl:42dB sens:4dB (DataRate:5603.79Baud,Modulation:ASK/OOK) [boffs=0100]
c_ccconf: b=2 rx=0 freq:868.200MHz bWidth:325KHz rAmpl:42dB sens:4dB (DataRate:5603.79Baud,Modulation:ASK/OOK) [boffs=0140*]
cc1101_frequency: 868.200
sendworking: 0
unknownmessages
version: V 4.1.2-dev210205 SIGNALduinoAdv cc1101 (R: A0 B1 C2*) - compiled at Feb 6 2021 00:26:38
versionmodul: v3.4.5-ralf_18.08.
versionprotoll: v3.4.5-dev_ralf_28.02.


Habe die Konfiguration der CC1101-Module jetzt wohl im Griff. xFSK muss ich noch einschalten bzw. anpassen.

Einige Fragen bleiben noch:

  • Im Moment schalte ich zur Konfiguration der 3 Receiver mit dem Befehl EEprom-Bank  setzen "bA0" auf den entsprechenden Receiver um. Um dann diesen konfigurieren zu können.
    Geht das "einfacher"? Ja, steht im Wiki: "b<x>" mit  x= A|B|C|D
  • Nach erfolgter Konfiguration kann ich den Output der a_ccconf + b_ccconf + c_ccconf-Anzeige nur nach einem Reset neu einlesen?

Nach langer Pause hat sich wirklich viel getan und der Thread hat deutlich zugenommen ....  :D

Grüße,
Jürgen