lundi 19 août 2019

Open source firmware pour le kit TSDZ2

C est la version ( stable release V0.19 ) qui fait la base de cet article .

Maj du 05/02/2020 : rapide wiki de la version 0.20 que j utilise ( en fin d article ) version specifique KTLCD3

La discussion initiale a l initiative du développement d une version open source du programme de gestion du controleur du moteur TongSheng ( TSDZ2 ) est l œuvre prépondérante de casainho un développeur qui poste sur le forum endless-sphere ( anglophone ) .

D autres développeurs se sont joint au développement et si aujourd hui casainho se polarise sur le portage vers les afficheurs de type P850C ou SW102, c est buba ( un autre dev ) principalement qui depuis quelque temps continue d améliorer la version et assure le portage sur l antique afficheur KT-LCD3 .

Cet article fait suite a mes deux précédents articles sur le portage de la version open source, étant donné que les bases de la programmation et les moyens employés ont été expliqués auparavant je ne m étendrai donc pas sur la partie programmation du controleur, elle utilise l adaptateur mentionné auparavant et la procédure du premier article ; c est a dire que la programmation se fait directement en utilisant l interface propre au ST-link, je veux dire le programme "ST Visual Programmer" .

En plus de la programmation du controleur la version originale du programme open source ( OSF ) nécessite la programmation de l afficheur, depuis le début c est un afficheur kunteng de type LCD3 qui a été choisi, pour la disponibilité et le faible cout du produit et pour ses possibilité d affichage .

Chaque version du programme nécessite donc de flasher le controleur et l afficheur avec la mm version et ensuite le paramétrage se fait via l afficheur, au contraire de la version marcoq qui est figé via l interface de contrôle en java et flashé ensuite .

ici une photo de durant la programmation ( flash ) elle nécessite d ouvrir l afficheur et de se brancher sur le port de programmation, certains beta testeur soudent a demeure un connecteur et font une fenêtre dans l afficheur pour ne pas avoir a le démonter et l ouvrir a chaque fois .


ne détaillant pas la procédure je vais donc me contenter de fournir une version simplifiée du wiki concernant cette version V0.19 .

0 : menu générale
0 : unité : (0)/metric, 1/imperial
1 : vitesse maximum en km/k ( 45 )
2 : circonférence roue (2050) 26P, (2215) 27.5
3 : odomètre
4 : pourcentage lumière écran jour (5)
5 : pourcentage lumière écran nuit/allumé (80) ( appui long sur up )
6 : mise en veille en mn (15)
7 : reset factory defaut ( mettre la valeur a 10, l afficheur va s éteindre, appuyer power 2 secondes jusqu a écran blanc, relâcher power, mettre en marche power )

1 : paramétrage batterie
0 : courant max ( en A )
1 : low cut-off : 29(36V), 39(48V) etc (34.8 12S)
2 :nombre de cells de la batterie
3 : résistance interne : calcul de la résistance interne R=U/I
4 : SOC Volt en temps réel
5 : état de charge batterie : 0/désactivé, 1/dégressif de 100 a 0, 2/ progressif
6 : tension de rest de la batterie ( -2V max environ )
7 : capacité batterie en Wh
8 : Wh consommé depuis le dernier reset .

2 : niveaux d assistance
0 : nombre de niveau (5)
1 : valeur du niveau 1 (0.5)
X : valeur du niveau concerné

3: assistance a la marche ( max 100 )
0 : activation : (1) activé, 0/désactivé
1 : niveau o : (0)
2 : niveau 1 : (25)
X : niveau X : (65)

4 : fonction cruise ( maintient )
0 : activation : (0)/désactivé

5 : paramétrage de l écran principale
0 : distance : (1)activé, 0/désactivé
1 : SOC batterie en Wh : (1)activé, 0/désactivé
2 : état batterie V et A : (1)activé, (0)/désactivé
3 : pédalage cadence et puissance : (1)activé, 0/désactivé
4 : énergie moyenne en Wh depuis la mise en marche :(1)activé, 0/désactivé
5 : temps écoulé TM ou TTM : (1)activé, 0/désactivé
6 : vitesse actuel/moyenne/max : (1)activé, 0/désactivé
7 : température moteur (1)activé, 0/désactivé
8 : vitesse choisie cruise 1/activé, (0)désactivé
9 : activation modification rapide de la puissance max ( en W )
10 : champ température : 0/rien, 1/temp moteur, 2/pourcentage batterie, 3/tension V batterie, 4/puissance en A soutiré, 5/pédale cadence, 6/vitesse moyenne

