Aus dem Blitzerwarner wird eine Spielwiese

Der Saphe T ist ab Werk "nur" ein Blitzerwarner. Ich hab ihm eine eigene Firmware verpasst: Murmel-Labyrinth, Bluetooth-Gamepad, Smart-Home-Tasten und mehr.

Inhalt
  1. Ohne atc1441 gäb's das nicht
  2. Was drin ist
  3. Unter der Haube
  4. Das mit dem gesperrten Chip
  5. Selber machen
  6. Fazit

Der Saphe T ist eigentlich ein Blitzerwarner. So ein kleines rundes Ding, das man sich ins Auto legt und das unterwegs vor Blitzern und Gefahrenstellen warnt. Den Standort holt es sich per Bluetooth vom Handy, die App macht die eigentliche Arbeit, das Gerät zeigt nur die Warnung an. Deshalb kommt es mit einem winzigen Akku auch ewig aus.

Was mich daran gereizt hat: In dem Gehäuse steckt viel mehr, als es ab Werk zeigt. Ein nRF54L15, ein rundes 368×448-AMOLED mit Touch, ein Beschleunigungs- und ein Lichtsensor, ein Lautsprecher und Bluetooth. Hardware für ein kleines Spielzeug – und ab Werk macht es damit genau eine Sache.

Also hab ich ihm eine eigene Firmware verpasst. Aus dem Blitzerwarner ist eine kleine Spielwiese geworden: ein Menü voller Apps, ein Murmel-Labyrinth, ein Gamepad fürs Handy, eine Wasserwaage, eine Uhr, Smart-Home-Tasten. Hier zeig ich dir, was draus geworden ist – und am Ende, wie du es selbst aufspielst.

Das Startmenü, modded by iampat.de

Das ist ein Bastelprojekt mit meiner eigenen Hardware, rein zum Spaß. Die Blitzer-Funktion ist damit weg – aus dem Gerät wird ein kleiner Taschen-Computer. Alles quelloffen unter GPL, auf eigene Verantwortung. Saphe ist eine Marke von Saphe Traffic Alarm ApS und hat mit dem Projekt nichts zu tun.

Ohne atc1441 gäb's das nicht

Erst mal der wichtigste Credit. Die ganze Vorarbeit kommt von atc1441 (Aaron Christophel). Er hat die Hardware auseinandergenommen, dokumentiert, ein schlankes Bare-Metal-SDK geschrieben und als Machbarkeitsbeweis DOOM auf das Ding portiert. Ohne sein SDK, seine Treiber und seine Hardware-Recherche hätte ich gar nicht erst anfangen können.

Wie DOOM auf die Saphe T kam, zeigt er in seinem Video „(A)I Ported DOOM on a Speedcam Warner" (der Link startet an der spannenden Stelle). Von da hatte ich die Idee: nicht ein einzelnes Spiel, sondern eine komplette eigene Firmware mit vielen kleinen Sachen. Aus „ein paar Abende" wurde dann… deutlich mehr. Gebaut hab ich das zusammen mit Claude.

Was drin ist

Das Startmenü ist ein App-Launcher über drei Seiten. Antippen öffnet, Wischen blättert. Was alles drinsteckt:

LABYRINTH ist das Herzstück. Man kippt das Gerät und rollt eine Stahlkugel zum grünen Loch. Löcher mit rotem Rand schicken dich zurück zum Start. Jedes Level ist ein neu erzeugtes Labyrinth, mit jedem Level kleinere Zellen und mehr Fallen. Der beste Level und die Zeit werden gespeichert und überstehen einen Neustart.

Labyrinth, Level 4

80's ist reine Spielerei und mein heimlicher Liebling: eine animierte Synthwave-Szene, gestreifte Sonne hinter Drahtgitter-Bergen, ein Neon-Gitter, das auf einen zufliegt. Dazu läuft Musik, und jedes Tippen macht Gitter und Musik schneller – die Töne werden höher wie bei einer Platte mit zu viel Drehzahl. Nach der höchsten Stufe geht's wieder von vorne los.

80's-Synthwave-Szene

GAMEPAD, REMOTE und AIR MOUSE machen die Saphe zu einem Bluetooth-Eingabegerät – ohne App. Einfach in den Bluetooth-Einstellungen von Handy, PC oder Konsole koppeln, kein Code nötig:

  • Gamepad: Kippen ist der linke Stick, auf dem Display liegen A, B, X, Y, Select und Start.
  • Remote: Medien-Fernbedienung – vor, zurück, Play/Pause, lauter, leiser, stumm.
  • Air Mouse: Finger aufs Feld, kippen bewegt den Zeiger; ziehen geht wie ein Touchpad, tippen ist ein Linksklick.

