Auteur Sujet: Problème de lecture et programmation de CVs avec DCC++  (Lu 109449 fois)

CATPLUS

  • Sr. Member
  • ****
  • Messages: 438
    • Voir le profil
Re : Problème de lecture et programmation de CVs avec DCC++
« Réponse #60 le: janvier 06, 2022, 10:55:18 am »
Bonjour à tous
Je viens m'incrusté dans vos différents échanges.

NB Ce message ne s'adresse pas à vous
On reproche souvent aux membres du Staff de ne pas répondre,  force est de constaté que c'est  décourageant
A fortiori nous n'avons pas de retour (voir très peu) pour savoir si tel ou tel montage fonctionne.

Je reviens au sujet
Certes il semble que vous avez des problèmes avec certain composant.  Des réponses ont été apportées "MIchel, Dominique"

  => Programmation du décodeur

Pour la programmation des décodeurs pourquoi ne pas utiliser un SPROG II  & JMRI (je fonctionne ainsi) bien sur ce n'est pas du DIY
https://www.sprog-dcc.co.uk/sprogii

Cordialement

Best Regards

Dominique

  • Global Moderator
  • Hero Member
  • *****
  • Messages: 3059
  • 100% Arduino et N
    • Voir le profil
Re : Re : Problème de lecture et programmation de CVs avec DCC++
« Réponse #61 le: janvier 06, 2022, 11:42:45 am »
  => Programmation du décodeur

Pour la programmation des décodeurs pourquoi ne pas utiliser un SPROG II  & JMRI (je fonctionne ainsi) bien sur ce n'est pas du DIY
https://www.sprog-dcc.co.uk/sprogii

Cordialement

Il est certain que c'est la solution universelle qui est recommandée par de nombreux club :
SPROG II (pas le SPROG III)
PC/Mac
JMRI + formation car généralement on continue de Decoder Pro vers Panel Pro..

Pour moi c'est la solution de repli universelle, mais on peut la contourner selon ses moyens !

Perso, avant de me lancer dans le DCC avec CmdrArduino (maintenant obsolète) puis DCC++ et maintenant DCCpp, j'avais acquis une petite centrale Minitrix/Marklin MS2 payée 50€, qui était destinée à sauver les meubles en cas d'échec. Mais le lancement a réussi et mon réseau intègre maintenant une centrale de programmation dédiée sur une zone isolée, avec un Nano, un Max471 (qui était bon à cette époque, mais obsolète maintenant car provenant de stocks de rebuts chinois - c'est de l'arnaque) et un LMD18200 + afficheur LCD et quelques boutons.

Comme pour tout le monde, certains décodeurs rechignent à se laisser faire et dans ce cas (rare) je branche la MS2 qui ne réussit pas non plus à tous les coups. Peut-être la SPRO II réussit à 100%, je ne sais pas car je n'en ai pas ! Mais comme Catplus l'écrit, ça doit marcher, mais il faut investir.

Cependant la SPROG II ne pourra quasiment servir qu'à ça car elle a peu d'ampèrage et aucune interface utilisateur, d'ou la nécéssité d'ajouter JMRI et un PC).

Par contre avec DCCpp sur ATMega 328 ou 2560, on peut faire tout ce qu'on veut comme interface utilisateur avec des boutons, des écrans, des claviers, des télécommandes... c'est le monte Arduino très riche en combinaisons. Je vous recommande donc de l'explorer progressivement (comme je l'indique plus haut avec les bons choix).

Un dernier truc : je viens de constater que la tension d'alimentation de la centrale DCCpp peut influer sur la réponse du décodeur : à Dreux je montrais une petite loco (genre cabane sur roues) qui ne répondait pas à l'interrogation d'adresse DCC, avec une alimentation de 13,5V pour du N. A la maison j'ai baissé l'alimentation à 12V et maintenant elle répond bien ! Donc faites des essais !

