PineTime mit FreeRTOS

Das Pine64 Projekt umfasst nicht nur Laptops, Tablets und Smartphones. Sogar Smart-Watches bieten die Macher mit Open-Source Software zum Kauf an.

Auch ich nenne eine solche PineTime nun mein Eigen und bin von der Idee positiv beeindruckt.


Da ich mir die “Entwickler-Variante” bestellt hatte, bekam ich eine nicht-versiegelte Smartwatch, damit ich sie mit dem ebenfalls mitbestelltem Pogopin-Jig an einen seriellen Debugger anschließen und im Falle eines “Totalschadens” beim Softwareupdate wiederherstellen kann.

Image

Die Idee dabei ist, dass man sich sein Watch so einrichtet, wie man sie haben will und am Ende selbst mit ein paar Tropfen Kleber die Rückseite mit dem Gehäuse fest verklebt (also versiegelt).

Eine “fertige” PineTime kostet unter 30 Dollar oder man bestellt gleich ein Dev-Kit mit einer versiegelten und einer offenen Smartwatch. Mitgeliefert wird auch ein Ladesockel, der zwei Pins an der Rückseite mit dem Ladestrom über USB verbindet.
Die Uhr wird dabei magnetisch am Sockel festgehalten, was zu einem stabilen Halt darauf führt.

Image

Die Sache mit dem Debugger habe ich bisher noch nicht ausprobiert und möchte das auch nicht, so lange es nicht zwingend notwendig ist.

Image

Laut Info liegen neben dem Akku 4 Pins frei, auf die man einfach den “Pogopin-Jig” drauf hält, der am anderen Ende mit einem seriellen TTL Modul zum PC verbunden wird.
Ich bräuchte dazu aber jemanden, der mir das Teil hält, denn einhändig werken klappt nicht gut und eine kleiner Wackler produziert dann Kurzschlüsse und Resets.

Image

Daten und Betrieb

Ein 64 MHz ARM Cortex-M4F treibt die Uhr an und lässt auf dem 1.3 Zoll großen 240x240 Pixel Display anzeigen, was die Software wünscht. Im 38 x 40 x 11 Millimeter großen Gehäuse findet auch ein 180 mAh LiPo Akku Platz.

Kommunizieren kann die PineTime über Bluetooth 5 LE. Auf der linken Seite hat sie einen Druckknopf, der gerne zum Aktivieren der Anzeige genutzt wird.
Ansonsten kann man die Uhr auch rudimentär über Streichbewegungen und Tippen am Touchscreen steuern, wenn die Software dies unterstützt.

Meine schon etwas ältere Variante wurde mit der Firmware InfiniTime v0.7 ausgeliefert, ein auf FreeRTOS 10 basierendes Grundsystem, das an die Hardware angepasst wurde.

Da die Rückseite der Uhr mit Federkontakten die Ladepins mit der Platine verbindet, lässt sich das Gehäuse nicht ohne Hilfsmittel verschließen. Verkleben möchte ich die Uhr noch nicht, also habe ich sie einfach mit 3 Gummibändern an den Ladesockel gefesselt.

Image

Mir macht die “technische Spielerei” damit ohnehin mehr Spaß, als sie am Arm zu tragen und immer aufpassen zu müssen, dass man sie nicht versehentlich wo dagegen schmettert.

Firmware Update über Bluetooth

Mit der Android App NRF Connect lässt sich jedes Bluetooth LE fähige Android Smartphone in einen PineTime-Firmware-Updater verwandeln.
(In der PineTime Doku findet man aber auch noch andere Apps zum Updaten.)

Von meiner originalen alten Firmware 0.7 aus, sind 3 Updates erforderlich. Zuerst das Update der InfiniTime App auf v1.0. Danach kann man den Boot-Loader aktualisieren und am Ende wird noch die Recovery-Firmware auf den neuesten Stand gebracht.

In NRF Connect findet man die PineTime (auch als InfiniTime angezeigt) in der Regel schnell mit dem Bluetooth Scanner, wenn die Uhr aktiviert wird (linke Taste seitlich vom Display). Danach kann man sie “verbinden”.

Etwas unscheinbar taucht dann oben in der Menüzeile neben “Devices” und “Disconnect” ein kleines rundes “DFU” (Digital Firmware Update) auf, das von zwei Pfeilen umkreist wird.
Genau darauf muss man Tippen um dann eine ZIP Datei mit den Updates auswählen zu können. Diese ZIP Dateien von InifiniTime 1.0 findet man in der Getting-Started Dokumentation etwa in der Mitte. Und genau in der Reihenfolge wie sie dort gelistet sind, sollten sie auf die Smartwatch übertragen werden.

Die Übertragung lief bei mir mit 4 - 5 KB/s und dauerte zwischen 2 und 5 Minuten. Am besten legt man das Smartphone direkt neben die Uhr, um Abbrüche zu vermeiden (was bei meinem ersten Versuch passierte).
Das initiale Update ist am größten, die beiden folgenden sind kleiner. Am Ende jedes Updateschrittes startet die Uhr neu und braucht ein Weilchen, bis sie wieder voll einsatzfähig ist. Sobald die Uhrzeit angezeigt wird, kann man das nächste Update starten.

Final hat man dann InfiniTime 1.0 und man kann neben einem sicheren Softwarestand auch schon ein paar Apps auf der Uhr nutzen, die unter v0.7 noch fehlten.

Jetzt kann man einfach auf die InfiniTime Release Seite wechseln und auch zur aller neuesten Haupt-Firmware wechseln (aktuell ist das v 1.3).
Die ist auf GitHub leider oft unter dem Posting unter “Assets” versteckt. Man nimmt einfach die pinetime-mcuboot-app-dfu-X.Y.Z.zip der gewünschten Version und überträgt sie ebenfalls auf die Uhr.

Fazit

Das schönste an der PineTime ist, dass man mit InfiniTime auch die gesamte Betriebssoftware einsehen und nach Belieben anpassen kann.
Ein solches Feature hat keine andere verbreitete Smartwatch und somit können wir hier sicher sein (bzw. umsetzen), dass die Uhr keine geheimen Botschaften über proprietäre Apps zu seinen Machern sendet.

Ist einem der Stromverbrauch zu hoch, kann man Anzeigedauer und Intensität auch selbst regeln. Will man mit anderen Apps kommunizieren, schreibt man sich einfach ein Plugin dafür.

Das ist doch mal echt super und daher eine klare Empfehlung wert.