Grund war also der deep sleep, der während make install einfach dafür sorgt, dass der Hahn zugedreht wird und nichts mehr geht!
Mögliche Gegenmaßnahmen:
entweder allen Programmcode vor make install löschen, z.B. mit make format-flash oder als Option beim flashen der Firmware “erase during update” oder per FTP
oder den Programmcode mit deaktivierter deep sleep-Funktion laufen lassen und dann erst installieren.
Gute Frage weiß jetzt gar nicht wie ich in der WSL Sandbox mit der repl ins aktuelle logging hin komme, es sei denn ich habe gerade frisch aufgespielt.
make connect
Vielleicht.
In Atom einfach auf das aktive logging und dann strg c.
Benutze aktuell Atom und die Sandbox zusammen (proggen in Atom aufspielen in WSL). Klappt prima, werde heute Abend Mal eine Anleitung dazu schreiben.
Vielen Dank für die Meldung, wir konnten das Verhalten bei uns ebenfalls schon erleben. Wir haben uns kurzzeitig beholfen, indem wir entweder a) die Firmware per CTRL+C aus der REPL-Shell heraus angehalten haben, wie @MKO vorschlägt oder b) die Schlafdauer hochgestellt oder deep sleep kurzzeitig ganz abgestellt haben.
Wir versuchen, uns bei der nächsten Softwareiteration um eine komfortablere Lösung des Problems zu kümmern.
Dann vielleicht anders/mehr/besser escapen, evtl. weiß die Suchemaschine was. Vielleicht kann @MKO auch mal drauf sehen. Ansonsten ist es nicht super tragisch, da es dafür ja auch Alternativen gibt, wie das Programm interaktiv zu bedienen. Von dem Makefile Gedöns wird sich eh viel in Luft auflösen, also nicht zu viel Liebesmüh reinstecken – unter Python bekommt man das besser automatisiert.
Wenn Du willst, leg doch ne kleine tools/pycom-fwtool-cli.bat dazu und kapsle darin den Aufruf zum Stiefkind. Das wird meistens im Internet empfohlen, wenn es um solche Dinge geht. Das wäre sinnvoll und vermutlich schneller zu machen, als sich mit der Frage zu beschäftigen, wie man Windows Pfad-Escaping innerhalb eines Makefiles richtig machen kann. Richtig wäre vermutlich am besten: Gar nicht.
Ich schau mir das heute Abend an.
Hab noch einen Recht interessanten Link über Updates direkt via GitHub direkt auf dem Node gefunden, so in der Art können wir uns später bestimmt den ganzen Rattenschwanz sparen, den wir uns jetzt aus der “Not” heraus anhängen.
sollte richtig sein.
Leider funktioniert es immer noch nicht.
Der Com Port meckert.
user@Werkstatt:/mnt/c/test/hiveeyes-micropython-firmware$ make install-pycom-firmware
wget --no-clobber --unlink --output-document=./dist-firmwares/FiPy-1.20.0.rc11.tar.gz
https://software.pycom.io/downloads/FiPy-1.20.0.rc11.tar.gz | true
File ‘./dist-firmwares/FiPy-1.20.0.rc11.tar.gz’ already there; not retrieving.
Install Pycom firmware "FiPy-1.20.0.rc11.tar.gz" on the device connected to "/dev/ttyS8" [y/n]?
Installing firmware FiPy-1.20.0.rc11.tar.gz
Invalid serial port /dev/ttyS8! Use list command to show valid ports.
tippe mal da die pycom-fwtool-cli.exe ein Windows-Tool ist will sie den echten COM-Port und nicht den gemappten, wie er für die WSL passt.
kenne mich jetzt leider nicht mit .mk Files aus wie man dort Strings bearbeiten kann. Man müßte jetzt bei Windows alle Zeichen bis auf die zahlen aus /dev/ttyS8 entfernen und COM davor schreiben.
wenn ich von vorne rein
export MCU_SERIAL_PORT=COM8
mache geht es übrigens nicht. Denke mal der Porttyp wird dann nicht erkannt
Note to self: Wir sind hier wie gewünscht im Kontext des WSL unterwegs und müssen dabei natürlich beim Zusammenstecken der Einzelteile berücksichtigen, dass es jenseits der Grenze des gelobten Landes gerade bei der Adressierung von Betriebssystemressourcen anders zugeht - Andere Länder — andere Sitten. Das hatten wir bei der Basisimplementierung gar nicht entsprechend berücksichtigt.
Pfad zum Programm
So true. Thanks.
COM-Port zur seriellen Schnittstelle
Thanks for spotting this!
Beschreibung der Implementierung
pycom_firmware_port :=$(subst /dev/ttyS, COM, $(mcu_port)) berechnet nun die richtige serielle Schnittstelle für die entsprechende Adressierung des Geräts aus der Perspektive des nativen Windows-Subsystems und die Variable $(pycom_firmware_port) leitet diese Information nun überall dorthin weiter, wo $(pycom_fwtool_cli) tatsächlich verwendet wird. Daher wird nun vermutlich auch "make chip_id", "make format-flash" sowie "make erase-fs" ebenso unter Windows funktionieren. Perfekt.
Vielen Dank fürs richtig rum aufs Pony setzen, Michael.
Das signalisiert, dass das Sandbox-Tooling denkt, es wäre ein IP-basierter Port. Das könnte hier die Ursache sein und man müsste die Erkennung entsprechend nachziehen. Es muss allerdings nicht so sein: Vielleicht ist das in Wahrheit kein Problem und der Fehler liegt woanders.
git checkout f1431f4a7e9da08363741aeef64cf18a9ac3848f
make setup
export MCU_PORT=/dev/ttyS16
make list-boards
Connecting via port type usb
Using buffer-size of 2048
Connecting to /dev/ttyS16 (buffer-size 2048)...
failed to access /dev/ttyS16
tools/micropython.mk:37: recipe for target 'list-boards' failed
make: *** [list-boards] Error 1
list-boards hat mit den kürzlichen Updates für Windows hinsichtlich pycom-fwtool-cli.exe überhaupt nichts zu tun, nur mit der rshell – das heißt: Reines Python Umfeld, bei Dir vermutlich innerhalb von WSL betrieben.
## List all MicroPython boards
list-boards: check-mcu-port
@$(rshell) $(rshell_options) boards
@echo
Obacht wenn Du zu weit zurück gehst. Die Umstellung auf MCU_PORT erfolgte erst kürzlich, ca. bei 43568c5df96. Vorher hieß es MCU_SERIAL_PORT.
Die wichtigste Frage: Ging das überhaupt schon einmal auf Windows?
Auf meiner Workstation (macOS) sieht es mit dem aktuellsten Entwicklungsstand ungefähr folgendermaßen aus: