Tutoriel rapide expliquant comment mettre en place un simulateur de capteur ANT+ pour expérimenter (pas pour tricher, évidemment) sur Zwift ou autre plateforme du type (TrainerRoad, Wahoo SYSTM, Bkool, RGT Cycling, Peloton, Rouvy, Fulgaz…).
Cela marche pour simuler un capteur de puissance, un capteur de cadence, un capteur de vitesse, un capteur de fréquence cardiaque… En fait à peu près n’importe quel profil de la norme.
Ici on se concentrera sur la puissance, la cadence et la fréquence cardiaque car c’est ce qui compte pour la partie cyclisme de Zwift.

Free Power on Zwift

Ce qu’il faut (en théorie) :

  • Un ordinateur sous Windows (pour la simulation du capteur)
  • Un ordinateur avec une clé USB Ant+ (pour faire tourner Zwift)
  • Deux clés USB ANT+ dont au moins une qui permet d’émettre des données (l’une va servir de récepteur comme on en a l’habitude, l’autre va servir d’émetteur pour simuler un capteur)

La réalité :

Il est tout à fait possible de n’utiliser qu’un seul ordinateur auquel on branche les deux clés USB ANT+ et sur lequel on fait tourner le simulateur et Zwift. C’est le scénario que je vais utiliser ensuite car c’est celui qui pose le plus de problèmes.

Concernant les clés, je n’ai pas encore tout à fait saisi les spécificités, mais sur les deux que j’ai, il n’y en a qu’une qui fonctionne en tant que source de données (simuler un capteur), avec l’autre il ne se passe strictement rien. Ni envoi de données, ni message d’erreur…

D’un côté, j’ai la clé Anself achetée sur Amazon, qui fonctionne en tant qu’émetteur et pour laquelle j’obtiens ces propriétés :

USB Ant Profile

De l’autre, j’ai la clé Cycplus achetée sur AliExpress, qui ne fonctionne pas en tant qu’émetteur et pour laquelle j’obtiens ces propriétés :

USB Ant Profile

La seconde semble être la plus avancée mais dans les faits c’est celle qui ne fonctionne que comme récepteur… L’important c’est d’avoir conscience que ça ne va pas forcément marcher avec n’importe quelle clé. Ça peut éviter de perdre 1h de son temps à essayer de comprendre ce que l’on a mal fait alors que c’est simplement une limitation matérielle (et l’absence d’information claire côté logiciel) qui en est à l’origine.
Alors si ça ne marche pas tout de suite, essayer d’inverser les clés. Si ça ne marche toujours pas, tenter une autre référence.
Si j’ai le temps j’essaierai probablement de creuser la spec ANT+ pour savoir s’il est possible d’identifier à l’avance les clés qui peuvent serveur d’émetteur. Je mettrai alors ce tutoriel à jour.

Allons-y

La première chose à faire est de récupérer le programme SimulANT+ disponible sur cette page du site officiel.

Téléchargement de SimulANT+

Pour y accéder, il faut se créer (gratuitement) un compte développeur. J’aurai bien mis l’archive en téléchargement direct ici mais le fait qu’ils forcent à se créer un compte pour y accéder et que Garmin (à l’origine du protocole) soit du genre assez tatillon, je n’ai pas envie de prendre le risque de recevoir une lettre de leur cabinet d’avocats.
L’avantage en se créant ce compte c’est que l’on a accès à beaucoup d’autres ressources sur le sujet si jamais on souhaite aller plus loin.

Une fois l’archive téléchargée, on l’extrait et on lance SimulANT+ en double-cliquant sur l’exécutable SimulANT+.exe :

Ant+ Simulator

Si les clé ANT+ n’étaient pas branchées à l’ordinateur, c’est le moment de le faire. Une fois que c’est fait, cliquer sur Refresh.
Si elles étaient déjà branchées, elles devraient apparaître automatiquement.

SimulANT+ Devices

Là, en ayant les deux clés sur la même machine, se pose la question de trouver la bonne (si seule l’un des deux peut faire émetteur). A part expérimenter, je ne peux pas fournir de réponse claire sur la question. C’est en fonction de l’installation qu’il faudra trouver la réponse.

Dans mon cas, c’est le Dev0 qui m’intéresse comme émetteur. Dev1 n’est que récepteur et sera utilisé par Zwift.

Sous Dev0 je clique sur Add Simulator… pour ajouter un simulateur de capteur, dans la liste je sélectionne Bike Power Sensor (Power-Only) et valide avec OK.

Bike Power Sensor Simulator ANT+

De nouvelles options apparaissent. Pour savoir immédiatement si la clé est fonctionnelle, cliquer sur TurnOn et vérifier que dans l’onglet ANT Messages des données s’affichent :

