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

Reinhard.M

Ich würde bs, allerdings mit der Bedeutung"bank status" bevorzugen. Als Ausgabe betrachte ich die letzte Version als die übersichtlichste. Bei mir läuft die 4.1 übrigens hervorragend auf einem Maple Mini mit 2 cc1101 Modulen.

juergs


Ralf9

ZitatIch könnte diesen automatischen Werksreset e machen, dann bräuchte ich einen neuen Befehl mit dem eine Übersicht über die Bankbelegung ausgegeben wird.
Ich habe es eingebaut:
https://github.com/Ralf9/SIGNALDuino/commits/dev-r41x_cc1101

Es wird nun dies ausgegeben:
The bank 4 was not complete initialized, therefore the bank and radio is reseted to sduino defaults (raw e). ccFactoryReset done

Es gibt einen neuen Befehl "bs", siehe Anlage.

Ich habe vor die Ausgabe vom "bs" Befehl noch um eine max 8 Zeichen Kurzbeschreibung der Bänke zu erweitern

Dies könnte dann z.B. so aussehen:
Bank__ 0 1 2 3 4 5 6 7 8 9
Radio_ B A - C - - - - - -
N_____ 0 0 2 3 4 - - - - -
ccmode 0 3 3 3 2 - - - - -

0 - SlowRF
1 - M1 IT+
2 - M2 IT+
3 - PCA 301
4 - Kopp FC


Sind die Kurzbeschreibungen so ok, oder habt Ihr bessere Vorschläge?

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

Reinhard.M

Sieht gut aus, wüsste nicht was man da besser machen könnte. Wenn jetzt noch irgendwo die Abkürzungen erklärt werden ist es perfekt  ;)

Ralf9

siehe
https://forum.fhem.de/index.php/topic,106594.msg1005067.html#msg1005067

SlowRF (ASK/OOK)
Mode 1 - IT+ 17.241 kbps (LaCrosse)
Mode 2 - IT+ 9.579 kbps (LaCrosse)
Mode 3 - PCA 301 - 868.9500MHz, 6.631kbps
Kopp Free Control Datarate: 4785,5 Baud (GFSK)

Nachtrag:

Bei ccmode sind z.Zt. die folgenden Werte möglich:
0 - normal (OOK)
1 - FIFO auslesen normal, z.B. für Kopp
2 - FIFO auslesen ohne Wiederholungen
3 - FIFO auslesen LaCrosse
9 - FIFO auslesen mit Debug Ausgaben

Beim mode 9 ist vor und nach dem Ausgeben die Anzahl der Bytes im FIFO in Klammern angegeben.
M13 bedeutet das marcstate Register = 13
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

Reinhard.M

Wusste doch dass ich es schon mal gesehen hatte,  wusste nur nicht mehr wo. Danke!  :)

juergs

Hallo Ralf9,

habe die neue Version gerade auf mein zweites  MapleSignalDuino-Board über Arduino geflasht:

Zitat
C:\Users\js\AppData\Local\Arduino15\packages\STM32\tools\STM32Tools\1.3.2/tools/win/maple_upload.bat COM39 1 1EAF:0003 C:\Users\js\AppData\Local\Temp\arduino_build_148822/SIGNALDuino.ino.bin
maple_loader v0.1
Resetting to bootloader via DTR pulse
Reset via USB Serial Failed! Did you select the right serial port?
Searching for DFU device [1EAF:0003]...
Assuming the board is in perpetual bootloader mode and continuing to attempt dfu programming...

