Homemade Marklin - création d'un circuit intelligent

Avatar de l’utilisateur
Delias82
Messages : 2292
Inscription : 20 mars 2012 00:00
Prénom : Sylvain
Pays : Suisse
Région : Venoge
Echelle : HO 3rails M&K

Re: Homemade Marklin - création d'un circuit intelligent

Messagepar Delias82 » 28 mai 2019 23:08

Bonsoir

Ouille, cela part mal!
Le bus CAN est un bus différentiel, c'est à dire que c'est la différence de tension entre CANH et CANL qui est importante, mais la tension de chacune de ces lignes par rapport à la masse n'est que peu significative.
Avec un AO, mettre simplement CANH sur l'entrée + et CANL sur l'entrée - puis lire la sortie... (quoique selon la configuration cela peut ne pas marcher)

Mieux utiliser le MCP2551 au lieu de l'AO, résultat meilleur question impédance des lignes.

Ensuite reprendre la doc de Märklin, la vitesse du bus est de 250kbs, mode complexe (29 bits d'entête) et de 0 à 8 bytes de donnée. Configurer le MCP2515 pour cela et lire toutes les informations reçue puis les envoyer sur le port série. Pas besoin de ce prendre la tête avec un oscillo pour analyser la trame qui est bien longue.
Il y a des trames de vie (émise à espace constant pour analyser le réseau CAN), les retirer de l'analyse (une bête comparaison sur la valeur de la trame) pour ensuite ne lire que les trames de commande.

Bonne suite

Sylvain
---------------------
Voies M et K, CS2, 60128, 6021 et 6070/71.
Mon ancien réseau ici.
Service de digitalisation.

Ce forum est un lieu d'échange. La réponse à une question peut intéresser d'autres personnes. Toute question technique par MP restera donc sans réponse...
Prod'YJ
Messages : 17
Inscription : 07 oct. 2015 16:20
Prénom : Yann
Pays : Belgique
Région : Namur
Ville : Viroinval
Echelle : HO

Re: Homemade Marklin - création d'un circuit intelligent

Messagepar Prod'YJ » 28 mai 2019 23:53

Bonsoir Sylvain,

Evidemment que ça part mal, je me lance dans un domaine bien trop avancé pour mon niveau! Mais c'est comme ça que j'apprends le mieux, c'est aussi le but de ma démarche :D Déjà là, je ne suis encore arrivé à rien faire et j'ai appris des tonnes de choses en quelques jours à peine ;)

J'ai tenté de bêtement brancher les deux signaux CAN sur les deux entrées d'un aop, sans grande surprise ça n'a pas donné grand chose, juste un signal continu (le CANH est casi tout le temps à une valeur plus haute que le CANL, je pense que même quand ils ils sont supposés être tous deux à 2.5v il y a une différence dans ce sens). Du coup j'imagine que je vais tenter de me trouver un mcp2551 hors d'un module comme je l'ai pris pour le moment.

Concernant la docu de Marklin sur le CAN, je pense que j'ai mal cherché... Tout ce que j'ai trouvé est en allemand et mon niveau n'est clairement pas assez avancé que pour comprendre des notions pareilles... Je vais retourner fouiller internet après ce document ;) Je prends cependant bonne note des infos que tu viens de me fournir, si ça se trouve elles suffiront (j'en ai aucune idée ^^').

Yann.
Prod'YJ
Messages : 17
Inscription : 07 oct. 2015 16:20
Prénom : Yann
Pays : Belgique
Région : Namur
Ville : Viroinval
Echelle : HO

Re: Homemade Marklin - création d'un circuit intelligent

Messagepar Prod'YJ » 29 mai 2019 18:50

Bonjour à tous :)

J'ai poursuivi mes recherches et j'ai trouvé cette vidéo: https://www.youtube.com/watch?v=xEt6RGqBfX4

Le gars explique que souvent, le module que j'ai acheté arrive avec un crystal à 8MHz alors que les librairies sont codées pour du 16 MHz. Après vérification c'est mon cas, je vais donc travailler à corriger les librairies (je n'ai pas de crystal sous la main pour remplacer l'original :/ )

