Beim Pimoroni Pico LiPo RP2040 handelt es sich um einen Raspberry Pi Pico mit zusätzlicher Elektronik für das Akkumanagement.
Beim Pimoroni Pico LiPo handelt es sich um einen für den Akkubetrieb konzipierten Pi Pico. Programmierung und Spannungsversorgung erfolgen über eine USB-C-Buchse. Ansonsten fallen die Abmessungen, alle technischen Daten sowie die Pin-Belegung identisch zum Original aus. Der Preis liegt allerdings etwas höher. Den Pico LiPo gibt es in zwei Ausführungen. Die Variante mit 4 MByte RAM kostet etwas über 16 Euro [1], die 16-MByte-Version [2] kommt mit rund 19,50 Euro nur wenig teurer.
Das Laden von Akkus übernimmt ein auf der Rückseite (Abbildung 1) des Pico LiPo verbauter MCP73831 [3]. Dieser Laderegler bedient Akkus mit einem maximalen Strom von 215 Milliampere. Dem Schutz des Stromspeichers dient ein XB6096I2S-Baustein [4]. Ebenfalls auf der Rückseite des Pico LiPo findet sich der zusätzliche Flash-Speicher. Anhand der Bestückung der Lötbrücke lässt sich unschwer erkennen, ob es sich um eine 4- oder eine 16-MByte-Variante handelt. Interessanterweise hat der daneben aufgelötete Widerstand rein gar nichts mit der Speicherverwaltung zu tun: Er ist ein Bestandteil der USB-Spannungserkennung (GPIO24).
Die Vorderseite des Boards birgt viele spannende Details. In der Nähe des USB-C-Ports befinden sich drei LEDs. Die weiße zeigt an, dass die Betriebsspannung (3,3 Volt) anliegt, die grüne lässt sich frei programmieren (GPIO25). Die rote Leuchtdiode signalisiert den Ladezustand des Akkus: Sie erlischt, sobald er voll ist. Neben den LEDs befinden sich die Schalter BOOT für den Neustart und – schön, dass Pimoroni daran gedacht hat – POWER zum Ein- und Ausschalten.
Auffällig sind die zwei JST-Steckverbinder. Der dreipolige Stecker erlaubt den Anschluss eines SWD-Debuggers, beim vierpoligen Exemplar handelt es sich um einen Qwiic/Stemma-Qt-Anschluss (siehe gleichnamige Tabelle), also letztlich einen standardisierten I2C-Bus. Hier lassen sich viele verschiedene Sensoren und Breakouts anschließen. Zu guter Letzt sitzt noch ein Anschluss für den Akku auf der Platine, auf den wir im Folgenden noch näher eingehen. Auf der Shopify-Webseite finden Sie bei Interesse einen Schaltplan [5] des Pico LiPo.
|
Pin |
Leitungsfarbe |
Funktion |
|---|---|---|
|
1 |
Grün |
SCL |
|
2 |
Weiß |
SDA |
|
3 |
Rot |
3.3V |
|
4 |
Schwarz |
GND |
Akku
Prinzipiell können Sie am Pico LiPo einen beliebig großen Akku verwenden, eine Spannung von 3,7 Volt und die richtige Polung vorausgesetzt. Bei der Wahl des Akkus sollten Sie sich im Vorfeld einige Gedanken machen. Zuerst sollten Sie den Strombedarf Ihres Projektaufbaus ermitteln. Da es meist schwerfällt, ihn exakt zu berechnen, hilft hier nur Messen. Der Stromverbrauch eines Mikrocontrollers hängt vom laufenden Programm und der aktivierten Hardware ab. Beim Pi Pico kommen maximal knapp 100 Milliampere zusammen.
Sobald Sie wissen, wie viel Strom Sie benötigen, müssen Sie festlegen, wie lange der Aufbau aus dem Akku mit Energie versorgt werden soll. Damit liegen dann die Werte für Strom und Zeit vor. Multiplizieren Sie sie miteinander, erhalten Sie die benötigte Akkukapazität. Bei 10 Milliampere Stromverbrauch und einer Versorgungsdauer von einer Woche (24 x 7 = 168 Stunden) muss der Akku beispielsweise 1680 mAh liefern können. Übersteigt der Energiebedarf realistische Kapazitätswerte, wird es Zeit, sich mit den Energiesparmöglichkeiten des Pico LiPo zu beschäftigen.
Guter Schlaf
Viele Anwendungsfälle erfordern keine kontinuierliche Aktivität des Mikrocontrollers, weshalb MCUs diverse Energiesparfunktionen mitbringen. Beim Pi Pico gibt es zwei mögliche Energiesparmodi, den Sleep Mode und den Dormant Mode. Beim Sleep Mode versetzt eine Echtzeituhr den Controller wieder in den normalen Betriebsmodus. Während des Schläfchens kommt er mit rund 1,3 Milliampere aus. Beim Dormant Mode lässt sich der Controller nur über ein externes Signal wieder starten. Dafür liegt der Stromverbrauch in diesem Modus bei nur 0,8 Milliampere.
Der Sleep Mode hat zwei Ausprägungen. Im Lightsleep bleiben alle Systemzustände erhalten, das Programm wird nach dem Sleep-Kommando einfach fortgesetzt. Diesen Modus kann man maximal für 72 Minuten verwenden. Beim Deepsleep hingegen gehen alle Informationen verloren. Der Pico bootet einfach wieder neu, wenn die Zeit abgelaufen ist.
Beim Umgang mit den Sleep Modes sollten Sie immer daran denken, dass sich der Controller nicht über die IDE erreichen lässt, wenn er schläft. Es besteht also die Gefahr, sich selbst auszusperren. Daher sollten Sie immer eine Hintertür einplanen. Haben Sie sich trotz aller Vorsicht ausgesperrt, hilft das Tool Flash-Nuke [6] weiter, dessen Quellen [7] Sie auf Github finden.
Testaufbau
Für den Test schlossen wir ein 1,3-Zoll-OLED-Display [8] mit 128 x 64 Pixel Auflösung und einen DHT22-Sensor [9] an den Pico LiPo an. Abbildung 2 zeigt den Testaufbau mit zwei verschiedenen Akkus. Der kleinere der beiden würde direkt unter die Platine des Pico LiPo passen. Der zugehörige Schaltplan aus Abbildung 3 birgt keinerlei Geheimnisse, das Display und der Sensor wurden ohne viele Extras angeschlossen. Einzig der Pullup-Widerstand beim DHT22 ist erwähnenswert: Fehlt er, kommt keine Kommunikation mit dem Sensor zustande.

Abbildung 3: Der Schaltplan zum Testaufbau aus Abbildung 2.
Software
Für unser Projekt haben wir MicroPython verwendet. Das passende Image ließ sich mithilfe der IDE Thonny [10] schnell einrichten.
Die Installation läuft ähnlich wie beim normalen Pi Pico ab. Sie verbinden die MCU via USB mit dem Rechner, halten den BOOT-Taster auf dem Board gedrückt und schalten via POWER die Spannung ab. Nach einigen Sekunden Wartezeit schalten Sie den Pico LiPo wieder ein, woraufhin auf dem Rechner ein neues Laufwerk erscheint. Nun stoßen Sie in Thonny die Installation an (Abbildung 4), warten etwas und verbinden sich dann via Thonny mit dem Pico LiPo.
Das Ansteuern des OLED-Displays setzt eine passende Bibliothek voraus. Die installieren Sie mit dem Tool Mpremote [11] auf dem Pico LiPo (Listing 1). Dabei darf Thonny nicht mit der MCU verbunden sein.
Listing 1
Bibliothek installieren
$ mpremote mip install github:adafruit/micropython-adafruit-ssd1306/ssd1306.py