Pour terminer, si un décodeur refuse de causer (en réponse à une commande de lecture ou programmation) sur la voie de programmation avec les ordres DCC pour cette voie, il reste la possibilité de programmer n'importe quel CV sur la voie principale (un seule machine / décodeur à la fois sur la voie !!! ATTENTION !!) avec les commandes POM (program on main) - voir la doc DCC++.
C'est d'ailleurs ce qui se passe souvent dans les club avec la Z21 quand les gens ne font pas gaffe qu'il y a plusieurs machines sur le voie : toutes les machines sont programmées en même temps !!.
Mais la programmation POM ne permet pas facilement de programmer l'adresse DCC (puisqu'il faut la connaitre pour l'indiquer dans la commande). Là quelqu'un qui lira ce post pourra compléter sur ce point.

Merci de votre attention :D

« Modifié: janvier 06, 2022, 11:47:34 am par Dominique »
Cordialement,
Dominique

msport

  • Global Moderator
  • Hero Member
  • *****
  • Messages: 2217
  • HO avec DCC++ en DIY Réseaux très éphémères
    • Voir le profil
Re : Re : Problème de lecture et programmation de CVs avec DCC++
« Réponse #62 le: janvier 06, 2022, 09:49:47 pm »
... pourquoi ne pas utiliser un SPROG II  & JMRI ...

Bonsoir,

probablement parce qu'en DIY, on fait la même chose pour moins de 10€ en moins de 10 minutes.
Cordialement

JPB

  • Newbie
  • *
  • Messages: 48
    • Voir le profil
Re : Problème de lecture et programmation de CVs avec DCC++
« Réponse #63 le: janvier 07, 2022, 08:43:02 am »
Voilà qui répond à beaucoup de questions mais il reste encore un point que je n'ai pas élucider. Je vais me plier contraint et forcé à m'approvisionner d'autres ci de contrôle d'intensité que mes ACS712 mais le problème suivant persiste sauf si dans ce qui suit la réponse s'y trouve:

- Visiblement, les ASC712 empêche la lecture des décodeurs. J'admets cette hypothèse...

Alors, comment un ci de ce genre placé sur l'alimentation peut contrôler ou empêcher la lecture d'un décodeur ?

Seule hypothèse valable, la lecture (sur A1) se base sur un pic de courant généré par la loco en retour d'interrogation.

- Je n'ai rien lu de probant sur ce sujet même si j'ai pu décortiquer les posts "DCCpp/DCC++" dans les différents sites americano-anglais et sur notre forum...

Si l'un de vous a cette réponse, je suis preneur ! Je m'endormirai moins bête ce soir et cela aura résolu un problème. Je vais tester ce matin avec le moniteur série de l'IDE, donc hors JMRI, pour voir les réponses éventuelles du réseau...

Dominique

  • Global Moderator
  • Hero Member
  • *****
  • Messages: 3059
  • 100% Arduino et N
    • Voir le profil
Re : Problème de lecture et programmation de CVs avec DCC++
« Réponse #64 le: janvier 07, 2022, 09:34:58 am »
C’est exposé dans le norme NMRA sur laquelle se basent les réalisations. C’est abondamment cité dans ce forum.

Voir le service mode :
https://www.nmra.org/sites/default/files/standards/sandrp/pdf/S-9.2.3_2012_07.pdf


Voir le D: Decoder Acknowledgment Mechanism
« Modifié: janvier 07, 2022, 09:57:31 am par Dominique »
Cordialement,
Dominique

AmadeusHF

  • Full Member
  • ***
  • Messages: 205
    • Voir le profil
Re : Problème de lecture et programmation de CVs avec DCC++
« Réponse #65 le: janvier 07, 2022, 05:56:34 pm »
Le DCC est un protocole UNI DIRECTIONNEL : seul la centrale émet des données vers les décodeurs. (On ne parle pas du cas RAILCOM).

Un mécanisme trivial de réponse est néanmoins prévu : sur envois d'une commande, le décodeur peut volontairement provoquer un pic de consommation de courant sur la voie de programmation de 60 mA au moins durant un certain temps.

S'il veut répondre TRUE, il génère le pic. S'il veut répondre FALSE il ne fait rien.
Ce que la plupart des décodeurs produisent en actionnant la commande du moteur, avec comme conséquence les tremblements des locomotives.

