PineTime mit FreeRTOS
« | 01 Aug 2021 | »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.
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.
Die Sache mit dem Debugger habe ich bisher noch nicht ausprobiert und möchte das auch nicht, so lange es nicht zwingend notwendig ist.
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.
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.
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.