Pimoroni Badger2040

Eine interessante Entwicklungsplattform für MicroPython auf Basis des Raspberry Pi 2040 Pico mit ePaper:

 

 

Vorwort:

Dies ist ein Tipp von unserem Bruno. Er hat den Link zum Badge am 11.08. bei unserem virtuellen Linux-Treff Nord im Chat vorgestellt. Daher haben wir schnell bestellt und seit Freitag, den 19. August können wir das Badge ausprobieren. Hier nun unser erster Bericht, alle Angaben ohne Gewähr:

 

1. ) Beschreibung:

Der Badger2040 von der Firma Pimoroni LTD UK ist eine günstige und komplette Entwicklungsumgebung mit ePaper für RP2040 Pico und MicroPython. Im mitgelieferten Demoprogramm wird eine Reihe von verschiedenen Bedienmöglichkeiten präsentiert. Das Board besitzt relativ kleine Abmaße bezogen auf die Displaygröße. Es bietet sich als ideale Bedienmöglichkeit für weitere Projekte, wie z.b. als Steuerpanel an.

 

2.) Technische Daten:

 

- Dualcore RP2040, 133MHz, 264KB RAM, 2MB Flash (1MB OS, 1MB Speicher),

- 7 Bedientasten, 5 auf der Vorderseite, 2 auf der Rückseite.

- 1 LED weiß

- Vorderseite: Taster a, b, c, Pfeil hoch und Pfeil runter

- Rückseite: Taster BOOT/USER und RESET

- USB-C Buchse

- externer Anschluss für I2C Sensoren

- ePaper mit 296x128px Auflösung

- Basiert auf RaspberryPI 2040 Pico

- Anschluss für Halsband (Badge)

- 4 Bohrungen an jeder Ecke für M2-Schrauben zur Befestigung

 

Diverse Demo-Applikationen sind in der Firmware als Ausgangspunkt für eigene Experimente im Badger2040 integriert:

 

Ebene 1: Uhr, Schriftarten, E-Book

Ebene 2: Bilder, Liste, Badge

Ebene 3: QR-Code, Info, Hilfe

 

3.) Lieferumfang:

Beim Erwerb ist das Badger2040 mit dem Accessory Kit zu empfehlen. Dort enthalten ist eine Batteriebox mit Batterien, Schalter und Kabel, ein Lanyard mit Plastik-Klip, ein hochflexibles USB-Kabel von 1,2m Länge, Klebeklettband und natürlich das Badge selbst. Die Demo-Software ist bereits vorinstalliert.

 

4.) Allgemeine Beschreibung:

Der Badger2040 hat die Abmaße 85.6 mm x 48.7 mm und ist somit etwas schmäler wie das reelboard. Die Dicke beträgt mit Batteriepack 23mm. Zur Programmierung und Spannungsversorgung steht eine USB-C Buchse zur Verfügung. Es fehlen ihm gegenüber dem reelboard alle Sensoren und ist schaltungstechnisch wesentlich einfacher verbaut. Das reelboard jedoch ist Teil eines Gesamtsystems, der Badger ist eine Standalone-Anwendung. Für externe Sensoren ist aber eine I2C-Buchse verbaut. Dafür ist das E-Paper mit 296x128px etwas größer und verhält sich genauso wie beim reelboard. Ferner gibt es kein WLAN oder Bluetooth. Änderungen müssen via USB-Kabel und einer Terminalsoftware wie z.B. Minimon oder der IDE Thonny durchgeführt werden. Zum aktiven Betrieb als Badge unterwegs werden 2 AAA Batterien oder eine Powerbank mit entsprechendem Kabel benötigt. Somit ist der Badger2040, was die Datenübertragung angeht, etwas unflexibler in der Handhabung wie z.B. das reelboard.

