Einrichtung von Terkin unter Win10/WSL (Firmware, Entwicklungs-Sandbox, Datalogger)

Einleitung

Im Folgenden haben ich die Schritte notiert, die ich gebraucht habe, um die vorläufige Testversion der MicroPython-Firmware bei mir auf den FiPy/WiPy zu spielen.
Denke mal es macht Sinn, diesen Beitrag als Wiki zu erstellen.

Firmware-Update

Zuerst sollte Der FiPy auf den Aktuellsten Firmwarestand gebracht werden. Dazu einfach

  • den FiPy über das Expansionboard an den USB-Port anschließen,
  • das Pycom Firmware Update Tool von der Pycom Seite herunterladen, installieren und starten.
  • Dort sollte das Häkchen bei “Include development releases” aktiviert werden.

2020-02-23 11_35_29-Pycom Upgrade

Anschließend 2mal auf continue.

Zuerst https://packages.hiveeyes.org/hiveeyes/foss/pycom/vanilla/FiPy-1.20.2.rc3-0.8.0-vanilla-squirrel.tar.gz herunterladen und irgendwo lokal abspeichern.

Nun den verwendeten COM-Port einstellen und unten “Flash from local file” auswählen und die gerade heruntergeladene Datei angeben und als File System LittleFS auswählen.

2020-02-23 11_38_33-Pycom Upgrade

Nach dem Bestätigen sollte euer FiPy auf dem neusten Stand sein.

Entwicklungsumgebung (aka “Terkin-Sandbox”)

Jetzt ist die Entwicklungsumgebung dran. Dafür benötigen wir das Windows Subsystem for Linux (WSL).

WSL aktivieren

Im Suchfeld neben dem Start Button “powershell” eingeben und dann “Als Administrator ausführen” wählen.

In der Powershell jetzt eingeben und mit Enter bestätigen:

Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux

Nach Installation dieses Zusatzfeatures muß das System neu gestartet werden.

Linux-Distribution installieren

Nach dem Neustart im Microsoft Store eine Linux Distribution wie z.B. Ubuntu installieren.
Achtung: Das ist zwar kein vollwertiges Linux aber ziemlich nahe dran und reicht für unsere Zwecke völlig aus. Nach dem Starten von Linux werdet Ihr nach einem Usernamen und anschließend nach einem Passwort gefragt. Dort könnt Ihr kreativ sein.

Pakete installieren

In die Kommandozeile

sudo apt-get update

und anschließend

sudo apt install make patch wget git python python3 python-virtualenv

Terkin Datalogger-Quelltext abholen

Jetzt könnt Ihr euch den Code des Terkin Dataloggers aus dem GIT holen.

git clone https://github.com/hiveeyes/terkin-datalogger.git

danach in das neu erstellte Verzeichnis wechseln

cd terkin-datalogger/ 

Abhängigkeiten installieren

make setup

Mit dem Gerät verbinden

Danach die folgende Zeile anpassen und ausführen. ttyS12 steht für COM Port 12 und ttyS8 für Com8 usw…

export MCU_PORT=/dev/ttyS12

Jetzt könnt Ihr die Verbindung testen

make list-boards

und Dateien am Gerät installieren

make install

wenn es geklappt hat, dann weiter.

Einstellungen konfigurieren

Jetzt müßt ihr noch Eure Daten eingeben.

# Eigene Konfiguration aus Blaupause erstellen
cp settings.example-bob.py settings.py

# Konfiguration anpassen
nano settings.py

Hier Eure Daten bei ssid und password eingeben.


Jetzt fehlen noch die Daten für die Ubertragung per JSON over MQTT
endpoint, realm und Network übernehmen und bei gateway und node sich eine passende Bezeichnung aussuchen.
image

nano mit STRG+X beenden. Jetzt werdet Ihr unten gefragt ob Ihr speichern wollt dieses mit Y und Enter bestätigen.

Datenlogger interaktiv starten