Au passage, j'ai trouvé ça. C'est la docu du bus CAN de la MS1 (et CS1 et ECoS). Je me suis dit que j'allais le mettre ici, sait-on jamais que ça puisse aider quelqu'un ^^
http://www.tsdbvba.be/handleidingen/ECoS-FR-2017.pdf
http://forum.locoduino.org/index.php?topic=604.0
http://www.skrauss.de/modellbahn/CAN_Doku_V101.pdf

Yann.
Prod'YJ
Messages : 17
Inscription : 07 oct. 2015 16:20
Prénom : Yann
Pays : Belgique
Région : Namur
Ville : Viroinval
Echelle : HO

Re: Homemade Marklin - création d'un circuit intelligent

Messagepar Prod'YJ » 09 juin 2019 23:50

Bonsoir à tous,

Après quelques jours d'absence sur le projet (bah oui, examens :x ) je m'y suis remis. Comme dit dans le précédent post, j'ai tenté de modifier la librairie Railuino afin de la rendre compatible avec mon module MCP2515 possédant un quartz à 8MHz et non 16MHz. Spoiler alert, ça marche toujours pas :|

Je me suis amusé à fouiller la docu du MCP2515 et d'autres librairies. J'ai trouvé les valeurs à mettre dans les registres adéquats (0x00 dans CNF1, 0xb1 dans CNF2 et 0x05 dans CNF3) pour avoir un bit de 4µs de long, c'est à dire 250kb/s. Sans oublier de bien activer les interruptions et tout ce qu'il faut évidemment. J'ai aussi testé de lire ces registres après écriture, pour m'assurer que tout se passe bien. A priori, mon module est correctement programmé, de ce que je peux comparer entre ce que j'ai fait et d'autres librairies. Malgré ça, rien du tout... A chaque ordre envoyé, la librairie me dit "timeout". J'ai pas encore pris le temps de regarder à quoi ça correspondait mais quoi qu'il en soit, c'est pas bon signe. Puis de toute façon, il ne se passe rien sur les rails ni dans la ms connectée.

J'ai aussi encore un peu testé des mesures de signaux (à nouveau avec un aop en différentiel et d'autres montages pas très nets mais qui devraient fonctionner) mais rien de ce que j'ai capturé ne ressemble au protocole CAN.

Je commence doucement à être à court d'idée donc si quelqu'un en a à me proposer, je suis tout à fait preneur :D

A bientôt,

Yann.
Prod'YJ
Messages : 17
Inscription : 07 oct. 2015 16:20
Prénom : Yann
Pays : Belgique
Région : Namur
Ville : Viroinval
Echelle : HO

Re: Homemade Marklin - création d'un circuit intelligent

Messagepar Prod'YJ » 21 juin 2019 10:42

Bonjour à tous,

Ça y est, je viens enfin avec de bonnes nouvelles! :)

J'ai d'abord continué à m'enfoncer avec mes histoires d'analyse de signaux. Je voulais simplement m'assurer que mon MCP2515 était réglé correctement programmé (et j'ai su conclure que c'était le cas). J'ai fait des recherches un peu dans tous les sens et rien n'allait. Au final, la seule source persistante d'ennuis potentiels était le matériel Marklin que j'utilisais, je me suis donc décidé à acheter un 60116 (Gleissbox) qui est arrivé hier. Bah ça marche nickel, j'ai enfin contrôlé une loco depuis mon PC :D

La raison de tout ça, Sylvain nous l'avait donnée dès le départ: le CAN utilisé par ESU pour la MS1 et la CS1 est différent de celui de Marklin... Sylvain avait évoqué de petites différences, je m'étais donc dit qu ce ne serait pas grand chose et que ça ne permettrait pas une incompatibilité des deux systèmes. De plus, la CS2 étant capable de communiquer avec une MS1, il me semblait évident que les deux systèmes étaient très semblables. En fait rien de tout cela: après avoir pris mon courage à deux mains, avoir ressorti le peu d'allemand qu'il me reste et avoir décortiqué les deux fichiers décrivant les deux protocoles CAN, il s'avère qu'ils sont bien plus que un petit peu différent. Il serait peut-être intéressant de créer un Railuino compatible avec le système ESU (je n'ai rien trouvé d'existant pour le moment), il n'est pas impossible que je m'y attarde dans un futur plus ou moins proche. De plus, cela pourrait permettre de faire communiquer une MS2 et une MS1 sans CS, ça pourrait être intéressant!