Aber der Badger2040 kann mit anderen Eigenschaften punkten und diese machen es zu einer idealen Ergänzung, abhängig vom UseCase, zum reelboard. Der Prozessor ist leistungsfähiger, weiterhin ist der Flashspeicher für Anwendungen doppelt so groß (hier 2MB: 1MB OS, 1MB Speicher). Das erlaubt aufwändigere Anwendungen und macht die Bedienung der Demo-Software etwas komfortabler. So sind eine Uhr, verschiedene Schriftarten, ein eBook, Bilderliste, eine Merkliste, das Badge, ein QR-Code enthalten. Die Punkte Info und Hilfe geben weitere Informationen. Wie sinnvoll einige dieser Anwendungen sind, mag jeder für sich selbst entscheiden. Die Bedienung mit der IDE Thonny ist etwas hakelig, da die Verbindung zum Board nicht immer auf Anhieb gelingt. Für Texte zu ändern und zur Programmierung ist diese IDE ausreichend. Wenn man Bilder für den Badger2040 konvertieren will, muss man allerdings noch das pimoroni Repo herunterladen und es sind noch weitere Schritte zur Umwandlung wie in der original Dokumentation beschrieben notwendig. Programmiert wird das Badge mit MicroPython oder mit CircuitPython mit einer angepassten Version für das Badge. Es stehen c++ und Python 3.7 zur Verfügung und alle Projektquelldaten zum Badger2040 sind in Github als opensource abgelegt.

 

4.1) Hinweis zur Software:

Alles ist Opensource, alle Quellen sind in Github abgelegt und es kommt C++ und MicroPython sowie CircuitPython angepasst für den Raspberry PI Pico zum Einsatz. Es wird Python der Version 3.7 verwendet.

 

5.) Erstinbetriebnahme:

        Es müssen zunächst zwei Dinge auf den PC heruntergeladen werden:

5.1.) Ein Script für die GUI Thonny Installation.

Link zum Bash Script für die Installation Thonny unter Linux:

 

wget -q -O –https://github.com/thonny/thonny/releases/download/v3.3.13/thonny3.3.13.bash 
 

und mit bash thonny-3.3.13.bash ausführen,

 

oder das folgende Script unter

https://thonny.org/installer-for-linux

herunterladen.

 

Hier das Script im Klartext:

#!/usr/bin/env bash
set -e

VERSION=3.3.13
VARIANT=thonny

ARCHITECTURE="$(uname -m)"
if [[ "$ARCHITECTURE" != "i686" ]] && [[ "$ARCHITECTURE" != "x86_64" ]]; then
  echo "Thonny only provides pre-built bundles for i686 and x86_64 (not $ARCHITECTURE)"
  exit 1
fi
echo 
echo "This script will download and install Thonny ($VARIANT-$VERSION) for Linux (32 or 64-bit PC)."
read -p "Press ENTER to continue or Ctrl+C to cancel."

FILENAME=$VARIANT-$VERSION-$ARCHITECTURE.tar.gz
URL="https://github.com/thonny/thonny/releases/download/v$VERSION/$FILENAME"

echo "Downloading $URL"

TMPDIR=$(mktemp -d -p .)
wget -O $TMPDIR/$FILENAME $URL
tar -zxf $TMPDIR/$FILENAME -C $TMPDIR
$TMPDIR/thonny/install
rm -rf $TMPDIR

echo 
read -p "Press ENTER to exit the installer."

 

Diese Datei als thonny_install.sh im Userspace speichern und ausführbar machen.

Aufruf als User mit sh thonny_install.sh in der Konsole. Thonny wird installiert und ist im Menübaum unter Entwicklung aufrufbar. Ein Desktop Icon wird auch abgelegt. Vor dem ersten Einsatz mit dem Badger2040 ist rechts unten im Thonny-Fenster durch Klick auf "Python 3.7" die Version in "MicroPyton (Raspberry Pi Pico)" zu ändern. Sonst kann keine Kommunikation mit dem Badger aufgebaut werden.

 

5.2) Das Pimoroni Repo herunterladen:

Um u.a. Bilder in das Badger Format konvertieren zu können, ist das pimoroni-pico repo auf den Computer herunterzuladen:

git clone https://github.com/pimoroni/pimoroni-pico

Dieses befindet sich anschließend im Wurzelverzeichnis des Users. Das umgewandelte 8-bit Graustufenbild für den Modus „Badge“ muss exakt die Größe 104x128Pixel haben, da das Bild als binärer Stream im Badge angezeigt wird. Passt z.B. die Zeilenlänge nicht, werden mehr oder wenig schief stehende Streifen angezeigt. Für "Image" ist das Bild auf 296x128px über z.B. Gimp zu skalieren. Das Bild muss sich für die Konvertierung im gleichen Verzeichnis wie die convert.py befinden.

