samedi 29 décembre 2018

Open source firmware - TSDZ2 TongSheng mid drive motor

 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 .
 

     
 
Gardez a l esprit que cette procédure n était utilisée que pour les premières versions du programme, elle peut malgré tout être utilisée pour extraire les archives originales ( le code d origine gérant le moteur ) dans ces 3 indexs le regroupant, attention depuis 2020 un nouveau contrôleur est sortit utilisant un autre chipset dans le contrôleur et donc tout le code est a priori obsolète, d après les premières informations on pourra par contre s y connecter via une interface BT .

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 ...

15 commentaires:

  1. Bonjour. La première procédure pour installer l'OSF était de flasher le display ET le moteur. Il me semble que la procédure que tu partage ne nécessite plus que que flasher le display. Est ce bien ça ? Merci - Fred

    RépondreSupprimer
    Réponses
    1. la procedure impliquant de flasher le moteur et ( le ) display ( en fait non pas un display stock mais un display customisable, a la base c etait un LCD3 ) concerne le portage complet du firmware open source, ici c est un portage partiel ne concernant que le controleur, c est un portage adapté en premier par marcoq un dev italien .

      Supprimer
    2. De rien, désolé pour la réponse tardive ;)
      Comme tu l as surement compris, cette adaptation ( portage en fait de l OSF développé a la base par casainho ) concerne l usage de l OSF avec les "display stock", elle a pour but d utiliser les fonctionnalités de l OSF sans nécessiter l usage d un afficher tiers a reprogrammer ( flasher ) .
      l on perd donc la possibilité d ajuster au display certains paramètres et nécessite donc une intervention de programmation a chaque fois que l on veut modifier un paramètre .

      Supprimer
    3. Pas de soucis !!! Je creuse un peu la question. Je souhaite un vélo discret et donc je penche vers un petit display (genre XH18) et j'vivais gardé un doute sur la nécessité de devoir flasher les deux éléments. Ce qui me semble encore confus c'est si il faut certain display particulier pour bénéficier de tous es avantages de l'osf.

      Supprimer
    4. Non, le changement de display permet simplement un paramétrage a la volée et accessoirement donne des informations indisponible sur le display d origine, quel qu il soit, XH18/VLCD5/VLCD6 .
      je n ai pas connaissance des versions vendu avec un display de type bafang, 850C par exemple .

      Supprimer
  2. la galere tu t'es trompé sur le gnd et swm ils sont inversé sur la photo! mais merci pour les infos :)

    RépondreSupprimer
    Réponses
    1. si tu parles de la photo ou sont documenté les couleurs, elle provient de l archive publié sur endless, sur mon montage les couleurs n ont aucune incidence et il fonctionne

      Supprimer
  3. Bonjour, merci pour toutes ces infos, pour ma part j'ai un tsdz2 750w avec un vlcd5 et me suis fait une batterie 14s, donc je voudrais faire accepter une tension de 60v au contrôleur et du coup tant qu'à faire, je voudrais ne pas avoir de limite d'assistance en fonction du nombre de tour minute et me faire un "mode dieu" quand je passe en turbo (les autres réglages de base me conviennent très bien). J'ai le câble relié au st-link v2 mais je possède un mac... Y aurait-il par hasard une version mac du programme ? Merci beaucoup pour votre aide, bonne journée et j'espère à bientôt ! Gilles

    RépondreSupprimer
    Réponses
    1. pas a ma connaissance, une archive linux existe par contre .

      Supprimer
  4. Bonjour
    Qui pourrait me former pour programmer des moteurs Tongsheng . J'avoue être dans la panade quand à la procédure de programmation.
    Amitié et joie
    Alain

    RépondreSupprimer
    Réponses
    1. Bonjour, sur le site cyclurba, il y a quelques fils de discussion dediés au tongsheng, sur ce blog, l essentiel du "modus operandi " est explique, la procédure est simple mais il est nécessaire de comprendre au moins les bases de fonctionnement d un moteur .
      De base le TSDZ2 vient avec une programmation qui est certes perfectible mais qui de l avis de qqs utilisateurs pas trop mal fait .
      le TSDZ2 ce programme via le port du capteur de vitesse, il faut donc acheter une interface adéquate ou la fabriqué soit mm ( j explique sommairement comment j ai procédé pour ma part dans un des articles de ce blog concernant le TSDZ2 ) il faut aussi acheter une interface USB stlink et la préparer ...
      Sur le forum cuclurba qqs fil de discusion sur la programmation, il faut la patience et le courage d aller a la peche aux informations ;)
      La plus grosse communauté d utilisateur se trouve sur le forum anglo endless-sphere

      Supprimer
  5. Salut !

    J'ai programmé que des 6 pins jusqu'à présent et là je suis devant un 8 pins et un code erreur apparaît lors de la lecture de toutes les tabs... Comme les 6 pins et 8 pins ne sont pas câblés pareil je me dis que ça vient sûrement de là. Est-ce que par hasard quelqu'un aurait la différence de câblage s'il vous plaît pour que je puisse m'en sortir ?
    Merci beaucoup et à tout bientôt j'espère !

    Gilles

    RépondreSupprimer
    Réponses
    1. Si tu veux parler des pins du connecteur principale qui va vers le display, il n influt pas sur la programmation, si c est un nouveau connecteur 8 pins sur le port du capteur de rotation sur la roue alors il me semble que le point a été traité sur endless, je n ai plus programmé depuis deux ans et donc je ne connais pas les possibles nouveaux connecteurs, bonne chance dans tes recherches .

      Supprimer
    2. https://github.com/OpenSourceEBike/TSDZ2_wiki/wiki/Flash-the-firmware-on-TSDZ2#user-content-Wire_the_STLinkV2_to_the_TSDZ2_wheel_speed_sensor_cable

      Supprimer

Commentaires modérés, seront publiés après validation