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

dimanche 16 décembre 2018

Communiqué de presse « Serment du Jeu de Paume », de Gilets Jaunes aux journalistes et au président de la République



Fichier PDF Allocution.pdf

Un communiqué juste et réfléchi que je découvre aujourd’hui hui .

Le communiqué a ete repris et commenté entre autre sur le blog d etienne chouard .

 

Maj 28/04/2022 la video originale a disparue du web, je n irai pas commenter, c est inutile, heureusement la mémoire des hommes ne peut être effacé et demeure a jamais, depuis j ai rencontré et reçu un témoignage d un gilet jaune qui participait au manif a paris et m a expliqué la grande solidarité qui c est manifesté parmi certains gilet et a aussi évoqué la "haine " qui en tenaillait d autres, cette haine a prit racine et a permit que des dérapages inacceptables apparaissent, d une part parmi certains manifestants mais aussi de la part des pouvoir publique par l entremise des force de l ordre entre autre .

J avais déjà par le passé reçu le témoignage d un collègue confronté aux CRS suite au blocage d un dépôt puisque l entreprise sous traitante de france telecom ne les payait plus, j ai moi mm travaillé sur le réseau france telecom et je peux témoigné des dérives qui ont permis l établissement du réseau et la façon dont l entreprise publique a finalement pressuré les sous traitant en charge du déploiement et de la maintenance .

Il existe une omerta et des dérives inacceptable dans notre société, actuellement nous avons par exemple le cas patrick poivre d arvor, plus loin en arrière un dossier france info fait le point sur le cas d une employé syndicaliste, maureen kerney .

 

"Affaires sensibles". En toile de fond de l'étrange agression de Maureen Kearney, une guerre des chefs au sein de la filière nucléaire française


Ceci malgré tout devrai permettre la prise de conscience de beaucoup, aujourd hui il n est plus possible de cacher la vérité et il n y a que ceux qui profitent du système qui font encore le jeu de dupe auquel un jour il sera mit fin .

Que la grâce du seigneur de miséricorde vous accompagne si par hasard vous arrivez sur ces pages, je n ai nul autre dessein que d être un témoin et si par grâce il m est accordé de soulager la souffrance de mes frères alors ma venu en ce monde n aura pas été vaine .

namasté .



je rajoute ici un illustre gilet jaune







mardi 16 octobre 2018

Projet VAE en cours

Le projet terminé dans la phase de test du firmware et de la batterie



Montage d un semi-rigide sur base boost pourvu d une assistance a base de moteur TSDZ2



Le cadre dans sa version nue sans moteur .

Ici sur un cadre taille 44 ( entre M et L )

Fourche Rockshox Sektor Silver 130  mm









Un montage a blanc du moteur m a permis de constater que le décalage avec un boitier de pédalier de 73 mm est bien trop important, le moteur par lui mème induit un décalage de prés de 20 mm et les pédales ne sont donc plus dans l axe du vélo, ici nous avions pratiquement 30 mm, le décalage avec un boitier BSA de 68 mm est moins important ( de l ordre de 25 mm )
il peut être corrigé en utilisant une manivelle Bafang coté droit ( pédalier ) qui a un offset pratiquement négligeable
( offset de 15 mm environ pour les manivelles d origine Tongsheng ) .





Pour compenser le phénomène de décalage je rogne coté plateaux sur le boitier de pédalier environ 4/5 mm qd c est possible, ici c est possible mais cela implique de rogner aussi sur le bras arrière pour encastrer le moteur ...
Accessoirement le fait de recentrer le moteur permet de rectifier la ligne de chaine qui nécessite autrement l usage d un plateau en cloche qui n existe qu a partir de 42T, exit donc les développements intéressants en VTT, après rectification on retrouve l usage des deux plus gros pignons et des plateaux en 104 BCD ou  110BCD 5 trous ( étoile d origine du TSDZ2 ) .









La découpe du bras arrière a la dremel, après passage chez le tourneur, la mise en forme de la découpe ...














Vu sur la tranche du résultat avant de confier le cadre a un soudeur pour " remplir " les vides .









Après passage chez le soudeur et polissage des soudures a la dremel .













Montage terminé, 
poids du vélo avec le moteur et tous les accessoires mais sans la batterie ; 17.8Kg

C est conséquent, j espérais passer en dessous de 17kg ,
les points susceptibles d influer sur le poids :
tige de selle télescopique : exa form ksp 860 : environ 440 grs
fourche Rokshox Sektor : modèle avec plongeurs acier ( modèle silver ) environ 2.2kg soit 200 grs de plus qu une gold ( plongeurs magnésium ) ...
le protège plateau en acier peut être supprimé ( gain 150/200 grs ? )

Difficile de changer les jantes des Rodi black jack en 40 mm interne monté sur des Chao yan 2.80 pas vraiment lourds .
Le reste du vélo est a l avenant, une partie des composant vient de mon stock
dérailleur X9 Sram 9V, la commande de dérailleur a été racheté pour le montage .
K7 11/40 basique en stock .
potence courte, cintre court .
Edit maj 2020 : changement derailleur et K7, passage en 11/42 sur shimano M6000 SGS chape moyenne .


