Téléphone
L'enfant appelle les personnes que les parents ont inscrites, et personne d'autre ne peut appeler ni écrire. L'appel ou le texto d'un inconnu laisse une ligne dans le journal : pas de sonnerie, pas de vibration, pas d'avis.
Open source · ESP32-S3 · MIT
Phone OS est un système d'exploitation complet pour un téléphone, ouvert de la première ligne à la dernière : le firmware, la page des parents, le simulateur et chaque document, tous sous licence MIT. Il tourne sur un appareil portable tout fait, avec un ESP32-S3, un écran e-ink, un modem 4G et un GPS.
Ce que fait un appareil dépend de sa configuration. Le premier construit avec Phone OS est un téléphone d'urgence pour un enfant : il appelle la famille, lit et écrit des textos, envoie sa position d'une seule touche, et rien d'autre.
Chaque image a été dessinée par le simulateur à partir du code même du firmware. Appuyez sur les touches comme sur l'appareil, ou touchez l'écran : les tuiles, les lignes et les boutons répondent. La démonstration complète montre en plus ce à quoi les touches ne mènent pas : un appel qui arrive, les heures de classe, une batterie vide.
Phone OS n'est pas vendu avec un téléphone. Vous achetez l'appareil, téléchargez le code et l'installez vous-même par un câble USB. Quatre étapes, pas de soudure.
Un LilyGO T-Deck Pro MAX : un appareil portable fini, dans son boîtier, avec un ESP32-S3, un écran e-ink, un modem 4G, un GPS, un clavier et une batterie. Vendu tout fait par son fabricant et par des boutiques d'électronique ; une fois flashé, c'est un téléphone, pas un kit. C'est jusqu'ici le seul appareil sur lequel Phone OS tourne. Ajoutez une carte SIM et une carte microSD.
L'appareil chez LilyGOTéléchargez le dépôt depuis GitHub et installez PlatformIO Core, un outil gratuit en ligne de commande. C'est toute la chaîne d'outils.
git clone https://github.com/paulwilke/Phone-OS.gitFormatez la carte microSD en FAT32, copiez les trois fichiers d'exemple de config/examples/ dans un dossier /config/ et inscrivez-y vos contacts et vos réglages : du texte simple, une ligne par entrée.
Branchez l'appareil en USB et lancez une commande. Environ une minute plus tard, l'appareil démarre avec votre carte.
pio run -e device -t uploadPhone OS n'a aucun lien avec LilyGO ni avec une boutique ; le T-Deck Pro MAX est l'appareil sur lequel le firmware a été construit et testé. Un autre matériel demande son propre code de plateforme sous les capacités, et rien ne change au-dessus.
Le projet n'affirme que ce qui a été vérifié. Chaque changement porte l'une de trois marques, et le journal des modifications dit laquelle.
Il compile pour l'ESP32-S3. C'est tout ce que cela dit.
La logique tourne sur un portable contre des imitations de chaque puce, et le simulateur joue des scénarios entiers à travers les vrais écrans.
Vu sur le vrai téléphone par le propriétaire, avec une date dans le journal des décisions. Ce que l'appareil a appris est écrit, et une leçon qui a changé le code reçoit sa propre décision.
Le firmware et le simulateur exécutent le même assemblage du même code. Seul ce qui se trouve sous les interfaces des capacités diffère : de vraies puces sur l'appareil, des imitations scriptées sur le portable. C'est pourquoi les images de cette page sont celles de l'appareil.
| Couche | Contient | Peut connaître |
|---|---|---|
src/hal/ | les capacités : des interfaces nommées d'après ce dont le logiciel a besoin (horloge, modem, alimentation, positionnement, fichiers) | rien |
src/app/ src/ui/ | l'application (carnet de contacts, heures de classe, SOS, messages) et les pages | les capacités seulement ; jamais le matériel ni un pilote |
src/drivers/ src/board/ | le pilote du modem, l'analyseur du récepteur, les puces de l'appareil | les capacités |
device/ | le code de plateforme du firmware : le côté Arduino et ESP32 des jointures | src/ |
sim/ testing/ | le simulateur et les imitations de chaque capacité | src/ |
Un script vérifie les règles à chaque commit ; une couche qui passe par-dessus sa voisine fait échouer la construction.
Configuré en téléphone d'enfant, l'appareil fait peu de choses, chacune jusqu'au bout : il n'appelle que le carnet d'adresses, laisse tomber sans un bruit tout ce qui vient d'inconnus et reste silencieux pendant l'école. Les parents le règlent depuis leur propre téléphone, dans un navigateur.
L'enfant appelle les personnes que les parents ont inscrites, et personne d'autre ne peut appeler ni écrire. L'appel ou le texto d'un inconnu laisse une ligne dans le journal : pas de sonnerie, pas de vibration, pas d'avis.
Six messages tout prêts, affichés dans la langue de l'enfant et envoyés dans celle des parents. Le texte libre et les nouveaux numéros seulement si les parents les activent.
Un bouton. Un compte à rebours de 40 secondes, puis un texto avec la position part vers les parents ; un appel pendant le compte à rebours ne l'annule pas.
Pendant les plages que les parents fixent, le téléphone reste fermé et chaque appel est refusé sans sonner. Les parents voient un appel manqué et peuvent rappeler.
Les contacts, les heures de classe, les réglages et le journal, depuis un téléphone, dans un navigateur : par le point d'accès propre de l'appareil ou par le câble USB. La page est servie par l'appareil lui-même.
L'appareil s'éteint lui-même à 3300 mV et le dit. Une mesure toutes les dix minutes va dans un journal d'énergie ; c'est ainsi que les erreurs de la jauge ont été trouvées.
Chaque document est écrit à partir du code qu'il décrit, et chaque décision est consignée avec qui l'a prise et pourquoi. À part le guide de l'utilisateur, les documents sont en anglais.