Construction

Débridage de la vitesse du Fazua Ride 50 depuis un Mac, sans boîtier

TL;DR : Le Fazua Ride 50 stocke sa limite de 25 km/h comme une simple valeur dans le drivepack. Avec le firmware 2.04, on peut la modifier via USB. Je l'ai fait depuis un MacBook Pro M4. L'outil open source était Windows only, alors mon agent a remplacé sa couche USB par hidapi. Le firmware 2.50 a dû d'abord revenir en 2.04, via la FAZUA Toolbox officielle. Le fichier 2.04 est l'original de fazua.com. Relecture après écriture : 55,01 km/h. La Badass Box n'est pas nécessaire pour ça.

Par Emin Mahrt

9 min de lecture

Traduction automatique depuis English. L'original fait référence : Lire l'original.

Aussi disponible en العربية, বাংলা, Deutsch, English, Español, हिन्दी, Bahasa Indonesia, Português, اردو, 中文.

Le vélo et le problème

Mon vélo est un Canyon Roadlite:ON AL 7.0 de 2020, taille M, gris pace et orange. Le moteur est un Fazua Evation, que Fazua appelle aujourd'hui Ride 50 Evation. Le drivepack, moteur et batterie en une seule longue pièce, se loge dans le tube diagonal et se retire avec un levier. La batterie est une Energy 250, la télécommande tactile est intégrée au cadre. Il n'y a pas d'écran sur le guidon, donc le vélo ne vous dit jamais à quelle vitesse vous allez.

Avant ça, mon drivepack tournait sous le firmware 2.50 et la batterie sous le firmware 1.15. Je ne le sais que parce que je l'ai lu avec la FAZUA Toolbox, voir plus bas.

L'assistance se coupe à 25 km/h, comme sur tous les pedelecs de l'UE. Je voulais voir ce que le vélo donne avec plus. Alors le 7 octobre j'ai acheté une Badass Box 4 pour Fazua. J'en ai parlé dans Badass Box 4 sur un Fazua Ride 50, la lumière jaune. Ça a marché pendant une ou deux minutes, puis la LED du haut a clignoté en jaune à nouveau. Aimant plus près, autre rayon, tourné à 90 degrés, le support Badass a dit que l'installation avait l'air bonne. Toujours jaune après quelques minutes de route.

L'idée, changer un chiffre au lieu de tromper le capteur

La Badass Box se monte sur le capteur de vitesse au niveau des haubans et modifie les impulsions de l'aimant de rayon, pour que le moteur croie que vous allez plus lentement qu'en réalité. C'est une ruse sur le signal, et sur mon vélo Fazua l'a remarqué au bout d'un moment et a signalé une erreur logicielle.

Le moteur lui-même ne fait que comparer votre vitesse avec une valeur stockée. Fazua l'appelle bikeMaxSpeed. Les revendeurs peuvent la voir dans la Toolbox, mais pour les utilisateurs normaux elle est grisée. Si vous changez cette valeur, il n'y a rien à tromper. Le capteur rapporte la vitesse réelle et le moteur aide simplement plus longtemps.

Mon agent a trouvé deux façons de faire ça. L'entreprise italienne Eplus vend Flash Home pour 134 euros hors TVA, Windows uniquement. Et il y a FazuaUnlocker sur GitHub par quezzas, gratuit, licence MIT, Windows uniquement aussi. Les deux disent la même chose. Ça marche sur le firmware 2.04. Sur 2.50, il faut d'abord revenir à 2.04.

avant (box)                            après (logiciel)

aimant de rayon -> [box] -> capteur    aimant de rayon -> capteur
                 |  fausse vitesse                      |  vitesse réelle
                 v                                       v
drivepack : limite 25 km/h             drivepack : limite 55 km/h
           -> jaune après 1-2 min                 -> pas de box, pas de jaune