Found it!
Opening USB Device 0x1eaf:0x0003...
Found Runtime: [0x1eaf:0x0003] devnum=1, cfg=0, intf=0, alt=1, name="DFU Program FLASH 0x08005000"
Setting Configuration 1...
Claiming USB DFU Interface...
Setting Alternate Setting ...
Determining device status: state = dfuIDLE, status = 0
dfuIDLE, continuing
Transfer Size = 0x0400
bytes_per_hash=1137
Starting download: [##################################################] finished!
state(8) = dfuMANIFEST-WAIT-RESET, status(0) = No error condition is present
error resetting after download: usb_reset: could not reset device, win error: Ein nicht vorhandenes Gerät wurde angegeben.
Done!
Resetting USB to switch back to runtime mode

Zitat
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
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 ok,N=2,ccmode=3
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
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 ok,ccmode=3
MN;D=9946331EDAAAAA000032E817;R=237;
MN;D=9946331EDAAAAA0000E95BE0;R=238;
MN;D=9946331EDAAAAA00001EFA69;R=239;
MN;D=9946331EDAAAAA0000C06447;R=239;
?
? Use one of ?S ? b CE CD CG CR CS CW C eC e P r R S t T V W x XE XQ
V
V 4.1.0-dev200422 SIGNALduino cc1101 (R: A1* B-) - compiled at Apr 24 2020 16:18:35
BS
Unsupported command
MN;D=9946331EDAAAAA0000BA8AFB;R=239;
MN;D=0C053010FFFFFFFFFFFFFFFF;R=215;
bs
Bank__ 0 1 2 3 4 5 6 7 8 9  Radio_ - A*- - - - - - - -  N_____ 0 0 - - - - - - - -  ccmode 0 3 - - - - - - - -
MN;D=9946331EDAAAAA000058AA37;R=238;
MN;D=9946331EDAAAAA0000C712D1;R=238;

Die Bankinfo will einfach nicht mit CR /CRLF/Auto korrekt formatieren ... (TeraTerm)

Initialisierung über Terminal (zum Testen des Boards) klappt auch (mit nur einem 868-Transceiver bestückt, local echo on)  :

Zitat
e1W
write set ccFactoryReset done
r=A b=1 ccmode=0 sync=D391 ccconf=10B07157C43023B900070018146C070090 boffs=0100
bs
Bank__ 0 1 2 3 4 5 6 7 8 9  Radio_ - A*- - - - - - - -  N_____ 0 0 - - - - - - - -  ccmode 0 0 - - - - - - - -
CREA
detect A: Partn=0 Ver=24
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
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 ok,ccmode=3
V
V 4.1.0-dev200422 SIGNALduino cc1101 (R: Ai* B-) - compiled at Apr 24 2020 16:18:35
e
ccFactoryReset done
r=A b=1 ccmode=0 sync=D391 ccconf=10B07157C43023B900070018146C070090 boffs=0100
V
V 4.1.0-dev200422 SIGNALduino cc1101 (R: Ai* B-) - compiled at Apr 24 2020 16:18:35
e1
set ccFactoryReset done
r=A b=1 ccmode=0 sync=D391 ccconf=10B07157C43023B900070018146C070090 boffs=0100
bA1W
write set r=A b=1 ccmode=0 sync=D391 ccconf=10B07157C43023B900070018146C070090 boffs=0100
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
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 ok,ccmode=3
MN;D=9946331EDAAAAA000078F47D;R=239;
MN;D=9946331EDAAAAA0000349364;R=240;
MN;D=9946331EDAAAAA0000575FF3;R=239;
...
V
V 4.1.0-dev200422 SIGNALduino cc1101 (R: A1* B-) - compiled at Apr 24 2020 16:18:35
bs
Bank__ 0 1 2 3 4 5 6 7 8 9  Radio_ - A*- - - - - - - -  N_____ 0 0 - - - - - - - -  ccmode 0 3 - - - - - - - -


Hoffe, ich habe die richtige Befehlsabfolgen gewählt. Die ersten Ausgaben stammen noch von Versuchen ...
Empfängt jetzt schön FSK-Geräte in Mode 1 - IT+ 17.241 kbps. Im Modus 2 habe ich bei mir nichts empfangen.

Nach einem Neu-Einstecken des Boards:
Reading values from eeprom
CCInit
detect A: Partn=0 Ver=24
detect B: Partn=0 Ver=0 invalid
Starting timerjob
MN;D=9946331EDAAAAA000054D348;R=238;
V
V 4.1.0-dev200422 SIGNALduino c


Die EEProm-Settings wurden offenbar korrekt geschrieben und dem richtigen Modul zugeordnet, da wieder Telegramme empfangen werden.

Grüße,
Jürgen 


Ralf9

ZitatDie Bankinfo will einfach nicht mit CR /CRLF/Auto korrekt formatieren ... (TeraTerm)
Die saubere Formatierung funktioniert momentan nur mit meinem angepassten 00_Signalduino fhem Modul, dort werden die doppelten Leerzeichen durch "\n" ersetzt:
if ($msg =~ m/Bank__.*  Radio_ /) {
$msg =~ s/  /\n/g;
$msg = "\n\n" . $msg;
return $msg;
}


ZitatInitialisierung über Terminal klappt auch (mit nur einem 868-Transceiver bestückt, local echo on)  :
ja, ist recht flexiblel, es gibt momentan nur die Einschränkung, daß SlowRF (Ask) nur mit dem zweiten cc1101 (Radio B) funktioniert.

ZitatIm Modus 2 habe ich bei mir nichts empfangen.
Der Modus 2 hat eine Baudrate von 9.579 kbps, hast Du ein Sensor mit 9.579 kbps?
https://wiki.fhem.de/wiki/JeeLink#Unterst.C3.BCtzte_Sensoren_und_Aktoren_incl._Wetterstation_WS_1600

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

Ralf9

Man kann den MapleSduino auch recht einfach als nanoCul Nachfolger verwenden.
Man muß dazu nur das zweite cc1101 (Radio B) bestücken.
Per default wird Radio B der Bank 0 zugeordnet und mit SlowRF initialisiert
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

Ralf9

Ein Entwickler hat was zu dem Problem mit dem USBD_reenumerate geschrieben:

https://www.stm32duino.com/viewtopic.php?p=2283#p2283
Looking deeply,
it seems there is something weird in the bootloader management of the DISC pin depending if an upload is requested or not.

The way it works with libMaple core seems related to timing because I didn't see any difference btw the management except the fact it is called later when the USB begin() is called (in USBComposite library).

I guess the proper way should be to ensure the bootloader leave the USB in a proper state if no upload is requested.
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 Ralf9,
ZitatMan muß dazu nur das zweite cc1101 (Radio B) bestücken.

D.h. es würde für SlowRF auch statt ein 433-Modul auch ein zweites mit 868MHz funktionieren?

Das mit der Formatierung der Bankinfo im Terminal ist eher Kosmetik. Die CRLF/CR - Erkennung steht jetzt auf AUTO...  ;)

