Open Source · ESP32-S3 · MIT

Ein Betriebssystem für Telefone. Zu 100 % Open Source.

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.

Das Handbuch auch auf Deutsch Français

Der Startbildschirm des Geräts
Die Bilder werden geladen …

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.

Wie es auf ein Gerät kommt

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.

1. Das Gerät

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 LilyGO
2. Der Code

Lade 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.git
3. Die Karte

Formatiere 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.

4. Aufspielen

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 upload

Phone 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.

Die Checkliste für den ersten Start

Was getestet ist, und was geprüft

Das Projekt behauptet nur, was geprüft wurde. Jede Änderung trägt eine von drei Marken, und das Änderungsprotokoll sagt welche.

Kompiliert

Es baut für den ESP32-S3. Mehr sagt das nicht.

Auf dem Rechner getestet

Die Logik läuft auf einem Laptop gegen Nachbildungen jedes Chips, und der Simulator spielt ganze Abläufe durch die echten Bildschirme.

Am Gerät bestätigt

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.

aktuelle Version
2.500+Tests auf dem Rechner
Bilder in dieser Vorführung, in drei Sprachen
0echte Namen oder Nummern auf dieser Seite: jedes Beispiel ist erfunden

Eine Anwendung, zwei Plattformen

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.

SchichtEnthältDarf 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 Seitennur die Fähigkeiten; nie die Hardware oder einen Treiber
src/drivers/ src/board/den Modemtreiber, den Empfänger-Parser, die Chips des Gerätsdie Fähigkeiten
device/den Plattformcode der Firmware: die Arduino- und ESP32-Seite der Nahtstellensrc/
sim/ testing/den Simulator und die Nachbildungen jeder Fähigkeitsrc/

Ein Skript prüft die Regeln bei jedem Commit; eine Schicht, die an ihrem Nachbarn vorbeigreift, lässt den Build scheitern.

Was das Kindertelefon tut und was es verweigert

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.

Ein Anruf von Parent One kommt

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.

Eine fertige Nachricht aussuchen

Text

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.

Die SOS-Seite beim Herunterzählen

SOS

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.

Der Startbildschirm in der Schulzeit

Schulzeit

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.

Die WLAN-Seite mit eingeschaltetem Zugangspunkt

Die Elternseite

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.

Akku fast leer

Der Akku

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.

Weiterlesen

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.