Quoi qu'il en soit, une étape de passée pour moi. Je vais désormais m'attaquer à l'utilisation d'un S88 (j'en ai un qui traîne dans mes armoires). La tâche semble très simple, d'après quelques rapides recherches le S88 n'est qu'un registre de lecture, rien de très compliqué. Je suis tombé sur le schéma électronique du bestiau et c'est conçu très simplement. De plus, il existe la fonction shiftIn() dans le code Arduino faite pour la lecture de registres comme ceux utilisés dans le S88, ce qui va encore plus me simplifier la tâche.

Après cela, je pourrai doucement revenir dans ma zone de confort, le back engineering sera terminé :)

À bientôt,

Yann.
Avatar de l’utilisateur
@l1rc30
Messages : 3433
Inscription : 14 août 2008 01:00
Prénom : Alain
Pays : France
Région : Côte d'Or et Ardèche
Echelle : HO et Z
Contact :

Re: Homemade Marklin - création d'un circuit intelligent

Messagepar @l1rc30 » 21 juin 2019 14:28

bonjour,
je suis ce fil avec mes petites connaissances :?
tu parles de Railuino, quel différence avec Locoduino ?
pourrais tu nous faire profiter des fameuses différences entre les 2 CANs
je cherche (sans plus) à modifier une centrale de MM1 à MM2 (une 6023 qui est interfacée sur mon réseau ludique)
Cordialement
al1
2 x 6021, 2 MS1, 1MS2, 2 60052 , 1 CS2 60214 V2 et une autre CS2 60215 (échange (presque 1an) d'une CS1 HS)

Docuforum

Réseau Modulaire Ho
Réseau Fixe Ho voies M full digital
Réseau Pliable Ho
Prod'YJ
Messages : 17
Inscription : 07 oct. 2015 16:20
Prénom : Yann
Pays : Belgique
Région : Namur
Ville : Viroinval
Echelle : HO

Re: Homemade Marklin - création d'un circuit intelligent

Messagepar Prod'YJ » 21 juin 2019 19:24

Bonjour Al1,

Railuino est une librairie pour Arduino. Si tu ne sais pas ce qu'est une librairie, tu peux voir ça comme une boîte à outils de programmation. Au lieu de coder des choses compliquées, on fait appel à des fonctions codées par un gars (souvent plus calé dans le domaine) qu'il a partagées sur le net. Un exemple courant est l'utilisation d'un servomoteur: au lieu de programmer des timers avec des registres dans tous les sens (ce sont parfois des notions complexes pour les débutants), on utilise une librairie toute faite grâce à laquelle quelques simples lignes de code permettent d'utiliser le moteur.
Le but de Railuino est d'être capable de communiquer avec le matériel de Marklin et travailler en parallèle.

De ce que j'ai vu de Locoduino, c'est un peu plus vaste qu'une simple librairie. Il s'agit plutôt d'un projet à part entière visant à remplacer les outils de commande fournis par Marklin (d'ailleurs le site commence par introduire l'arduino aux aventureux ainsi que les bases du code C++). Ainsi, au lieu de passer par le bus CAN de Marklin, Locoduino génère directement le signal envoyé dans la voie. Locoduino utilise aussi le bus CAN mais d'une manière différente: le but est ici de faire communiquer les arduinos entre eux sans qu'intervienne le matériel Marklin.

Une autre différence notable est que Railuino n'a plus été mis à jour depuis 6 ans (sur Github en tout cas, un site de partage de codes en tous genres et notamment utilisé par Arduino) là où Locoduino semble toujours actif.

Au final, Railuino et Locoduino ont le même objectif mais sont implémentés différemment.

Si j'ai préféré Railuino à Locoduino, c'est justement parce que Locoduino est directement connecté au rail. En cas de gros problème tout le matériel est exposé. Avec Railuino il y a moins de risque: une erreur signifie un signal incompris par le 60116 qui se contentera de ne rien transmettre au rail.

Concernant les différences entre les deux CAN, je ne vais pas m'hasarder à expliquer tout ça trop vite. Ma compréhension des deux fichier n'a été que très approximative. Je pense avoir compris que pour le CAN de ESU, il est nécessaire que chaque appareil se "présente" aux autres (comme Master ou Slave) ce qui n'est pas nécessaire avec le CAN de Marklin (j'insiste, information à prendre avec beaucoup de pincettes).

Pour ton projet, il faudra demander de l'aide à plus compétent que moi, désolé... Je ne connais même pas la différence entre MM1 et MM2 :/