Jetzt könnt Ihr Das Programm mit

make sketch-and-run

starten. Es läuft dann in einer sog. REPL-Shell und man kann die Ausführung gut beobachten. Verlassen kann man die REPL-Shell wieder per STRG+X. Abbrechen lässt sich die Ausführung per STRG+C.

Ich hoffe ich habe nichts vergessen und Ihr habt alles richtig gemacht.

4 Likes

@MKO Vielen Dank für diese Anleitung! Wir haben den Beitrag nun als “Wiki” gekennzeichnet, so dass auch andere Änderungen daran vornehmen können, um den Beitrag aktuell zu halten.

Dem schließe ich mich an – vielen Dank!

Ergänzen wollte ich die Anleitung noch um folgende Links. Sie helfen weiter, wenn man tiefer einsteigen will. Dort geht es dann auf Englisch weiter.

8 posts were merged into an existing topic: Upload und initiale Konfiguration der MicroPython-Firmware

Moin,
ich habe noch eine recht bequeme Möglichkeit gefunden mit der WSL Sandbox und gleichzeitig mit einer IDE wie Atom oder VS Code und Git in Windows zu arbeiten.
Das Linux kann die Windows-Laufwerke Mounten.


Ich habe daher das Git auf C Laufwerk geklont und navigiere im Ubuntu mit

cd /mnt/c/hiveeyes-micropython-firmware/     

in das Verzeichnis.
und führe dort nur noch die “make” Befehle aus.
Editieren und Commits, kann man dann bequem über Windows machen.

1 Like

Ab Windows 10, version 1903 kann man von Windows aus auch auf die Linux-Dateien über den Pfad \\wsl$\Ubuntu\ bzw. aus Linux heraus über

explorer.exe .
[Punkt am Ende für das aktuelle Verzeichnis]

zugreifen, siehe

1 Like

Zur Unterstützung der Entwicklung unter Windows wollten wir noch auf folgende Juwelen aus dem Open Source Umfeld hinweisen – beide haben ein grafisches Benutzerinterface.

sowie den

Vielleicht funktionieren sie auch mit den Pycom Geräten gut, das wurde jedoch noch nicht untersucht.


Gesammelt haben wir solche Werkzeuge bei:

Hallo, ich habe versucht Terkin auf meinen LoPy4 unter der oben genannten Anleitung zu installieren.

make setup und make list-boards funktioniert, doch bei make install gibt es Probleme:

terkin-datalogger$ make install
Device port: usb => /dev/ttyS6
Using buffer-size of 2048
Connecting to /dev/ttyS6 (buffer-size 2048)...
Trying to connect to REPL  connected
Testing if ubinascii.unhexlify exists ... Y
Retrieving root directories ... /flash/
Setting time ... Sep 25, 2020 22:38:09
Evaluating board_name ... pyboard
Retrieving time epoch ... Jan 01, 1970
Unable to create /pyboard/dist-packages
Using buffer-size of 2048
Connecting to /dev/ttyS6 (buffer-size 2048)...
Trying to connect to REPL  connected
Testing if ubinascii.unhexlify exists ... Y
Retrieving root directories ... /flash/
Setting time ... Sep 25, 2020 22:38:12
Evaluating board_name ... pyboard
Retrieving time epoch ... Jan 01, 1970
Unable to create /pyboard/dist-packages
Using buffer-size of 2048
Connecting to /dev/ttyS6 (buffer-size 2048)...
Trying to connect to REPL  connected
Testing if ubinascii.unhexlify exists ... Y
Retrieving root directories ... /flash/
Setting time ... Sep 25, 2020 22:38:15
Evaluating board_name ... pyboard
Retrieving time epoch ... Jan 01, 1970
Unable to create /pyboard/lib
Unable to create /pyboard/lib
Using buffer-size of 2048
Connecting to /dev/ttyS6 (buffer-size 2048)...
Trying to connect to REPL  connected
Testing if ubinascii.unhexlify exists ... Y
Retrieving root directories ... /flash/
Setting time ... Sep 25, 2020 22:38:18
Evaluating board_name ... pyboard
Retrieving time epoch ... Jan 01, 1970
timed out or error in transfer to remote
timed out or error in transfer to remote
timed out or error in transfer to remote