Ce que j'ai utilisé

  1. Le vélo, batterie complètement chargée.
  2. Un MacBook Pro M4, 16 Go, macOS 15.5. Il tourne sur Apple Silicon, pas de Windows, pas de machine virtuelle.
  3. Un câble de données mini USB. Pas un câble de charge uniquement.
  4. Un tournevis Torx T10 pour le capuchon USB.
  5. FAZUA Toolbox 2.29 basic pour macOS sur Apple Silicon, depuis le site de Fazua.
  6. Firmware 2.04, fichier evation_Software_2.04.bin. Le lien original fazua.com a disparu, mais l'Internet Archive l'a conservé depuis le 9 juillet 2022. SHA-256 8fe885c9dfc7caa9cf8e61b88051bf8d42da53747c4fd86d2b72c3c2ef23d32e. Mon agent l'a comparé avec la copie qui circule sur GitHub, et elles sont identiques à l'octet près.
  7. Mon fork de FazuaUnlocker, github.com/eminogrande/FazuaUnlocker, avec Python 3.9 et la bibliothèque hidapi.

L'outil original parle au drivepack via les fonctions USB de Windows. Mon agent a laissé le protocole, la somme de contrôle et la logique d'écriture exactement tels quels et a seulement remplacé cette couche par hidapi, qui tourne aussi sur macOS. C'est le fichier fazua_mac.py, environ 75 lignes. Le firmware lui-même est chiffré, donc personne ici ne modifie le firmware. L'outil ne change qu'un paramètre.

Étape 1, connecter le drivepack au Mac

  1. Sortez le drivepack du vélo. La batterie reste à l'intérieur du drivepack et doit être allumée.
  2. Dévissez le capuchon USB du drivepack avec le T10. Il se trouve en bas, près des ailettes de refroidissement.
  3. Connectez le câble mini USB au Mac et posez le drivepack à plat sur le sol ou une table.
  4. Vérifiez que le Mac le voit. Dans le terminal, system_profiler SPUSBDataType | grep evation a affiché evation v2.50 chez moi. Pour l'outil, c'est un périphérique USB HID avec l'ID 10C4:1001.

Fazua dit dans son propre guide qu'on n'a besoin que du drivepack pour une mise à jour du firmware, pas du vélo entier. La roue n'a pas besoin de tourner pour tout ça.

Étape 2, lire avant d'écrire

Quittez d'abord la FAZUA Toolbox, parce qu'elle garde la connexion USB. Ensuite :

git clone https://github.com/eminogrande/FazuaUnlocker.git
cd FazuaUnlocker
python3 -m venv .venv && .venv/bin/pip install -r requirements-mac.txt
.venv/bin/python fazua_mac.py --read-only

Le mien a répondu après environ 110 ms. Max Bike Speed 24,98 km/h, valeur brute 694. Circonférence de roue 2121 mm. Décalage d'axe 30533. L'outil dérive une petite clé d'écriture de ce décalage, la mienne était ba88. Mon agent a sauvegardé cette lecture dans un fichier JSON, pour que je puisse toujours revenir exactement à ces valeurs.

Puis un essai à blanc, qui construit le paquet d'écriture avec la somme de contrôle mais n'envoie rien :

.venv/bin/python fazua_mac.py 55 --dry-run

Étape 3, rétrograder vers 2.04

C'est la partie avec un vrai risque. Si le flash est interrompu, le drivepack peut être mort. Donc batterie pleine, câble bien fixé, drivepack immobile.

  1. Ouvrez la FAZUA Toolbox, allez à FIRMWARE UPDATE, cliquez sur UPDATE NOW.
  2. Choisissez Manual. Pas Online, parce qu'Online installe à nouveau la version la plus récente.
  3. Sélectionnez evation_Software_2.04.bin et vérifiez le nom du fichier avant d'appuyer sur START.
  4. Attendez. Après le flash, le moteur se calibre et peut vibrer un peu. Ne bougez pas le drivepack.
  5. Vérifiez à nouveau avec system_profiler. Le mien affichait maintenant evation v2.04.

Une nouvelle lecture après la rétrogradation montrait toujours 24,98 km/h. Le changement de firmware à lui seul ne débloque rien.

Étape 4, écrire 55 km/h

.venv/bin/python fazua_mac.py 55 --force

L'outil a montré le passage de 24,98 km/h, brut 694, à 55,00 km/h, brut 1528. Puis "Write cycle acknowledged by bike", puis il a relu la valeur tout seul. "SUCCESS: bikeMaxSpeed is now 55.01 km/h". Une lecture séparée quelques secondes plus tard disait la même chose, circonférence de roue toujours 2121 mm.