Danke für die Info.

Jürgen

Ralf9

ZitatD.h. es würde für SlowRF auch statt ein 433-Modul auch ein zweites mit 868MHz funktionieren?
Ja, wenn Du eine 433 MHz Antenne verwendest, kannst Du für das zweite cc1101 (Radio B) eins mit 868 MHz verwenden, hat dann aber wegen der falschen Antennenanpassung eine etwas höhere Dämpfung

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

Zitathat dann aber wegen der falschen Antennenanpassung eine etwas höhere Dämpfung
Mit SMA geht der Tausch recht leicht ...  ;)


Im Log habe ich folgenden Output gefunden:

Zitat2020-04-24 18:16:41 SIGNALduino maple_sduino cc1101_config: Freq: 0.000 MHz, Bandwidth: 812 KHz, rAmpl: 24 dB, sens: 4 dB, DataRate: 24.80 Baud
2020-04-24 18:16:41 SIGNALduino maple_sduino cc1101_config_ext: Modulation: 2-FSK, Syncmod: No preamble/sync

cc1101_config
   
Freq: 0.000 MHz, Bandwidth: 812 KHz, rAmpl: 24 dB, sens: 4 dB, DataRate: 24.80 Baud
   
2020-04-24 18:16:41
cc1101_config_ext
   
Modulation: 2-FSK, Syncmod: No preamble/sync
   
2020-04-24 18:16:41
cc1101_patable
   
C3E = FF FF FF FF FF FF FF FF
   
2020-04-24 18:16:42
state
   
opened

Ranseyer

Zitat von: Ralf9 am 24 April 2020, 17:51:20
Ja, wenn Du eine 433 MHz Antenne verwendest, kannst Du für das zweite cc1101 (Radio B) eins mit 868 MHz verwenden, hat dann aber wegen der falschen Antennenanpassung eine etwas höhere Dämpfung


Sorry, ich kann euch nicht ganz folgen...
Aus SW-Sicht sind 433 und 868MHz Module doch identisch nutzbar. (Unabhängig von der Frequenz)

Aus HW Sicht würde ich natürlich immer das Modul welches zur Frequenz passt verbauen inkl. passender Antenne. Also wenn es "Not tut" 2*868 MHz in grün verbauen...
Der CC1101 erzeugt prinzipbedingt massiv "Oberwellen". Diese werden am Ausgang mit einem Bandpass-Filter weggefiltert. Dieser Filter lässt im Idealfall nur den 433 oder 868 MHz Bereich durch. Dass man den anderen Bereich auch (schlecht!)  nutzen kann ist also nur das Ergebnis des Kompromisses beim Ausgangsfilter...

=> Ich will damit sagen, ich würde immer genau so bestücken wie ich auch funken will...
FHEM mit FTUI. Homematic-Funk für Thermostate und Licht. MySensors als Basis für eigene HW.
Zentrale ist der MAPLE-CUL mit RFM69+HModUART-AddOn.
Doku zu meinen Projekten: Github/Ranseyer. Platinen falls verfügbar gerne auf Anfrage.
Support: gerne wenn ich Zeit+Lust habe im Forum. Nicht per PN!

Reinhard.M

Habe den bootloader_2.0 mit der Demonstrator GUI und die neue Version mit Arduino v1.8.12 auf meinen Doppel-CUL-868-433 gepackt, läuft problemlos. Super!  :)