5.3) Neue Firmware installieren:

Es empfiehlt sich die neueste Firmware auf den Badger2040 zu installieren, Hierzu ist die neueste Datei *.uf2 Datei aus dem Git-Repo zu ziehen (https://github.com/pimoroni/pimoroni-pico/releases) und dann wie in der originalen Beschreibung beschrieben auf das Badge zu kopieren.

5.4) Anmerkung:

Im Bootmodus erscheint das Badge als externes Laufwerk RPI-RP2 mit nur 2 Dateien. INDEX.HTM und INFO_UF2.TXT. Dorthin kopiert man die *.uf2 Datei. Dort bleibt sie einen Augenblick liegen, dann „verschwindet“ sie. Das Board führt dann einen Reboot aus und startet die neue Firmware.

 

6.) Bedienung:

Den Rechner einschalten, nach Durchbooten den Badger2040 mit dem USB-Kabel mit dem Rechner verbinden.

Thonny starten:

Die Verbindung aufbauen: Hierzu in der Thonny GUI oben links das STOP Symbol anklicken. Wenn unten rechts im Fenster keine graue Linie erscheint nochmals STOP klicken, ggf. vorher noch am Board RST drücken und warten, bis das Board eine stabile Anzeige liefert. Dann in der GUI oben links der grünen Knopf mit Pfeil drücken. Unten in dem Kommunikationsfeld erscheint „>>>“. Die Verbindung steht und man kann mit den Beispielen aus der originalen Doku beginnen.

 

Anmerkung:

Die Quelle für die einzelnen py-Demo-Dateien ist im Repo enthalten:

https://github.com/pimoroni/pimoroni-pico/tree/main/micropython/examples/badger2040 
 

(Die Dateien sind auch im lokalen pimoroni-pico Repo vorhanden)

Von dort (github) das entsprechende File anklicken, auf RAW Darstellung gehen, alles markieren (Ctrl A), dann kopieren (Ctrl C).

In Thonny mit Ctrl V einfügen und unter Auswahl „RaspberryPI Pico“ speichern. Die *.py Datei nach Bedarf editieren. Speichern nicht vergessen.

Mit main.py beginnen, main.py in Editorfenster kopieren, dann grüner Button betätigen. Main wird dann aufgerufen.

Für die Funktion mit dem Badge ist es hilfreich, die main.py durch Doppelklick aus dem Repo oder aus dem RasPI-Fenster links unten in das Editorfenster rechts zu laden. Wenn die Verbindung nicht sofort zustande kommt, etwas warten und mit dem Stop Button und mit dem grünen Start Knopf „spielen“, bis die Verbindung hergestellt ist. Oder auf der Rückseite den Reset-Knopf betätigen. Das Board verhält sich beim Verbindungsaufbau manchmal etwas „bockig“.

 

BadgerOS: Dort wird am oberen Rand der noch freie Speicher sowie rechts der Batteriezustand angezeigt.

 

Mit den Tasten kann man bequem im Display navigieren: Hoch/Runter, a: links, c: rechts, b: Bestätigen/Auswählen

 

Unter „helpauf dem Display gibt es folgende Angaben zur Bedienung der einzelnen Tasten:

- Up/Down – Seitenwechsel

- a, b oder c – Anwendung aufrufen

- a & c – Anwendung beenden, Rücksprung ins Menü

- Up/Down und USER – Schriftgröße

- a & USER – Anzeige toggeln Invertierung

 

Hier noch angefügt:

- Unter Menüpunkt „image“:

USER & a – Dateinamen links unten in der Anzeige An/Aus

Wie man aus den einzelnen Python-Dateien eine komplette neue Firmware für das Board erstellt wird unter

https://forum.micropython.org/viewtopic.php?t=10961

erklärt. Die notwendige Datei liegt dann im *.uf2 Format vor.

 

7.) Anmerkungen und Fazit

