zwiebert / tronferno-mcu

Control and program Fernotron receivers by micro-controller. (ESP32, 2011-2022)
GNU General Public License v3.0
21 stars 2 forks source link

Update schlägt fehl #8

Closed jochenpa closed 3 years ago

jochenpa commented 3 years ago

Hallo Bert

Ich habe heute gesehen, dass es eine neue Version gibt (0.11.1). Leider schlägt das Update fehl, ich bleibe auf der Version 0.11.0.52 stecken. In der Versions-Nummer-Auswahl gibt es nur die folgenden Möglichkeiten: 0.11.1 0.11.0.60 0.11.0.52 0.10.10 ... 0.9.1

Ich kann keinen davon auswählen, es bleibt auf der Vorauswahl 0.11.1 stecken.

Auch das Update auf "Letzte Beta 0.11.0.60" schlägt fehl. Neustart habe ich natürlich schon versucht.

Mit freundlichen Grüßen Jochen

zwiebert commented 3 years ago

Hallo Jochen, das mit der Vorauswashl schau ich mir gleich mal an, aber dass das Update fehlschlägt könnte an einem bekannten Problem liegen:

tronferno-mcu-bin

jochenpa commented 3 years ago

Hi

OK, muss ich danach neu konfigurieren oder bleibt die Konfiguration erhalten? Ich würde das menutool nutzen, dort gibt es ja einen Punkt mit saveconfig oder so ...

Mit freundlichen Grüßen Jochen

zwiebert commented 3 years ago

...das menutool hilft da nicht mir der config, das speichert nur die dort einmal dort gemachten config daten. Ich bin mir nicht mehr ganz sicher ob die Config erhalten blieb. Eigentlich war das so gedacht. Ich teste das vielleicht noch mal vorher hier....

...die verfügbaren Versionsnummern sind so normal, ich lösche die alten Beta-Versions-Nummern mit jeder neuen Relase. Habe diesmal aber zwei Betas drin gelassen, wobei die 0.11.0.52 die letze mit weniger als 1MB Image Größe ist und die 0.11.0.60 identisch zur 0.11.1.

mit freundlcihen Grüßen, Bert

zwiebert commented 3 years ago

...ich hatte damals im März 2020 die Partition mit den Konfigurationsdaten nach meiner Erinnerung extra an der gleichen Stelle belassen und nur etwas kleiner gemacht... eigentlich sollte die config erhalten bleiben, aber ich teste das lieber nochmal.

jochenpa commented 3 years ago

Hi

Ah OK, dann ist nur fraglich, warum ich die gewünschte Version nicht auswählen kann ... (mehrere Browser probiert). Ist aber auch egal wenn es so nicht weiter geht.

Neu konfigurieren wäre zwar doof aber auch kein Beinbruch. Wäre natürlich schön wenn die Konfiguration erhalten bleibt, aber es klingt so als ob eine art Partitionierung neu gemacht werden müsste, da wird es vielleicht nicht klappen?

Mit freundlichen Grüßen Jochen

zwiebert commented 3 years ago

Habe nur die Firmware Partitionen vergrößert, aber die NVS Partition am Ende minimal verkleinert, was aber nicht stören sollte, da die Daten am Anfang der Partition liegen. War mit der Absicht, dass die config erhalten bleiben sollte. Aber schon so lange her, dass ich mir nicht ganz sicher bin. Ansonsten hab ich neulich beim wechsel der hardware eine Funktion zum sichern und wiederherstellen der config vermisst, aber hatte noch keine zeit das zu implementieren. ... ich schaue mir das mit der versionsauswahl dann auch nachher noch an.

zwiebert commented 3 years ago

...hab mich da wohl falsch erinnert. Ich habe irgendwann viel früher mal die NVS-Partition verkleinert um die PHY Partition hinzuzufügen, aber zu dem Zeitpunkt gab es sowieso nur die Möglichkeit über USB zu updaten, also hat niemand mehr die alte Version davon, wenn er Updates über den Browser machen kann. Die Konfigurationsdaten bleiben deshalb erhalten.

zwiebert commented 3 years ago

