Creation du fichier https://cyclurba.fr/fichier/article_compteur.txt

Fatal error: Call to undefined function VerifGetPost() in /home/cyclurba/public_html/cyclurba.fr/cache/jccache.php on line 12
Cyclurba, le vélo utile
Creation du fichier https://cyclurba.fr/fichier/pub_log.txt
Transformez votre vélo en vélo électrique
Dossiers > Technique mécanique

Reprogrammation du controleur Bafang BBS sous Linux

Reconfigurer son controleur BBS depuis un OS linux via le soft original Bafang ou ses 3 autres reécritures
Bafang Configuration Tool de Stefan Penoff.
Version Penoff améliorée de Lolo.31
Bafang 1.04
peut s'avérer, selon les distributions, extrêmement facile ( Plug & Play) ou relativement "prise de tête" .

Les principaux obstacles sont :
- Trouver une version de Wine suffisamment récente compatible avec sa distribution si celle-ci est un peu ancienne.
- Configurer correctement les correspondances ports COM windows avec les ports serial-usb Linux.

Voici donc une méthode, qui je l'espère, vous permettra de continuer à utiliser Linux pour le reparamétrage des BBS.

Distributions testées:
Linux Mint 19.2 xfce x64
Xubuntu 20.04 x64
MXLinux 19.2 xfce x64 ; x32
Manjaro 20.01

1 - Reconnaissance hardware


La première chose dont on peut s'assurer avant de rentrer dans les détails est de vérifier que le cable USB/serial est bien reconnu par notre distribution.

J'utilise un cable basique AE sur la base d'un convertisseur UART CH340G

Les noyaux linux doivent contenir les pilotes ( ici CH341) de l'interface USB /serial et la reconnaissance doit être automatique.

Vérification:

Insérer la clé sur un port usb (pas besoin de la connecter au BBS ) et taper dans la console:
lsusb

Le périphérique est bien reconnu par le système.

La commande:
dmesg | grep ttyUSB
nous renseigne que le dongle (ici ch341-uart) est bien attaché au port usb linux ttyUSB0


On peut alors passer à la phase 2

2 - Installation de Wine


Wine est un logiciel libre permettant à des logiciels conçus seulement pour Windows de fonctionner dans d'autres environnements comme Linux ou Mac OS X. Pour ce faire il implémente une interface technique de type Windows dans les environnements X et UNIX (BSD, Linux).
source fr.wikipedia.org

Wine peut s'installer via le software manager de votre distribution. Malheureusement, il est possible que seules de vieilles versions ne soient disponibles sur le dêpot surtout si la distribution est un peu vieille.
Le programme pourra souvent se lancer ( +- instabilité) mais la communication avec les ports risque d'être difficile voire impossible.

À minima, la version 4.0 est fonctionnelle ainsi que les versions supérieures.
La version stable actuelle( 09-2020) est la 5.02

À voir donc avec les versions disponibles de vos distributions, sinon on peut aller chercher les dernières versions directement sur la page officielle WineHQ.
ou ici

Une fois Wine installé les dépendances éventuelles (gecko mono) s'installeront automatiquement lors du premier lancement d'un soft Bafang.




3 - Configuration des droits d'accés au port ttyUSB



Pour que l'utilisateur ait un droit d'accés sur le port ttyUSB0, il faut que celui-ci soit membre du groupe :
-dialout (Debian , Ubuntu , Mint , ...)
-uucp ( Archlinux , Manjaro)

------------------------------------------------------------------------------------------------------------------------------
Pour identifier ce groupe il suffit d'afficher les droits d'accés du fichier /dev/ttyUSB0 (Aprés avoir branché la clé usb/serial)
-soit en mode graphique par le gestionnaire de fichier
-soit par la console: ls -l /dev/ttyUSB0

------------------------------------------------------------------------------------------------------------------------------

Vérification:

L'entrée groups dans la console affiche tous les groupes dont l'utilisateur ( ici Cyril) est membre



Si le groupe dialout / uucp manque, il faut rendre l'utilisateur (Cyril) membre de ce groupe.
Dans la console:
Debian
sudo adduser Cyril dialout
Archlinux
sudo gpasswd -a Cyril uucp

Après une déconnection ]puis ouverture d'une nouvelle session, re-taper groups pour vérifier la présence du groupe dialout / uucp



4 - Mappage-Correspondance du port usb-serial linux ttyUSB0 avec un port COM Windows



C'est ici que ça devient plus compliqué.
Les correspondances se trouvent sous la forme de liens dans le dossier caché:
~/.wine/dosdevices
Wine va établir les passerelles COMx <-> ttyUSB0 au premier lancement du soft Bafang.
Elles peuvent être alors listées dans la console par la commande.
ls -l ~/.wine/dosdevices/

Ici, dans MX-Linux, wine a mappé le port usb-serial linux sur le port Windows/wine COM5
Il suffit alors, dans ce cas, de lancer le soft Bafang, de selectionner le port COM5 et la connection se fait.





Manjaro
Wine mappe également le port ttyUSB0 sur le COM5
Idem MX linux, il suffit de selectionner le port COM5 dans le soft Bafang et la connection est effective





Les distributions MX-Linux ; Manjaro sont, de loin, les plus faciles car il n'y a absolument rien à configurer, ni les groupes ni les ports.
Directement plug & play sans même devoir installer un seul pilote.





