Ja, das läuft, cool!! Man kann also den Firmware-Namen der latest and greatest version per parameter mit übergeben, prima!
Top! @Andreas, auch quick connect geht:
root@XPS13-CGruber:/home/cgruber/hiveeyes/sources/hiveeyes-micropython-firmware# make connect-wifi ssid="sogar mit space geht" password=123viele
Entering REPL. Use Control-X to exit.
>
Pycom MicroPython 1.20.0.rc12 [v1.9.4-81167ed] on 2019-07-15; LoPy with ESP32
Type "help()" for more information.
>>>
>>> from mininet import MiniNet ; MiniNet().connect_wifi_sta('sogar mit space geht', '123viele')
INFO: Starting MiniNet
INFO: WiFi STA: Scanning for networks
INFO: WiFi STA: Networks found ['DIRECT-xy47" Philips 6158', 'sogar mit space gehr', 'sogar mit space geht Gastzugang', 'FRITZ!Box 7490']
INFO: WiFi STA: Connecting to "sogar mit space geht"
INFO: WiFi STA: Connected to "sogar mit space geht"
INFO: WiFi STA: Network configuration is ('192.168.178.23', '255.255.255.0', '192.168.178.1', '192.168.178.1')
INFO: Ready.
INFO: WiFi STA: IP address is 192.168.178.23
Note: Press CTRL+X or Ctrl+] to detach from the REPL
Exzellent ;].
@clemens: Thanks for checking out the new features arrived on master since your last pull the other day. Enjoy the ride and good luck.
Next stop "make recycle-ng"
$ time make recycle-ng
Device port: ip => 192.168.178.61
Uploading MicroPython code to device
lftp -u micro,python 192.168.178.61 < tools/upload-all.lftprc
lftp status: 0
Upload finished
Restart device using the HTTP API [y/n]?
INFO: Restarting device at IP address 192.168.178.61 using HTTP API
SUCCESS: Device restart acknowledged. Please wait some seconds for reboot.
Ready.
real 13m33.126s
To receive desktop notifications from Terkin Pinocchio [1] like outlined within the documentation of the MicroTerkin Agent, please have a look at Setup Terkin Pinocchio desktop notifications.
For Windows, this would be pip install zroya
into the right environment(s) – eventually both the Windows-native one as well as the virtualenv-sandboxed one – like.
conda install zroya
.venv3/bin/pip install zroya
Along the lines
I am humbly asking you to verify accurateness of the canonical documentation recently spawned with Operate the MicroTerkin firmware sandbox while walking through the ng
-steps you are currently invoking. Both posts over there are Wiki’ed, so you will be able to adjust them as you like.
I know these steps are still somehow involved and will need more pedantic review of their intended functionality as they just recently have been minted. However, we have been to the moon and all we got was this lousy spacesuit ;].
We tried hard to optimize on the naming things side during the most recent iterations along the lines of make help
. If you feel we could do better, please drop us a note about a specific thing you would like to rename.
Thanks!
-
Pinocchio accepts a ride from a dolphin to the nearest island called the Island of Busy Bees. Upon arriving on the Island of Busy Bees, Pinocchio can only get food in return for labor. Pinocchio offers to carry a lady’s jug home in return for food and water. When they get to the lady’s house, Pinocchio recognizes the lady as the Fairy.
For anyone wondering: This is not real yet but holds true for
- lftp://exec =>
mirror --reverse --delete --use-cache terkin
, see also theng
upload macro upload-all.lftprc. - Some lousy seconds waiting for the lazy operator to press y+ENTER after being prompted for
Restart device using the HTTP API [y/n]?
Läuft unter Win / WSL wieder nicht!
statt make terkin-agent action=monitor
mache ich in der Windows PowerShell
PS Microsoft.PowerShell.Core\FileSystem::\\wsl$\Ubuntu\home\cgruber\hiveeyes\sources\hiveeyes-micropython-firmware> python tools/terkin.py monitor
2019-07-22 23:30:56,727 [tools/terkin.py] INFO : IP networks found: ['192.168.178.0/24']
2019-07-22 23:30:56,727 [tools/terkin.py] INFO : Discovering devices already connected to IP network 192.168.178.0/24
2019-07-22 23:30:56,727 [tools/terkin.py] INFO : Waiting for any devices having MAC address prefixes of ['30:ae:a4', '80:7d:3a'] to appear on your local network
2019-07-22 23:30:57,243 [tools/terkin.py] INFO : Sending ARP ping request to 192.168.178.0/24
Du sagtest, dadurch soll eine Datei angelegt werden, oder war das wo anders?
Make console
kann ich ja wieder in WSL machen, mit dem USB-Port als MCU_Port geht das auch
root@XPS13-CGruber:/home/cgruber/hiveeyes/sources/hiveeyes-micropython-firmware# make console
Device port: usb => /dev/ttyS16
Connecting via serial port /dev/ttyS16.
.venv3/bin/miniterm.py /dev/ttyS16 115200
--- Miniterm on /dev/ttyS16 115200,8,N,1 ---
--- Quit: Ctrl+] | Menu: Ctrl+T | Help: Ctrl+T followed by Ctrl+H ---
Nur funktionieren die Tastatur-Shortcuts in WSL überhaupt nicht, komme gar nicht mehr raus, kann nur noch das Fenster komplett schließen.
Firmware updaten geht dann auch nicht, vermutlich weil die IP von terkin-agent action=monitor nirgends gespeichert ist, mache ich vorher:
root@XPS13-CGruber:/home/cgruber/hiveeyes/sources/hiveeyes-micropython-firmware# make recycle-ng
Device port: ip => 192.168.178.26
Uploading MicroPython code to device
File "tools/terkin.py", line 52
log.info(f'Hostname "{hostname}" found at IP address "{ip_address}"')
^
SyntaxError: invalid syntax
Makefile:174: recipe for target 'install-ng' failed
make: *** [install-ng] Error 1
Warum die IP 192.168.178.26, ist doch die 24 am Ende make recycle-ng 192.168.178.24
wirft aber die gleiche Fehlermeldung aus.
Vielen Dank fürs Testen.
Schade.
Das ist ein Indiz dafür, dass die verwendete Python3-Version zu alt ist oder das Programm gar noch unter Python2 läuft. Das hatten wir doch schonmal bei Dir – nicht?
Mögliche Lösung: Das Gerät innerhalb des WSL per python3
starten, falls dort beide Python-Versionen installiert sind.
Ich bekomme bei make setup
You are using pip version 19.0.3, however version 19.1.1 is available.
You should consider upgrading via the 'pip install --upgrade pip' command.
und wollte daraufhin schon mit pip install --upgrade pip
updaten,
da kommt aber
root@XPS13-CGruber:/home/cgruber/hiveeyes/sources/hiveeyes-micropython-firmware# pip install --upgrade pip
/usr/local/lib/python2.7/dist-packages/pip/_vendor/requests/__init__.py:83: RequestsDependencyWarning: Old version of cryptography ([1, 2, 3]) may cause slowdown.
warnings.warn(warning, RequestsDependencyWarning)
DEPRECATION: Python 2.7 will reach the end of its life on January 1st, 2020. Please upgrade your Python as Python 2.7 won't be maintained after that date. A future version of pip will drop support for Python 2.7.
Requirement already up-to-date: pip in /usr/local/lib/python2.7/dist-packages (19.1.1)
Wir hatten das aber nativ unter Win und nicht im WSL!
Ist nicht schlimm.
Stimmt. Möglich. Stimmt. Möglich. Die Ursache ist aber vermutlich die gleiche.
root@XPS13-CGruber:/home/cgruber/hiveeyes/sources/hiveeyes-micropython-firmware# python
Python 2.7.12 (default, Nov 12 2018, 14:36:49)
[GCC 5.4.0 20160609] on linux2
python3 ist auch drauf
root@XPS13-CGruber:/home/cgruber/hiveeyes/sources/hiveeyes-micropython-firmware# python3
Python 3.5.2 (default, Nov 12 2018, 13:43:14)
[GCC 5.4.0 20160609] on linux
https://stackoverflow.com/questions/48524196/how-to-get-python-to-run-python-3-in-wsl-bash
To run
python3
, you have to specifypython3
on the CLI.
Das Python der Sandbox liegt unter .venv3/bin/python
bzw. .venv3/bin/python3
. Obwohl das Makefile
Dir diese Arbeit eigentlich vollständig abnehmen sollte, kann Dir vielleicht eine “Aktivierung” des venvs per source .venv3/bin/activate
weiterhelfen, bevor Du make recycle-ng
aufrufst.
make recycle
hat ja früher funktioniert, nun ist was anders mit recycle-ng
??
Leider nicht, wenn ich das richtig gemacht habe
root@XPS13-CGruber:/home/cgruber/hiveeyes/sources/hiveeyes-micropython-firmware# source .venv3/bin/activate
(.venv3) root@XPS13-CGruber:/home/cgruber/hiveeyes/sources/hiveeyes-micropython-firmware# make recycle-ng
Device port: ip => 192.168.178.24
Uploading MicroPython code to device
File "tools/terkin.py", line 52
log.info(f'Hostname "{hostname}" found at IP address "{ip_address}"')
^
SyntaxError: invalid syntax
Makefile:174: recipe for target 'install-ng' failed
make: *** [install-ng] Error 1
Vielen Dank nochmals. make recycle
sollte auf jeden Fall vorerst niemals terkin.py
bemühen müssen. Das kam versehentlich wegen der Desktop Notifications rein und wurde gerade eben per Makefile: Suppress desktop notifications on Windows for now · hiveeyes/hiveeyes-micropython-firmware@f22c3ba · GitHub wieder behoben.
Happy recycling again!
P.S.: Leider klappte bei @clemens der FTP-Transfer auf diese Weise jedoch noch nicht out-of-the-box, da das unter Ubuntu/WSL installierte lftp
in einer Version 4.6.3.0 vorlag, die mit den aktuellen Einstellungen aus upload-all.lftprc scheinbar nicht ordentlich gegen das Pycom Gerät arbeiten kann und blöde Fehler wirft, die wir nicht beheben konnten. Schade!
Wir haben uns dann damit beholfen, lftp
über Chocolatey nativ unter Windows zu installieren.
choco install lftp
Mit der dadurch vorliegenden Version 4.8.0 klappt dann der Transfer, allerdings noch nicht automatisiert über das Make-Target "make install-ftp"
, sondern leider nur zu Fuß nach ein paar kleineren Anpassungen.
Fazit: Klappt in der Theorie und Praxis, allerdings leider nicht so wie geplant. Daher nun der Seitenblick hin zu Entwicklungsversion der Datenlogger-Firmware direkt in Atom/Pymakr nutzen.
Warum kann ich über die Serielle Schnittstelle nun nicht mehr updaten?
root@XPS13-CGruber:/home/cgruber/hiveeyes/sources/hiveeyes-micropython-firmware# export MCU_PORT=/dev/ttyS16
root@XPS13-CGruber:/home/cgruber/hiveeyes/sources/hiveeyes-micropython-firmware# make install
Device port: usb => /dev/ttyS16
.venv3/bin/rshell --port /dev/ttyS16 --user micro --password python --buffer-size 2048 --quiet mkdir /flash/dist-packages
Nachdem minutenlan nichts passierte habe ich mit
^X^C
abgebrochen
Traceback (most recent call last):
File "/home/cgruber/hiveeyes/sources/hiveeyes-micropython-firmware/.venv3/lib/python3.5/site-packages/rshell/main.py", line 1255, in connect
ip_address = socket.gethostbyname(port)
socket.gaierror: [Errno -2] Name or service not known
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File ".venv3/bin/rshell", line 10, in <module>
sys.exit(main())
File "/home/cgruber/hiveeyes/sources/hiveeyes-micropython-firmware/.venv3/lib/python3.5/site-packages/rshell/command_line.py", line 4, in main
rshell.main.main()
File "/home/cgruber/hiveeyes/sources/hiveeyes-micropython-firmware/.venv3/lib/python3.5/site-packages/rshell/main.py", line 2843, in main
real_main()
File "/home/cgruber/hiveeyes/sources/hiveeyes-micropython-firmware/.venv3/lib/python3.5/site-packages/rshell/main.py", line 2805, in real_main
connect(args.port, baud=args.baud, wait=args.wait, user=args.user, password=args.password)
File "/home/cgruber/hiveeyes/sources/hiveeyes-micropython-firmware/.venv3/lib/python3.5/site-packages/rshell/main.py", line 1261, in connect
connect_serial(port, baud=baud, wait=wait)
File "/home/cgruber/hiveeyes/sources/hiveeyes-micropython-firmware/.venv3/lib/python3.5/site-packages/rshell/main.py", line 1285, in connect_serial
dev = DeviceSerial(port, baud, wait)
File "/home/cgruber/hiveeyes/sources/hiveeyes-micropython-firmware/.venv3/lib/python3.5/site-packages/rshell/main.py", line 1553, in __init__
data = pyb.read_until(1, b'>>> ', timeout=0.1)
File "/home/cgruber/hiveeyes/sources/hiveeyes-micropython-firmware/.venv3/lib/python3.5/site-packages/rshell/pyboard.py", line 154, in read_until
data = self.serial.read(min_num_bytes)
File "/home/cgruber/hiveeyes/sources/hiveeyes-micropython-firmware/.venv3/lib/python3.5/site-packages/serial/serialposix.py", line 483, in read
ready, _, _ = select.select([self.fd, self.pipe_abort_read_r], [], [], timeout.time_left())
KeyboardInterrupt
Makefile:191: recipe for target 'install-requirements' failed
make: *** [install-requirements] Error 1
Funkt da die IP-basierte Variante dazwischen? Ich kann so nicht testen, weil ich die aktuelle Firmware gerade nicht aufs Gerät bekommen.
Gleiches bei make recycle
und make list-boards
Vermutlich hat sie sich wieder aufgehängt.
Es ging jetzt, hast du das logging abgespeckt? Früher war mehr output, das hat mich verwirrt, es kamen nur Fehlermeldungen, dass Verzeichnisse nicht angelegt werden konnten.
Das sind nur Meldungen von der Dateiübertragung auf das Gerät, vermute ich. Das ist nicht die Logausgabe auf dem Terminal des Geräts.
Es gibt ein paar neue Optionen, um das Logging abzuschalten. Wenn Du diese nicht bemüht hast, sollte eigentlich alles gut funktionieren. Vielleicht hast Du aber genau in diesem Bereich einen weiteren Fehler entdeckt.
Ich habe
# Enable or disable logging completely.
'enabled': True,
# Log configuration settings at system startup.
'configuration': True,
Früher kam doch epoch time
und nochmal epoch time
das kommt jetzt nicht mehr.
make install
liefert nun das als log
root@XPS13-CGruber:/home/cgruber/hiveeyes/sources/hiveeyes-micropython-firmware# make install
Device port: usb => /dev/ttyS16
.venv3/bin/rshell --port /dev/ttyS16 --user micro --password python --buffer-size 2048 --quiet mkdir /flash/dist-packages
.venv3/bin/rshell --port /dev/ttyS16 --user micro --password python --buffer-size 2048 --quiet rsync dist-packages /flash/dist-packages
.venv3/bin/rshell --port /dev/ttyS16 --user micro --password python --buffer-size 2048 --quiet --file tools/upload-framework.rshell
.venv3/bin/rshell --port /dev/ttyS16 --user micro --password python --buffer-size 2048 --quiet --file tools/upload-sketch.rshell
root@XPS13-CGruber:/home/cgruber/hiveeyes/sources/hiveeyes-
und make recycle
das:
micropython-firmware# make recycle
Device port: usb => /dev/ttyS16
.venv3/bin/rshell --port /dev/ttyS16 --user micro --password python --buffer-size 2048 --quiet --file tools/upload-framework.rshell
Unable to create /flash/lib/terkin
Unable to create /flash/lib/hiveeyes
.venv3/bin/rshell --port /dev/ttyS16 --user micro --password python --buffer-size 2048 --quiet --file tools/upload-sketch.rshell
Entering REPL. Use Control-X to exit.
>
Pycom MicroPython 1.20.0.rc12 [v1.9.4-81167ed] on 2019-07-15; LoPy with ESP32
Type "help()" for more information.
>>>
>>> import machine ; machine.reset()
ets Jun 8 2016 00:22:57
rst:0x7 (TG0WDT_SYS_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:1
load:0x3fff8028,len:8
load:0x3fff8030,len:2156
ho 0 tail 12 room 4
load:0x4009fa00,len:19208
entry 0x400a05f4
Initializing filesystem as LittleFS!
Traceback (most recent call last):
File "main.py", line 31, in <module>
File "/flash/lib/hiveeyes/datalogger.py", line 14, in <module>
File "/flash/lib/terkin/datalogger.py", line 11, in <module>
File "/flash/lib/terkin/configuration.py", line 9, in <module>
File "dist-packages/dotty_dict/__init__.py", line 2, in <module>
File "dist-packages/dotty_dict/dotty_dict.py", line 3, in <module>
File "dist-packages/collections/__init__.py", line 6, in <module>
ImportError: cannot import name OrderedDict
Pycom MicroPython 1.20.0.rc12 [v1.9.4-81167ed] on 2019-07-15; LoPy with ESP32
Type "help()" for more information.
>>>
Lässt cannot import name OrderedDict
auf einen Fehler in meiner settings.py schließen?
rshell
verboseness
Ja, an dieser Stelle ist die Ausgabe nun etwas weniger verbose als früher. Ändern kannst Du es, indem Du in der Datei tools/micropython.mk
hinten den Parameter --quiet
entfernst, sowie ggf. auch wieder --timing
hinzufügst.
$(eval rshell_options := --port $(mcu_port) --user micro --password python --buffer-size $(mcu_transfer_buffer) --quiet)
Broken dependencies
Problem
Das weist darauf hin, dass irgendetwas bei den Abhängigkeiten kaputtgegangen ist.
Analyse
Während die Datei collections/__init__.py
auf meiner Workstation noch völlig in Ordnung ist, hat jener commit, der gerade gestern reinkam, unsere Geschichte wohl kurzzeitig in Mitleidenschaft gezogen.
Bummer. Will fix this.
Das sollte nun wieder heile sein.
Please invoke these commands to heal your local sandbox.
git pull
make setup
make recycle-ng
Die Ursache war, dass der Autor Änderungen an der Bibliothek pycopy-collections
vorgenommen hatte, die für das Pycom-Ökosystem inkompatibel waren und wir derzeit aufgrund von Mängeln im upip
package installer nicht die genaue Version eines abhängigen Pakets in der Beschreibungsdatei requirements-mpy.txt entsprechend “pinnen” können.
P.S.: Ping @weef re. Python package pinning bei Erschließung von Annotationen im Grafana per "grafannotate" - #13 by weef.