NMEA 2000 sur bus CAN

Bonjour,
Je cherche un logiciel et matériel capable de me donner les trames du bus CAN en temps réel car je ne dispose que d’un matériel USB CAN qui voit toutes les trames en temps réel mais qui ne me laisse pas l’autorisation de les récupérer moi même en temps réel, je récupère qd même les 5000 trames qui me permet du faire un programme d’analyse des trames NMEA 2000, voyez sur les photos jointes.
Si quelqu’un connaît bien, peut être pourrais je faire mon programme en temps réel sur PC sous Excel.
Merci d’avance.

L'équipage
11 oct. 2024
11 oct. 202411 oct. 2024

si c'était moi :-)

lastminuteengineers.com[...]torial/

on trouve aussi des adaptateurs CAN to USB

lequel utilises tu actuellement ?


11 oct. 2024

C’est celui-ci, avec son programme mais je n’en trouve pas avec lequel je peux programmer


Lady_C:le pilote pour connecter ce convertisseur UBS est un FTDI ou un CH340.
il installe donc une connexion série, et tu dois pouvoir récupérer toutes les trames sur cette connexion série.
il faudra ensuite les analyser.
le programme fourni capture d'ailleurs les trames sur cette connexion série. dans ton VBA Excel, tu lis la trame provenant d'une connexion série plutôt que du fichier exporté (CSV ou TXT ou ...) ·le 11 oct. 12:51
Huahine2:Merci, C’est bien ça Lady_C, c’est exactement ce qu’il faut que je fasse, il s’agit d’une connexion FTDI mais je ne sait pas, pour l’instant, comment y accéder ·le 11 oct. 12:59
11 oct. 202411 oct. 2024

Hello,
Chez Yacht Devices tu peux trouver du hard en USB ou en wifi , les gateways, et du soft pour explorer les pgn:
www.yachtd.com[...]/
www.yachtd.com[...]ay.html
www.yachtd.com[...]ew.html
Sinon si tu sais programmer ils ont aussi une interface pour alimenter du Python:
www.yachtd.com[...]ay.html
Ou bien en DIY pur il y a aussi des bibliothèques en C++ pour Arduino : github.com[...]MEA2000
Amicalement.
FX


11 oct. 2024

Je n’ai pas bien compris la demande, mais sous Linux, la commande « candump » permet de récupérer les trames en temps réel.

Après, il y a aussi des plugins sur SignalK pour analyser les trames en quasi temps réel.

Et enfin, chez Yach Devices, il y a le programme CAN Log Viewer qui permet aussi tout ça, sous Windows, Linux et Mac OS.


11 oct. 2024

Merci à tous le monde, je vais essayer de récupérer les trames du FTDI car c’est sur que le logiciels récupère les trames mais je ne sait pas si son accès n’est pas verrouillé.
Je n’y connais pas grand chose avec les FTDI mais je vais qd même essayé.


Lady_C:dans le gestionnaire de périphériques, et dans le logiciel fourni, tu vois une connexion série appelée COM quelque chose (COM4, COM5, COM6, etc)je ne peux pas te proposer de code vba.net pour Excel, les rares fois où j'ai géré une connexion série, c'était avec un programme externe qui envoyait les données à Excel.
mais tu trouveras des exemples de lecture en cherchant sur le net, avec des mots clés comme "excel vba.net connexion série"·le 11 oct. 14:03
11 oct. 2024

Le problème c'est que lire le bus CAN sur une interface série c'est 0,1% du problème. C'est à dire qu'une fois que tu pourra lire les trames en binaire direct car le convertisseur ne fait qu'une conversion au niveau physique de CAN vers USB, tu ne sera pas très avancé car il te reste 99,9% à faire.
Là tu as plusieurs solutions:
- Utiliser un framework existant comme OpenPlotter qui fait déjà (et plus) tout ce que tu veux faire, mais qui ne fonctionne pas sous Windows et de plus je ne suis pas sûr que l'interface CAN-série soit supportée.

  • Utiliser l'utilitaire CAN Log viewer de Yacht Device, mais je ne suis pas certains qu'il fonctionne sur une liaison série. A priori c'est fait pour fonctionner avec les convertisseurs Ethernet ou WiFi de la même marque.

  • Si tu es fort en C++ et que tu as un environnement de développement tu peux adapter la librairie

  • Si tu es fort en Python, j'ai un framework qui tourne sous Windows (avec quelques restrictions) mais qui peut facilement être adapté pour décoder les trames NMEA2000 sur liaison série

Bon courage