reste plus qu a l équiper d une mini batterie et aller tester ;)










Quelques images de détails du montage :


 La position de la chaine sur le 4 em pignon

au passage,
 l ajustage du carter moteur en partie avant .




 puis sur le 5 em pignon,
en gros la chaine est centrée,
mission réussi ...




Il reste de la place pour un pneu jusqu a 3.0

 L ajustage du bras inférieure pour encastrer le moteur





  K7 11/40, ici la chaine n a pas encore été réduite ( 112 maillons sur un standard 116 )   plateau NR 36t sur k7 11/40 .





ici le boitier de pédalier réduit ( a l origine c est un BSA 73 mm ) un peu plus de 4 mm de gagner qui viennent aussi corriger le Q-factor







Le vélo est " facile " d après les dires du premier testeur .

Pour l instant un réglage a 13A du contrôleur est suffisant pour animer l ensemble . 

Plus de tests son nécessaire pour valider une configuration optimale . 






Le travail sur la partie cycle etant terminé, le travail sur la partie moteur lui mm commence :

Reprogrammation du software gérant le contrôleur en utilisant le travail d un développeur qui a mit son programme en open source sur le forum : endless-shere.com  
Une adaptation utilisant l afficheur originel est apparu et c est cette version mise a jour que j ai utilisé en adaptant les data a mon usage .

Edit maj 2020 : passage sur la version v0.19 qui intègre le mode Emtb a la place du mode speed, un peu a la manière des système bosch récent, upgrade très intéressante du firmware .







La discussion sur le forum endless-sphere ( en anglais ) : 

La batterie est terminé, une 11S4P utilisant des cellules panasonic 33 cells 3200mah 10A et 11 cells 3400 mah 6.7A, soit une capacité théorique 13Ah en 40V nominal, 45,6V pleine charge ( je ne charge pas au maximum ) environ 520 Wh disponible donc .
Ne reste plus qu a fabriquer le support et reprogrammer le système pour qu il tire partie de cette tension plus importante, le but en 11S est de gagner environ 10% en RPM moteur et avoir donc, un peu plus d allonge .



Batterie installée, reprogrammation du firmware effectué .
Tests en cours, les données de paramétrage se trouve a la fin de l article sur la version open source de marcoq

samedi 6 octobre 2018

Upgrade tension de fonctionement moteur TSDZ2

 Maj edit du 18-10 ; test en situation
Si l ensemble controleur/afficheur accepte bien le montage avec une diode zener, il en va tout autrement en situation :
dans les fait le controleur ne fonctionne pas au delà d une alimentation en 11S .

06-10-2018
De base le TSDZ2 est prévu pour fonctionner en 36V soit 10S en Li-ion, le moteur accepte de passer en 12S voir 13S mais l afficheur ce met en défaut la plupart du temps a part sur quelques anciens firmware, il faut donc lui fournir une tension équivalente au 36V, l astuce est d intercaler une diode zener sur l alimentation du display, ici pour une batterie en 12S qui offre une tension de 50.4v pleine charge c est une zener 6.2V qui a été choisie .


La suite consiste a vérifier que le fonctionnement est en adéquation avec ce que l on souhaite .
Un montage avec une alimentation réglable permet de vérifier l étalonnage .






ici une mesure au moment ou l afficheur perd 1 barre ...


ici il vient de perdre la 4 em barre .

Les résultats :

 12s avec -6.2V soit 50.4V et 44.2V au display

1 barre a 43.5V soit 37.3V
2 barre a 42.8V soit 36.6V
3 barre a 42.1V soit 35.9V
4 barre a 41.2V soit 35V
5 barre a 40.4V soit 34.2V
6 barre a 38.9V soit 32.7V
erreur a 37V soit 30.8V

l afficheur envoie le code erreur a 37/12=3.08V / cells

On constate que la première barre est perdu aux environ de la moitié restante de la batterie, la suite est un incrément négatif qui est proche du résultat désiré .

Contrairement au d autres afficheurs qui indiquent le pourcentage approximatif de batterie restant, le LCD5 dont est pourvu le TSDZ2 ne commence a indiquer la charge restante qu a partir de la moitié environ de la batterie, c est a prendre en compte .
Le fonctionnement est identique et toujours constaté en utilisation normale avec une batterie de 36V,
l incrément ne commence vraiment qu a partir d environ 37V ce qui est grosso modo la tension d une batterie a moitié capacité et non 36V .

18-10-2018 : le test en situation réel a permis de constater que le moteur ne s enclenche pas pour une tension de fonctionnement correspondant a du 12S pleine charge .
l essai a été réalisé avec une batterie assemblé en 12S sans bms, ce n est qu en la transformant en 11S qui enfin le moteur a repris vie .
il n y avait aucun code erreur, toutes les fonctionnalité de l afficheur étaient présentes .
il est probable qu une reprogrammation du controleur soit nécessaire pour pouvoir fonctionner a une tension spécifique .

La suite logique est l exploitation du programme open source tel qu il est decrit sur le forum endless sphere avec peux etre un test sur l alternative proposée par eco-cycles