Mais qu'est ce donc que ce bus CAN ?
|
Messages : 2,069
Sujets : 158
Inscription : Mar 2022
Réputation :
4
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-Luc
Messages : 418
Sujets : 12
Inscription : Mar 2022
Réputation :
4
j attend tes retours avec une enorme curiosité !!
Messages : 2,069
Sujets : 158
Inscription : Mar 2022
Réputation :
4
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
Messages : 2,069
Sujets : 158
Inscription : Mar 2022
Réputation :
4
18-09-2022, 05:32 PM
(Modification du message : 18-09-2022, 05:33 PM par jlm.)
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:
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:
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
Jean-Luc
Messages : 2,069
Sujets : 158
Inscription : Mar 2022
Réputation :
4
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
Messages : 418
Sujets : 12
Inscription : Mar 2022
Réputation :
4
j adore quand un plan se deroule sans accros ^^
Messages : 2,069
Sujets : 158
Inscription : Mar 2022
Réputation :
4
19-09-2022, 09:49 AM
(Modification du message : 19-09-2022, 02:30 PM par jlm.)
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
Messages : 2,069
Sujets : 158
Inscription : Mar 2022
Réputation :
4
19-09-2022, 02:44 PM
(Modification du message : 19-09-2022, 02:45 PM par jlm.)
:Smiley_2004082307083477: Voilà ma première trame décodée. Vraiment agréable avec Nodered. (je sais je l'ai souvent dit )
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:
- Présentation de la documentation utilisée
- Présentation du code mis en place dans Nodered pour récupérer et analyser les données reçues du bus CAN
- 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.
Jean-Luc
Messages : 2,069
Sujets : 158
Inscription : Mar 2022
Réputation :
4
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
Messages : 2,069
Sujets : 158
Inscription : Mar 2022
Réputation :
4
20-09-2022, 06:03 PM
(Modification du message : 20-09-2022, 06:09 PM par jlm.)
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
Voici le tableau récapitulatif des données lues via la prise CAN sur mes US2000C.
Jean-Luc
Messages : 46
Sujets : 5
Inscription : Mar 2022
Réputation :
5
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
Messages : 2,069
Sujets : 158
Inscription : Mar 2022
Réputation :
4
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 ?
Jean-Luc
Messages : 33
Sujets : 3
Inscription : Jun 2022
Réputation :
0
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.
Messages : 2,069
Sujets : 158
Inscription : Mar 2022
Réputation :
4
Alors pour le connecteur, je l'ai acheté sur Aliexpress
Gazzzton a déjà bien déblayé le terrain, il a sorti les données de son JKBMS 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
Jean-Luc
Messages : 33
Sujets : 3
Inscription : Jun 2022
Réputation :
0
Merci Jim, mais je cherche juste les connecteur, ce sont des minuscules trucs !
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
Tout le monde voit quand j'ai bu, personne quand j'ai soif.
Messages : 418
Sujets : 12
Inscription : Mar 2022
Réputation :
4
4-pin 1.25 Micro JST plug cable
JaÇum et jlm aiment ce post
Messages : 33
Sujets : 3
Inscription : Jun 2022
Réputation :
0
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.
Messages : 418
Sujets : 12
Inscription : Mar 2022
Réputation :
4
va voir du côté des magasin de drone fpv , le mien vient d'un connecteur d'une camera fpv
Messages : 20
Sujets : 1
Inscription : Jan 2023
Réputation :
0
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.
Messages : 2,069
Sujets : 158
Inscription : Mar 2022
Réputation :
4
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
Messages : 20
Sujets : 1
Inscription : Jan 2023
Réputation :
0
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.
|
Utilisateur(s) parcourant ce sujet : 2 visiteur(s)
|
Synthèse
|
Please login or register to use this functionality. |
discussions récentes
|
Ajout écran OLED sur ma Wallb...
|
essaye
bishnoi — 11:31 PM |
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 |
Who's Online
|
There are currently 218 online users. [Complete List] » 2 Member(s) | 216 Guest(s)
|
|
goals
|
95.1% of the way to our goal of 7,000 posts!
|
Statistics
|
» Members: 617
» Latest member: authoms
» Forum threads: 706
» Forum posts: 6,653
Full Statistics
|
|
|