Bike Power Sensor Test

Si c’est le cas, c’est gagné, la clé sait émettre des données. Si ce n’est pas le cas, c’est perdu, la clé ne sait pas émettre des données, c’est un simple récepteur qui pourra être utilisé par Zwift.

Sur cet écran, les deux champs qui nous intéressent sont Cadence (rpm) et Instantaneous Power (W). Pour ceux qui seraient fâchés avec l’anglais, le premier permet de choisir la cadence (comme en français, Marcel !) et le second la puissance instantanée. En modifiant les valeurs présentes par défaut, on peut choisir la cadence et la puissance à simuler.
Par exemple ici je vais simuler un cycliste qui pédale à 92 tours par minute (rpm = rotation per minute) pour 235W :

Cadence & Instantaneous Power Simulation

Si le simulateur est déjà en route, c’est automatiquement pris en compte dès que l’on modifie la valeur du champ. Sinon il suffit de le mettre en route en cliquant sur TurnOn en bas.

Voilà, notre simulateur de cadence et de puissance est opérationnel. Plus qu’à aller dans Zwift pour recevoir les données et voir notre avatar se déplacer tout seul !

Mais avant, juste une petit chose. Si les deux clés sont branchées sur le même ordinateur, il convient de libérer celle qui va servir de récepteur pour Zwift. En effet, spécificité du protocole ANT+, un device ne peut être utilisé par plusieurs logiciels en même temps.

Pour cela, sur la clé en question, on fait un clic-droit puis Release. Après quelques secondes la clé devrait disparaître de l’interface de SimulANT+, ce qui veut dire qu’elle est bien libérée et prête à être utilisée par Zwift.

Release device on SimulANT+

Si la clé n’est pas libérée, Zwift sera dans l’incapacité de l’utiliser et affichera ceci :

Zwift Pairing Screen ANT+ issue

Alors que quand tout va bien :

Zwift Pairing Screen ANT+ ok

Ensuite on lance une recherche pour le capteur de puissance puis le capteur de cadence et on sélectionne notre simulateur :

Zwift Pairing Screen Simulators

Plus qu’à valider, lancer une activité et… voilà ! L’avatar se déplace sans que l’on ait besoin de pédaler !

Zwift with power simulator

Et en jouant sur la valeur du champ Instantaneous Power (W), on fait varier la puissance :

Zwift power graph (G)

De la même façon que pour le capteur de puissance, on peut ajouter un simulateur de fréquence cardiaque en cliquant sur Add Simulator… puis en choisissant Heart Rate Sensor. Cette fois c’est le champ Heart Rate (bpm) qu’il faudra configurer pour choisir la FC à transmettre.
Ne pas oublier de le démarrer en cliquant sur TurnOn.

Voilà le résultat :

Zwift with power, cadence and HR simulators

Si la simulation d’un seul capteur fonctionne très bien, dès que l’on en ajoute un second, on commence à avoir des problèmes de conflit entre les profils lancés en parallèle :

SimulANT+ channel collisions

En utilisant un ordinateur avec Zwift et une clé ANT+ pour la réception d’un côté et un autre ordinateur avec SimulANT+ et une clé ANT+ pour l’émission, cela n’a semble-t-il pas eu de réelle conséquence.

Par contre en faisant tout tourner sur un même ordinateur, j’ai rapidement été confronté à des Dropouts assez problématiques

Zwift ANT+ Dropouts

A voir en fonction de vos besoins; sachant que je n’arrive pas à penser à un usage légitime d’un double simulateur de puissance et de fréquence cardiaque. D’ailleurs, à ce propos…

Avertissement

Ce tutoriel est là pour expliquer comment facilement mettre en place un simulateur de puissance pour faire des tests, comme par exemple voir quel est l’ensemble vélo/roues qui est le plus rapide sur un parcours donné, en vue de s’équiper au mieux pour réaliser un performance. Pour cela, je vous recommande de le faire en mode déconnecté (lancer Zwift en ayant son ordinateur connecté à Internet, puis déconnecter Internet une fois dans l’activité) afin de ne pas venir perturber des humains faisant des activités légitimes, mais également pour ne pas risquer d’être détecté comme tricheur par Zwift.

Ce tutoriel n’est pas là pour vous expliquer comment tricher sur ces plateformes. Tricher c’est un truc de victime. Si vous n’avez pas le niveau pour atteindre un objectif (gagner une course), soit vous travaillez pour arriver à ce niveau, soit vous revoyez votre objectif à la baisse. Inutile de faire subir aux autres votre égo fragile. Aucun mérite à remporter une course à laquelle on n’a pas participé.