Das Badger2040 ist, obwohl technologisch einfacher aufgebaut, eine ideale Erweiterung für das reelboard. Je nach Anwendungsfall kann man sich zwischen den beiden entscheiden und beide machen insgesamt einen stabilen Eindruck. Im Badger2040 gibt es leider auch nur den englischen ASCII Zeichensatz, Umlaute sind nicht vorhanden (aus ö wird o etc.). Vielleicht der erste Punkt, den wir von der LUG angehen werden. Ist hier aber nicht weiter tragisch, da der Badger2040 nur statisch (es ist keine Funkanbindung vorhanden wie beim reelboard) funktioniert. Da kann man ersatzweise eine Visitenkarte mit u.a. Umlauten als 296x128 große Grafik über Gimp erstellen und unter „image“ ablegen. Der Verbindungsaufbau Thonny ↔ Badge gelingt nicht immer auf Anhieb. Habe da leider noch keinen Workaraund zur Hand.

 

8.) Sonstige interne Informationen:

Bei der Abfrage „Speichern unter“ gibt es zwei Möglichkeiten:

- Ablage in dem lokalen Verzeichnis des Users: z.B. Als Backup, normale Dateiablage

- Ablage auf RasPI Pico: Datei wird dort gespeichert und ist dort auch ausführbar.

 

Name des Hauptprogramms: _launcher.py:

* Den „_“ vor launcher.py ist zu verwenden, dann bleibt die Änderung dauerhaft und standalone im Badger2040 via Thonny erhalten.

 

* Fehler bei Batterieanzeige beheben: Skalierungsfehler bei vbat um Faktor 100. Zunächst Änderung in den Zeilen 24 und 25 für neue Grenzwerte vornehmen, angepasst an die Anforderungen normaler AAA Batterien:

24 MAX_BATTERY_VOLTAGE = 3.2

25 MIN_BATTERY_VOLTAGE = 2.0

dann

* Änderung in Zeile 152 wegen Beseitigung Skalierungsfehler:

vbat = badger_os.get_battery_level() * 100 // mal 100 neu

 

 

9.) Beispielbilder:

Ein Größenvergleich mit dem Badge zu einem originalen RP Pico

 

Hier ein weiteres Beispiel als Badge

 

Auch Fotos lassen sich auf dem Board darstellen.

 

10.) Allgemeines:

Die Firma Pimoroni ist für Maker sehr interessant. Dort gibt es vielerlei Elektronikkomponenten für viele Arten von Projekten. Ebenso ist auch beim Distributor "berrybase" viel Zubehör erhältlich.

 

11.) Tipp:

Den Stecker von dem Batteriepack nicht ganz in die Buchse des Badgers hineinschieben. Wenn doch, dann rastet dieser ein und man kann diesen nur noch durch Herunterdrücken der Verriegelungsnasen des Steckers mit einem kleinen Schlitzschraubendreher und vorsichtigem Ziehen am STECKER, nicht am KABEL wieder lösen.

ePaper sind systembedingt nicht geeignet, dauerhaft sich schnell ändernde Anzeigeinhalte zu bedienen. Daher ist das Beispiel mit der Uhr hier nur als Demo zu verwenden. Die Pixel bei der Sekundenanzeige werden sonst schnell verschleißen und sich dann an dieser Stelle ein irreparabler „Geisterbildeffekt“ einstellen. Weiterhin mögen diese Displays keine Temperaturen unter 0 Grad Celsius. Damit erhält man "Geisterbilder" über das gesamte Display!

 

12.) Links:

- Diese Anleitung von uns als pdf: Beschreibung Pimoroni Badger2040

- Info zum Badger2040 (eng): https://pimoroni.com/badger2040

- Dokumentation (eng): https://learn.pimoroni.com/article/getting-started-with-badger-2040

    oder: Doku (eng) als pdf: Badger2040_Webseite_Pimoroni

- Distributor: https://www.berrybase.de/pimoroni-badger-2040-badger-only

- Link zum Thonny Install-Script: https://thonny.org/installer-for-linux

- Link zum Repo: https://github.com/pimoroni/pimoroni-pico/tree/main/micropython/examples/badger2040

- Erstellung UF2-Datei: https://forum.micropython.org/viewtopic.php?t=10961

    oder: UF2 Erstellung als pdf: Auszug_Forum_zu_UF2