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

FSK wird momentan noch nicht vom offiziellen Signalduino FHEM Modul unterstützt, wird gerade eingebaut.
Für die FSK und EEPROM Speicherbank unterstützung ist momentan noch eine angepasste und erweiterte Version der 00_SIGNALduino.pm und die signalduino_protocols.pm notwendig:
https://github.com/Ralf9/RFFHEM/issues/4

Zitat
Gibt es einen Grund für die stark abweichende Frequenz nach der Speicherbankinitialisierung?
Wie hast Du die Bank 1 initialisiert?
https://forum.fhem.de/index.php/topic,106594.msg1005067.html#msg1005067

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

Zitat von: Ralf9 am 28 Februar 2020, 17:59:48
Ich verwende bei der Arduino IDE diesen core
https://github.com/stm32duino/BoardManagerFiles/raw/master/STM32/package_stm_index.json
Das SerialUsb funktioniert bei mir nur mit dem orginal Bootloader.
http://docs.leaflabs.com/static.leaflabs.com/pub/leaflabs/maple-bootloader/maple_mini_boot.bin
Mit dem Bootloader 2.0 funktioniert nach einem reset das serialUSB nicht mehr.

Hallo Ralf9,
ich habe ebenfalls die Arduino IDE zum flashen verwendet. Bei mir funktioniert das serialUSB aber grundsätzlich nach einem Reset nicht mehr. Egal ob original oder 2.0 Bootloader. Ich verwende allerdings einen "Doppel-CUL-868-433-USB Stick für FHEM 1x 868MHz + 1x 433MHz CC1101" ohne FTDI. Eventuell eine Idee oder einen Tipp?

Gruß Reinhard

Ralf9

Funktioniert es mit den fertigen bin Dateien?

Wichtig ist, daß der Orginal Bootloader drauf ist, lässt sich u.a. daran erkennen, daß die upload method Bootloader2.0 nicht funktioniert.

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 Zusammen,

es gibt ja ziemlich viele verschiendene Ansichten zum Bootloader.
Ich habe heute mit den verschiedenen Bootloadern herumexperimentieren müssen ....
da mein "blaues" MapleMini-Board den Reset-Button schlecht verlötet hatte und ich fast alle Varianten des Uploads ausprobiern musste.

1. Es existieren verschiedene Varianten des MapleMini-Bootloaders mit dem selben Namen die in Verbindung mit Arduino und SerialUsb funktionieren oder auch nicht.
Wichtig ist: Boot1 muss mit GND verbunden sein!

a.) Die richtige Variante, die ein COM-Port aufspannt => "STM32duino bootloader v1.0  Upload to Flash 0x8002000":
Zitatmaple_loader v0.1
Resetting to bootloader via DTR pulse
Reset via USB Serial Failed! Did you select the right serial port?
Assuming the board is in perpetual bootloader mode and continuing to attempt dfu programming...

Searching for DFU device [1EAF:0003]...
Found it!

Opening USB Device 0x1eaf:0x0003...
Found Runtime: [0x1eaf:0x0003] devnum=1, cfg=0, intf=0, alt=2, name="STM32duino bootloader v1.0  Upload to Flash 0x8002000"
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=316
Starting download: [##################################################] finished!
error resetting after download: usb_reset: could not reset device, win error: Ein nicht vorhandenes Gerät wurde angegeben.
state(8) = dfuMANIFEST-WAIT-RESET, status(0) = No error condition is present
Done!

Resetting USB to switch back to runtime mode

2.) die "falsche " (?) Variante von "https://github.com/rogerclarkmelbourne/STM32duino-bootloader/blob/master/binaries/maple_mini_boot20.bin":
ZitatC:\Users\js>C:\Users\js\Documents\Arduino\hardware\Arduino_STM32/tools/win/maple_upload.bat COM4 2 1EAF:0003 D:\Work_FHEM\_maple_sduino\4.1.0-dev200306\Maple_sduino_USB_410dev200306.bin
maple_loader v0.1
Resetting to bootloader via DTR pulse
Reset via USB Serial Failed! Did you select the right serial port?
Assuming the board is in perpetual bootloader mode and continuing to attempt dfu programming...

Searching for DFU device [1EAF:0003]...
dfu-util - (C) 2007-2008 by OpenMoko Inc.
This program is Free Software and has ABSOLUTELY NO WARRANTY

Couldn't find the DFU device: [1EAF:0003]
timeout waiting for COM4 serial

Ich hänge mal meine Version, die 100%ig auch nach einem Reset funktioniert an (Version v. 23.6.2019). Die neuere Variante hat 22KB mit gleichen Namen funktioniert nicht mit SerialUSB + Arduino ...
Damit lässt sich das auch über die Kommandozeile flashen:
ZitatC:\Users\js\Documents\Arduino\hardware\Arduino_STM32/tools/win/maple_upload.bat COM4 2 1EAF:0003 D:\Work_FHEM\_maple_sduino\4.1.0-dev200306\Maple_sduino_USB_410dev200306.bin