6 :fonction de startup BOOST
0 : activation fonction : (0)désactivation, 1/activation
1 : au démarrage : (1) chaque fois que la cadence ou le torque=0, 0/seulement si la vitesse=0
2 : limitation de la puissance : (1)activation =a la puissance max batterie, 0/non limité
3 : temps du boost : (2) en secondes
4 : transition bosst vers le mode normal : (3.5) en secondes
5 : lvl 1 boost multiplicateur : (4)
6 : lvl X boost multiplicateur : ( déterminer )

7 : paramétrage controleur
0 : mode moteur (0)48V, 1/36V, 2/48 exp, 3/36 exp
1 : puissance limite : (0)
2 : ramp Up en amp/s : (5) (4.5)
3 : démarrage moteur sans rotation pédale : (0)désactivé par défaut si pas d arrêt sur frein
4 : température limite/activation accélérateur : (0) pas de limite, 1/activation temp, 2/activation accélérateur
5 : temp mini ( 75 )
6 : temp maxi ( 85)

8 : mode légal
0 : activation (0)
1 : activation au démarrage (0), 1/activé
2 : vitesse limite (25)
3 : puissance limite : (0)désactivé, 1/activation
4 : puissance limite en W : (250)
5 : accélérateur activé en mode légal : (0)désactivé, 1/activation

9 : données technique avancées ( en lecture )
0 : ADC accélérateur
1 : accélérateur
2 : ADC capteur de couple
3 : capteur couple
4 : capteur cadence
5 : puissance de pédalage
6 : PWN duty cycle
7 : vitesse moteur ERPS
8 : FOC angle ( *1.4 pour la valeur en degré )





L écran ici montre les paramètres sélectionnés , le champ tension batterie peut afficher en cyclant avec le bouton power les différentes informations validées dans le paramétrage du menu 5 .

Cette version est aboutie même si quelque paramètres ne fonctionnent pas de manière optimum, startup boost par exemple n apporte pas de véritable amélioration, le choix 5/10/6 par exemple ne permet pas d afficher l intensité en temps réel .
Par contre la possibilité du choix 5/10/5 ( affichage cadence ) m est utile, pour d autre qui auront installé le capteur moteur avoir la température moteur monitoré sera préférable ;)
De plus le wattmètre incorporé semble fonctionner correctement et donne l indication des watts soutirés de la batterie, bien utile quand on connait précieusement sa capacité ou que l ont veut savoir si la capacité évolue a la baisse avec le vieillissement des cellules .



Si besoin je détaillerai, après avoir tester la V0.20 actuellement en alpha7 je mettrai aussi en ligne un wiki simplifié .

La version 0.20 me satisfait pleinement, le mode Emtb fonctionne parfaitement le parametrage est aisé :
un wiki simplifié .

0 menu basique
0 metrique ou imperial 0/1
1 vitesse max 50km/h
2 circomference pneu : 2050 ( 26p )
3 type de moteur 0(48V), 1(36v), 2( exp 48v), 3(exp 36v)
4 puissance max moteur : 550w
5 odometre
6 configuration lumiere
7 luminosité ecran jour
8 luminosité ecran nuit
9 auto power off 15 min
10 reset defaut

1 batterie setup
0 max batterie courant = 15
1 battery low cut off = 34.8
2 nombre de cells en serie 12
3 resitance interne batterie R = U / I R=0.xxx=xxx
4 SOC batterie
5 pourcentage charge batterie ( 0 defaut )
6 tension de reset du wattmetre incorporé 50v
7 capacité batterie 560
8 wattmetre energie consommé depuis dernier warm up

2 configuration : power assist riding mode
0 power assist activation : 0 desactivé, 1 activé
1 choix du nombre de niveau d assistance : 5
2 valeur de niveau de 1 , multiplicateur de la puissance humaine ( 0.2 )
X valeur du dernier niveau ( 2.1 )

3 torque assit mode
0 torque assit activation : 0 désactivé, 1 activé
1 nombre de niveau : 5
2 niveau 1 : a tester
X dernier niveau : a tester

4 cadence asssit mode
0 cadence assist activation : 0 désactivé, 1 activé
1 niveau 1
X dernier niveau

5 eMTB assistance
0 eMTB assist activation : 0 désactivé, 1 activé
1 eMTB sensibilité de 1 a 20 ( 8 choisit )

6 walk assist
0 activation du mode : 0 désactivé, 1 activé
1 valeur du niveau 1
x valeur niveau x

