Installing the recent Pycom Firmware 1.20.1.r1 requires erasing the flash memory completely

Many people are falling into this, so we are giving this issue an appropriate place.

:warning: You will have to completely erase the flash memory of your Pycom device after installing the new firmware, otherwise you will experience weird errors with WiFi and other bearer connections and maybe even more.

@robert-hh hat im Pycom-Forum von ähnlichen Problemen mit dem WLAN berichtet

I had a similar problem too on one Lopy4 device - Wifi was not available. Erasing the flash and reloading the firmware solved it.

Habe das mal gemacht, beim hiveeyes-Logger tritt der

OSError: Network card not available

jetzt nicht mehr auf und es werden Daten verschickt! Yeah! Ohne den watchdog gibt es aber noch “Guru Meditation Errors”, die ich vorher nicht gesehen habe.

Leider bekomme ich den Network card-Error mit der hiverize-Software immer noch.

1 Like

Ich habe gerade auf Firmware 1.20.1.r1 aktualisiert. Nun läuft mein Programm hiverize/FiPy nicht mehr:

Traceback (most recent call last):
  File "main.py", line 26, in <module>
  File "webserver.py", line 124, in <module>
  File "/flash/lib/microDNSSrv.py", line 19, in Create
  File "/flash/lib/microDNSSrv.py", line 161, in Start
OSError: Network card not available
Pycom MicroPython 1.20.1.r1 [v1.11-3138a13] on 2019-10-08; FiPy with ESP32
Pybytes Version: 1.1.3
Type "help()" for more information.

Vor dem Update lief es wochenlang ( seit dem 7.9. ).
Ebenso will hiveeyes-micropython-firmware-0.6.0-source nicht mehr laufen.

1 Like

Hi Didi,

Der Fehler tritt hier leider auf, solange man das Gerät nicht komplett zurücksetzt – im Fachjargon “erase your device”:

Das klappt unter Windows beispielsweise so:

pycom-fwtool-cli.exe --port COM16 erase_all

Viele Grüße,
Andreas.

1 Like

Ich habe nun mehrfach neu geflasht , erased und meine Firmware aufgespielt.

C:\Users\admin\Documents\uPython\FiPy-1.20.1.r1-annapurna-0.1.0.tar\FiPy-1.20.1.r1-annapurna-0.1.0>pycom-fwtool-cli.exe --port COM11 erase_all
Running in PIC mode
Erasing the board can take up to 40 seconds.
Board erased successfully in 32.39 seconds

Der Fehler bleibt hartnäckig: OSError: Network card not available.

Die Firmware wurde erst im 3. Anlauf übertragen und startet jetzt wie früher.

entry 0x400a05d0
Starting boot process...
8 SSIDS found
Boot finished.
Smart Provisioning started in the background
See https://docs.pycom.io/smart for details
main -> import sensors
ssd1306.py:  esp32
Found 5 DS1820.
Gain & initial value set
Initialised CSV logger in directory /sd/hiverizelog
Traceback (most recent call last):
  File "main.py", line 26, in <module>
  File "webserver.py", line 124, in <module>
  File "/flash/lib/microDNSSrv.py", line 19, in Create
  File "/flash/lib/microDNSSrv.py", line 161, in Start
OSError: Network card not available
Pycom MicroPython 1.20.1.r1 [v1.11-3138a13] on 2019-10-08; FiPy with ESP32
Pybytes Version: 1.1.3
Type "help()" for more information.

Könnte es sein, dass die Datei “/flash/lib/microDNSSrv.py” mit der neuen Firmware nicht mehr kompatibel ist ?

Hi Didi,

es scheint so, als ob die untenstehende Firmware noch nicht auf dem Gerät ist. Die Reihenfolge, um sie erfolgreich aufzubringen, wäre diese:

pycom-fwtool-cli.exe --verbose --port COM11 erase_all
pycom-fwtool-cli.exe --verbose --port COM11 flash --tar FiPy-1.20.1.r1-annapurna-0.1.0.tar.gz

Sowohl

Starting boot process...
8 SSIDS found
Boot finished.
Smart Provisioning started in the background
See https://docs.pycom.io/smart for details

als auch

Pycom MicroPython 1.20.1.r1 [v1.11-3138a13] on 2019-10-08; FiPy with ESP32
Pybytes Version: 1.1.3

lassen Rückschlüsse zu, dass Du die “Pybytes”-enabled Firmware auf dem Gerät hast. Hier haben wir auch schon festgestellt, dass diese Mucken machen kann. Vielleicht bringt es auch Dir etwas – siehe Running software on the recent Pycom Firmware Release 1.20.1 – wenn Du eine Datei /flash/pybytes_config.json ins Dateisystem legst, die den Inhalt {"pybytes_autostart": false} hat.

Viele Grüße,
Andreas.

Auf die harte Tour gelernt: “Erasing the flash” sollte man explizit wie verlinkt machen und nicht nur die checkbox file system erase during update anklicken!

1 Like

Full erase FTW

Auch hier wird erneut beschrieben, wie wichtig der “full flash erase” Vorgang vor dem Aufbringen der neuen Firmware ist.

pycom-fwtool-cli.exe -p "your com port" erase_all

When preferring to use the esptool, the respective command to be invoked is

esptool.py --port <usb port> erase_flash

Referenzen





Wishlist

Leider gibt es diese Option noch nicht in der GUI, daher wünscht sich die Community diese Option naheliegenderweise:

2 Likes

Blockquote
Leider gibt es diese Option noch nicht in der GUI, daher wünscht sich die Community diese Option naheliegenderweise:

Feature request: Add the ERASE_ALL as a checkbox in the pycom-fwtool GUI.

kodarn about 7 hours ago

Nun beim flashen von dem TAR File kann man mittlerweile sehr wohl den FlashSpeicher löschen … die CheckBox ist da :slight_smile:

Obacht bitte!

Die Checkbox in der GUI löscht/formatiert nur das Userspace Dateisystem innerhalb des Flash-Speichers. Der gesamte Flash-Speicher des Geräts besteht jedoch aus mehreren Partitionen mit anderen/verschiedenen Inhalten (Bootloader, Firmware, NVS, Dateisystem). Da sich hier etwas unter der Haube aufgrund des Upgrades auf ein neueres Espressif SDK geändert hat, muss man scheinbar den kompletten Flash-Speicher komplett löschen. Das geht derzeit wohl leider nur auf der Kommandozeile.

1 Like

Anleitung für den Mac:
https://docs.pycom.io/advance/cli/

Im Terminal:

cd /Applications/Pycom Firmware Update.app/Contents/Resources
./pycom-fwtool-cli -v -p /dev/cu.usbmodemPy11104a1 erase_all

Pfad zum Gerät entsprechend anpassen.

1 Like

Ich mache es so – kann hilfreich sein…

Vorbereitung:

alias pycom-fwtool-cli='/Applications/Pycom\ Firmware\ Update.app/Contents/Resources/pycom-fwtool-cli'
export MCU_PORT=/dev/cu.usbmodemPy11104a1

Dann ganz kompakt und ohne Verzeichniswechsel, z.B. wenn man sowieso schon in der Sandbox arbeitet:

pycom-fwtool-cli --verbose --port $MCU_PORT erase_all

Then:

pycom-fwtool-cli --verbose --port $MCU_PORT flash --tar FiPy-1.20.1.r1-0.2.0-vanilla-psram-fix.tar.gz