maj complémentaire du 23-04-2021 :
eco-cycle a develloper une page web ( en anglais ) qui resume assez bien, ce qu il faut faire ...
TSDZ2 Motor Controller Firmware Programming
Maj du 21-04-2021 : je rajoute un shema de principe pour le cas ou quelqu'un aurait besoin de lancer le système en se passant de l afficheur ( dépannage ou test ), c est une image issue du portage vers une interface BT, les connecteurs validant la mise en marche du moteur sont donc Vbatt et enable, les deux du haut entre le pin seul au milieu .
Maj du 10/12/2019 : une version plus récente existe sur le blog, ceci reste l article de base expliquant comment fabriquer l interface et les procédures de connexion via le programme St-link programmer ...
la version utilisant l interface java
Maj du 03-02-2019 : un fil dedié sur endless-sphere au portage open source utilisant le VLCD6 et la serie d afficheur d origine a vu le jour il y a quelques temps, il ne remplace pas le fil ( topic ) originel dont les liens sont plus bas dans cette présentation mais est un lien entre les usagers du la version "marcoq " et le développeur lui mm ( marcoq ) :
Le kit moteur pédalier TongSheng dénomination TSDZ2 est devenu populaire parmi les utilisateurs de kit pour vélo a assistance électrique, sur le forum endless-sphere.com un développeur : casainho déjà connu pour son développement open source des firmware pour les contrôleurs de la série kunteng c est intéressé a ce moteur et a décider d améliorer la programmation .
Le Wiki en anglais sur lequel pointe le dernier lien est bien développé et la majorité des utilisateurs du net saura comment exploiter au moyen de traducteur ou par compréhension propre les informations qu il contient .
Dans un premier temps je vais expliquer le portage de la version 0.16 par un autre développeur
( marcoq ) pour usage avec un VLCD6 ( le dernier né des afficheurs dédiés au moteur TSDZ2 ) mais qui fonctionne aussi avec le VLCD5 qui équipe la majorité des kit vendu a ce jour, le VLCD5 est un écran robuste qui dispose d un port USB permettant de charger par exemple un portable et de 3 ports supplémentaire dédiés aux périphériques freins et accélérateur, seule la version 8 pins du controleur permet l usage de l accélérateur .
La programmation du contrôleur nécessite :
1 : l usage d un STlink V2, un microchip intégrant un port USB capable de lire et écrire dans ( l eeprom en fait ) du chip dedié un STM8 .
2 : la fabrication d une interface permettant de se relier au contrôleur du TSDZ2, un peu plus bas je détaille le moyen dont je me suis servi .
3 : l usage d un programme mis au point par la société qui fabrique les chips STM8, ST visual programmer, qui est une interface en faite, facilitant les processus d écriture, lecture et modification des données .
Le ST link V2 peut se trouver facilement sur le net, des clones ( j utilise un clone ) avec un packaging moins ambitieux sont disponibles pour une somme modique ( regarder dans le wiki en anglais si besoin ), accessoirement il faudra jouer du fer a souder pour fabriquer un connecteur capable de se connecter au TSDZ2 .
Le programme ST visual programmer peut s obtenir directement sur le site de St microelectronic,
il peut aussi se telecharger directement ( sans inscription )
sur un des sites de dev du firmware TSDZ2 .
Attention a l'installation le programme a besoin d être configuré .
Le site d eco-cycle suggère le device " STM8S105x4",sur endless-sphere c est le "STM8S105x6" qui est suggérè et c est celui que j utilise .
Sur le site d eco-cycles par exemple qui propose du matériel dédié TSDZ2 ainsi que des kit et une méthode pour retoucher le firmware, il fut un des premiers a intervenir sur le fil de discussion concernant la programmation du TSDZ2 crée par casainho, il a apporté sa contribution de nombreuses fois mais étant donné qu il est un revendeur de kit ( dont TSDZ2 ) impliqué et cherchant a améliorer le matériel, son approche est différente mais il est probablement a l origine d une vidéo ancienne ou pour la première fois on découvrait que le TSDZ2 pouvait être reprogrammé .
Il y a différent moyen de se procurer un câble et son connecteur compatible avec le port capteur de vitesse qui dispose des pins permettant la modification du firmware, pour ma part j ai utilisé le connecteur reliant l afficheur et le contrôleur, disposant d un moteur pour pièce détaché j ai donc coupé la sortie contrôleur qui va vers le display, en effet les deux câbles sortant du contrôleur en plus de l alim, sont identiques mais mâle et femelle, la version accélérateur est différente et ne permet pas de récupérer un des deux connecteur puisque le port afficheur est a 8 pin/broches .
Après avoir donc équipé un adaptateur "ST link V2 / connecteur vitesse" il ne reste plus qu a faire un test pour vérifier que l on peut "dialoguer " avec le controleur .
Une sauvegarde du firmware existant ( program memory/data memory/option byte ) s impose avant toute chose .
Ensuite il ne reste qu a charger le nouveau "program memory", a la première utilisation la table "data memory" sera mise a jour avec les nouvelles informations, c est cette table qu il est possible de modifier pour l adapter a la configuration que l on a choisit .
Étant entendu que l archive mise a disposition par marcoq était prévu a l origine pour fonctionner avec le VLCD6, mes premiers test m on laissé croire que les niveaux ne fonctionnait pas, en fait au premier niveau j étais avec la puissance quasi max disponible et le changement de niveaux n était pas perceptible .
Puisque marcoq a aussi mis a disposition l architecture modifiable de la data memory j ai donc modifier cette table afin de l adapter a l afficheur LCD5, les quelques informations que j ai récolté sont donc mises en vidéo afin de vulgariser l usage du "ST link V2" pour la programmation et la maintenance du système .
Les données qu il est absolument nécessaire de modifier dans la data memory sont indiqués ici, il en existe bien d autre pour adapter le système a son usage personnel et elles sont documentés dans l archive mise a disposition par marcoq .
Pour une batterie en 11S j ai choisi ces paramètres :
0x004001 : 03 ( default value assist level factor x10 )
0x004003 : 16 amp = 10 ( default value battery max current )
0x004004 : 270W = 27 = 1B ( default value motor max power x10 )
0x004005 : 31.9 = 319-256 = 63 = 3F ( default value battery low voltage cut off x10 00 )
0x004006 : 256 = 01 ( default value battery low voltage cut off x10 01 )
0x00400E : 11= 0B ( battery nombre de cells )
0x004013 : 03 = 03 ( lvl 1 30% )
0x004014 : 07 = 07 ( lvl 2 70% )
0x004015 : 15 = 0F ( lvl 3 150% )
0x004016 : 30 = 1E ( lvl 4 300% )
0x004020 : 550w/25 = 22 ( max batt power div 25 )
Certains champ reçoivent une valeur décimale, d autres l équivalent hexadécimale, c est le code source qui détermine la valeur .
to be continued ...