MacJL:D’après ce que j’ai vu, CAN Log Viewer est capable d’utiliser un port série. Pour avoir échangé pas mal avec le support de Yacht Devices, ils sont très ouverts. Donc à tester, c’est gratuit !·le 11 oct. 20:01
Now:Il y a des softs qui font déjà ça très bien, pas la peine de se lancer dans un dév, sauf si c'est par plaisir de faire soit même bien sur.Le soft NMEA Reader de actisense (déjà cité plus haut je crois) récupère le flux NMEA sur un port série l'interprète et l'affiche de façon compréhensible. IL est gratuit, normalement fait pour tourner avec le hard de la même marque mais du moment qu'il reçois sur un port série, ça doit fonctionner quel que soit le hard.·le 11 oct. 21:07
sterwen:Le soft d'Actisense ne fonctionne qu'avec l'adaptateur Actisense qui lui est bien en USB. Je doute fort également que le CAN Log viewer soit capable de décoder du raw CAN arrivant en direct sur un port série. Il est capable de décoder ce qui a été préalablement transcodé par un de leurs adaptateurs. Vérifiez bien. J'ai toute une suite de décodage de NMEA2000 à partir de plusieurs sources et donc une certaines expérience.Il y a en fait très peu de logiciels de décodage NMEA2000 existant et disponibles de manière libre et qui fonctionnent directement à partir de l'interface CAN. Actisense à le sien mais il est fermé, ou alors il faut utiliser leur format (non public) ou leur API (accès réservé également).·le 11 oct. 21:38
Now:J'ai dit port série pour être générique, mais série ou usb c'est pareil, disons un port com au sens windows. A priori (mais je ne l'ai pas testé moi même) le soft actisense fonctionne avec du hardware générique, il y a des gars qui l'ont utilisé, si je retrouve le lien je le mettrais ici. Mais c'est vrai que ne l'ayant pas fais moi même je ne peux être totalement affirmatif car c'est possible de se verrouiller sur un hard au niveau soft. ·le 11 oct. 21:56
Now:voila un gars qui à l'air d'avoir fait ça avec un ESP32 et qui utilise NMEA Reader de Actisense . zappedmyself.com[...]ea2000/ ·le 11 oct. 22:02
sterwen:Il n'y a pas de hardware générique CAN/USB et honnêtement j'ai des grands doutes sur le machin présenté. Le gars qui l'avait utilisé dans mon équipe est parti et cela avait servi à des test de communication basiques sans tester les couches hautes de protocoles et en point à point.Il y a plein de devices qui transmettent des trames CAN sur USB, mais ils ont chacun leur spécificités pour au minimum identifier les trames. Certains permettent une intégration directe au niveau socketcan mais avec un driver spécifique.·le 11 oct. 22:05
sterwen:@Now. Le gars en question utilise un Actisense NGT-1 (modèle ancien qui n'est plus vendu). Ce n'est pas un adaptateur CAN-USB, c'est un système qui décode le NMEA2000 (au moins partiellement dans l'adaptateur).·le 11 oct. 22:08
Now:Je ne comprends pas, tu dis "il n'y a pas de hardware générique CAN/USB et tu en parles toi même? Et pour le lien que j'ai mis, même si j'ai pas pris le temps de tout lire, il n'utilise pas le NGT-1 qu'il trouve trop cher, il le remplace par un hardware générique CAN/USB, peut être assemblé par lui même (ou pas?) car c'est à base d'ESP32 qui à un port USB et c'est facile de lui adjoindre un module CAN (c'est quasi du légo) . C'est bien du hardware générique non? ·le 11 oct. 23:22
Now:on à sans doute juste une différence de vocabulaire mais j'ai l'impression qu'on parle un peu de la même chose, sauf que moi je pense (sans en être certain) que le soft actisense peu fonctionner avec un autre hardware que celui de chez eux. Si j'ai un moment je testerais PS : J'ai aussi un peu d'expérience dans ce domaine, j'ai bossé en R&D dans l'embarqué pas mal d'année, certes c'était il y a quelques années, mais j'ai pas encore tout oublié 😉·le 11 oct. 23:27
Lady_C:@Now : pas forcément un ESP32 dans le plug, mais juste un convertisseur CAN-Serial et une puce Usb2Serial FTDI ou CH340·le 12 oct. 09:46
sterwen:Autant pour moi, j'avais lu l'article un peu en diagonale. En fait il a implémenté partiellement la librairie de ttlapplainen sur un ESP32 pour émuler un NGT-1 de Actisense. De ce fait tous les soft qui utilise le format NMEA2000 Actisense fonctionnent, mais ce ne sont pas des softs Actisense, c'est plutôt toutes applications de type SignalK et donc aussi OpenCPN. Le format Actisense en question c'est de l'ASCII pseudo NMEA0183.Le problème avec les adaptateurs c'est de savoir quelles couches du protocole CAN/J1939/NMEA2000 sont traitées dans l'adaptateur. Les adaptateurs à 20$ ne font que la couche 1 et il faut d'ailleurs un protocole spécifique pour la séparation des trames.·le 12 oct. 09:57
sterwen:@Lady_C Oui mais ce est fait avec le ESP32 n'a rien à voir avec la conversion CAN-série. Le système proposé avec l'ESP32 fait des traitements qui seront à faire dans le processeur hôte su on met un simple convertisseur CAN-Série.·le 12 oct. 14:06
Now:oui, c'est ça,l'ESP32dispose d'une librairie NMEA2000, excellent travail effectué par Timo lapplainen, merci à lui car la spec NMEA2000 n'est pas publique donc c'était pas facile à faire. L'accès à la spec NMEA2000 est payant et trop cher pour les particuliers ou petites entreprises. ·le 12 oct. 14:19
Lady_C:@sterwen : tout à fait d'accord, bien entendu, mais dans le cas du plug en photo, je pense que c'est le logiciel fourni qui fait le détramage.
dans github.com[...]nalyzer , on note la nécessité d'un arduino (ou assimilé) ou d'un raspberry·le 12 oct. 14:24
sterwen:Ok, on est bien tous d'accord. Effectivement la librairie C++ de Timo Lapplainen est utilisée presque partout. Comme je l'ai dit plus hait j'en ai développée une similaire en Python. Cela nécessite un peu plus de puissance de calcul mais ce n'est pas dramatique/ Cela ne va pas tourner sur un ESP32, mais cela fonctionne bien sur un RPi ou un iMX8.Je vais regarder pour intégrer le convertisseur CAN-série dans mas interfaces supportées.Si certains sont intéressés pour tester et/ou faire du développement avec, je suis preneur.·le 12 oct. 15:09
11 oct. 2024

J'ai trouvé dans les stocks du labo le même adaptateur. Dès que j'ai quelques minutes je fais un câble et je je regarde ce qui sort du côté USB.


11 oct. 2024

Bonjour,
Il y a aussi WireShark que j’ai mais je ne vois pas comment l’utiliser, ce que je fais est juste un petit amusement car pour l’instant j’arrive à décoder une cinquantaine de PNG et ça me suffit mais je vois l’intérêt que ça peut avoir pour des férus des réseaux en voiliers, j’ai d’ailleurs acheté NavDoctor qui est un peu simpliste et mon programme apporte beaucoup d’informations au sujet des PNG et leurs valeurs mis en formes dans les octets de données: vitesse, profondeur, position, vent, Température, Niveau des cuves, pression et même les MMSI avec le nom du bateau, position de la barre etc.


sterwen:On peut travailler ensemble :-) J'ai tout ce qu'il te faut·le 11 oct. 21:40
11 oct. 202411 oct. 2024