Ainsi, pour lire un octet d'un CV, la centrale émet huit trames d'interrogation, un pour chaque bit du CV...en demandant si le bit vaut 0 (par exemple, mais elle peut aussi demander si le bit vaut 1...). Les réponses TRUE ou FALSE du décodeur sont assemblées par la centrale qui reconstitue ainsi la valeur de l'octet lu.

Une neuvième commande sera alors envoyée pour demander si l'OCTET vaut la valeur déduite, et là encore le décodeur répondra true ou false, confirmant ou infirmant la bonne lecture d'un CV.

On comprend donc que si la mesure de la consommation de courant sur la ligne n'est pas parfaitement maitrisée, la lecture de CV est inopérante...
Sébastien.
La perfection est un chemin, non un but...

Dominique

  • Global Moderator
  • Hero Member
  • *****
  • Messages: 3059
  • 100% Arduino et N
    • Voir le profil
Re : Problème de lecture et programmation de CVs avec DCC++
« Réponse #66 le: janvier 07, 2022, 08:19:08 pm »
C’est super clair. Merci  ;D
Cordialement,
Dominique

JPB

  • Newbie
  • *
  • Messages: 48
    • Voir le profil
Re : Problème de lecture et programmation de CVs avec DCC++
« Réponse #67 le: janvier 08, 2022, 07:14:51 am »
Voilà une réponse claire et je viens tout juste de lire la réponse équivalente dans le texte du NMRA (lien fourni plus haut par Dominique) que j'ai du traduire dans ma langue. Je comprend maintenant l'intérêt du MAX471 ou d'un ci de mêmes caractéristiques !

Le retour est donc fait par une impulsion de 60mA pendant 6ms ("D" dans le texte cité)

Merci à tous

AmadeusHF

  • Full Member
  • ***
  • Messages: 205
    • Voir le profil
Re : Problème de lecture et programmation de CVs avec DCC++
« Réponse #68 le: janvier 08, 2022, 01:44:06 pm »
La question du choix d'un CI est effectivement liée à ce point.

La série des ACS712 permet  bien de lire une consommation de courant, mais ce composant a une résolution de mesure très faible (car il peut mesurer des courants relativement forts !)

L'intéret du MAX471 était qu'il proposait une résolution de mesure assez élevée, avec 1 volt / ampère...et comme la résolution de la conversion du processeur est sur 1024 pas, on arrive à avoir une lecture fiable. Le MAX472 permet d'obtenir la meme chose. C'est plus compliqué avec un ACS712 même si ça marche dans l'absolu.

Personnellement, avec mon propre code (pas avec les libs DCC++ et dérivées), j'ai réussi à faire de la lecture de CV sur un ACS....mais il est clair que c'est bien plus efficace avec un MAX472 par exemple. Raison pour laquelle on déconseille l'ACS...surtout qu'il en existe trois variantes et qu'il faut à chaque fois adapté le code en conséquence...
Sébastien.
La perfection est un chemin, non un but...

dmskd

  • Newbie
  • *
  • Messages: 48
  • Arduino et N
    • Voir le profil
Re : Problème de lecture et programmation de CVs avec DCC++
« Réponse #69 le: janvier 09, 2022, 03:44:01 pm »
Bonjour à tous,

