Pycom ist eine junge Firma, die kleine Module für unterschiedliche Netzwerk-Topologien herstellt. Nachdem sich die Firma zunächst teilweise via Kickstarter finanziert hat, ist nun die Produktion angelaufen. Die Produkte erleichtern den IoT-Zugang. Hierfür wird so viel an Netzwerktechnik wie möglich in die Module verfrachtet. Die Module sind via MicroPython programmierbar.

Boards
Alle Module sind pinkompatibel zu und basieren auf ESP32 von Espressif Systems aus Shanghai. Im Moment gibt es drei Module: Angekündigt sind:
  • GPy – WLAN, Bluetooth, LTE CAT M1/NB1
  • FiPy – WLAN, Bluetooth, LoRa, Sigfox und dual LTE-M (CAT M1 und NBIoT).

    Erweiterungsboards für WiPy, LoPy, SiPy, GPy & FiPy
    Im Folgenden verwende ich ein Modul auf einem Erweiterungsboard, das einen USB-Port zur Verfügung stellt. Es geht auch ohne Erweiterungsboard, wenn man einen Seriell/USB-Konverter verwendet.



Update der Firmware

Wie immer sollte man gleich überprüfen, ob man auch mit der neuesten Firmware arbeitet. Für diesen Zweck gibt es ein Firmware-Update-Tool von Pycom. Man verbindet hierzu Pin G23 mit GND und versetzt das Board mit einem Reset in den Modus zum Update der Firmware.

Nun öffnet man also ein serielles Terminal (z. B. Tera Term, 115200n81) und betätigt den winzigen Reset-Taster des Boards. Es erscheint eine Liste mit kryptischen Meldungen, die mit einem MicroPython-Prompt (>>>) enden. Nach dem Prompt führt man die folgenden zwei Befehle in zwei Zeilen aus und überprüft so, ob man die neueste Firmware hat:
import os
os.uname().release
Bei mir lautete die Antwort „1.6.13.b1“ und das ähnelt schwer einer Versionsnummer, die ich zwar beim Update gesehen, aber vergessen hatte zu notieren.

Spielen via REPL mit WiPy

Nun kann man in Terminal und REPL Python-Befehle eingeben und etwas mit der RGB-LED WS2812 des Boards herumspielen.
import time
import pycom

pycom.heartbeat(False)

r = 0
g = 0
b = 0
pycom.rgbled(0)

while True:
	if r<255:
		r = r + 1
	elif g<255:
		g = g + 1
	elif b<255:
		b = b + 1
	else:
		break
	pycom.rgbled((r<<16)+(g<<8)+b)
	time.sleep(0.01)
pycom.rgbled(0)

Zugriff auf das System von WiPy/LoPy/SiPy/GPy/FiPy

Soweit so nett, doch will man natürlich richtige Programme erstellen, die kein REPL benötigen. Hierzu braucht man Zugriff auf das Dateisystem, so dass man die Dateien boot.py und main.py editieren (siehe auch den Artikel zu MicroPython und pyboard) und eigene Daten hinzufügen kann. Leider ist das etwas kompliziert, da sich das Board nur via serieller Schnittstelle und nicht als externes Speichermedium zeigt.

Zurzeit gibt es zwei Zugriffsmöglichkeiten auf das Dateisystem:
  1. Download und Installation des Text-Editors Atom (https://atom.io/) und hinzufügen des Plug-Ins Pymakr
  2. Mit einem FTP-Programm
Die Website von Pycom zeigt sich hier nicht sehr klar (als dieser Artikel geschrieben wurde, hat Pycom versichert, das zu verbessern), doch bevor ein Zugriff auf das Dateisystem des Boards möglich ist, muss man zuerst eine WLAN-Verbindung zu ihm herstellen. Das Board zeigt sich unter „wipy-wlan-xxxx“ oder „sipy-wlan-xxxx“ oder ähnlich. „xxxx“ steht für vier hexadezimale Stellen. Das Passwort für alle WLANs ist „www.pycom.io“. Unter Windows 10 musste ich die Option „Automatisch verbinden“ deaktivieren, um eine Verbindung zum Board zu bekommen. Nach Herstellung der Verbindung kann man via FTP auf das Dateisystem des Boards unter der IP-Adresse 192.168.4.1 zugreifen. Ich selbst verwende hierzu Total Commander, das bei weitem beste Tool zu diesem Zweck für Windows.



Wenn man jetzt Atom ausprobieren möchte, ergibt sich das nächste Problem, denn wenn man wie bei mir eine Verbindung zum Board herstellt, verliert man die Internet-Verbindung. Also trennt man die Verbindung zum Board, verbindet sich mit dem Internet, lädt Atom runter und installiert es. Anschließend klickt man auf „Install a Package“ im „Welcome Guide“. Dann tippt man „Pymakr“ in das Suchfeld, betätigt die Eingabetaste und wartet, bis sich die Liste füllt. Man scrollt dann bis zu Pymakr und klickt auf „Install“. Wenn sich jetzt die Pycom-Konsole öffnet und die Meldung „Connection error: Error: Login timed out“ erscheint, ist das Plug-In bereit. Also wieder mit dem WLAN des Boards verbinden und auf den (Micro)Python-Prompt in der Konsole von Atom warten. Möglicherweise muss man hierzu Atom beenden und neu starten und vielleicht sogar einige Minuten warten (wie bei mir), bevor alles klappt.