RocRail ou iTrain avec CC-Schnitte et une MS2 ... Est-ce vraiment possible?

Je suis les discussions, mais je ne pige pas pas tout. D’où mon silence attentif.

1 « J'aime »

Bonjour à tous,

Reprise des activités avec l’installation de iTrain. C’est tombé en marche : CC-Schnitte connectée, aiguillages fonctionnels et rétro-signalisation opérationnelle.

Le seul hic : aucune locomotive MFX détectée. J’ai du rater quelque chose grrr.

A suivre avec le forum de iTrain.

J’ai refait aussi des essais avec Rocrail qui m’a bien détecté mon petit locotracteur HLD donc le pb vient bien d’une configuration ou d’une manipulation dans iTrain.

Au premier abord, iTrain a l’air plus simple mais je n’ai pas pu tester le mode de pilotage ni la synchronisation avec la MS2 puisque je n’ai aucune locomotive dans l’interface :slight_smile:

@+


Edit : j’ai pu obtenir un défilement de MFX UUID en bas à gauche de l’écran iTrain en forçant une valeur dans un champ nommé “Nouveau compteur MFX”. Cela semble correspondre à mes trois locomotives Mfx qui sont sur le réseau mais aucune locomotive n’est créé dans iTrain.

Si je rentre manuellement une locomotive avec un des UUID, je ne sais pas quoi mettre comme Adresse (nécessaire pour valider le formulaire) et la locomotive n’est pas adressée. J’ai essayé différentes valeurs y compris l’adresse qui a été attribuée à cette loco dans RocRail lol …

Vraiment étrange et cela semble être lié au fait d’utiliser CC-Schnitte et non pas une CS2/CS3 (dans ce cas, les locos sont importées depuis la base de données de la CS2/3).

Bonsoir Julie,

Je ne connais pas itrain mais Rocrail et CC-Schnitte. Ce dernier ne joue aucun rôle dans la détection de locomotives. C’est une passerelle USB/CAN, point barre !

As-tu enregistré la locomotive dans la MS2 ? Ce n’est sans doute pas la solution la plus élégante mais la MS2 (une fois la locomotive enregistrée) cherchera à créer une communication avec elle et je suis à peu près certain que ce message circulera sur le bus CAN et itrain le verra ! Qu’en fera t’il ? Dans tous les cas, ce n’est pas compliqué à faire, ça peut payer.

Sinon, tu peux aussi te confectionner un sniffer CAN. Avec l’identifiant du message CAN tu connaitras l’adresse. Le sniffer te sera bien utile après pour d’autres besoins.

Tu peux aussi “forcer” la recherche de l’adresse. Un peu comme le sniffer, une carte (Arduino) sur le bus CAN qui envoie un message CAN d’identification. la Gleisbox retournera un moment donné l’adresse de la loco que tu saisiras manuellement. Pas top non plus mais ça permet d’avancer.

Le CAN est très souple pour ça et on peut avec collecter facilement nombre d’informations très utiles.

Oui je sais bien. Et ?

Oui bien sur.

Le problème se situe dans iTrain (j’ai indiqué que cela fonctionne avec Rocrail dans la même configuration) qui ne détecte pas les locos. Ou plutot qui les détecte (il m’affiche les UUID) mais ne crée pas les objets Locomotives correspondant. Et si je les crée manuellement, cela ne fonctionne pas et je soupçonne un problème d’adressage.

Il y a un module qui trace les communications avec la Gleisbox. les messages échangés ont l’air normaux (j’ai une trace similaire avec Rocrail).

J’ai mis un message dans le support de iTrain.


Lu dans le forum iTrain, à partir de la version 2.04 :

  • CC-Schnitte: MFX registration improved with better timeouts and more logging.

Donc ça devrait fonctionner grrr j’ai la dernière version 5.1 …

Bonjour Julie,

Comme tu l’as soulevé quelque part, c’est certainement du côté de maître/esclave qu’il faut chercher. Le protocole de Marklin dit en effet : [le MFX Discovery] est toujours déclenché par le processeur de l’interface utilisateur graphique. Le déclenchement d’un Discovery ne devrait être effectué que par le pupitre de commande maître.

Il n’y a pas d’adresse locale (loc-ID) pré-enregistrée. Tu as la liberté de choisir l’adresse que tu veux. Si tu ne peux pas saisir une adresse quelconque dans Itrain, c’est que très probablement, s’il est vu comme un esclave, il respecte scrupuleusement la règle.

Peut-être alors, si tu ne l’as pas encore essayé, enlever la MS2 du bus CAN et redémarrer Itrain et la Gleisbox pour que la Gleisbox ne reconnaisse que Itrain et l’accepte donc comme master.

Tu pourrais alors faire un bind. Ce que tu as fait précédemment, c’est-à-dire entrer une adresse manuellement, est possible quand cette commande vient du master, c’est à dire reconnu comme tel par la Gleisbox

