Bonjour Mr. le visiteur, si vous lisez ceci, cela signifie que vous n'êtes pas enregistré. Cliquez ici pour vous inscrire en quelques étapes simples, vous pourrez profiter de toutes les fonctionnalités de notre Forum. Vous pourrez évidemment nous faire partager vos connaissances avec nous ! et voir les images ou vidéos postées


Note de ce sujet :
  • Moyenne : 0 (0 vote(s))
  • 1
  • 2
  • 3
  • 4
  • 5
Mais qu'est ce donc que ce bus CAN ?
#1
Je me suis posé la question depuis un bon moment.
J'ai lu la théorie, compris l'idée.
Il me reste à passer à la pratique pour vraiment comprendre la manière de communiquer avec ce Bus.

Vous avez certainement remarqué que vos batteries Lithium ont un bus CAN, certains de vos onduleurs aussi et même votre voiture qui communique en CAN via sa prise OBD-II

Alors j'ai commandé et enfin reçu tout à l'heure (qcq semaines d'attente, normal) mon cadeau de Noël. J'espère qu'il ne sera pas empoisonné.
Suis curieux de voir si j'arrive à causer avec mes Pylontech en CAN au lieu de RS232 comme actuellement.

Et vous ? avez vous déjà des connaissances à sujet, venez partager ! N'hésitez pas.
Moi je pars de zéro (sauf théorie) alors ce serait bien que je ne ré-invente pas la roue si vous avez déjà des réalisations sur CAN bus.

Voici le joujou en question:

   
   
jean.pustel@gmail.com aime ce post
Jean-Luc
Répondre
#2
j attend tes retours avec une enorme curiosité !!
jean.pustel@gmail.com aime ce post
Répondre
#3
J'ai pu faire le 1er essai en live. Ça fonctionne, le PC reçoit des trames.
Un très bon début. Je ne sais pas quoi en faire à l'instant. Un peu de reverse engineering et ce sera plus clair.
Y a du boulot, c'est certain.
Voici le câble maison.
Pinout:
Pin 1-2-3 ne sont pas utilisées.
Pin 4 est CAN-H (High) couleur Bleu
Pin 5 est CAN-L (Low) couleur Bleu/Blanc
Pin 6 est Ground couleur Vert
   
1 essai depuis le PC:
   
2ème essai, plus parlant, on voit qu'il cause à du Pylontech
   
Le chipset et un GD32 ARM Cortex-M4 Microcontrollers de chez Gigadevice
   
Jean-Luc
Répondre
#4
J'ai trouvé un peu de documentation "obscure" pour décoder ces trames.
Du coup il y a une correspondance entre une des trames et la documentation.
Ça montre que la doc semble être la bonne.

Voici la documentation Pylontech Low Voltage:

.pdf   CAN-Bus-protocol-PYLON-low-voltage-V1.2-20180408.pdf (Taille : 250.42 Ko / Téléchargements : 276)

Il existe une autre pour High Voltage si jamais:

.pdf   CAN-Bus-Protocol-Sermatec-high-voltage-V1.1810kW.pdf (Taille : 846.81 Ko / Téléchargements : 164)

Et voici une rapide déduction entre les données récupérées et la doc low voltage:
Ça devient tout de suite plus parlant Dodgy

   
Jean-Luc
Répondre
#5
Récupération des données du Bus CAN dans Nodered
Comme dirait Jean, il y a des plats tout fait pour cela. J'en ai en effet trouvé un qui va bien.
Étape suivante sera de décortiquer les trames CAN. Là il faut être ZEN.

Voilà à quoi ressemble la récupération des données. Simple non !?
Les valeurs à droite sont les données reçues brutes du CANbus. Elles arrivent par vagues de environ 1 seconde.

   
Jean-Luc
Répondre
#6
j adore quand un plan se deroule sans accros ^^
Répondre
#7
C'est vrai que jusque là, la théorie colle bien à la pratique.
Me réjouis de décoder ma première trame. Sur les 16 bits à l offset 23 vous avez la valeur de tension codée en big Indian ? et sur le mot offset 45 il y a les valeurs des cellules high voltage
Whoo ca promet :-)
Jean-Luc
Répondre
#8
:Smiley_2004082307083477: Voilà ma première trame décodée. Vraiment agréable avec Nodered. (je sais je l'ai souvent dit Shy )

Il y a déjà un analyseur de tampon (buffer analyser) tout prêt, il suffit de lui donner à manger avec l'aide de la documentation secrète de Pylontech.

J'ai donc pu sortir le SOC (State Of Charge) et le SOH (State Of Health) de l'ensemble des batteries. En effet, les valeurs données par le BMS sont des moyennes comme indiqué dans la documentation.

Voici ci-dessous les premières images de mon 1er essai fonctionnel.

Dans un premier temps:

  1. Présentation de la documentation utilisée
  2. Présentation du code mis en place dans Nodered pour récupérer et analyser les données reçues du bus CAN
  3. Affichage dans smartphoton de la page dédiée à CAN (c'est juste un draft) comparée aux données que je récupère déjà via le port Console (à droite)

Maintenant il ne reste plus que les autres trames à se farcir. C'est moins marrant du coup une fois que l'on connaît le chemin pour y aller. Mais bon, faut le faire.
Ensuite mise en page, modification de smartphoton pour activer ou non l'utilisation du bus CAN en plus du port Console.
Il y a encore bien du chemin !
Mais CAN bus n'est plus de la théorie. C'est devenu de la réalité pratique. But recherché pour moi.

   
gazzzzton aime ce post
Jean-Luc
Répondre
#9
Ces 3 nouvelles valeurs, soit Voltage, Ampérage et températures étaient bien plus compliquées à récupérer. Le format de celles-ci sont codées sur 16 bits signés en Little Endian. Donc inversées. En plus l'ampérage peut évidemment être négatif pour indiquer que l'on décharge la batterie.

   
Jean-Luc
Répondre
#10
Voilà j'arrive au bout de ce que la documentation peut m’informer sur les données Pylontech.
Conclusion à mi-parcours.
  • Le bus CAN c'est facile à interfacer via Nodered / Linux / smartphoton. Les données sont lisibles sans trop de soucis.
  • J'ai beaucoup moins d'informations que via la prise Console où là j'ai un maximum d'informations.
  • Par défaut il n'y a que peu d'informations sur les cellules, le nombres de grappes.
  • Par contre j'ai bien compris que je pourrais simuler un onduleur et donner des ordres aux batteries comme le ferait un onduleur. Par exemple je peux donner l'ordre de charge ou de décharge à celles-ci. Ce que je ne peux pas faire via le port console. Donc ça pourrait devenir un outil dangereux si on y fait pas gaffe.
  • Il me faudrait le HUB LV pour pouvoir regarder ce qu'il échange comme commandes. Alors si quelqu'un veut bien m'en prêter un pour pouvoir analyser ce trafic, je suis preneur Angel

Voici le tableau récapitulatif des données lues via la prise CAN sur mes US2000C.

   
jean.pustel@gmail.com aime ce post
Jean-Luc
Répondre
#11
Ton item me ramène en arrière et me rappelle mon age: tu parles de Little Endian  et je me demande si c'est ce que l'on nommait LSB ou MSB dans les années 80 (Most significant Bit) ou octet de poids fort ou faible qui s'inverse dans les FAT . En attendant persévère dans ton projet ,je n'ai pas de Pylontech pour le moment, mais je pourrais avoir une RENAULT et cest le même bus...Bon je sorts Hi .Bonne journée
Tant qu'on n'a pas essayé,ça marche! :D
Répondre
#12
Yes, that's exactly it, if you speak in English we use MSB or LSB and not LSD of course  ;)

C'était mes débuts dans le monde informatique aussi pour moi. En français octets de poids fort qu'ils disaient je crois chez Bull.
J'ai fait énormément d'assembleur, ça aide un peu.
Oui toutes les voitures modernes sont équipées par le bus CAN. Sinon il y aurait 2 à 3 km de fils pour relier tous les capteurs.
Ce qu'il y a d'intéressant, c'est que ça a fonctionné du 1er coup. C'est assez rare pour être souligné quand même

Ce sera quoi comme Renault ?

   
JaÇum aime ce post
Jean-Luc
Répondre
#13
Bonjour, les batteries sont donc arrivées, équilibrées, branchées au JKBMS.
Elles alimentent l'onduleur.
Comme je suis toujours à la recherche d'un routeur simple, je pense interviewer le BMS, mais j'ai un problème avant même de commencer; Je ne trouve pas les connecteurs CAN, GPRS, RS 232....
Je n'en ai jamais vu d'aussi petits, Ou avez-vous trouvé les vôtres?

Si c'est toujours d'actualité, voici un peu de littérature sur le "langage BMS".
https://blog.ja-ke.tech/2020/02/07/ltt-p...tocol.html

J'y ai aussi trouvé que tout comme les onduleurs, les BMS sont aussi des copies de copies avec presque tous le même logiciel.

Bon courage.
Tout le monde voit quand j'ai bu, personne quand j'ai soif.
Répondre
#14
Alors pour le connecteur, je l'ai acheté sur Aliexpress


[Image: Module-de-Conversion-USB-vers-CAN-assist....jpg_.webp]

Gazzzton a déjà bien déblayé le terrain, il a sorti les données de son JKBMS Cool  Via le port RS485.
Il y a des milliers d'informations qui en sortent.

Il m'a donné son code et j'ai commencé à l'intégré récemment dans smartphoton.
Tu peux évidemment le contacter pour plus d'infos. 

voici à quoi ressemble les infos récupérées de ses 16 cellules:

En format MQTT:

   

Dans mon soft:

   

De mon coté je suis en mode "draft" ou mode ébauche. Il y a le squelette.
De son coté il a déjà intégré les données dans son Home Assistant   :idea:

Il bosse un max, mais je sais qu'il va bientôt nous présenter son projet et ses réussites. Il arrive juste pas être partout.
Gazzzton, bientôt à toi de prendre la main sur ce sujet Blush
jean.pustel@gmail.com aime ce post
Jean-Luc
Répondre
#15
Merci Jim, mais je cherche juste les connecteur, ce sont des minuscules trucs !

[Image: irax.jpg]

Je raccorderai ça à une EW10 pour avoir toutes les infos "au salon" via le serveur WiFi.
Le BLE fonctionne bien, mais je suis trop loin :(
Bien sûr j'ai tenté de contacter le vendeur (chinois) mais c'est électroencéphalogramme plat ./
Vu la taille du truc je ne me sens pas d'y aller au fer à souder, même après un coup de blanc ;)

http://www.jk-bms.com/Upload/2022-05-19/1621104621.pdf
jlm aime ce post
Tout le monde voit quand j'ai bu, personne quand j'ai soif.
Répondre
#16
4-pin 1.25 Micro JST plug cable
JaÇum et jlm aiment ce post
Répondre
#17
Merci Gazzzzton !
Bon ça gaz pas terrible, les chinois ne sont pas pressés de livrer, ce sera au mieux début 2023.
Je vais chercher dans les boutiques de modèles réduits...
Si vous avez une adresse d'un livreur rapide, je suis preneur.
En tous cas merci pour la référence, ce genre de connecteurs n'est pas vraiment ma tasse de thé !
Tout le monde voit quand j'ai bu, personne quand j'ai soif.
Répondre
#18
va voir du côté des magasin de drone fpv , le mien vient d'un connecteur d'une camera fpv
JaÇum aime ce post
Répondre
#19
Bonjour, quels sont les paramètre pour le can0 sur Raspberry ?

J'ai essayé ça car la doc dit 500kbps :


Code :
sudo ip link set can0 type can bitrate 512000
sudo ip link set up can0

Mais candump ne me montre rien.

Merci,

Camille.
Répondre
#20
Voici ma documentation. Ça devrait aider :idea:



Installer les outils CAN :
sudo apt install can-utils

voir ceci au cas où : https://github.com/linux-can/can-utils

Configurer l’interface à 500,000 bits/second:

On peut lancer le script CAN-start.sh

sudo ip link set can0 type can bitrate 500000 restart-ms 100
sudo modprobe vcan

Code :
sudo
modprobe can_raw

sudo ip link add dev vcan0 type vcan
sudo ip link set up can0

Vérifier si les drivers CAN se sont bien chargés

lsmod | grep "can"
can_raw 20480 1
can 24576 1 can_raw
vcan 16384 0
can_dev 40960 1 gs_usb

Vérifier si l’interface est UP :

ip addr ls dev can0
9: can0: <NOARP,UP,LOWER_UP,ECHO> mtu 16 qdisc pfifo_fast state UP group default qlen 10
link/can

To send data to the CAN bus, use the cansend utility:

~cansend can0 123#1122334455667788

The above command will send a CAN message on can0 with the identifier 0x123 and the data bytes [ 0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77, 0x88 ]. Values are always treated as hexadecimal.

Pour afficher les valeurs temps réels du bus CAN, on utilise la commande candump:

candump can0

Ou plus précisément pour le Pi 
candump -ta -a -x can0


Basic tools to display, record, generate and replay CAN traffic
  • candump : display, filter and log CAN data to files
  • canplayer : replay CAN logfiles
  • cansend : send a single frame
  • cangen : generate (random) CAN traffic
  • cansequence : send and check sequence of CAN frames with incrementing payload
  • cansniffer : display CAN data content differences
Jean-Luc
Répondre
#21
Bonsoir Jean-Luc, désolé j'avais pas vu ton message, j'attendais la notification par mail, mais je ne sais pas pourquoi je n'ai rien reçu. Merci beaucoup pour ta réponse, je vais tester ça !

Camille.
jlm aime ce post
Répondre


Atteindre :


Utilisateur(s) parcourant ce sujet : 1 visiteur(s)
[-]
Synthèse
Please login or register to use this functionality.

[-]
discussions récentes
un peu d"aide info linky
C'est décidément incompréhensi...ghis.dlm — 10:08 PM
un peu d"aide info linky
J'avais pas fait attention suf...jlm — 08:50 PM
un peu d"aide info linky
Aucune entité:(j'ai modifié co...ghis.dlm — 03:36 PM
un peu d"aide info linky
je n'arrive pas à comprendre c...jlm — 11:39 AM
un peu d"aide info linky
J'ai fais ce que tu recommande...ghis.dlm — 05:08 PM
un peu d"aide info linky
ah oui, je peux tu essayer de ...jlm — 04:04 PM
un peu d"aide info linky
voici les modifications de yam...ghis.dlm — 03:50 PM
un peu d"aide info linky
il te manque à mon avis le: ...jlm — 03:31 PM
un peu d"aide info linky
voici mon yaml: ghis.dlm — 03:05 PM
un peu d"aide info linky
okay, 1er point ok :thumbsup: ...jlm — 02:20 PM
un peu d"aide info linky
Bonjour, Voici le résultat ...ghis.dlm — 12:31 PM

[-]
Rechercher








(Advanced Search)

[-]
Who's Online
There are currently no members online.

[-]
goals
95.1% of the way to our goal of 7,000 posts!
Only 344 posts left to go!

[-]
Statistics
» Members: 617
» Latest member: authoms
» Forum threads: 706
» Forum posts: 6,652

Full Statistics

>