Comment nous avons intégré Shimano DI2 dans une application Flutter BLE

Publié le June 24, 2025

4 min de lecture
Comment nous avons intégré Shimano DI2 dans une application Flutter BLE

Lorsque Classified Cycling a rejoint le programme Shimano Connected Partners, leur application companion devait prendre en charge un nouveau flux d’association: connecter les shifters électroniques Shimano DI2 au Classified Powershift Hub. La communication matérielle entre DI2 et le hub s’effectue via le protocole sans fil propriétaire D-Fly de Shimano. Notre mission était d’orchestrer cette association depuis le côté mobile.

Ce n’était pas une simple fonctionnalité BLE “scanner et connecter”. L’association D-Fly implique une séquence en plusieurs étapes où l’application s’authentifie auprès du hub, déclenche le mode d’association, surveille la connexion entre le shifter DI2 et le hub, et enregistre le résultat auprès d’un service backend. En cas d’échec à l’une des étapes, l’application doit guider le cycliste dans le processus de récupération.

Ce qui rend D-Fly différent

L’association BLE standard dans l’application Classified suit un schéma que nous avions déjà mis en place: scanner un appareil, se connecter, s’authentifier avec une poignée de main challenge-response, et commencer à lire les caractéristiques. L’application communique directement avec le matériel.

L’association D-Fly fonctionne différemment. L’application ne se connecte pas directement au shifter DI2. Elle demande plutôt au hub Classified de passer en mode d’association, et le hub et le shifter DI2 se trouvent mutuellement via les canaux D-Fly 3 et 4. Le rôle de l’application est de s’authentifier auprès du hub via un canal de contrôle BLE dédié, de démarrer le mode d’association, de surveiller les transitions d’état pendant que le hub et le shifter DI2 négocient leur connexion, d’enregistrer le résultat auprès du backend, puis de guider le cycliste dans la configuration des assignations de boutons dans l’application E-TUBE PROJECT de Shimano.

Le problème de dépendance à Internet

Un défi que nous n’avions pas anticipé: l’association D-Fly nécessite une connexion Internet active pour finaliser l’enregistrement. Si le cycliste se trouve dans un garage ou un atelier avec un WiFi capricieux, l’association peut réussir au niveau matériel mais échouer lors de l’enregistrement backend.

Nous avons construit une machine à états qui suit le cycle de vie complet de l’association. En cas d’échec de l’enregistrement, l’application conserve l’état d’association localement et réessaie dès que la connexion est rétablie. Le cycliste voit exactement ce qui s’est passé et ce qu’il doit faire ensuite.

Le flux d’association

Du point de vue du cycliste, le flux est simple:

01Ouvrir l’application Classified avec le hub connecté
02Sélectionner “Ajouter un shifter” et choisir “Shimano DI2”
03Suivre la liste de vérification à l’écran (hub actif, DI2 en mode association, Internet connecté)
04L’application gère l’authentification, déclenche l’association et affiche la progression
05En cas de succès, l’application dirige le cycliste vers l’application E-TUBE PROJECT de Shimano pour configurer les assignations de boutons

En coulisse, l’application gère la communication BLE avec le hub, surveille les transitions d’état de l’association, et coordonne avec un service backend pour l’authentification.

Voir en action

Voici le flux d’association DI2 pour un utilisateur existant de l’application Classified. Le hub est déjà associé, donc l’application passe directement à la configuration DI2:

Construire pour l’écosystème Classified

L’intégration DI2 a nécessité une approche architecturale différente de nos types d’appareils existants. Le handlebar shifter et le ringshifter de Classified sont de “vrais” appareils BLE qui s’associent directement avec le téléphone. Le shifter DI2 est ce que nous appelons un “appareil virtuel” dans l’application. Il apparaît dans l’interface, dispose d’un flux d’association et affiche l’état de connexion, mais le téléphone ne s’y connecte jamais directement. Toute communication passe par le hub.

Ce modèle d’appareil virtuel s’est avéré réutilisable. Lorsque l’intégration Vistar // Powershift de TRP est arrivée, nous avons appliqué la même architecture pour le shifter TRP CMD.

Ce que les cyclistes obtiennent

Les utilisateurs de Shimano DI2 peuvent désormais passer les vitesses du Classified Powershift Hub directement depuis leurs shifters DI2 existants. Pas de bouton supplémentaire, pas de matériel additionnel. L’application gère la configuration d’association unique, et ensuite ça fonctionne simplement sur le vélo.

L’intégration a été présentée à Eurobike 2025 et est disponible en mise à jour gratuite pour tous les utilisateurs existants de l’application Classified.

Études de cas associées