Telefon
Das Kind ruft an, wen die Eltern eingetragen haben, und sonst kann niemand anrufen oder schreiben. Ein Anruf oder ein Text von einem Fremden hinterlässt eine Zeile im Protokoll: kein Klingeln, keine Vibration, kein Hinweis.
Open Source · ESP32-S3 · MIT
Phone OS ist ein vollständiges Betriebssystem für ein Telefon, offen von der ersten bis zur letzten Zeile: die Firmware, die Elternseite, der Simulator und jedes Dokument, alles unter der MIT-Lizenz. Es läuft auf einem fertigen Handgerät mit ESP32-S3, E-Ink-Bildschirm, 4G-Modem und GPS.
Was ein Gerät kann, bestimmt seine Konfiguration. Das erste mit Phone OS gebaute Gerät ist ein Notfalltelefon für ein Kind: Es ruft die Familie an, liest und schreibt Texte, sendet auf Knopfdruck seine Position, und sonst nichts.
Jedes Bild hat der Simulator aus dem Code der Firmware gezeichnet. Drücke die Tasten wie am Gerät oder tippe auf den Bildschirm: Kacheln, Zeilen und Knöpfe antworten. Die ganze Vorführung zeigt dazu, wohin die Tasten nicht führen: einen ankommenden Anruf, die Schulzeit, einen leeren Akku.
Phone OS wird nicht mit einem Telefon verkauft. Du kaufst das Gerät, lädst den Code herunter und spielst ihn selbst über ein USB-Kabel auf. Vier Schritte, kein Löten.
Ein LilyGO T-Deck Pro MAX: ein fertiges Handgerät im Gehäuse, mit ESP32-S3, E-Ink-Bildschirm, 4G-Modem, GPS, Tastatur und Akku. Fertig zu kaufen beim Hersteller und in Elektronikläden; nach dem Aufspielen ist es ein Telefon, kein Bausatz. Es ist bisher das eine Gerät, auf dem Phone OS läuft. Dazu kommen eine SIM-Karte und eine microSD-Karte.
Das Gerät bei LilyGOLade das Repository von GitHub herunter und installiere PlatformIO Core, ein kostenloses Kommandozeilenwerkzeug. Das ist die ganze Werkzeugkette.
git clone https://github.com/paulwilke/Phone-OS.gitFormatiere die microSD-Karte als FAT32, kopiere die drei Beispieldateien aus config/examples/ in einen Ordner /config/ darauf und trage deine Kontakte und Einstellungen ein: einfacher Text, eine Zeile pro Eintrag.
Schließe das Gerät per USB an und führe einen Befehl aus. Etwa eine Minute später startet das Gerät mit deiner Karte.
pio run -e device -t uploadPhone OS hat keine Verbindung zu LilyGO oder zu einem Laden; das T-Deck Pro MAX ist das Gerät, auf dem die Firmware gebaut und getestet wurde. Andere Hardware braucht eigenen Plattformcode unterhalb der Fähigkeiten, und darüber ändert sich nichts.
Das Projekt behauptet nur, was geprüft wurde. Jede Änderung trägt eine von drei Marken, und das Änderungsprotokoll sagt welche.
Es baut für den ESP32-S3. Mehr sagt das nicht.
Die Logik läuft auf einem Laptop gegen Nachbildungen jedes Chips, und der Simulator spielt ganze Abläufe durch die echten Bildschirme.
Am echten Telefon vom Eigentümer gesehen, mit Datum im Entscheidungsprotokoll. Was das Gerät gelehrt hat, steht geschrieben, und eine Lehre, die den Code geändert hat, bekommt ihre eigene Entscheidung.
Die Firmware und der Simulator führen dieselbe Zusammenstellung desselben Codes aus. Nur was unter den Schnittstellen der Fähigkeiten liegt, unterscheidet sich: echte Chips auf dem Gerät, geskriptete Nachbildungen auf dem Laptop. Darum sind die Bilder auf dieser Seite die Bilder des Geräts.
| Schicht | Enthält | Darf kennen |
|---|---|---|
src/hal/ | die Fähigkeiten: Schnittstellen, benannt nach dem, was die Software braucht (Uhr, Modem, Stromversorgung, Ortung, Dateien) | nichts |
src/app/ src/ui/ | die Anwendung (Kontaktbuch, Schulzeit, SOS, Nachrichten) und die Seiten | nur die Fähigkeiten; nie die Hardware oder einen Treiber |
src/drivers/ src/board/ | den Modemtreiber, den Empfänger-Parser, die Chips des Geräts | die Fähigkeiten |
device/ | den Plattformcode der Firmware: die Arduino- und ESP32-Seite der Nahtstellen | src/ |
sim/ testing/ | den Simulator und die Nachbildungen jeder Fähigkeit | src/ |
Ein Skript prüft die Regeln bei jedem Commit; eine Schicht, die an ihrem Nachbarn vorbeigreift, lässt den Build scheitern.
Als Kindertelefon eingerichtet, tut das Gerät wenige Dinge, jedes ganz: Es ruft nur das Telefonbuch an, lässt alles von Fremden lautlos fallen und bleibt in der Schule still. Die Eltern richten es von ihrem eigenen Telefon aus ein, im Browser.
Das Kind ruft an, wen die Eltern eingetragen haben, und sonst kann niemand anrufen oder schreiben. Ein Anruf oder ein Text von einem Fremden hinterlässt eine Zeile im Protokoll: kein Klingeln, keine Vibration, kein Hinweis.
Sechs fertige Nachrichten, angezeigt in der Sprache des Kindes und gesendet in der Sprache der Eltern. Freitext und neue Nummern nur, wenn die Eltern sie einschalten.
Ein Knopf. Die Seite zählt 40 Sekunden herunter, dann geht ein Text mit der Position an die Eltern; ein Anruf während des Herunterzählens bricht ihn nicht ab.
In den Zeitfenstern, die die Eltern festlegen, bleibt das Telefon zu, und jeder Anruf wird ohne Klingeln abgewiesen. Die Eltern sehen einen verpassten Anruf und können zurückrufen.
Kontakte, Schulzeit, Einstellungen und das Protokoll, vom Telefon aus im Browser: über den eigenen Zugangspunkt des Geräts oder über das USB-Kabel. Das Gerät stellt die Seite selbst bereit.
Das Gerät schaltet sich bei 3300 mV selbst ab und sagt das. Alle zehn Minuten geht ein Messwert in ein Energieprotokoll; damit wurden die Fehler der Ladestandsanzeige gefunden.
Jedes Dokument ist aus dem Code geschrieben, den es beschreibt, und jede Entscheidung ist festgehalten: wer sie getroffen hat und warum. Außer dem Benutzerhandbuch sind die Dokumente englisch.