7 cruise
0 activation : 0 désactivé, 1 activé
1 / 2 / 3

8 set up principale
0 distance data : 0 desactivé, 1 activé (1)
1 SOC batterie : 0 desactivé, 1 activé (1)
2 etat batterie : 0/1 (1)
3 donnée pedales : 0/1 (1)
4 données watt consommé : 0/1 (1)
5 mesure du temps : 0/1 (1)
6 vitesse : 0/1 (1)
7 température moteur : 0/1 (1)
8 target cruise : 0/1 (1) = 0
9 ecran rapide puissance : 0/1 (1)
10 champ température alternative
10-0 rien
10-1 temp moteur
10-2 pourcentage charge batterie
10-3 tension ( volt ) instantanée batterie
10-4 intensité ( amp ) instantanée batterie
10-5 cadence pédalage
10-6 vitesse moyenne depuis warm up

9 street mode
0 activation : 0 desactivé, 1 activé
1 vitesse limite
2 puissance max activation : 0/1
3 power limit
4 activation accélérateur : 0/1 (0)
5 activation cruise : 0/1 (0)

10 menu avancé
0 acceleration : (0) 25% a tester
1 démarrage sans rotation pedales : (0) 0/1
2 conversion couple/poids (67)
3 poids sur pedales ...
4 capteur cadence : 0/1 0standard, 1 avancé ( calibration nécessaire )
5 lumiere utilisation 0/1/2/3/4/5/6/7/8
6 canal ADC optionnel (0) 0/1/2
7 temp mini
8 temp maxi

11 menu avancé technique
0 valeur ADC optionnelle
1 accélérateur/capteur temp
2 capteur couple ( torque ) valeur ADC
3 cadence pedalage
4 PWN duty cycle
5 vitesse moteur ERPS
6 FOC angulaire
7 pulsation capteur cadence



to be continued .

5 commentaires:

  1. Je viens de découvrir qu'il existait sur Aliexpress une version du TSDZ2 fournie avec un écran P850C.
    Sûrement un moteur plus récent :

    https://a.aliexpress.com/_d8fm0Tf

    RépondreSupprimer
  2. Bonjour,
    Article très intéressant et très détaillé qui devrait permettre à un néophyte comme moi de s'en sortir...
    Je viens de commander un kit TSDZ2 que je vais justement monter sur une Rock Rider 9.1 ;-)
    Par contre, je ne trouve pas la version du Firmware évoquée "Maj du 05/02/2020 : rapide wiki de la version 0.20" ?
    Quelqu'un parmi vous aurait une adresse ou un lien ?
    Merci d'avance et bonnes fêtes à tous.

    RépondreSupprimer
    Réponses
    1. j ai mis a jour le blog et rajouté un lien : https://endless-sphere.com/forums/viewtopic.php?f=30&t=104232&hilit=LCD3+TSDZ2+firmware+open+source
      le portage spécifique et le plus aboutie a la version LCD3 abandonné par casainho se trouve donc dans cet article .

      Supprimer
  3. Bonjour,
    Merci pour cet article très intéressant.
    Merci de compléter mes interrogations qui subsistent.
    J'ai acheté un Kit TSDZ2 500w 48v avec l'écran 500C qui est plus petit
    Le programme libre sera-t-il plus performant que celui usine?
    Le programme libre peut-il s'installer avec cet écran car chaque fois vous faites référence à un écran bien particulier?
    Où puis-je trouver une documentation pas à pas pour réaliser l'interface de dialogue avec un ordinateur avec la réalisation des câbles nécessaires?
    Ou puis-je trouver une documentation très détaillée et pas à pas pour introduire cette version libre? Votre description me parait encore pour moi assez difficile à assimiler.
    Comment sauvegarder la version d'origine qui est dans l'appareil quand il est neuf?

    Merci pour vos conseils éclairés

    RépondreSupprimer
    Réponses
    1. Je ne connais pas la version spécifique avec l ecran 500C, les articles sur ce blog font reference a la version stock du tongsheng, peux être que la version utilisant les écran 500C est plus performante mais je n ai pas suivi les reports des utilisateurs les possedant, la plus grosse communauté d usagers du tongsheng se trouve sur endless-spohere, un forum anglophone, quelques utilisateurs ont surement fait des reports sur le site en français cyclurba, sinon les articles que j ai mis sur ce blog, bien que perfectibles exposent a peu de choses pret toutes les procédures et utilisation du firmware open source jusqu aux versions debut 2020, ensuite je ne me suis plus intéressé aux développements .

      Supprimer

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