4-1 Problèmes avec d'autres distributions



Dans Mint 19 ou Xubuntu 20







Nous avons droit a une orgie de port et wine a mappé le port ttyUSB0 sur le port com33, lequel n'est pas accessible par les softs Bafang. Connection alors impossible























Pour Ubuntu , Mint, il va falloir (re)attribuer les correspondances à la main.
Je me suis appuyé, en autre, sur cette doc Wine User'guide
Dans Mint et Xubuntu, il faut faire cette manipulation.


4-2 Forcer wine à utiliser la correspondance COM1 <=> ttyUSB0



Ceci ce fera en modifiant le registre Windows de wine
lancer wine regedit
se déplacer dans HKEY_LOCAL_MACHINE\Software\Wine\Ports
et créer une entrée COM1 avec comme valeur /dev/ttyUSB0



















En suivant,fermer le registre et taper, toujours dans la console,
wineserver -k
de façon à ce que wine prenne en compte la modification au prochain démarage du programme

À vérifier avec
ls -l ~/.wine/dosdevices/
que la ligne
......... com1 -> /dev/ttyUSB0
est bien apparue

La clé est normalement opérationnelle.
Choisir alors le port COM1 dans le soft Bafang
En cliquant sur connect , la led bleue TX clignote signifiant que le port est ouvert.

-----------------------------------------------------------------------------------------------------------------------
Pour une version de wine inférieure à la 2.8 il n'est pas possible d'utiliser regedit et il faut donc re-mapper ainsi:
Avec la commande console
ln -s /dev/ttyUSB0 ~/.wine/dosdevices/com1
on attribue à l'interface ttyUSB0 le port COM1

Si le soft Bafang a déjà été lancé, le raccourci com1 existe déjà dans le dossier "/home/xxx/.wine/dosdevices/ "
Il est attribué (voir capture écran de dessus) au port serial ttyS0
il faudra d'abord le supprimer sinon la console fournira un message d'erreur.


- Supression en mode console
rm ~/.wine/dosdevices/com1

- ou simplement à la main en se rendant dans ce répertoire

Ensuite,re-appliquer la commande du dessus.

Normalement ceci devrait être obsolète , si on a une distribution un tant soit peu récente.
wine > v2.8
---------------------------------------------------------------------------------------------------------------------------

5 - Mode opératoire


Pour éviter les pb, court-circuits ou autres lors du branchement de cable usb - serial, je déconnecte ( éteint) tout d'abord la batterie.
Ensuite je "purge" les condensateurs du controleur en rallument la console. ( laquelle s'éteint 1 seconde aprés)

- Je débranche le connecteur Higo 5 broches vert et connecte ( délicatement) le cable usb - serial.

Attention, le connecteur Higo est certes étanche mais les pins sont fins et relativement fragiles. Un court circuit dut à une une mauvaise insertion endommagera définitivement le controleur.
C'est pourquoi je préfère effectuer ce branchement sans aucune tension dans le circuit.
Voilà à quoi ressemble le connecteur femelle après seulement quelques dizaines de branchements.



- Je rallume (reconnecte) la batterie. La led (rouge) de la clé usb signale que celle-ci est sous tension.
- Je branche alors la clé sur le portable et lance le soft en suivant.
- Il détecte l'interface et se cale :
soit lui-même sur le port COM5
soit je choisi celui qui est effectif (COM1 dans mon exemple)

Ensuite c'est classique
- connect pour établir la connection.

et read pout importer les paramètres de configuration du controleur.

Une fois les modifs effectuées et enregistrées sur le controleur (write) cliquer sur disconnect.



Tout sur la reprogrammation du controleur se trouve ici.
cyclurba.fr

Je débranche alors la clé du PC et éteint/débranche la batterie.
Je ne la rebranche que lorsque la console est de nouveau connectée au controleur.

--------------------------------------------------

Rappel des distributions testées:
MXLinux 18.3 x32 ; 19,4 x64
Xubuntu 20.04 x64
Mint 19.2 x64
Manjaro 20.01

PC portables
Lenovo ThinkPad SL500 (2009) 64bit
Acer Aspire One (2008) 32 bit




6 - J'y arrive pas , rien à faire


Dans ce cas, il existe une solution de repli avec WinToUSB qui permet de créer un windows portable.
Une simple clé USB 16 mo, une ancienne iso de win7 ( je vous laisse chercher) et les pilotes windows CH341 suffisent à créer un OS "atelier" sur lequel on démarrera pour la reconfiguration du controleur BBS.

Seul inconvéniant, Il faudra un windows pour exécuter ce programme.


Article précedent: La Bible du Proto façon Tchang

Réagir, poser une questionProposer un articleS'abonner aux articlesConseiller l'article à un ami


Creation du fichier https://cyclurba.fr/fichier/pub_log.txt
kit ebike
A propos de cet article
Profil de Danklorixinfos Article de Danklorix.


N° Article : 907
Article lu 0 fois.
Créé le 07-08-2020 à 18h09.
Modifié le 24-09-2020 à 22h22.

Cliquez ici pour valider cet article Validation * * *

modifier cet article Mettre à jour l'article
Cliquez ici pour rediger un nouvel article Redigez un nouvel article
Discutons de cet article sur le forumVos réactions, sur le Forum
Autres articles du dossier

Tous nos articles Tous les articles