Je suis avec intérêt ce fil de discussion, j'avais même présenté mon cas personnel le 18 avril 2020 (page 2 du fil) à base de Nano et LMD18200.
La pin 8 de mon LMD18200 est branchée sur le Nano sans aucun circuit intermédiaire (schéma ci-joint).
Mon hardware n'a pas changé et je me suis longtemps contenté de pouvoir écrire les CV "en aveugle" sans pouvoir les relire.
Un jour j'ai acheté des décodeurs DH10 dont je ne pouvais pas lire les CV. Voulant aller plus loin dans la configuration des décodeurs, j'ai exposé ce problème de lecture à Doehler & Haass, le fabricant.
Ils ont été très réactifs et après quelques échanges de mail où je décrivais en détail ce que j'observais, ils m'ont conseillé de remplacer DCCpp par DCC++ EX qui est, je crois, une amélioration de DCC++ (https://dcc-ex.com/).
C'est donc ce que j'ai fait.
Sans avoir changé le hardware je peux maintenant lire les CV sur tous mes décodeurs sans aucun problème ni même réglage.
Je suis loin d'être un pro de l'électronique et je ne me permettrais pas de donner mon avis sur les solutions proposées dans ce fil.
Je suis preneur de tous vos commentaires au sujet de ma solution plutôt 'simpliste' qui laisse à penser que c'est plus un problème software que hardware.

Cordialement,
Dominique
Cordialement,
Dominique

msport

  • Global Moderator
  • Hero Member
  • *****
  • Messages: 2217
  • HO avec DCC++ en DIY Réseaux très éphémères
    • Voir le profil
Re : Problème de lecture et programmation de CVs avec DCC++
« Réponse #70 le: janvier 09, 2022, 08:34:16 pm »
Merci pour votre partage d'expérience.

Vous avez écrit DCCpp et non DCC++.

Si vous en avez l'occasion, pourriez vous tester l'original  DCCpp_Uno de Gregg Berman :

https://github.com/DccPlusPlus/BaseStation (DCC++)

Merci d'avance.

La solution utilisant le CURRENT SENSE OUTPUT (pin 8) du LMD18200 qui nécessite une soudure sur le module fournit 830 mV / A (à comparer au 1V /A du programme original) peut donner de bons résultats.

L'utilisation du fer à souder n'est pas du gout de tout le monde.
Cordialement

dmskd

  • Newbie
  • *
  • Messages: 48
  • Arduino et N
    • Voir le profil
Re : Problème de lecture et programmation de CVs avec DCC++
« Réponse #71 le: janvier 09, 2022, 11:45:08 pm »

Citer
L'utilisation du fer à souder n'est pas du gout de tout le monde.

Je ne comprends pas cette remarque.
Quand on fait des montages électroniques, on est bien obligé de souder les composants sur les circuits imprimés.
Cordialement,
Dominique

msport

  • Global Moderator
  • Hero Member
  • *****
  • Messages: 2217
  • HO avec DCC++ en DIY Réseaux très éphémères
    • Voir le profil
Re : Problème de lecture et programmation de CVs avec DCC++
« Réponse #72 le: janvier 10, 2022, 10:05:31 am »
Bonjour,

On trouve sur le site de Locoduino (et ailleurs) des montages qui ne nécessitent aucune soudure, à commencer par la BaseStation avec un shield moteur sur un Arduino Uno.

Hors la résistance de 2,2K, votre montage pourrait se passer de soudures, par exemple avec un breakout pour Nano et des câbles DuPont.

Les câbles DuPont ne sont pas le top de la fiabilité, mais parfaits pour un montage de test.

Mais ne pas savoir-vouloir faire de soudures est certainement un handicap.

Et alors, DCCpp ou DCC++ ?
Cordialement

dmskd

  • Newbie
  • *
  • Messages: 48
  • Arduino et N
    • Voir le profil
Re : Problème de lecture et programmation de CVs avec DCC++
« Réponse #73 le: janvier 10, 2022, 10:21:39 am »
Bonjour,

Citer
Et alors, DCCpp ou DCC++ ?

C'est bien DCCpp que j'utilisais.
J'avais cru comprendre que c'était la même chose que DCC++ mais mis en bibliothèque.
Cordialement,
Dominique

msport

  • Global Moderator
  • Hero Member
  • *****
  • Messages: 2217
  • HO avec DCC++ en DIY Réseaux très éphémères
    • Voir le profil
Re : Problème de lecture et programmation de CVs avec DCC++
« Réponse #74 le: janvier 10, 2022, 10:39:09 am »
DCCpp est une évolution de DCC++, donc avec des modifications (dont la détection de courant), qui peuvent être des améliorations mais également poser des problèmes.

La BaseStation citée plus haut que je conserve dans mon tiroir a fonctionné sur tous mes décodeurs.

DCCpp qui est utilisé pour LaBox présente des aléas, liés en particulier à ses mises à jour.

Il s'agit dans les deux cas d'une bibliothèque.
Cordialement