meine installierte Firmware ist: LoPy4-1.20.2.rc6-0.10.1-vanilla-squirrel.tar.gz

1 Like

passt nicht. Hier gab es schon mal so was:

und die Lösung dazu:

Gibt es bei dir die Datei presets.mk? Bei mir liegt sie im Verzeichnis \\wsl$\Ubuntu\home\cgruber\hiveeyes\sources\hiveeyes-micropython-firmware Falls nicht, bitte einmal die Datei presets-example.mk kopieren und als presets.mk abspeichern. Dann auch gleich den USB-Port dort einstellen.

Ich weiß nicht warum pyboard default ist, wenn presets.mk nicht da ist, das ist doof!

2 Likes

Vielen Dank (durch den Screenshot hab ichs wahrscheinlich nicht gefunden). Nun hat make install funktioniert. Logs melden zwar noch “Unable to create /flash/lib”, doch es kam zu keinem Abbruch:

...    
Adding /flash/dist-packages/copy.py
Using buffer-size of 2048
Connecting to /dev/ttyS6 (buffer-size 2048)...
Trying to connect to REPL  connected
Testing if ubinascii.unhexlify exists ... Y
Retrieving root directories ... /flash/
Setting time ... Sep 26, 2020 10:00:02
Evaluating board_name ... pyboard
Retrieving time epoch ... Jan 01, 1970
Unable to create /flash/lib
Adding /flash/lib/umal.py
Adding /flash/lib/mininet.py
Adding /flash/lib/terkin
...
2 Likes

Ja, das ist eine suboptimale Fehlermeldung! Wenn die firmware neu aufgespielt wird werden schon ein paar directories angelegt u.a. /flash/lib, mit besserer usability müsste die Fehlermeldung sein

Unable to create /flash/lib because it exists already.

das bestenfalls als Hinweis, so wie bisher schaut es wie eine Fehlermeldung aus.

Note to self…

Wenn make list-boards keine Boards anzeigt, liegt es an WSL!

$ make list-boards
ERROR: MCU port could not be obtained, please set the "MCU_PORT" environment variable or populate the ".terkin/floatip" file.
make: *** [tools/terkin.mk:34: check-mcu-port] Error 1

ACHTUNG
Die Serial-Port Verbindung ist NUR unter WSL1 möglich! WSL2 hat keinen USB (und somit COM) Support…

Also sicherstellen, dass eure Linux Distro mit WSL Version 1 läuft:

> wsl --list -v
  NAME      STATE           VERSION
* Ubuntu    Running         1

Falls VERSION 2 aktiv ist, kann man dies wie folgt ändern:
> wsl --set-version DISTRONAME 1

Anschliessend WSL neu starten (PowerShell Admin Prompt):
> Restart-Service LxssManager

Anschliessend am besten nochmal make setup, export MCU_PORT=/dev/ttyS# etc. ausführen.

Und ich dachte schon es liegt an mir! :thinking:

3 Likes

Hello again,

ich habe oben genanntes

mal aufgegriffen und nach Development sandbox: Improve first experience with selection of MicroPython/Board · Issue #87 · hiveeyes/terkin-datalogger · GitHub überführt.

a) Habe ich das so wie dort zusammengefasst korrekt verstanden?
b) Waren hier noch irgendwelche anderen Verbesserungsvorschläge im Topic, bei denen es sich lohnt, “umgearbeitet” zu werden? Sollten z.B. die Handreichungen zu WSL1 in die Dokumentation übernommen werden?

Viele Grüße,
Andreas.

/cc @techanic, @poesel, @MKO, @clemens