Par ailleurs, si tu n’as pas de résultats, est-ce que tu serais prête à faire cela par programmation avec un Arduino en CAN sur le bus. Je l’avais fait, le principe maitre/esclave n’est qu’une directive du protocole mais n’empêche pas d’être forcé. Un Arduino donc peut faire un bind avec l’adresse que tu lui donnes et tu saisis ensuite cette adresse dans Itrain.

J’ai fait ce code qui est quelque part sur mon ordinateur mais je mettrais peut-être moins de temps à le réécrire.

PS : Certainement faut-il aussi déprogrammer le mode MASTER sur la MS2 !

Christophe

Y a pas de maitre/esclave avec iTrain.

J’ai tout supprimé dans la MS2 et dans iTrain et j’ai juste détecté ma fidèle ML003. Sans succès concernant iTrain, toujours rien dans Locomotives.

Je suis retournée sur Roctail et effectivement j’ai un bind dans la MS2 et cela fonctionne direct dans RocRail qui s’adresse ensuite à l’équipement avec cette adresse 5 !

11:37:36 9999 bind loco UID=0x7CFCCD97 to SID=5 (id=0x00056B1F)

J’ai réessayé d’utiliser cette adresse 5 dans iTrain mais il ne veut rien savoir.


J’ai débranché les MS2 et j’ai relancé iTrain … et ce coup ci la locomotive est bien détectée et ajoutée automatiquement :slight_smile: !

En fait c’est ou bien iTrain ou bien la MS2 … contrairement à RocRail qui permet d’avoir les deux …


Assez de temps perdu, je vais utiliser RocRail et pour le problème que j’ai identifié, je jetterais un oeil plus tard sur le code open source …

Donc ça fonctionne ! Pas de manière satisfaisante car tu ne sais pas précisément pourquoi. Comme tu disais, c’est tombé en marche.

Maitre/Esclave existe forcément dans Itrain, c’est peut-être caché à l’utilisateur et donc non modifiable, mais c’est le protocole Marklin qui l’exige et je n’imagine pas que Itrain ne le respecte pas.

C’est la Gleisbox qui arbitre quels sont le maitre et les esclaves, probablement dans l’ordre de connexion, c’est sans doute le 1° connecté qui est le maître, ça me paraitrait logique et les suivants esclaves. Mais est-il toujours question de logique ici ?

Pense peut être aussi à ce que je t’ai dit de déprogrammer le mode MASTER sur la MS2, c’est dans les settings.

Je suis en train de programmer un sniffer très complet pour analyser les trames CAN échanger et pouvoir les interpreter facilement, je veux dire du style “Message en provenance de la Gleisbox : bind de locID = 5”. Donc, même si cela fini par fonctionner, c’est toujours intéressant de savoir qui fait quoi, à quel moment et dans quel ordre.

Si je sais pourquoi : j’ai débranché la MS2 et relancé la Gleisbox.

Apparemment c’est MS2 ou iTrain et c’est mentionné au fin fond du forum iTrain au détour d’une conversation avec le concepteur du logiciel.

Il n’y a pas de setting MASTER sur la MS2. C’est déterminé par la MS2 qui a le numéro de série le plus faible qui est déclarée comme maitre.

Et de toute façon, si la MS2 était esclave, il faudrait que iTrain se comporte en Maitre (ce que sais faire RocRail) en fournissant la liste des locos à piloter …

Donc je ne vois pas de solution et le concepteur du logiciel iTrain semble en avoir fait une fonctionnalité (MS2 ou iTrain …).

Julie, si il y a moyen d’enlever le mode master de la MS2 je m’en suis assuré sur la mienne avant d’écrire cela.

Oui très certainement pour justement ces questions de maitre/esclave mais essaye d’enlever le mode master dans MS2 comme je te disais et peut-être que ça va fonctionner avec les deux. Itrain au démarrage va peut-être se commuter alors en master.

Il n’y a pas de setting pour le mode Master dans la MS2. Comme dit, cela dépend uniquement du numéro de série, le plus faible détermine le maitre.

Comment ? je ne vois aucune entrée dans les settings et la doc est claire à ce sujet : c’est le numéro de série qui indique le maitre.

Peux-tu m’indiquer comment tu fais pour enlever le mode maitre ?

Effectivement, par les paramètres tu accèdes à un menu “MS2 mode maitre” mais tu as raison, ce menu ne peut se modifier? J’en vois pas vraiment l’intérêt alors. Et quand je cherche à entrer dedans, le système dit Mise à jour du fichier… Aucun fichier plus récent disponible.

Bon je pensais dès lors qu’il était modifiable.

Donc c’est bien en retirant la MS2 que Itrain sera reconnu comme Maitre !

Désolé

Conclusion (provisoire) :

iTrain avec CC-Schnitte n’accepte pas une MS2 en parallèle

