Étude de cas : 3DRap Firmware Updater
Un utilitaire de bureau multiplateforme développé avec Electron pour gérer, synchroniser et flasher en toute sécurité le firmware des périphériques simracing 3DRap équipés de puces STMicroelectronics.
Vidéo de démonstration de l'application
Aperçu du projet
Le 3DRap Firmware Updater est un outil de bureau multiplateforme développé avec Electron et Node.js pour gérer les mises à jour du firmware sur toute la gamme de périphériques simracing 3DRap — pédales, volants, leviers de vitesse et freins à main — tous alimentés par des microcontrôleurs STMicroelectronics.
Toute la procédure de flashage du firmware — initialement pilotée par des outils STM dédiés — a été entièrement reproduite en Node.js pur via une communication directe sur port série. Un soin particulier a été apporté pour rendre le protocole robuste face aux erreurs : les écritures incomplètes, les coupures de connexion et les défauts de synchronisation sont tous gérés proprement, sans risquer de rendre l'appareil inutilisable.
Afin de protéger le travail d'ingénierie investi dans la rétro-ingénierie et la réplication du protocole de flashage STM, le code source Node.js est compilé et distribué sous forme de bytecode, empêchant toute décompilation et protégeant l'implémentation propriétaire.
Principales fonctionnalités & ingénierie
- Flashage série STMicroelectronics : Cible directement les MCU basés sur STM des périphériques 3DRap via USB sur port série, en répliquant le protocole complet de flashage du bootloader STM DFU/UART en Node.js — aucun outil STM externe requis.
- Protocole résilient aux erreurs : Conçu avec une gestion défensive des erreurs tout au long de la boucle de flashage — vérification au niveau octet, mécanismes de nouvelle tentative, délais d'attente et restaurations de transaction garantissent que l'appareil reste dans un état sûr même si les câbles sont déconnectés en plein flashage ou si l'alimentation est interrompue.
- Protection du bytecode : Les modules Node.js implémentant la logique de flashage propriétaire sont compilés en bytecode V8 et fournis sous forme de blobs binaires opaques. Cela empêche la rétro-ingénierie et protège la propriété intellectuelle intégrée dans les séquences de communication série.
- Découverte automatique des appareils : Interroge les chaînes USB actives et identifie les périphériques 3DRap connectés en faisant correspondre les signatures uniques d'identifiant de fournisseur (VID) et d'identifiant de produit (PID), sélectionnant automatiquement la cible de flashage correcte.
- Synchronisation binaire cloud : Récupère à la demande les versions de firmware disponibles et leurs sommes de contrôle, les compare à la version installée localement pour avertir le pilote lorsqu'une mise à jour est disponible.
- Assistants de guidage interactifs : Une interface guidée étape par étape accompagne les pilotes à travers les configurations physiques des commutateurs matériels ou les procédures d'entrée en bootloader requises avant le début du flashage.