...das Problem mit der Versionsnummer-Auswahl habe ich hier auch mit der aktuellen 0.11.1 Version. Wenn das auch mit der Version 0.11.0.52 auftritt, dann ist da vermutlilch ein Problem mit der von GitHub erzeugten JSON-Datei mit den Versionsnummern. Bin mir sicher, dass es hier mit der Version 0.11.0.52 vor einigen Tagen noch funktioniert hat.

jochenpa commented 3 years ago

Ach ja, wenn man keine Probleme hat.

Ich habe geflasht, aber es wollte nicht ins WLAN. Ich habe auch erase flash probiert, aber es gelingt nicht die Config zu schreiben. Per minicom (Terminal-Programm) erhalte ich diesen Output:

HILFE ...

clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00 mode:DIO, clock div:2 load:0x3fff0030,len:5596 ho 0 tail 12 room 4 load:0x40078000,len:13800 ho 0 tail 12 room 4 load:0x40080400,len:3396 entry 0x40080634 E (69) boot: ota data partition invalid and no factory, will try all partitions E (69) esp_image: image at 0x100000 has invalid magic byte E (72) boot: OTA app partition slot 0 is not bootable E (77) esp_image: image at 0x280000 has invalid magic byte W (84) esp_image: image at 0x280000 has invalid SPI mode 255 W (90) esp_image: image at 0x280000 has invalid SPI size 15 E (96) boot: OTA app partition slot 1 is not bootable E (102) boot: No bootable app partitions in the partition table ets Jun 8 2016 00:22:57

rst:0x3 (SW_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT) configsip: 0, SPIWP:0xee clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00 mode:DIO, clock div:2 load:0x3fff0030,len:5596 ho 0 tail 12 room 4 load:0x40078000,len:13800 ho 0 tail 12 room 4 load:0x40080400,len:3396 entry 0x40080634 E (69) boot: ota data partition invalid and no factory, will try all partitions E (69) esp_image: image at 0x100000 has invalid magic byte E (72) boot: OTA app partition slot 0 is not bootable

zwiebert commented 3 years ago

...o je. Dann ist die Konfiguation jetzt wirklich kaputt nach dem erase. meine Vermutung ist, dass die Partitionsdaten des menutool nicht mit denen der Firmware selber übereinstimmen. Es müssen immer die tools die im Archiv mit der zu flashenden Firmware sind benutzt werden. Vielleicht wurde eine alte menutool Version benutzt?

jochenpa commented 3 years ago

Hi

Ich habe dieses Archiv gezogen und benutzt: https://codeload.github.com/zwiebert/tronferno-mcu-bin/zip/master

Ich habe es gerade auch noch per fhem versucht, gleiches Ergebnis.

Mit freundlichen Grüßen Jochen

zwiebert commented 3 years ago

Das ZIP-Archiv aus dem Beta-Branch sollte funktionieren. Habe das gerade selber vorhin damit probiert. Ich schau mir den Master-Branch aber auch gleich mal an. Danke.

zwiebert commented 3 years ago

...ja da sind wirklich abweichende Partitionsdaten im menutool und der flash.sh des Master-Archivs. Hab ich wohl damals vergessen aus der Beta-Version zu übernehmen. Sorry.

zwiebert commented 3 years ago

...sollte jetzt alles funktionieren, inklusive der Versionsnummern. Danke fürs Feedback.

Schade das die Konfiguration nun doch gelöscht ist. Schon übel, dass so ein Fehler da ein Jahr unentdeckt geblieben ist. Kann nur vermuten, dass neue User welche mit der Master-Version keinen Erfolg hatte, dann einfach als nächstes die Beta-Version probiert haben. ...ich müsste selber viel mehr testen

mit freundlichen Grüßen, Bert

jochenpa commented 3 years ago

Hi

Es will immer noch nicht booten. Ich habe jetzt diese beiden Archive getestet: https://github.com/zwiebert/tronferno-mcu-bin/archive/0.11.1.1.zip https://github.com/zwiebert/tronferno-mcu-bin/archive/0.11.2.zip