Juste pour info, voilà ce que j’obtiens en quelques minutes avec SignalK, un simple adaptateur CAN-USB Canable a 20€, et le plugin n2k-debug.


12 oct. 2024

@Huahine2 Je me suis un peu plongé dans la doc de Seedstudio et le support logiciel pour faire du développement en utilisant l'adaptateur est minimal.
Il fournissent un petit GUI pour faire des tests, et je pense que c'est pour cela que des personnes de mon labo l'avait acheter, mais pour faire ce qui tu veux faire pas simple du tout.

Le mieux serait d'acheter un adaptateur déjà supporté par Canboat ou par moi (idem ttlapplainen). Si le driver offre une couche socketcan c'est parfait.


12 oct. 2024

Merci à tout le monde pour votre investissement, pour l’instant je n’avance pas concrètement mais j’apprends au fur et à mesure et je cherche un appareil qui ne coûte pas trop pour réaliser mon programme final, je sais qu’il existe des applications qui font le travail mais je veux pouvoir faire des écrans personnels et que tout le monde puisse en faire sans avoir de logiciel particulier à par Excel et pouvoir analyser les différentes trames pour comprendre mieux ce qu’il se passe sur le réseau, c’est très intéressant de voir que tel PNG demande à un autre (Request) et l’autre lui répond et de voir les valeurs en degrés, mètre, tension, Ampères, texte et bien d’autres.
Mon programme n’est pas utile car j’ai sur mon bateau toutes les informations grâce notamment à Simarine, NKE, Raymarine, Garmin et Victron qui ont un matériel super mais ça m’a demandé pas mal d’études pour raccorder tout ce matériel mais on ne sait jamais.


Bonjour Huahine2,

To post montre que tu n'as pas la maîtrise du NMEA2000 et je pense que tu es parti du mauvais côté pour réaliser le logiciel que tu veux faire. Comme je l'ai déjà écrit la partie interface CAN, en écoute seule, est une toute petite partie du problème. La complexité n'est pas au niveau de l'interface avec la CAN, mais au niveau du protocole lui-même et du décodage des PGN. En plus, il n'y a pas de spécification publique et donc il faut recouper des sources et faire du "reverse engineering". Si tu maîtrise bien ce qu'un un protocole de communication et la programmation afférente, c'est jouable mais long, dans le cas contraire cela va demandé un investissement en temps considérable.

Le plus simple dans ton cas, c'est d'utiliser des couches logicielles qui vont te simplifier la vie tel que Canboat ou SignalK et tu n'aura plus qu'à décoder du Json pour faire ton affichage. Je peux proposer une solution similaire (avec du Json ou du Grpc, voir MQTT).

Ensuite, pour le hardware, je ne vois pas le point de faire une petite économie. Une interface NMEA2000-USB coute maximum 250€, mais avec cela tout a plein de solutions, en plus tu as une solution isolée qui te permet de connecter ton PC sur ton réseau NMEA2000 en toute sécurité.

Contactes-moi en MP si tu veux plus d'infos.


2013-05-31 - Près de Stokksund (Norvège) Phare Kjeungskjær

Phare du monde

  • 4.5 (76)

2013-05-31 - Près de Stokksund (Norvège) Phare Kjeungskjær

2022