Voilà, j'espère avoir répondu à tes interrogations ;)

Yann.
Remy
Messages : 132
Inscription : 12 oct. 2014 16:20
Prénom : Remy
Pays : France
Région : Bretagne
Ville : Phare ouest
Echelle : HO, CS2, MS2, voie C

Re: Homemade Marklin - création d'un circuit intelligent

Messagepar Remy » 21 juin 2019 19:27

Bonjour Alain,

Sauf erreur de ma part, Railuino est une bibliothèque ( logiciel) que l'on peut charger sur une carte Arduino (circuit bleu sur la photo) afin de réaliser un interface qui par l'intermédiaire d'un PC devient équivalent à une MS1 ou MS2, voire une CS2 . Cette bibliothèque est compatible avec le format Marklin (MM, mfx).
Railuino_wire01.jpg


Locoduino est un site web, créer par des passionnés d'applications pour le modélisme ferroviaires basés sur l'utilisation de carte Arduino. Sur ce site, il y a plein d'exemples de montage à base de carte Arduino, pour faire une centrale, gérer un passage à niveau, commander des feux, etc...
https://www.locoduino.org/

Cordialement
Rémy
Desolé, doublé par Yann :zen:
Marklin HO voie C CS2
Avatar de l’utilisateur
@l1rc30
Messages : 3433
Inscription : 14 août 2008 01:00
Prénom : Alain
Pays : France
Région : Côte d'Or et Ardèche
Echelle : HO et Z
Contact :

Re: Homemade Marklin - création d'un circuit intelligent

Messagepar @l1rc30 » 21 juin 2019 20:00

Merci pour vos réponses,
de base j'ai été analyste programmeur en assembleur (c'est vieux) ensuite j'ai programmer mon logiciel de gestion de mon réseau Märklin en C avec Borland C++ en autodidacte avec le livre "le C Facile" des éditions Marabout, sous DOS en gérant le graphisme sur un BMP.
Ensuite modification complète pour composer avec la gestion de la couche matérielle par Windows en gardant le fond du programme ( lecture rétrosignalisation, automatismes,...) et refonte de toute la partie graphique Windows avec Borland C Builder (version entreprise pour créer des EXE directement).
Pour la partie électronique, je ne suis pas d'un grand niveau, çà me permet de comprendre des circuits simples, de les modifier, de réparer des écrans , des cartes digitales de 7651, modifier les décodeurs Delta pour gérer la lumière (entre autre).
Mais les BUS pour l'instant cela me passe bien au dessus. pour l'Arduino, je me suis inscrit dans un FabLab pour comprendre un peu, mais je n'ai encore rien réalisé avec…
juste appris a dessiner en 3D et à imprimer mes pièces pour réparer tout et n'importe quoi (de la charnière de la boite aux lettres, aux bouchons du centre des jantes alu)
Cordialement
al1
2 x 6021, 2 MS1, 1MS2, 2 60052 , 1 CS2 60214 V2 et une autre CS2 60215 (échange (presque 1an) d'une CS1 HS)

Docuforum

Réseau Modulaire Ho
Réseau Fixe Ho voies M full digital
Réseau Pliable Ho
Prod'YJ
Messages : 17
Inscription : 07 oct. 2015 16:20
Prénom : Yann
Pays : Belgique
Région : Namur
Ville : Viroinval
Echelle : HO

Re: Homemade Marklin - création d'un circuit intelligent

Messagepar Prod'YJ » 11 juil. 2019 22:02

Bonjour à tous,

Mais quelle bonne surprise! J'ai appris que l'utilisation d'un S88 est déjà implémentée dans Railuino :D Quelques rapides tests et ça fonctionne franchement bien (à un tout petit détail près). Je vais prendre le temps d'implémenter un petit automatisme simple, pour le fun ;)

En cette période de camps scouts, et étant moi-même fort impliqué dans ce mouvement, j'ai peu de temps à consacrer à ce projet pour le moment. Soyez donc rassurés, ma présence défaillante n'est pas signe d'abandon (bien du contraire!). Promis, je vous fais un petit résumé de ce que j'aurais eu le temps de faire au plus vite ;)

A bientôt,

Yann.

Revenir vers « Technique »



Qui est en ligne ?

Utilisateurs parcourant ce forum : filipi58 et 1 invité