Ist auch immer etwas aufwändig, da ich fürs flashen immer den Boot-Button drücken muss. So oder so komme ich gerade leider nicht weiter :-(

Habe jetzt auch erst einmal keine Zeit mehr, vielleicht heute Abend oder morgen wieder. Danke für Deinen Support.

Mit freundlichen Grüßen Jochen

zwiebert commented 3 years ago

Die Version 0.11.1.1 sollte funktionieren, aber die 0.11.2 hat auf jeden Fall immer noch die kaputten flash-tools. Ich habe mir mal die https://github.com/zwiebert/tronferno-mcu-bin/archive/0.11.1.1.zip gezogen und getestet. Habe unter Windows und Linux sowohl menutool als auch die shell Skripte erfolgreich getestet und auch jedesmal vorher einen Chip-Erase gemacht. Durch den Chip-Erase kann ich sicher sein, dass wirklich ALLE erforderlichen Daten von den Tools geflasht wurden.

Hätte ich alles mal vorher testen sollen. Sorry. Bin mir sicher, dass es mit der nötigen Ruhe klappen wird.

Muss hier bei meinen Olimex-Boards einen Elektrolytkondensator zwischen EN und Masse schalten um zuverlässig flashen zu können: https://github.com/zwiebert/tronferno-mcu/blob/develop/docs/esp32gw_cc1101-de.md

Schönen Samstag.

jochenpa commented 3 years ago

Hallo

Das mit dem Elko macht das ganze etwas einfacher, war mir nur bisher egal da ich ja nicht so oft per USB flashen musste. Jetzt geht es halt auch ohne den Knopf ...

Ich habe jetzt diese Version getestet: https://github.com/zwiebert/tronferno-mcu-bin/archive/0.11.0.52.zip

Damit erhalte ich dieses Ergebnis: ets Jun 8 2016 00:22:57

rst:0xc (SW_CPU_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT) configsip: 0, SPIWP:0xee clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00 mode:DIO, clock div:2 load:0x3fff0030,len:4 load:0x3fff0034,len:5592 load:0x40078000,len:13820 load:0x40080400,len:3396 entry 0x40080634 I (419) cpu_start: Pro cpu up. I (419) cpu_start: Starting app cpu, entry point is 0x40081048 I (405) cpu_start: App cpu up. I (433) cpu_start: Pro cpu start user code I (433) cpu_start: cpu freq: 240000000 I (434) cpu_start: Application information: I (438) cpu_start: Project name: tronferno-mcu I (443) cpu_start: App version: 0.11.0.52 I (449) cpu_start: Compile time: Feb 14 2021 20:28:46 I (455) cpu_start: ELF file SHA256: 841dcaf581fbfc6c... I (461) cpu_start: ESP-IDF: bw_working-704-g178b122c1 I (467) heap_init: Initializing. RAM available for dynamic allocation: I (474) heap_init: At 3FFAE6E0 len 00001920 (6 KiB): DRAM I (480) heap_init: At 3FFB7C80 len 00028380 (160 KiB): DRAM I (487) heap_init: At 3FFE0440 len 00003AE0 (14 KiB): D/IRAM I (493) heap_init: At 3FFE4350 len 0001BCB0 (111 KiB): D/IRAM I (499) heap_init: At 400947BC len 0000B844 (46 KiB): IRAM I (506) spi_flash: detected chip: winbond I (510) spi_flash: flash io: dio I (516) cpu_start: Starting scheduler on PRO CPU. I (0) cpu_start: Starting scheduler on APP CPU.

I (699) phy: phy_version: 4500, 0cd6843, Sep 17 2020, 15:37:07, 0, 0 Guru Meditation Error: Core 0 panic'ed (InstrFetchProhibited). Exception was unhandled.

Core 0 register dump: PC : 0x00000000 PS : 0x00060e30 A0 : 0x800d68c2 A1 : 0x3ffba350
A2 : 0x00000000 A3 : 0x3ffb0e7c A4 : 0x3f40164c A5 : 0x3ffb0dd8
A6 : 0x00000001 A7 : 0x00000001 A8 : 0x800d68a2 A9 : 0x3ffba2e0
A10 : 0x3ffc8fb0 A11 : 0x3ffba38c A12 : 0x3f41f9ac A13 : 0x00000036
A14 : 0x00000000 A15 : 0x00000000 SAR : 0x0000001e EXCCAUSE: 0x00000014
EXCVADDR: 0x00000000 LBEG : 0x4000c2e0 LEND : 0x4000c2f6 LCOUNT : 0xffffffff

Backtrace:0xfffffffd:0x3ffba350 0x400d68bf:0x3ffba3b0 0x400d66dd:0x3ffba3d0 0x400d5dee:0x3ffba3f0 0x400d6109:0x3ffba450 0x400d5df7:0x3ff0

ELF file SHA256: 841dcaf581fbfc6c

Rebooting...

jochenpa commented 3 years ago

Hallo

Diese hier habe ich danach probiert: https://github.com/zwiebert/tronferno-mcu-bin/archive/0.10.10.zip

Damit bootet es endlich ...

OTA-Flash auf 0.11.0.52 hat auch geklappt ...

Danach geht es natürlich wieder nicht weiter ...

Mit freundlichen Grüßen Jochen

jochenpa commented 3 years ago

Hallo

Die Konfiguration ist teilweise noch vorhanden, zumindest die Namen sind noch bekannt. Laufzeiten und Programmierung (Zeiten) sind aber weg.

Mit freundlichen Grüßen Jochen

zwiebert commented 3 years ago

Danke für die Rückmeldung.

...die Namen sind sicher noch im Browser gespeichert und nicht im ESP32 Board. Dort ist nach einem Chip-Erase eigentlich alles gelöscht.

..ich bin überrascht das ausgerechnet Version 0.10.10 sich flashen lässt, da ich ja davon ausging, das diese das gleiche Problem haben müsste wie die 0.11.1. Werde mir das alles nochmal genau anschauen und die problematischen Versionen hier auch alle nochmal testen.

...Ich habe das flaschen mit der Versions Version 0.11.1.1 ausführlich getestet und die sollte deshalb sich auf jeden Fall flashen lassen.

Die crash Daten der 0.11.0.52 werde ich mal schauen ob der Backtrace was auswertbares enthält, vielleicht ist der betreffende Bug ja auch noch aktuell.

mit freundlichen Grüßen, Bert

zwiebert commented 3 years ago

...ok, die 0.10.10 FIrmware verwendet wirklich noch die kleinen 1MB Partitionen in der partition.csv Datei. Also ist das Problem mit den falschen menutool und flash-skripten doch erst ab der Version 0.11.1

zwiebert commented 3 years ago

...den crash mit der 0.11.0.52 habe ich hier auch wenn ich sie nach einem Chip-Erase flashe. Die Ursache ist die dann gültige Default-Einstellung "config network=ap" (bei der alten WLAN-only Firmware) welche zum crash führt. Ist also alles reproduzierbar...

Der einzige Unterschied war bis jetzt, dass hier die 0.11.1.1 sich flashen ließ und nicht abstürzte. Da es eine WLAN/LAN-Version ist, ist "config network=lan" voreingestellt und wenn da kein LAN ist, dann wird der WLAN-Accesspoint (ohne crash) gestartet.

zwiebert commented 3 years ago

...ich habe mal die alte Firmware 0.10.10 hergenommen und sie unverändert in die Version 0.10.11 übernommen, aber mit den neuen größeren Partitionen. Nach dem Flashen dieser neuen Version über USB kann man dann mit OTA auf alle alten und neuen Versionen updaten. Die neuen Versionen bleiben dann erstmal noch Beta bis ich sie besser getestet habe.

mit freundlichen Grüßen, Bert

jochenpa commented 3 years ago

Guten Morgen

Also ... gestern hatte ich es mit der tronferno-mcu-bin-0.11.1.zip probiert. Anscheinend gibt es die nicht mehr, und ich habe deshalb den falschen Link auf die vorhandene 0.11.1.1 kopiert und hier geschrieben.

Heute habe ich es dann mit der https://github.com/zwiebert/tronferno-mcu-bin/archive/0.11.1.1.tar.gz versucht, und es hat sofort geklappt. Update auf 0.11.2.1 klappt auch per OTA-Update. Somit bin ich jetzt wieder aktuell. :-)

Was mir auffällt, aber nicht so wichtig: Per seriellem Terminal wird wohl kein CR gesendet, somit kann ich per "minicom" sehr bald nichts mehr lesen, weil es sich am rechten Rand abspielt ...

Mit freundlichen Grüßen Jochen