- Transformation d’un ancien Kindle Touch 4e génération en tableau de bord à encre électronique affichant les horaires d’arrivée des bus NJ Transit, mis à jour chaque minute
- Mise en place d’un environnement d’exécution pour applications personnalisées via jailbreak, KUAL, MRPI et configuration SSH, puis affichage sur le Kindle d’images générées par un serveur basé sur Node
- Le serveur récupère les données des bus via une API GraphQL, les met en forme en HTML, puis génère un PNG avec wkhtmltoimage, que le Kindle charge périodiquement
- Création d’une application KUAL dédiée pour pouvoir quitter le tableau de bord via un bouton de menu, avec bash trap et rtcwake pour la gestion de l’alimentation et le contrôle du rafraîchissement automatique
- Une autonomie d’environ 5 jours, avec une marge d’amélioration pour les rémanences à l’écran, montrant le potentiel des écrans à encre électronique pour l’affichage d’informations en temps réel
Transformer un Kindle en écran d’information pour les arrivées de bus
- Modification d’un Kindle Touch 4e génération en panneau d’information en temps réel pour les arrivées de bus
- L’écran se rafraîchit chaque minute, et il est possible de quitter le mode tableau de bord avec le bouton de menu
- Une fonctionnalité comparable au produit commercial TRMNL, réalisée gratuitement
1. Jailbreak du Kindle
- Vérification de la version du firmware du Kindle, téléchargement du fichier tar correspondant, puis exécution de la procédure de jailbreak
- Une fois l’opération réussie, passage à l’installation de KUAL et MRPI
2. Installation de KUAL et MRPI
- KUAL sert de lanceur d’applications personnalisées, et MRPI d’outil d’installation d’applications
- Il faut impérativement effectuer la configuration du Hotfix avant l’installation
- Après l’installation, désactivation des mises à jour OTA pour bloquer les mises à jour automatiques
3. Configuration de SSH
- Accès SSH au Kindle possible via l’extension USBNetwork
- Configuration d’une connexion SSH via USB en s’appuyant sur un guide de blog externe
- Une fois la connexion établie, le Kindle apparaît comme un nouvel appareil dans l’onglet réseau de l’ordinateur
4. Mise en place du serveur et génération d’images
- Récupération des informations d’arrivée des bus via l’API GraphQL de NJ Transit
- Collecte des données de ligne, heure d’arrivée, niveau d’affluence, etc. avec la requête
getBusArrivalsByStopID
- Utilisation de wkhtmltoimage plutôt que de puppeteer pour convertir le HTML en PNG
- Le serveur génère une nouvelle image toutes les 3 minutes, que le Kindle vient ensuite récupérer
- Le code associé est publié dans le dépôt GitHub
kindle-hax/server
- Ajustement de la rotation et de l’alignement de l’image pour correspondre à la résolution de l’écran du Kindle (par ex. 600x800)
- Affichage en orientation verticale avec
transform: rotate(90deg) translateX(-100px) translateY(-100px);
5. Création de l’application KUAL
- Création d’une extension KUAL personnalisée pour contrôler le démarrage et l’arrêt du tableau de bord
- Placement du dossier dans
/mnt/us/extensions/, puis affichage du menu « Start dashboard » dans KUAL
- Le script start.sh reste stable à l’exécution en ignorant certains signaux (
trap '' HUP, trap '' TERM)
- La fonction
refresh_screen() télécharge l’image du serveur puis l’affiche avec la commande eips
- Affichage en haut de l’écran de la date, de l’état du Wi‑Fi et du niveau de batterie
- Détection via evtest de l’entrée du bouton de menu (
code 102 (Home), value 1) pour exécuter stop.sh
- Fermeture du tableau de bord et redémarrage de l’interface utilisateur du Kindle
6. Résultat et pistes d’amélioration
- Environ 5 jours d’autonomie, avec jusqu’à 2 jours de plus si l’alimentation est coupée la nuit
- Le problème de rémanence de l’écran (color bleeding) pourrait être amélioré avec un flash noir et blanc complet
- Utilisé au quotidien, avec confirmation du potentiel d’extension vers l’affichage d’un calendrier, de la météo, des tâches et d’autres informations
Aucun commentaire pour le moment.