Trottinette électrique Xiaomi Mijia M365

xiaomi-mi-electric-scooter-e1481531343361.jpg


La trottinette électrique Xiaomi Mijia M365 est un véhicule au rapport qualité/prix très intéressant, accessible uniquement en import. Cette dernière tourne autour d'un prix moyen de 330€ à 450€ selon les promotions, pour une qualité équivalente à des modèles valant de 600€ à 900€. Elle est capable d'une autonomie de 30Km pour une vitesse annoncée de 25Km/h (et un mode économie d'énergie à 18Km/h), le tout pour une charge maximale de 100Kg.



ATTENTION, à l'attention de tous les utilisateurs de la M365, l'algorithme de récupération d'énergie du firmware 1.3.0 et inférieur est défaillant, et provoque de nombreux problèmes (entre autre, fusible Z qui lâche sur le BMS de la batterie, surtensions, les pastilles de la batterie qui chauffent et se décollent…). Pensez via l'application Mi Home ou Ninebot à passer impérativement le mode de récupération d'énergie en “WEAK” (faible) et non pas en MEDIUM ou STRONG. Les utilisateurs ayant un firmware 1.3.1 et supérieurs ne sont pas concernés !

Par ailleurs, lors de la réception de votre trottinette, regonflez les pneus à 4 bars !

Ceci est une page de wiki librement éditable pour la trottinette M365 de Xiaomi, chacun peut l'organiser et rajouter tout type d'informations comme il le souhaite, sans nécessiter d'inscription.

Exemple de page du wiki complète et du potentiel du script Wiki proposé



Afficher/cacher les spécifications techniques

Afficher/cacher les spécifications techniques

Poids12,5Kg
BatterieLG 18650 EV-lithium-ion - 7800mAh réels- 280Wh
MoteurBrushless 500W
Vitesse Max 25Km/h
Mode écoOui - 18Km/h
Inclinaison maximale25%
Pneus Pneus : Gonflables diamètre 8.5 pouces, largeur 2,5 pouces
ConnectivitéOui - Bluetooth, smartphone, statistiques, mise à jour du firmware
FeuxAvant blanc LED, arrière rouge freinage LED
Indicateur de chargeOui - 4 leds
Compteur de vitesseNon - Données accessibles avec l'application MI Home sur smartphone, prévoir support de l'appareil sur le guidon
Signalisation de présence/dangerOui, sonnette type vélo
Temps de charge moyen4/5H, calibration nécessaire



Afficher/cacher les tests vidéos

Afficher/cacher les tests vidéos

Afficher/cacher les tests en ligne

Afficher/cacher les tests en ligne

Afficher/cacher les liens d'achat de la M365

Afficher/cacher les liens d'achat de la M365

Cliquez pour afficher les accessoires

Cliquez pour afficher les accessoires

Afficher/cacher les liens de boutiques spécialisées dans les pièces de rechange

Afficher/cacher les liens de boutiques spécialisées dans les pièces de rechange



Le manuel d'utilisation (en anglais) de la M365 est téléchargeable ici

Le manuel d'utilisation (en français approximatif) de la M365 est téléchargeable ici



La M365 est confrontée à trois problèmes principaux, les vibrations du guidon, la détérioration du faisceau électrique du feu LED de freinage arrière, et une très grande fragilité de la chambre à air d'origine en raison notamment de l'absence d'amortisseurs et d'une mauvaise qualité des pneus d'origine (avec le temps, l'intérieur de ces derniers s'use rapidement, laissant apparaître la limaille renforçant la structure de ce dernier, qui vient alors griffer les chambres à air, crevant alors ces dernières rapidement.)


Concernant les M365 équipées d'un firmware 1.3.0 et inférieur, en raison d'un problème de l'algorithme de gestion de la récupération d'énergie en mode Strong et Medium, il se peut que la surintensité et surtension provoquent (liste non exhaustive) : mise en défaut du contrôleur BMS de la batterie, pastilles qui chauffent et se décollent, fusible Z du BMS grillé, BMS Hors service, surtension sur la carte contrôleur la rendant inopérante que ce soit matériellement et/ou logiciellement (corruption du firmware ?). Si vous êtes dans cette situation, en attendant une solution plus pérenne, vous devez IMPÉRATIVEMENT passer le mode de récupération d'énergie en WEAK via l'application Mi Home ou Ninebot.


Vibrations du guidon/Câble du feu stop : pièces conçues via une imprimante 3D

Afin de corriger les problèmes de vibration du guidon ainsi que la détérioration du câble électrique du feu de stop arrière, il convient de faire imprimer des pièces spécifiques avec une imprimante 3D, et de les installer sur la trottinette.

Afficher/cacher la procédure détaillée d'impression 3D

Afficher/cacher la procédure détaillée d'impression 3D

1 : Téléchargez l'archive contenant les fichiers 3D (STL)

2 : Rendez vous sur http://www.viewstl.com

3 : Glissez-déposez le fichier stl.

4 : En bas à droite en bleu cliquez sur le lien “3D printing Streatstock”, choisissez la couleur noire, et une composition en polyester pour le protège câble du garde-boue arrière, sinon une composition semi-flexible sheetah pour le joint anti-vibration, s'encastrant dans le guidon.

Afficher/cacher la vidéo de montage de la protection arrière

Afficher/cacher la vidéo de montage de la protection arrière


Préserver au mieux l'équipement d'origine

Pour ceux qui désireraient conserver au maximum l'équipement d'origine :

Afficher/cacher les conseils pour préserver au mieux les pneus et chambre à air d'origine

Afficher/cacher les conseils pour préserver au mieux les pneus et chambre à air d'origine

Voici quelques conseils afin de préserver le plus longtemps possible vos pneus d'origines.

  • Pression des pneus :
  1. Il est conseillé de gonfler les pneus vers 3.7 bar (gonfler à 4 bar et avec le pschitt ça va correspondre à ~ 3.7 bar) et cela dès le déballage de la trott' car ils arrivent sous-gonflés.
  • Doubler la chambre à air :
  1. Prendre une seconde chambre à air qui ne sert plus (ancienne de vélo ou récupérer au décathlon du coin, trouée ou non), la couper en deux et entourer la première chambre avec ou la coller à l'intérieur du pneu. Cela ajoute une couche “protectrice” qui permet d'éviter au maximum les crevaisons. On peut déposer du talc dans le pneumatique pour éviter les frictions. Tuto à venir.
  • Faites attention à votre conduite :
  1. Diminuer la vitesse à la moindre imperfection de la route (Trottoirs, bosses, trous, etc) et éviter au maximum les petits objets se trouvant sur votre trajectoire. Cela permet aussi de conserver plus longtemps l'électronique qui n'aime pas trop les vibrations.

Il faut prévoir quelques rustines afin de pallier aux petites fuites qui peuvent apparaitre de temps à autres même si avec les conseils ci-dessus vous aurez beaucoup moins de problèmes.

Après si cela ne fonctionne toujours pas, il est toujours possible de passer les pneus en “tubeless”.

Et si malgré tous vos efforts le problème persiste et devient ennuyeux vous pouvez toujours passer sur des pneus pleins V2 proposés dans la section dédiée.


Remplacer les pneus d'origine par des pneus pleins

Il est possible de facilement changer les chambres à air des pneus pourvu que les bons outils soient disponible (tournevis Torx, et clé de 18), toutefois pour rouler l'esprit tranquille, il est vivement conseillé de passer en pneus pleins malgré une légère perte de confort côté vibrations (compensée toutefois en partie par la pièce 3D du guidon).

Afficher/cacher les vidéos (tutoriels)

Afficher/cacher les vidéos (tutoriels)


Transformer les pneus d'origine en pneus "Tubeless" sans chambre à air

On peut également transformer les pneus d'origine en version “tubeless”, sans chambre à air, il faut pour ça récupérer les valves des chambres à air d'origine, visser un écrou de vélo dessus, acquérir du liquide anti crevaison de vélo, disposer d'une pompe correcte ou d'un compresseur.

Afficher/cacher les vidéos (tutoriels)

Afficher/cacher les vidéos (tutoriels)


Aide Technique

Xiaomi Mijia M365 ne tourne pas ou recharger sa batterie

Il y a plusieurs raisons pour lesquelles Xiaomi M365 n'est plus commuté ou en charge. Cet état est appelé « Brick ». Toutes les causes ne sont pas encore connues, mais je suggère de recueillir dans cet article wiki tous les cas connus. Je vous serais reconnaissant de vos commentaires et ajouts.Si vous rencontrez ce problème, s'il vous plaît partager votre expérience!


Diagnostique

Où commencer le diagnostic

La première chose que vous pouvez faire est de faire la remise à zéro du contrôleur. Si dans votre cas cela ne fonctionne pas, alors un diagnostic plus poussé peut être divisé en bloc de 4 composants, en essayant de comprendre ce qui est défectueux.

BLUETOOTH ⇔ CONTROLEUR ⇔ BMS ⇔ BATTERIE

Nous devons commencer à partir du milieu de la chaine, à savoir la mesure de la tension au point A. Si la tension au point A est dans la plage normale, le défaut est à gauche (dans le contrôleur ou l'unité de commande). Si la tension au point A est inférieure à la normale, cela signifie un défaut de la batterie (BMS ou la batterie elle-même).


Départ contacts sur la batterie

À agrémenter selon les nouvelles informations récupérée, le but étant de pouvoir disposer d'une documentation technique ouverte et accessibles à tous, et bypasser toutes les sécurités et composants propriétaires et fermés de la M365, comme l'activation d'une carte contrôleur neuve [nécessite un compte pro avec l'application Ninebot normalement], l'utilisation d'un BMS standard avec la carte contrôleur d'origine [qui normalement réclame des infos au BMS d'origine, ce dernier n'étant pas vendu séparément !], etc…

Fonctionnement technique :


Batterie

La M365 est équipée de 30 accumulateurs LG 2800mAh, ces derniers sont installés en 10 blocs de 3 accumulateurs en parallèle (soient 8000 mAh sous 3.6 V x 10) pour 10 blocs en série on obtient un accumulateur de 36 V. Le BMS (Battery Management System), module électronique, gère localement à l'aide d'un microcontrôleur et de quelques composants électroniques de puissance, l'utilisation de la batterie en décharge et charge. Les connexions de la nappe rapportent (pour une lecture seulement) les tensions de chaque bloc (3.6V-7.2V-10.6V-…32.4V-36V, et des capteurs de température pour la sécurité des accus. La puissance (les 10 A du fusible) circulent dans les deux gros fils noir et rouge. Le BMS communique par une liaison série (UART RX & TX) avec le contrôleur. Il envoie ces valeurs, ainsi que les données prédéfinies dans son firmware (le numéro de série/fabrication de la batterie, la capacité totale), à la carte contrôleur (aussi dénommée carte mère). Ce lien fonctionne dans les deux sens (fournir des infos à la carte contrôleur, mais également en récupérer de cette dernière pour une mise à jour du firmware, et la récupération d'énergie [KERS]), il y a également un fil dont le connecteur est dénommé “LED”, spécifiquement pour le feu de stop à l'arrière. Le BMS reçoit aussi sur un connecteur la charge, par le bloc secteur, des accumulateurs. C'est le bloc 36V qui est chargé “en série”. Le KERS (des formules 1) récupère l'énergie du moteur quand il fonctionne en générateur. Si le moteur tourne plus vite , dans une descente, le courant fournit peut être trop fort, d'où les casses de fusible.