Jeder Modus meldet sich als eigenes Gerät („iamGamepad", „iamRemote", „iamMouse"), damit der Rechner die Maus auch als Maus erkennt.

Gamepad-Modus

SMART HOME sind sechs Tasten, die als Buttons in Home Assistant landen – wahlweise über drei Wege: BTHome, Zigbee oder Matter over Thread. Kurz tippen schickt „press", länger halten „long press". Danach kann man die Tasten als Auslöser für Automationen verwenden.

Smart-Home-Tasten

Dazu kommen die kleinen Nützlichkeiten:

  • LEVEL – eine Wasserwaage. Flach liegend als runde Libelle mit zwei Winkeln, auf die Kante gestellt als Röhrenlibelle. Nullen und Speichern inklusive.
  • DICE – würfelt mit ein bis drei Würfeln, solange man schüttelt, mit Klackern aus dem Lautsprecher.
  • LIGHT – ein kleiner Belichtungsmesser aus dem Lichtsensor, rechnet für ISO und Blende eine Verschlusszeit aus.
  • CLOCK – eine Tischuhr mit großen Ziffern, die sich dem Raumlicht anpasst und jede Minute ein paar Pixel wandert, damit sich nichts ins AMOLED einbrennt.
  • SENSORS – ein Sensortest für Neigung, Licht, Akku und Ladezustand.
  • INFO – Version, Credits und Links, jeweils als QR-Code zum Abscannen.

Tischuhr

Unter der Haube

Das Spannende technisch: Auf dem Chip liegen drei Programme nebeneinander im Speicher und übergeben per Neustart aneinander.

Das Menü mit den Apps läuft bare-metal, direkt auf der Hardware, ganz ohne Betriebssystem – schnell und sparsam. Das Funkprogramm (Bluetooth-Gamepad, Zigbee) und das Matter-Programm brauchen einen richtigen Funk-Stack und sind deshalb mit Zephyr gebaut. Jedes liegt in seinem eigenen Bereich des Speichers, der Bluetooth-Kram existiert also nur dann, wenn man ihn gerade benutzt.

Ein nettes Detail am Rande: Solange die Saphe an ist, sendet sie nebenbei ein BTHome-Beacon mit Akkustand, Spannung, Temperatur, Neigung und dem Labyrinth-Rekord. Jeder BTHome-fähige Scanner oder Home Assistant zeigt das ohne Anpassung an. Und das Beacon kommt komplett ohne Bluetooth-Stack aus – es steuert den Funkteil direkt an.

Das mit dem gesperrten Chip

Eine Sache, die man wissen muss, bevor man loslegt: Saphe liefert die Geräte gesperrt aus (APPROTECT). Über die Debug-Schnittstelle ist dann nichts lesbar, und der einzige Weg hinein löscht den ganzen Chip samt Bootloader. Heißt: Danach funktionieren Saphes eigene Updates über Funk nicht mehr.

Damit man trotzdem jederzeit zurück kann, sichert mein Setup-Skript vorher die Update-Datei der Originalfirmware und fragt vor dem Löschen nach. Ein Ersatz-Lader spielt die Originalfirmware später wieder auf, wenn man das Gerät mal zurückbauen will. Die originale Saphe-Firmware selbst veröffentliche ich nicht – die gehört Saphe. Zum Zurückspielen braucht jedes Gerät seine eigene Kopie aus dem Update-Paket.

Selber machen

Zum Aufspielen brauchst du:

  • Einen Raspberry Pi Pico mit debugprobe-Firmware als Debug-Adapter, verbunden mit GND, SWCLK und SWDIO an der Saphe.
  • arm-none-eabi-gcc und probe-rs (brew install probe-rs-tools). Fürs Funk- und Matter-Programm zusätzlich das nRF Connect SDK.

Ein Skript baut, sichert, entsperrt und flasht in einem Rutsch. Die Schritt-für-Schritt-Anleitung, die kompilierten Files und der kleine Flasher liegen hier zum Download bereit. Das Ganze ist freie Software unter GPL-2.0-or-later, genau wie das SDK von atc1441, auf dem es aufbaut.

Entsperren löscht den Chip unwiderruflich und beendet die Original-Updates über Funk. Mach vorher die Sicherung, die das Skript anbietet. Alles auf eigene Verantwortung – ich übernehme keine Garantie, wenn dein Gerät danach nicht mehr das tut, was Saphe sich gedacht hat oder sogar gebricked bzw. beschädigt ist.

Fazit

Aus einem 20-Euro-Blitzerwarner ist ein kleines Spielzeug mit einem Dutzend Apps geworden – Labyrinth, Synthwave, Gamepad, Smart-Home-Fernbedienung, Wasserwaage. Nichts davon ist weltbewegend, aber genau das war der Reiz: zu sehen, was in so einem kleinen günstigen Stückchen Hardware eigentlich steckt, wenn man die Software selbst in die Hand nimmt.

Danke nochmal an atc1441 für die ganze Vorarbeit. Den Quellcode und den Flasher findest du unten zum Download.

Downloads

Kontakt

Lass uns zusammenarbeiten und etwas Großartiges schaffen

Schreib mir eine Nachricht

Du hast ein Projekt im Kopf, eine Frage zu deiner Software oder willst einfach ein bisschen fachsimpeln? Schreib mir, ich antworte persönlich.

Code
Nerd-Captch V1.0.1 by iampat.de