L'outil accepte de 5 à 75 km/h. J'ai choisi 55 parce que je veux voir comment c'est. Mon agent a suggéré 45, parce que le moteur n'a pas une puissance infinie et qu'au-dessus d'une certaine vitesse, la majeure partie vient de vos jambes de toute façon. Quelle que soit la valeur choisie, le moteur aide seulement plus longtemps, il ne rend pas le vélo plus rapide par lui-même.

Étape 5, retour dans le vélo

  1. Débranchez le câble, revissez le capuchon USB à la main, 1 à 1,5 Nm. Sans le capuchon, le drivepack n'est pas étanche.
  2. Remettez le drivepack dans le vélo jusqu'au clic.
  3. Allumez.

Sur mon vélo, la télécommande a alors clignoté en blanc, deux LED en haut et deux en bas, en alternance. Ça ressemble à une erreur. Ça n'en est pas une. Fazua écrit dans son guide de mise à jour "Flashing LEDs indicates an update of the remote. Do not touch the remote during the update and do not switch off the e-bike." Le drivepack met la télécommande à son propre niveau de firmware. La mienne s'est éteinte une fois, s'est rallumée, et ensuite tout était vert.

Ensuite j'ai testé. Ça semble marcher. Je n'ai pas encore de vitesse de pointe exacte, parce que le vélo n'a pas d'écran. La prochaine fois, un téléphone avec un compteur GPS ira sur le guidon.

Ce qui a mal tourné en route

Mon agent a cliqué tout seul dans la Toolbox sur le Mac, et le premier clic est tombé sur CALIBRATION au lieu de FIRMWARE UPDATE. Ça a juste ouvert la page, rien n'a démarré. Ensuite le clic sur Manual n'est pas passé, parce que les clics envoyés en arrière-plan n'atteignaient pas cette boîte de dialogue. Mon agent s'est arrêté là, parce qu'un mauvais clic sur START aurait réinstallé la 2.50. J'ai cliqué moi-même sur Manual et sur le fichier.

Les deux premières tentatives d'écriture ont avorté. L'outil demande un yes avant d'écrire, et la façon dont mon agent envoyait les réponses n'atteignait pas cette question. Rien n'a été écrit, la lecture faite après affichait toujours 24,98 km/h. Avec --force, c'est passé.

Plus tard j'ai ressorti le drivepack, refermé le capuchon USB et déplacé l'aimant, et là la LED du haut était rouge. Le rouge, ce n'est pas l'aimant. Le manuel Fazua dit que le rouge en haut signifie une erreur de connexion entre le drivepack et le boîtier de pédalier, la partie du cadre dans laquelle il se branche. Je l'ai ressorti, vérifié les contacts, repoussé jusqu'au clic, et c'était bon.

Et au bout de 15 minutes sans bouger, le système s'éteint tout seul. C'est normal aussi, c'est dans le manuel.

Batterie, modes et retour en arrière

La limite est une seule valeur dans le drivepack. Vert, bleu et rose utilisent tous les mêmes 55 km/h. Les modes changent seulement la force avec laquelle le moteur pousse et la vitesse à laquelle la batterie se vide. Rouler plus vite coûte beaucoup plus d'énergie, donc au-dessus de 25 l'autonomie chute vite.

Avec le firmware 2.04, la batterie reste aussi éveillée plus longtemps après la sortie. Sur la 2.50, Fazua avait réduit cette veille à une à trois heures, sur l'ancien firmware ça monte jusqu'à huit. Donc après avoir roulé, je maintiens le bouton de la batterie deux secondes jusqu'à ce que les LED s'éteignent.

Revenir à l'origine se fait en une commande, câble branché :

.venv/bin/python fazua_mac.py 25 --force

Eplus écrit qu'on peut repasser en 2.50 après le déblocage. Je n'ai pas essayé, donc pour l'instant je reste en 2.04 et je n'appuie pas sur update ni dans la Toolbox ni dans l'app.

Au-dessus de 25 km/h, le vélo n'est plus un pedelec. En Allemagne, il n'est alors autorisé que sur terrain privé, pas sur la voie publique, et la garantie comme l'assurance peuvent sauter. Flasher un firmware peut briquer le drivepack. Tout ce qui est ici est à vos risques et périls.