Signification LED clignotement :

  1. - rouge clignotant + ne charge pas : problème batterie -
  2. -rouge clignotant + charge : En charge ( allumé ou éteint ) -
  3. - Bleu clignotant rapide : sans activité + allumé -
  4. - Bleu clignotant lent : éteint -
  5. - Bleu fixe : ? -

Cliquez pour afficher des photographies du BMS, de la batterie et des accumulateurs

Cliquez pour afficher des photographies du BMS, de la batterie et des accumulateurs

Photographies des éléments de la batterie Photographies des éléments de la batterie Photographies des éléments de la batterie Photographies des éléments de la batterie Photographies des éléments de la batterie Photographie de la découpe du plastique entourant la batterie Photographies des éléments de la batterie Soudure de la nappe coupée Test de la nappe soudée au multimètre Connecteur UART/LED du BMS vers la carte contrôleur Connecteur XT30 du BMS vers la carte contrôleur (fourni l'énergie) Sonde thermique de la batterie (câble arraché)


Carte contrôleur et contrôleur bluetooth du guidon

La carte contrôleur récupère l'énergie fournie par le BMS via un connecteur xt30, puis récupère respectivement des informations via le contrôleur du guidon (qui contient un contrôleur bluetooth), deux pins de la broche sont réservées pour l'allumage, l'extinction et le mode éco', il est aisé d'effectuer toutes ces actions avec un simple contact de ces dernières avec un tournevis ou autre, c'est le même travail que le bouton “power” situé sur le guidon de la trotinette. Concernant le reste, il s'agit d'alimenter la LED d'éclairage avant, et d'un lien UART (encore), ce dernier récupère les infos données par la carte contrôleur comme le numéro de série (qui elle même récupère également les infos données par le BMS, capacité, tension globale et des différentes cellules, consommation&recharge globale en temps réel), puis renvoie ces dernières informations par bluetooth (direct) aux applications MI Home et Ninebot sous Android et iOS. Ce lien UART est à double sens, il permet également de flasher les firmwares du contrôleur du guidon (dénommé “Contrôleur Bluetooth”, de la carte contrôleur, et du BMS (la carte contrôleur gérant le tout.)

Un github pour étudier/comprendre/imiter le fonctionnement du contrôleur bluetooth a été ouvert ici

Un lien vers quelques personnes tentant de simuler le serveur de mises à jour : https://electro.club/forum/razborka_proshivki_elektrosamokata_Xiaomi_M365

Cliquez pour afficher des photographies de cartes contrôleur 2016/2017 :

Cliquez pour afficher des photographies de cartes contrôleur 2016/2017 :

cartes contrôleurs (à gauche 2016/ fw 1.3.0, à droite 2017/fw 1.3.1) cartes contrôleurs (à gauche 2016/ fw 1.3.0, à droite 2017/fw 1.3.1 carte contrôleur carte contrôleur carte contrôleur carte contrôleur carte contrôleur carte contrôleur carte contrôleur carte contrôleur carte contrôleur carte contrôleur carte contrôleur carte contrôleur carte contrôleur carte contrôleur carte contrôleur carte contrôleur carte contrôleur carte contrôleur carte contrôleur carte contrôleur carte contrôleur carte contrôleur carte contrôleur carte contrôleur carte contrôleur carte contrôleur carte contrôleur carte contrôleur carte contrôleur


Moteur

1501753881.jpg

Le moteur brushless a un rendement très intéressant. Il n'y a pas de lien “tournant” pour apporter l'énergie. Les progrès des batteries et des transistors ont permis son développement. Dans la roue se sont les aimants “passifs” qui tournent. Les bobinages sont fixes, solidaires de l'axe de la roue. Pour les curieux il faut utiliser la “règle des trois doigts” (sans les coincer m() pour appréhender le fonctionnement. Seuls T3 et T4 sont fermés, le courant (8 A = 36V/4.5 Ohm (résistance entre 2 bobinages)) circule de V+ à zéro à travers les bobinages 1 heure et 5 heure. Les champs magnétiques créés vont “pousser” les aimants solidaires de la roue. Si vous êtes malins, il ne vous reste plus qu'à ouvrir/fermer vos 6 transistors “en bonne cadence” pour accélérer… Les transistors MOSFET sont faits pour ça. Un petit calcul avec une roue de 20 cm de diamètre (0.6 m de tour) qui roule à 20 km/h fait 10 t/s. Avec 3 bobines et 6 aimants il faut “pédaler” les MOSFET vers 1 kHz, ce qu'ils font très facilement.

Là où c'est délicat c'est que le moteur fonctionne aussi en générateur et il restitue de l'énergie quand il tourne tout seul (dans les descentes) et pour récupérer l'énergie, il ne faut pas se louper en ouvrant/fermant les MOSFET. C'est pour tout ça que la carte contrôleur doit être “intelligente”, elle gère 250 W sous 36V à 1 kHz, dans un ampli Hi-fi ça ferait du bruit.

Vous voyez trois cosses d'alimentation. Lorsqu'elles ne sont pas branchées, la carte contrôleur ne “voit” pas les bobines et se met en défaut, elle indique un code erreur (de la même façon que si la broche du BMS est débranchée, ou ce dernier défectueux).


Accélérateur et frein

[À compléter]


Lien logiciel <-> Matériel

Après analyses, il n'y a techniquement AUCUNE différence entre une carte contrôleur équipée d'un firmware 1.2.9, 1.3.0, et 1.3.1, hormis un changement de référence des transistors (mais les valeurs sont similaires) et la date de production à l'arrière (année puis semaine).

Valeur des transistors de la carte contrôleur en 1.3.0 :

Afficher/cacher la photographie

Afficher/cacher la photographie

Transistors d'une carte contrôleur fabriquée fin 2016 avec firmware 1.3.0

  • 14808
  • GK0W7W7 V5
  • CHN 537

Et

  • 14808
  • GK1S4
  • CHN619

Valeur des transistors de la carte contrôleur en 1.3.1 :

Afficher/cacher la photographie

Afficher/cacher la photographie

Transistors d'une carte contrôleur fabriquée février 2017 avec firmware 1.3.1

  • 14808
  • GK1WN V5
  • CHN 621

L'absence de mise à jour pour les M365 avec firmware inférieur à la dernière version n'est donc pas dû à une incompatibilité technique, mais à une volonté propre de Ninebot/Mijia/Xiaomi. (Xiaomi possède Mijia, Ninebot, et Segway) Auparavant, jusqu'à la version 1.3.0, des mises à jour étaient fournies aux M365 via les applications officielles (on se souvient de la 1.2.8, la 1.2.9 notamment), sur nineboot après avoir sniffé les connexions entre l'application et le réseau, on a pu trouver le fichier de référence des firmwares et des dumps, ils possèdent sur leurs serveurs jusqu'à la version 1.3.0, pas plus.


Firmwares

Le firmware est en réalité composé de 3 firmwares distincts, un pour le contrôleur bluetooth du guidon, un pour la carte contrôleur, et un autre pour le BMS. Ces derniers sont accompagnés d'un fichier JSON contenant d'autres informations, des utilisateurs d'autres produits ninebot s'en servent pour tromper l'application et “proxifier” via les DNS un faux serveur de mises à jour exécuté localement, afin que l'application installe en downgradant/upgradant le firmware de leur choix sur leurs appareils.

Le firmware 1.2.9 peut être téléchargé ici ⇒ http://vavar60.online.fr/share/vehicle/m365/M365_FW_1.2.9.zip

Le firmware 1.3.0 peut être téléchargé ici ⇒ http://vavar60.online.fr/share/vehicle/m365/M365_FW_1.3.0.zip

Afficher/cacher les captures d'écran

Afficher/cacher les captures d'écran

Exemple de fichier Json Fichiers de firmware


Un dump réseau et un dump bluetooth on été effectués avec MI Home et Ninebot 4, sous android, avec l'utilisation de toutes les commandes des applications possibles, y compris durant l'upgrade du firmware bluetooth, afin d'étudier le fonctionnement de ces applications, de la mise à jour du firmware, et les commandes UART utilisées en bluetooth.

Télécharger le dump réseau

Télécharger le dump bluetooth N°1

Télécharger le dump bluetooth N°2

Afin de faciliter la lecture et l'étude de ces dumps, le logiciel Wireshark (multiplateforme Linux/OSX/Windows) est recommandé.

Un tutoriel d'exemple de reverse engeenering bluetooth est consultable ici.

Un tutoriel de downgrade du firmware d'un appareil Ninebot/Segway à travers l'utilisation d'un serveur de mise à jour Ninebot fake executé localement, est également consultable ici, la méthode devrais être similaire.


Brochages de la carte contrôleur

Des photos indicatives, des schémas, et explications/annotations/légendes seraient les bienvenues

1 - Prise alimentation batterie.

2 - Trois broches - enroulements de moteur A, B, C. Capteurs de courant sur chaque poteau.

3 - 5 broches - capteurs hall du moteur.

5v, A, B, C, GND. Pas de capteur de température.

Le contrôleur contrôle les capteurs à la mise sous tension. Pour courir sans roue, il est nécessaire de fermer au moins une broche de signalisation a la masse, mais pas toutes les 3.

4 - 4 broches - l'interface au contrôleur dans le volant. Les signaux sont: GND - P - alimentation commune de la batterie, une sortie haute impédance. Données - Interface série

5V - augmente après la charge et se alimente le volant. Le signal P allume le scooter.

L'interface 5 - 3 broches aux signaux BMS est: RX / TX - interface série. Ligne L sur le signal d'arrêt LED.

6 - G, D, C, SWD ne sont pas endommagés. Le microcontrôleur est un STM32F103C8T6. fusible fermé pour la lecture.



Vous pouvez faire le retour des pannes dans cette section, soyez aussi précis que possibles, votre nombre de kilomètres, les accidents, l'environnement, les conséquences, et si c'est fait, comment vous l'avez réparé. C'est en quelque sorte votre journal public, pouvant renseigner votre expérience, mais également permettre aux intervenants qui échangent avec vous, de s'y retrouver. Merci de placer votre pseudo par ordre alphabétique. :)

Afficher/cacher

Afficher/cacher

Indiquez votre pseudo ici

Indiquez votre pseudo ici

Indiquez votre pseudo ici

Indiquez votre pseudo ici

Indiquez votre pseudo ici

Indiquez votre pseudo ici

Indiquez votre pseudo ici

Indiquez votre pseudo ici

Indiquez votre pseudo ici

Indiquez votre pseudo ici

Indiquez votre pseudo ici

Indiquez votre pseudo ici

Indiquez votre pseudo ici

Indiquez votre pseudo ici

Indiquez votre pseudo ici

Indiquez votre pseudo ici

Indiquez votre pseudo ici

Indiquez votre pseudo ici

Indiquez votre pseudo ici

Indiquez votre pseudo ici

Indiquez votre pseudo ici

Indiquez votre pseudo ici

Indiquez votre pseudo ici

Indiquez votre pseudo ici

Indiquez votre pseudo ici

Indiquez votre pseudo ici

Indiquez votre pseudo ici

Indiquez votre pseudo ici

Indiquez votre pseudo ici

Indiquez votre pseudo ici

Indiquez votre pseudo ici

Indiquez votre pseudo ici

Indiquez votre pseudo ici

Indiquez votre pseudo ici

Indiquez votre pseudo ici

Indiquez votre pseudo ici

Indiquez votre pseudo ici

Indiquez votre pseudo ici

Indiquez votre pseudo ici

Indiquez votre pseudo ici

Indiquez votre pseudo ici

Indiquez votre pseudo ici

Indiquez votre pseudo ici

Indiquez votre pseudo ici

Indiquez votre pseudo ici

Indiquez votre pseudo ici

Indiquez votre pseudo ici

Indiquez votre pseudo ici

Indiquez votre pseudo ici

Indiquez votre pseudo ici

Indiquez votre pseudo ici

Indiquez votre pseudo ici

Indiquez votre pseudo ici

Indiquez votre pseudo ici

Indiquez votre pseudo ici

Indiquez votre pseudo ici

Indiquez votre pseudo ici

Indiquez votre pseudo ici

Indiquez votre pseudo ici

Indiquez votre pseudo ici

Indiquez votre pseudo ici

Indiquez votre pseudo ici

Indiquez votre pseudo ici

Indiquez votre pseudo ici

Indiquez votre pseudo ici

Indiquez votre pseudo ici

Indiquez votre pseudo ici

Indiquez votre pseudo ici

Indiquez votre pseudo ici

Indiquez votre pseudo ici

Indiquez votre pseudo ici

Indiquez votre pseudo ici

Indiquez votre pseudo ici

Indiquez votre pseudo ici

Indiquez votre pseudo ici

Indiquez votre pseudo ici

Indiquez votre pseudo ici

Indiquez votre pseudo ici

Indiquez votre pseudo ici

Indiquez votre pseudo ici

Indiquez votre pseudo ici

Indiquez votre pseudo ici

Indiquez votre pseudo ici

Indiquez votre pseudo ici