Anmerkung:
Zitat#####Other improvements on the original Maple bootloader
    Smaller footprint - now only 8k (This became possible due to code changes by @jonatanolofsson which allowed the GCC optimisation for size flag to be used
    Additional DFU AltID upload type was added, which allows the sketch to be loaded at 0x8002000 instead of 0x8005000 (due to the reduced size of the bootloader itself), Note: Upload to 0x8005000 was retained for backward compatibility.

Der "Additional DFU AltID upload" funktioniert wohl nur mit einer Generic-Device-Einstellung in Arduino und nicht mit "MapleMini" .... als DFU oder HID Bootlaoder ...

Wichtig auch die Kombination kleiner Bootloader und Compile für 0x8002000
Oder aber großer Bootloader und Compile für kleine Variante (0x8002000),  der eigentlich für 0x8005000 sein sollte => fatal: Bootloader wird überschrieben und nach Reset ist SerialUSB weg....

Und noch zu beachten:
ZitatSome notes: The Maple Mini original bootloader supports 2 upload modes, selected by the uploader program with a parameter called Upload ID. Upload ID=0 uploads to RAM. (This option has been modified so that it returns an error if used - more details below) Upload ID=1 uploads to Flash. It uploads sketches to 0x8005000, thus reserving the initial 20KB of the flash memory for itself. It also reserves the initial 3KB of ram, so sketches can use up to 17KB.

We added a new upload mode.

Upload ID=2 uploads to Flash. It uploads sketches to 0x8002000, thus reserving the initial 8KB of the flash memory for itself. The bootloader no longer operates with upload to RAM, and hence all RAM in the process is always available to the sketch.

To make use of the new bootloader reduce footprint etc, you need to use an up to date version of the repo, as it has additional menu options for the Maple mini and also for generic boards.

On the Maple mini there is a bootloader menu, which lets you select the original or new bootloader. On generic boards, the new bootloader (called the stm32duino bootloader) is available as an upload option. This option always uses Upload ID = 2 (see above)

maple_upload.bat COM4 2 1EAF:0003 D:\Work_FHEM\_maple_sduino\4.1.0-dev200306\Maple_sduino_USB_410dev200306.bin
*Upload ID=2 uploads to Flash

Telekatz

Ist dein blaues MapleMini Board wirklich ein Maple Mini oder ein BluePill?

juergs

Hallo Telekatz,
blau ist kein BAITE aber ein MapleMini.
Die Baite-Version ist besser gefertigt und macht einen besseren Eindruck.

Wie kann ich das im STLink umgehen? :
Zitat19:04:57 : Can not connect to target!
                  Please select "Connect Under Reset" mode from Target->Settings menu and try again.
                  If you're trying to connect to a low frequency application , please select a lower SWD Frequency mode from Target->Settings menu.
19:05:00 : No target connected
Nur nach "richtigem" Zeitpukt nach Reset drücken kommt ein Connect zustande  ... wenn man nicht SWIM_RST durchschleift ...

[Window Title]
Visual Studio Code

[Content]
Failed to launch GDB: .pioinit:13: Error in sourced command file:
Remote communication error.  Target disconnected.: Success. (from interpreter-exec console "source .pioinit")

[Open launch.json] [Cancel]


Beim BluePill funktionierte das Debuggen über STLink gestern einwandfrei ...

Grüße,
Jürgen

Telekatz

Hat mich nur gewundert, dass Bootloader 2 bei dir nicht funktioniert.

Hab den Bootloader gerade bei mir ausprobiert. Grundsätzlich funktioniert der Bootloader schon. War auch bis vor kurzen der Standard Bootloader für den MapleCUN.
Du musst aber, wenn du den Bootloader auf einen leeren MapleMini flashst, den Bootloader manuell aktivieren. Dann ist noch kein Sketch vorhanden, welcher die Serielle Schnittstelle bereitstellt. Und ohne diese kann das Flashprogramm den Bootloader nicht automatisch aktivieren.
In dem Bootloader, den du angehängt hast, ist ein solcher Sketch im bin File bereits enthalten.

Zitat von: juergs am 24 März 2020, 18:59:42
Wie kann ich das im STLink umgehen? :Nur nach "richtigem" Zeitpukt nach Reset drücken kommt ein Connect zustande  ... wenn man nicht SWIM_RST durchschleift ...

Ist der Reset Pin am STLink angeschlossen? Vermutlich schaltet dein Programm SWD beim starten ab. Dann hilft nur "Connect Under Reset", um die SWD Verbindung vor dem Programmstart herzustellen

juergs

Hallo Telekatz,

ja das ist einleuchtend, deshalb sind hier auch bootloader mit Welcome-Sketch https://github.com/rogerclarkmelbourne/STM32duino-bootloader/tree/master/binaries

War mir so aber nicht bewusst, dass ein zusätzliche Sketch die USBSerial bereitstellt, dachte das ist ein Feature des Bootloaders ....

RST ist nicht verbunden.  Da ich das Kabel selbst gefertigt habe war mir zu dem Zeitpunkt noch nicht klar das RST doch noch erforderlich sein würde.
So kann man sich irren, nachdem es gestern überraschend gut mit dem BluePill funktionierte...

Vielen Dank,

Jürgen

PS: Die Frage wäre dann aber, wie konfiguriert man Arduino, wenn mann den Sketch-less BL nutzt? Serial ist da wohl nicht möglich und die Einstellung "MapleMini" lässt nur ein seriellen Port bzw DFU zu ...

Testweise habe ich den BL MapleMini20.bin  mit Sketch  geladen ... und es blinkt... allerdings ohne USBSerial...

Telekatz

Der Bootloader stellt nur ein DFU Gerät zur verfügung. Beide sind auch nur 8k groß. Der Rest im bin File ist der Sketch.

Zitat von: juergs am 24 März 2020, 20:14:05
PS: Die Frage wäre dann aber, wie konfiguriert man Arduino, wenn mann den Sketch-less BL nutzt? Serial ist da wohl nicht möglich und die Einstellung "MapleMini" lässt nur ein seriellen Port bzw DFU zu ...
Man aktiviert den DFU Bootloader vor dem Flashen manuell. Reset drücken und nach dem loslassen sofort die Taste but=32 drücken.

juergs

... und siehe da Debug funktioniert direkt in VSCode mit neuestem MapleMini Bootloader + STLink... :

:D :D :D :D

Vermute aber sehr, dass USBSerial nicht funktionieren wird.

Ralf9

ZitatIch hänge mal meine Version, die 100%ig auch nach einem Reset funktioniert an (Version v. 23.6.2019). Die neuere Variante hat 22KB mit gleichen Namen funktioniert nicht mit SerialUSB + Arduino ...
Habs getestet, beim flashen mit dfu-util funktioniert das serialUSB nach einem reset nicht mehr.
Evtl verhält es sich beim seriellen flashen mit STLink anders als beim flashen über USB mit dfu-util

Ich gehe wieder zurück zum orginal bootloader, damit funktioniert das flashen mit dfu-util und das serialUSB im sketch problemlos.

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 Ralf9,
das ganau ist ja auch mein Problem:
Diese  Einstellunegn muss ich in VSCode auch hinbekommen (mit dem neuesten Bootloader)
dann könnte es passen ...aber nicht mit Arduino


ZitatIch gehe wieder zurück zum orginal bootloader, damit funktioniert das flashen mit dfu-util und das serialUSB im sketch problemlos.
Sehe ich auch so ... und muss mal eine Nacht drüber sinnieren ... und die Erkenntnisse sortieren ...

Immerhin geht das Debuggen für vscode mit dem neuesten BL.

meier81

Hallo und guten Morgen,

vielleicht kann mir von euch mal jemand helfen, habe zur Zeit auch das Problem mit dem USBSerial, nach dem flashen geht es, einmal Reset und ich habe kein Serial mehr.

Folgendes steht in der Ausgabe des Flash-Logs:
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="STM32duino bootloader v1.0  Upload to Flash 0x8005000"
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=1123
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



Habe soweit hier alles durchgelesen und auch schon einiges probiert, immer wieder das gleiche Ergebnis. Habe auch die Lib benutzt wie von Ralf9 empfohlen und auch die gleichen Upload-Einstellungen, weiß da zur Zeit echt nicht mehr weiter.

Ach ja, habe auch das Baite-Board.

Gruß

Markus 
QNAP NAS mit Debian VM, darauf FHEM, debmatic, influxdb2 und Grafana || HB-RF-ETH || SIGNALduino 433MHz mit Maple mini || WS980 Wetterstation || Xiaomi Mi Robot mit valetudo-FW || Buderus web KM100 || div. Tasmota-Devices

Ralf9

Zitatvielleicht kann mir von euch mal jemand helfen, habe zur Zeit auch das Problem mit dem USBSerial, nach dem flashen geht es, einmal Reset und ich habe kein Serial mehr.
Wichtig ist, daß Du den orginal Bootloader drauf hast.
Dies lässt sich auch an der upload Dauer erkennen.
Beim orginal Bootloader dauert der Upload ca 30 sec
und beim Bootloader 2.0 dauert der Upload nur ca 3 sec

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

meier81

Hallo Ralf,

dann habe ich sicherlich den Bootloader 2.0 drauf, Upload geht so schnell das ich eigentlich dachte da kann was nicht stimmen.

Den originalen Bootloader kann ich ja nicht über die Onboard-USB-Schnittstelle flashen oder? Falls nicht hätte ich hier noch einen FTUI-Adapter.

Gruß Markus
QNAP NAS mit Debian VM, darauf FHEM, debmatic, influxdb2 und Grafana || HB-RF-ETH || SIGNALduino 433MHz mit Maple mini || WS980 Wetterstation || Xiaomi Mi Robot mit valetudo-FW || Buderus web KM100 || div. Tasmota-Devices