RocRail avec CC-Schnitte accepte une MS2 en parallèle sous réserve d’appliquer un protocole très strict pour enregistrer les locomotives Mfx …


Procédure pour enregistrer une locomotive Mfx sous RocRail et pouvoir la piloter par le logiciel et par la MS2 (avec une mise à jour des informations dans les deux sens) :

1 - éteindre la Gleisbox
2 - lancer RocRail avec l’interface mbus options->Master = TRUE
3 - allumer la Gleisbox
4 - poser votre locomotive sur la voie
5 - locomotive détectée par RocRail avec un binding qui donne une adresse > 1024
6 - sauver, basculer l’interface mbus options->Master = FALSE et quitter RocRail
7 - éteindre et rallumer la Gleisbox
8 - locomotive détectée par la Gleisbox / MS2
9 - lancer RocRail (avec l’interface mbus options->Master = FALSE)
10 - manipuler la locomotive (changement de direction ou fonction). Son adresse Gleisbox s’affiche sous la forme 0x4NNN dans le log de RocRail :

exemple (locomotive 6) → 15:50:46 9999 loco 6 function UID=0x4006 f=0 value=0 hash=6B1F

11 - editer la locomotive et changer l’adresse (et donc le binding) pour cette adresse !
12 - la locomotive est utilisable par le logiciel et par la MS2 !

PS: bien évidemment, rester en mode options->Master = FALSE mais refaire la manip pour enregistrer toute nouvelle locomotive. C’est fastidieux mais ça marche !


Sur le snapshot, on voit bien le numéro 6 pour la Di5_870 avec le numéro 1054 initialement attribué lors du binding en mode MASTER …

1 « J'aime »

Julie,

Comme j’avais constaté ce problème avec Rocrail, j’avais écrit un petit programme sur un ESP32 (mais qui peut être porté sur Arduino) pour automatiser ce que tu décris ci-dessus.

La carte est placé sur le bus CAN. Elle fait son travail automatiquement sans qu’il y ait besoin d’intervenir.

Christophe

1 « J'aime »

Bonjour Julie,

Concernant la procédure de reconnaissance MFX dont tu parles, j’ai testé une façon de faire plus simple et qui fonctionne bien chez moi. Je pense donc qu’il devrait en être de même pour toi.

Je précise qu’à aucun moment je n’ai besoin de commuter Rocrail en “Maître”.

La locomotive peut-être posée sur les rails, mais il faut que la MS2 soit en position “STOP”.

1° - Je supprime la locomotive de la liste sur la MS2.
2° - J’alimente les rails en désactivant le “STOP”
3° - Le processus de découverte MFX s’engage. Il y a des petits temps de latence, c’est assez long mais ça tu connais.

Au passage, comme je trace les échanges sur le bus CAN, je suis impréssionné par le nombre de messages. En fait, il me semble que la MS2 scan sur des plages assez larges d’adresses possible, mais c’est un autre sujet.

4° - Quand le processus de découverte est terminé sur la MS2, il faut peu de temps pour que la loco apparaisse dans la liste Rocrail avec le nom long de la base de données Marklin. Mais c’est à peu près la seule info. L’adresse est une Loc-ID (7 par exemple chez moi) qui résulte de l’incrémentation de la liste, la 7 après la 6 qui elle même vient après etc…

Ne surtout pas oublier d’enregistrer l’objet Loccomotive créé en l’associant à la centrale, sinon, à la fermeture de RR, il diparaitra et la procédure à reprendre.

Je précise que j’utilise la passerelle CAN ↔ TCP dont je parle en ce moment mais elle ne fait rien de plus ou rien de moins que CC-Schnitte.

Au plaisir d’échanger sur ce sujet qui me passionne de l’automatisation des échanges CAN.

PS : Si besoin de plus d’infos sur la loco dans RR, cela pourra être fait par le programme de Railuino que je viens de finir de mettre à jour, mais aussi déjà le programme de MFX bin dont j’ai parlé sur ce fil est ailleurs. Du coup, tu as toutes les infos, même UID !!!

Christophe

1 « J'aime »

Tu as raison ma procédure mentionnée plus haut n’est pas utile … il faut juste être très très patient …

J’ai pu le constater par la suite.

Je verrais à la rentrée d’octobre, bien envie de tester ta carte :slight_smile:

@+

Par contre, si on est nombreux à revendre nos CC-Schnitte, ils vont en profiter pour demander une réduction de prix.

J’ai bien peur que ce soit déjà cramé pour récolter quelques kopeck.

Sérieusement tu ne seras pas déçue rien que pour le sans fil !

Sur la même petite carte (pas avec RR mais Railuino) j’ai commencé à travailler sur des manettes sans fil, par exemple pour piloter sa loco avec son smartphone ! Y en a qui aiment.

Christophe

1 « J'aime »