Firefox 151 : le Web Serial API fait enfin le lien entre navigateur et matériel
L’API Web Serial dans Firefox 151 : un pas vers le web connecté au matériel
Vous avez déjà galéré à connecter un microcontrôleur ? Entre les drivers à installer, les applis natives et les problèmes de compatibilité, le parcours du combattant est classique. Firefox 151 change la donne en intégrant enfin le support complet de l’API Web Serial.
Concrètement, qu’est-ce que ça change ?
Cette API permet à du JavaScript de dialoguer directement avec des appareils utilisant le protocole série. Cela concerne la plupart des objets connectés via USB ou Bluetooth : cartes ESP32, Arduino, Raspberry Pi Pico, imprimantes 3D, capteurs et bien d’autres.
Auparavant, il fallait passer par un logiciel spécifique à chaque plateforme, installer des pilotes et gérer plusieurs outils selon les machines. Désormais, un simple script dans le navigateur suffit pour établir la connexion.
Des usages concrets qui émergent déjà
Cette fonctionnalité n’est pas réservée aux chercheurs. Plusieurs projets montrent déjà son potentiel.
Installation de firmware CircuitPython
Adafruit a simplifié le chargement de code sur ses cartes grâce à Web Serial. Il suffit de déposer un fichier code.py et de recharger la page pour exécuter du Python sur un microcontrôleur. L’expérience devient presque instantanée.
Suivi de consommation énergétique
Un ingénieur de Mozilla a créé un outil qui lit en direct les données d’un compteur USB et les affiche dans Firefox Profiler. Visualiser la consommation d’un projet devient alors simple et partageable.
Configuration d’objets connectés
L’intégration ESPHome d’Home Assistant permet désormais de flasher et configurer des appareils intelligents en quelques secondes. Ce qui était autrefois un défi technique est devenu un projet d’après-midi.
Développement interactif
Un développeur a imaginé un environnement où l’édition du code et le feedback matériel se produisent en temps réel. Le navigateur devient à la fois outil de développement et de debug.
Une gestion des permissions bien pensée
Inquiétude légitime : est-ce que n’importe quel site pourra accéder à votre matériel ? Non. Mozilla a mis en place des contrôles stricts.
Les sites ne voient rien par défaut. Pour accéder à un port, il faut appeler navigator.serial.requestPort(). L’utilisateur reçoit alors une demande explicite et choisit lui-même le périphérique à autoriser. Les permissions sont accordées par site et par port. Sans liste préétablie, il n’y a pas de surface de fingerprinting.
Pourquoi les développeurs devraient s’y intéresser
Cette API accélère vraiment les itérations.
- Prototypage plus rapide grâce à une interface web en place d’un cycle de upload et compile.
- Cohérence sur tous les systèmes : Mac, Windows et Linux fonctionieren la même manière.
- Collaboration facilitée : un lien suffit pour partager un debug en cours.
- Boucles de feedback instantanées et visualisation en temps réel.
- Usage éducatif : des leçons interactives peuvent être construite sans installation supplémentaire.
Quels appareils sont concernés ?
Tout appareil qui parle le protocole série et apparaît comme un port COM ou /dev/ttyUSB* est candidat. Parmi les exemples courants :
- ESP32 et ESP8266
- Raspberry Pi Pico
- Imprimantes 3D
- Capteurs de puissance
- Objets LEGO
- Projets perso qui nutrilisent le protocole série
L’angle hébergement et développement
À NameOcean, nous observons la gr<|eos|>