LOCODUINO

Parlons Arduino => Le logiciel DCC++ => Discussion démarrée par: bobyAndCo le août 05, 2019, 07:14:01 am

Titre: Problème de lecture et programmation de CVs avec DCC++
Posté par: bobyAndCo le août 05, 2019, 07:14:01 am
Bonjour à tous,

J’ouvre ce nouveau fil suite à un commentaire à l’article sur Une station DCC complète, polyvalente et économique avec JMRI : http://www.locoduino.org/spip.php?article253 où Jean évoque des problèmes de lecture et de programmation de CV avec JMRI, mais qui est en réalité relèvent de DCC++.

C’est un problème que j’avais soulevé il y a maintenant plus de trois ans, que Dominique aussi à rencontré, et puis comme on a toujours plus ou moins réussi à contourner le problème, c’est quelque chose que l’on a jamais approfondi et pour lequel, de fait, on n’a jamais trouvé de solution.

Si quelqu’un a la solution, nous sommes bien sûr preneur. Dans la négative, je souhaiterais que ceux qui connaissent ce problème puissent contribuer à établir un inventaire des marques de décodeurs concernés et éventuellement des modèles. Il semble bien que cela ne concerne que certains fabricants et pas d’autres.

Il est intéressant de savoir si ces problèmes sont cantonnés à la seule voie de programmation ou concernent aussi la voie principale, et de savoir également, sur la voie principale, quels sont les CVs qui peuvent être reprogrammées.

Enfin, toute proposition qui pourrait contribuer à trouver la réponse est bien sûr la bien venue.

Merci par avance.
Titre: Re : Problème de lecture et programmation de CVs avec DCC++
Posté par: fcot2002 le août 05, 2019, 01:34:04 pm
Bonjour @ tous  8)

Le problème j'ai rencontré n'est pas lié à un type de décodeur, mais était identique avec plusieurs décodeurs testés.

J'étais en version DCC++ : Mega + shield Ethernet + shield Motor. Connexion Ethernet avec JMRI

La simple lecture / identification d'une machine via DecoderPro prenait......  5 minutes ! ! ! Avec aléatoirement des erreurs de lectures.

Je passe en version DCC++ : Mega + shield Motor. Connexion USB avec JMRI

Disparition totale du problème, lecture / identification <15 secondes.

Je me dis mon shied Ethernet est HS. Je monte une centrale DCC++ Mega + Ethernet + Motor complètement neuve : Lecture / identification problématique. On passe en USB sans enlever le shield Ethernet : aucun souci lecture / identification < 15 secondes.

J'ai arrêté de chercher, mais je n'aime pas ne pas comprendre.....

Voila Christophe ma contribution   ;) ;) ;)

Bonnes vacances @ ceux qui y sont, bon courage aux autres
Titre: Re : Problème de lecture et programmation de CVs avec DCC++
Posté par: MCPA le novembre 26, 2019, 06:56:58 pm
Bonjour,

Je rencontre également un problème avec la lecture des Cv sur une centrale à base d'Arduino MEGA et de LMD18200 et un MAX471. J'ai des lectures aléatoires suivants les marques et modèles de décodeur. Le plus souvent cela me renvoie la valeur 255. Les locomotives ont le même comportement à savoir qu'en mettant un doigt sur la locomotive on ressent 2 légers soubresauts puis plus rien. J'ai essayé de modifier la valeur de ACK_SAMPLE_THRESHOLD, sans résultat, ainsi que la valeur CURRENT_SAMPLE_MAX , en faisant plusieurs essais de valeurs différentes à chaque fois mais sans succès.

Quelqu'un aurait-il une idée ? Pour ceux qui ont réalisé cette centrale, avez-vous réussi à faire fonctionner la lecture et l'écriture des Cv ?

PS : Je n'ai pas encore essayé l'écriture de Cv étant donné que la lecture ne fonctionne pas. Le programme pour la centrale est celui par défaut téléchargé sur GitHub


Merci d'avance pour votre aide.

Philippe

 
Titre: Re : Problème de lecture et programmation de CVs avec DCC++
Posté par: msport le novembre 26, 2019, 07:13:19 pm
Trois questions de plus :

interrogation via le serial monitor ?

sur rail de programmation seul ou circuit complet ? (donc avec capacités réparties)

Quelle tension pour la BaseStation ?
Titre: Re : Re : Problème de lecture et programmation de CVs avec DCC++
Posté par: MCPA le novembre 26, 2019, 07:18:50 pm
Trois questions de plus :

interrogation via le serial monitor ? Non via une commande externe développée avec un Arduino mini.

sur rail de programmation seul ou circuit complet ? (donc avec capacités réparties)  Sur rail de programmation seul.

Quelle tension pour la BaseStation ? Environ 15,5 Volts pour l'alimentation de la Base Station

Bonjour,

Mes réponses ci-dessus à côté de vos questions.

Philippe
Titre: Re : Problème de lecture et programmation de CVs avec DCC++
Posté par: msport le novembre 26, 2019, 08:43:49 pm
interrogation via le serial monitor ? A tester en direct.

sur rail de programmation seul ou circuit complet ? (donc avec capacités réparties)
le circuit de Mynabay améliore ses performances avec 270pF en parallèle en entrée, pourquoi pas essayer. Ou sur un réseau étendu.
Vous pouvez également essayer le Va-et-Vient de Dominique qui m'a lu le CV1 de tout ce que je lui ai soumis sur voie principale.

Quelle tension pour la BaseStation ? A tester à 18V et à 12V.
Environ 15,5 Volts pour l'alimentation de la Base Station
Titre: Re : Problème de lecture et programmation de CVs avec DCC++
Posté par: MCPA le novembre 27, 2019, 07:31:52 am
Bonjour,

J'ai trouvé la solution à mon problème. Lors de mes essais précédents j'avais modifié la valeur de ACK_SAMPLE_THRESHOLD en la diminuant. Mais c'était le contraire qu'il fallait faire. J'ai doublé cette valeur donc 60 au lieu de 30 et tout fonctionne correctement pour la lecture des Cv. Il me reste maintenant à confirmer les résultats avec d'autres marques de décodeur et ensuite de tester l'écriture des Cv.

Philippe
Titre: Re : Problème de lecture et programmation de CVs avec DCC++
Posté par: fcot2002 le novembre 27, 2019, 07:19:13 pm
Bonsoir @ tous

Merci beaucoup MCPA !

Je teste avec ma machine MTH (décodeur inconnu MTH mais lequel...)
Titre: Re : Problème de lecture et programmation de CVs avec DCC++
Posté par: fcot2002 le novembre 28, 2019, 06:08:33 pm
Bonsoir,

J'ai appliqué la méthode MCPa et ça va nettement mieux.

La lecture impeccable, il trouve même le type de décodeur MTH alors qu'avant non.

Ecriture sans problème aussi de mon coté.

Le tout via Decoder Pro de JMRI
Titre: Re : Problème de lecture et programmation de CVs avec DCC++
Posté par: Daniel075 le décembre 05, 2019, 11:33:44 am
Bonjour , Une question de néophyte qui cherche à s'améliorer. MCPA (Philippe d'après la signature) mentionne la modification de ACK_SAMPLE_THRESHOLD. Mais comment effectuer cette modification  lorsque pour toute relation avec le logiciel DCC++ , on ne dispose que de  la visibilité #include<DCCpp.h>. Cette partie du logiciel nous est inaccessible.
Par avance merci - Daniel
Titre: Re : Problème de lecture et programmation de CVs avec DCC++
Posté par: Dominique le décembre 05, 2019, 09:39:46 pm
Effectivement il n’est pas conseillé de modifier la bibliothèque DCCpp qui est maintenue par Thierry : seul il a le droit de la modifier.
Par contre vous pouvez utiliser le logiciel DCC++ disponible ici :  https://github.com/DccPlusPlus/BaseStation (https://github.com/DccPlusPlus/BaseStation) et tout le code sera dans des onglets de l’IDE et vous avez accès à la totalité du code pour tester cette modification.

Si cette modif marche, nous devrons la valider à plusieurs après de nombreux test sur divers décodeurs et c’est Thierry qui fera son intégration. C’est nécessaire d’être sérieux et vous le comprenez sans doute.
Titre: Re : Problème de lecture et programmation de CVs avec DCC++
Posté par: Thierry le décembre 06, 2019, 05:52:34 pm
Sur la bibliothèque DCCpp (la version 1.3.7 présente sur Github, la modif date du mois d'aout...), il y a une fonction que tout le monde peut appeler dans son setup : DCCpp::setAckThreshold(60); par exemple. Si cette valeur se révèle meilleure, effectivement je la poserai comme valeur par défaut de la bibliothèque, mais c'est déjà possible de tester avec DCCpp sans modifier la bibliothèque.
Titre: Re : Problème de lecture et programmation de CVs avec DCC++
Posté par: Daniel075 le décembre 09, 2019, 11:20:07 am
Merci à Thierry et à Dominique  pour vos réponses. Je reste attentif à la suite de vos essais.  - Daniel
Titre: Re : Re : Problème de lecture et programmation de CVs avec DCC++
Posté par: Erik84750 le décembre 11, 2019, 03:06:12 pm
Bonjour @ tous  8)

Le problème j'ai rencontré n'est pas lié à un type de décodeur, mais était identique avec plusieurs décodeurs testés.

J'étais en version DCC++ : Mega + shield Ethernet + shield Motor. Connexion Ethernet avec JMRI

La simple lecture / identification d'une machine via DecoderPro prenait......  5 minutes ! ! ! Avec aléatoirement des erreurs de lectures.

Je passe en version DCC++ : Mega + shield Motor. Connexion USB avec JMRI

Disparition totale du problème, lecture / identification <15 secondes.

Je me dis mon shied Ethernet est HS. Je monte une centrale DCC++ Mega + Ethernet + Motor complètement neuve : Lecture / identification problématique. On passe en USB sans enlever le shield Ethernet : aucun souci lecture / identification < 15 secondes.

J'ai arrêté de chercher, mais je n'aime pas ne pas comprendre.....

Voila Christophe ma contribution   ;) ;) ;)

Bonnes vacances @ ceux qui y sont, bon courage aux autres

Bonjour,

il y a des problèmes de termination des signaux ethernet sur certaines modules ethernet shield pour Arduino: https://forum.arduino.cc/index.php?topic=389325.0 (https://forum.arduino.cc/index.php?topic=389325.0)

Changer ces résistances n'est pas un travail ordinaire, mais faisable avec un fer à souder pour des SMD.

Salutations,
Erik
Titre: Re : Problème de lecture et programmation de CVs avec DCC++
Posté par: Jean-Paul le avril 08, 2020, 06:33:29 pm
Bonjour,

(J'ajoute ce message dans un fil existant car le titre me semble convenir parfaitement)

J'ai réalisé une simple station DCC++ basée sur un UNO + motorshield 'Deek-Robot' (clone Arduino genuine shield ) + librairie DCCPP v1.3.7
Les commandes de base moteur <t...> et fonction <f... > ont été directement OK.
J'ai par contre rencontré beaucoup de difficultés avec la lecture / écriture des CV.

Pour éviter tout effet parasite, je suis revenu à tester une situation de base : commande texte directe par le serial monitor + conection USB , décodeur ( j'ai utilisé un LAIS 860010 bon marché) hors locomotive , connecté directement à la sortie de prog (comme une voie de programmation 'propre' sans autre charge, ni résistance, ni condensateur) , moteur simulé par une résistance (avec assez de W !) + 2 leds tête bêche avec une résistance de protection.

J'ai modifié la librairie pour ajouter plus de messages de debug et en particulier regarder la valeur de 'base' pour la mesure de courant et la durée de l'impulsion de courant de la réponse du décodeur.
Je m'attends dans cette configuration à obtenir base toujours pratiquement = 0 (ou 1)

Dans le cas de readCV  c'est le cas lors de la comparison du premier bit , mais ensuite non. Si 2 bits = 1 se suivent (par exemple CV1 = 3 = 11000000) la lecture du 2eme rate car base est alors beaucoup trop grand. 
En fait si le décodeur ne répond pas par une pointe de courant , alors on execute toujour les 500 AnalogRead. Si on a une réponse positive la boucle est interrompue dans checkAcknowlegde par le test
      if (c > ACK_SAMPLE_THRESHOLD)
         return 1;
Ceci semble être apparu dans le version 1.3.7 avec la création de la fonction checkAcknowlegde . Dans le code original de Gregg E. Berman et dans les versions antérieures de la librairie cele me semble OK. Dans la nouvelle version 1.4.1, le problème est le même.
J'ai modifié le code checkAcknowlegde  pour rester dans la boucle même quand le test est positif et tout ce passe bien.

int RegisterList::checkAcknowlegde(int inMonitorPin, int inBase) volatile
{
   int c = 0; int d = 0;

   for (int j = 0; j < ACK_SAMPLE_COUNT; j++)
   {
      int val = (int)analogRead(inMonitorPin);
      c = (int)((val - inBase) * ACK_SAMPLE_SMOOTHING + c * (1.0 - ACK_SAMPLE_SMOOTHING));
          if (c > ACK_SAMPLE_THRESHOLD){
      //    remain in the loop for ACK_SAMPLE_COUNT read !!
            d = 1;
      }
   }
   return d;
}


Dans le cas de WriteCvByte j'ai un problème similaire: lors de vérification qui suit l'écriture la valeur n'est pas du tout nulle. Dans mon cas le décodeur 'répond' à l'écriture par l'implusion de courant mais le code n'essaie de le lire et passe donc trop vite à la vérification. Je ne sais pas ce que d'autres décodeurs font . Dans le standard de NMRA on trouve : "Upon completion of all write operations, the Digital Decoder may respond with an   acknowledgment" Les décodeurs sont donc libres de répondre ou pas.
En fait dans mon cas l'écriture marche toujours mais j'ai du modifier le code de WriteCvByte  (et WriteCvBit) pout avoir la vérification correcte. J'essaie de lire la réponse du décodeur et j'ignore le résultst car on fait de toute façon la vérification ensuite.

======= begin modif code
// define base for reading response
  if (DCCppConfig::CurrentMonitorProg != UNDEFINED_PIN)  base = RegisterList::buildBaseAcknowlegde(DCCppConfig::CurrentMonitorProg);
 
   bWrite[0] = 0x7C + (highByte(cv) & 0x03);   // any CV>1023 will become modulus(1024) due to bit-mask of 0x03
   bWrite[1] = lowByte(cv);
   bWrite[2] = bValue;

   loadPacket(0, resetPacket, 2, 1);
   loadPacket(0, bWrite, 3, 4);
   loadPacket(0, resetPacket, 2, 1);
   loadPacket(0, idlePacket, 2, 10);

 // try to read answer + ignore results (anyhow we verify afterwards)
  if (DCCppConfig::CurrentMonitorProg != UNDEFINED_PIN) ret = RegisterList::checkAcknowlegde(DCCppConfig::CurrentMonitorProg, base);
======== end modif code


J'espère que ceci peut aider un peu les problèmes rencontrés pour lire / écrire des CV.

Jean-Paul.
Titre: Re : Problème de lecture et programmation de CVs avec DCC++
Posté par: dmskd le avril 18, 2020, 03:24:34 pm
Bonjour,

Ma centrale est un Arduino Nano avec le driver LMD18200 et j'utilise la bibliothèque DCCpp.
Comme je n'avais pas de MAX sous la main, j'ai mis la détection de courant directement sur la broche 8 du LMD.
Sans modifier ACK_SAMPLE_THRESHOLD, la lecture de CV sur voie de programmation fonctionne très bien avec un décodeur Uhlenbrok, un Trix, un Zimo et un LaisDCC.
MAIS ça ne fonctionne pas avec mes décodeurs CT Elektronik (DCX74 et 75).

Quelqu'un saurait-il ce qui peut causer cette différence de comportement ?

Cordialement,
Dominique
Titre: Re : Problème de lecture et programmation de CVs avec DCC++
Posté par: Dominique le avril 18, 2020, 03:39:37 pm
Bonjour,

Moi non plus je n’arrive pas à lire les CVs de décodeurs CT Elektronic.

J’ai contacté la boîte, expliqué le problème, mais je n’ai pas eu de réponse.

La solution est de programmer les CVs sans réponse sur la voie principale en fournissant l’adresse du décodeur) et de vérifier à l’usage s’ils sont pris en compte .

Titre: Re : Re : Problème de lecture et programmation de CVs avec DCC++
Posté par: dmskd le avril 18, 2020, 04:21:09 pm
J’ai contacté la boîte, expliqué le problème, mais je n’ai pas eu de réponse.

Je leur ai également envoyé un mail ce matin.
On verra ...
Titre: Re : Re : Problème de lecture et programmation de CVs avec DCC++
Posté par: Tony04 le mai 17, 2020, 03:16:37 pm
J'ai modifié le code checkAcknowlegde  pour rester dans la boucle même quand le test est positif et tout ce passe bien.

Bonjour Jean Paul,

je suis loin de savoir modifier une librairie mais j'ai les mêmes problèmes de programmation ou de lecture de CVs sur certains décodeurs. J'ai essayé de trouver où mettre tes modifications mais je me retrouve avec des erreurs de compilation. Peut-être que quelqu'un d'autre a eu plus de chance que moi.

Aurais-tu la gentillesse de mettre le fichier PacketRegister.cpp (je pense que c'est bien lui que tu as modifié) en pièce jointe pour que je puisse faire un essai ?

Merci par avance et bon dimanche AM.

Cordialement
Antoine
Titre: Re : Re : Re : Problème de lecture et programmation de CVs avec DCC++
Posté par: Jean-Paul le mai 17, 2020, 10:47:16 pm
J'ai modifié le code checkAcknowlegde  pour rester dans la boucle même quand le test est positif et tout ce passe bien.

Bonjour Jean Paul,

je suis loin de savoir modifier une librairie mais j'ai les mêmes problèmes de programmation ou de lecture de CVs sur certains décodeurs. J'ai essayé de trouver où mettre tes modifications mais je me retrouve avec des erreurs de compilation. Peut-être que quelqu'un d'autre a eu plus de chance que moi.

Aurais-tu la gentillesse de mettre le fichier PacketRegister.cpp (je pense que c'est bien lui que tu as modifié) en pièce jointe pour que je puisse faire un essai ?

Merci par avance et bon dimanche AM.

Cordialement
Antoine

Bonsoir Antoine,

Je mets ci-joint le fichier en question avec mes modifications expliquées dans mon message précédent.

Malheureusement depuis, j'ai aussi reçu des décodeurs D&H ( il s'agit en fait de décodeurs prémontés sur des cartes VELMO 'facile' à installer dans des locos Marklin Z électriques ou diesel, pas les vapeurs - voir une autre discussion)

Et cela ne marche pas avec ces décodeurs même après mes modifications. Après beaucoup de recherche (il ya aussi des messages sur trainworld mentionnant ce problème), j'arrive à la conclusion qu'il y a un autre problème plus grave dans la librairie en ce qui concerne l'implementation du paramètre repeat dans la fonction loadPacket et la façon d'utiliser cette valeur dans la macro DCC_SIGNAL (fichier DCCpp.cpp). J'ai une version qui marche à présent pour ma configuration (UNO, motorshield, serial, programmation sur la voie prog uniquement) , mais ce n'est plus une librairie,  ce n'est plus générique et ce n'est pas testé sur d'autres décodeurs.
Je peux partager les modifications que j'ai faites si il y a un intérêt mais cela nécessiterait encore du travail si on veut remettre cela dans la librairie.

Cordialement
Jean-Paul

Titre: Re : Problème de lecture et programmation de CVs avec DCC++
Posté par: Tony04 le mai 17, 2020, 11:03:00 pm
Un grand merci à toi Jean-Paul, je vais tester ta solution mais cela prendra un peu de temps avant la réponse car c'est surtout toutes les personnes qui ont construit ma souris/centrale sans fil qui en ont besoin, chez moi tous mes décodeurs fonctionnent.

Bon début de semaine.
Cordialement
Antoine
Titre: Re : Problème de lecture et programmation de CVs avec DCC++
Posté par: Jeje_12_34 le août 15, 2020, 01:47:33 pm
Bonjour

Ci dessous copie de mon post sur le forum du N  :

Bonjour !

Ce matin , j'ai apporté les modifications préconisées.

Désormais, JMRI reconnait les décodeurs et leur versions. Je peux créer les nouvelles locos rien qu'en les posant sur la voie de programmation  Very Happy

Je peux lire en intégralité toutes les valeurs des CV de toutes les machines en ma possession.

Je peux  piloter toutes les machines sur la voie principale. Very Happy

MAIS  :
Les valeurs des décodeurs D&H récents restent immodifiables sur la voie de programmation. Alors que les anciens le sont à volonté.

Sur la voie principale, j'arrive à changer les CV1, malgré la réception d'un message d'erreur.
Je n'ai pas tenté de modifier d'autres CV sur la voie principale, j'ai vraiment trop peur de cramer quelque chose.

Je cherche donc encore.

Dans le fil de Trainboard, il est question à un moment donné de 2 "onglets" à modifier. Mais ils ne disent pas ce qu'il faut faire dans le 2e !
Malheureusement, je n'arrive pas à m'inscrire à Trainboard pour récupérer les zip censés regrouper toutes les modifications à effectuer.
Je ne reçois pas le mail pour activer mon compte ... bizarre.

Je continue à chercher.

Si l'un de vous est membre de Trainboard, peut-il m'envoyer les fichiers zip proposés dans le 12eme message de ce sujet ?
https://www.trainboard.com/highball/index.php?threads/dcc-issues-with-d-h-10c-resolved.106064/

Par avance merci !
Titre: Re : Problème de lecture et programmation de CVs avec DCC++
Posté par: bigboy le août 15, 2020, 01:59:23 pm
Bonjour,

Voilà le zip demandé.

Bien à vous.
Gérard
Titre: Re : Problème de lecture et programmation de CVs avec DCC++
Posté par: Jeje_12_34 le août 15, 2020, 04:10:34 pm
Milles merci

Yapuka essayer :)
Titre: Re : Problème de lecture et programmation de CVs avec DCC++
Posté par: Jeje_12_34 le août 15, 2020, 05:55:34 pm
Je me réponds au lieu d'éditer mon précédent message, pour éviter que ce post ne passe inaperçu

J'ai apporté les modifications décrites dans les deux fichiers précédemment communiqués par bigboy.
Pour mieux comprendre, au lieu de remplacer les fichiers, j'ai joué aux "8 erreurs".

Car oui, il n'y a que 8 modifications à faire, en tout, pour que TOUT FONCTIONNE ! correctement.

Je suis trop content, et en prime  ça m'a bien occupé mon 15 aout coincé à la maison  :)

Rappel de ma configuration  : LA "Centrale JMRI"  décrite sur ce site (qui n'utilise pas DCCpp mais le DCC++ original), liaison Ethernet  et des décodeurs D&H récents, mais récalcitrants ! Les anciens étant bien plus malléables ... ;)

Voici les modifications apportées :
Dans l'IDE ARDUINO :

dans  l'onglet "PacketRegister.cpp"
- modifier les lignes  238 et 262 en : loadPacket(0,bRead,3,1);
- "commenter" les lignes 303et 361 pour qu'elles ne s'exécutent pas.
- modifier les lignes  318 et 376 en : loadPacket(0,bWrite,3,1);

 dans l'onglet "PacketRegister.h" :
- Ligne  18  :  remplacer 500 par 250
- Ligne 20  :   remplacer 30 par 5


Jérôme, trop trop content !
Thierry, maintenant je vais essayer de comprendre pourquoi  ma petite centrale "DCDCC" ne veut pas afficher mes CV :)
Titre: Re : Problème de lecture et programmation de CVs avec DCC++
Posté par: Tony04 le août 16, 2020, 05:51:31 pm
Bonjour à tous,

Citer
Jérôme, trop trop content !

Antoine aussi trop trop content. Cela fait des semaines que je cherche une solution pour certain décodeurs récalcitrants sur ma centrale qui elle tourne sous DCCpp.
Jean-Paul avait proposé une solution que j'ai fini par tester sans résultat.

Par curiosité j'ai téléversé dans ma centrale la version DCC++ avec les 2 PacketRegister modifiés selon le message de Jérôme et bigboy, et là, miracle, aucun soucis pour programmer ce décodeur (loco américaine).

Je m'adresse donc aux "spécialistes" pour savoir si ces modifications apportées aux 2 registres PacketRegister de la version DCC++ ne pourraient pas être apportées aux registres de la version DCCpp. J'ai beau chercher, ce n'est pas du tout le même code dans les 2 versions et je n'ai pas le niveau pour le faire.

Merci par avance à cette âme charitable qui veut bien passer quelques heures à se casser les dents.

Cordialement
Antoine
Titre: Re : Problème de lecture et programmation de CVs avec DCC++
Posté par: Jeje_12_34 le août 16, 2020, 10:14:27 pm
Bonsoir Tony

Je pense que j'ai compris comment faire, mais je ne suis pas certain.

vois la page 5 ce post et la réponse de Thierry
https://forum.locoduino.org/index.php?topic=752.60

Je pense qu'il suffit de modifier ces fichiers (avec notepad)  dans ton répertoire  arduino/libraries/DCCpp/src

Je ne peux pas tester, n'ayant aucune centrale sous DCCpp mais demain je teste de faire les modifications pour DcDccNanoController




Titre: Re : Problème de lecture et programmation de CVs avec DCC++
Posté par: Tony04 le août 16, 2020, 10:42:31 pm
Merci pour ta réponse Jérôme mais chez moi le PacketRegister.ccp est bien différent dans les versions pp et ++, et n'arrive pas à trouver les endroits à modifier.

Peut-être que d'autres membres ont eu plus de chance...

Cordialement
Antoine
Titre: Re : Problème de lecture et programmation de CVs avec DCC++
Posté par: Dominique le août 17, 2020, 08:42:25 am
Je crois que je vais faire un point sur ce fichier PacketRegister qui contient les fonctions « DCC » essentielles, que j’ai souvent triturées et testées.

Mais je viens juste de rentrer de vacances reposantes avec mes 6 petits enfants  ???. Laissez moi le temps de me replonger dans le sujet.

Titre: Re : Problème de lecture et programmation de CVs avec DCC++
Posté par: Tony04 le août 17, 2020, 10:11:34 am
Bonjour à toi Dominique et bonne rentrée,

il n'y a aucune urgence, reprends notre rythme de retraité heureux bien tranquillement. Après des "vacances" avec 6 petits loups tu as bien mérité quelques jours de repos  :)

Amicalement
Antoine
Titre: Re : Problème de lecture et programmation de CVs avec DCC++
Posté par: Thierry le août 17, 2020, 09:05:32 pm
Attention aux sources à modifier. Le DCCpp présent dans DcDccNanoController que Jérôme a modifié n'a rien à voir avec le DCCpp dont parle Antoine. Ils portent le même nom mais sont vraiment très différents. C'est encore plus vrai depuis que DCCpp (celui d'Antoine, la bibliothèque DCCpp) est capable de tourner sur un ESP32, chose que ne sait pas faire DcDccNanoController. Donc oui, il faut reporter les modifications apportées par Jérôme dans DCCpp, mais non, le code n'est pas identique, même si la base reste Basestation DCC++, le travail original de Gregg.
Je voudrais pouvoir vous aider à reporter ces modifications, mais je n'ai pas beaucoup de temps à consacrer à Locoduino ces temps ci, et le peu que j'ai je le consacre au projet LaBox...
Titre: Re : Problème de lecture et programmation de CVs avec DCC++
Posté par: Jeje_12_34 le août 17, 2020, 10:54:09 pm
Bonsoir

Bien que je ne l'utilise pas encore, j'ai déjà installé DCCpp dans mon IDE
Je dispose de la  version  : 02/04/2020 V1.4.1

J'ai donc jeté un coup d'œil et je pense avoir identifié les 8 endroits à modifier.
En fait, ce sont à chaque fois trois ou quatre lignes qui se suivent et qui sont strictement identiques  à celles que j'ai déjà modifiées avec succès dans DCC++ et dans DcDccNanoController .

Dans les extras fournis avec la bibliothèque,  on trouve les sources src  et les lignes y sont numérotées.

dans le fichier PacketRegister.cpp
la 419 et la 433 à modifier en : loadPacket(0, bRead, 3, 1) au lieu de loadPacket(0, resetPacket, 2, 1);
la  521 et la 591 à commenter pour qu'elles ne s'exécutent pas. // loadPacket(0, resetPacket, 2, 1);
la 533 et la 603 à modifier en : loadPacket(0, bWrite, 3, 1) au lieu de  loadPacket(0, resetPacket, 2, 1); 

dans le fichier  PacketRegister.h
la ligne 18  : mettre la valeur 250 au lieu de 500
la ligne 20   : Attention, la constante en "dur" 30 a été remplacée par  : DCCpp::setAckThreshold
Je présume qu'il suffit de la définir quelque part dans votre  script à 5 , ce que je ne sais pas encore faire, mais vous surement oui :)
La documentation indique que DCCpp::setAckThreshold est définie par défaut à 30, mais je n'ai pas trouvé où c'était.

Jeudi, je pourrai vous joindre les fichiers modifiés, si vous le souhaitez.
MAIS JE NE GARANTIS RIEN :) Je ne peux pas tester.

Bonne soirée .
Jérôme, qui n'aime pas lâcher un os tant qu'il ne l'a pas rongé jusqu'au bout  8)
Titre: Re : Problème de lecture et programmation de CVs avec DCC++
Posté par: Dominique le août 17, 2020, 11:14:01 pm
Attention, pour la version qui supporte l’ESP32, j’ai aussi apporté des modifications qui permettent la lecture des CVs, notamment pour la lecture de l’adresse d’un décodeur.
Voir :  https://forum.locoduino.org/index.php?topic=922.msg10754#msg10754 (https://forum.locoduino.org/index.php?topic=922.msg10754#msg10754)

Je vais regarder ces modifications de Jérôme.

Et je pourrai les tester sur la platine LaBox dès que j’aurai un moment la semaine prochaine.
Titre: Re : Problème de lecture et programmation de CVs avec DCC++
Posté par: Jeje_12_34 le août 17, 2020, 11:23:42 pm
Moi, je ne touche plus a rien .  je vais sagement attendre que Dominique teste  8)
Titre: Re : Problème de lecture et programmation de CVs avec DCC++
Posté par: Tony04 le août 18, 2020, 10:00:39 am
Bonjour à tous,

un grand bravo à toi Jérôme pour tes conseils éclairés. Je viens de faire un essai avec les 2 PacketRegister modifiés selon tes explications et la loco américaine qui refusait d'être modifiée accepte maintenant les modifications de CVs.

Citer
a ligne 20   : Attention, la constante en "dur" 30 a été remplacée par  : DCCpp::setAckThreshold
Je présume qu'il suffit de la définir quelque part dans votre  script à 5 , ce que je ne sais pas encore faire, mais vous surement oui :)
La documentation indique que DCCpp::setAckThreshold est définie par défaut à 30, mais je n'ai pas trouvé où c'était.

C'est tout simplement en tout début de PacketRegister.cpp (ligne 13 chez moi)

Maintenant reste à tester au club les autres décodeurs récalcitrants mais on avance, on avance, et c'est la première fois depuis des mois ce qui laisse un peu d'espoir.

Encore merci à toi et aux autres contributeurs et bonne journée à tous.

Cordialement
Antoine
Titre: Re : Re : Problème de lecture et programmation de CVs avec DCC++
Posté par: Thierry le août 18, 2020, 10:04:50 am
Citer
a ligne 20   : Attention, la constante en "dur" 30 a été remplacée par  : DCCpp::setAckThreshold
Je présume qu'il suffit de la définir quelque part dans votre  script à 5 , ce que je ne sais pas encore faire, mais vous surement oui :)
La documentation indique que DCCpp::setAckThreshold est définie par défaut à 30, mais je n'ai pas trouvé où c'était.

Pour changer pour tout le monde, il faut modifier DCCpp.cpp, fonction DCCpp::begin(), ligne 190.
Titre: Re : Re : Problème de lecture et programmation de CVs avec DCC++
Posté par: Dominique le août 18, 2020, 02:14:59 pm
Attention, pour la version qui supporte l’ESP32, j’ai aussi apporté des modifications qui permettent la lecture des CVs, notamment pour la lecture de l’adresse d’un décodeur.
Voir :  https://forum.locoduino.org/index.php?topic=922.msg10754#msg10754 (https://forum.locoduino.org/index.php?topic=922.msg10754#msg10754)

Je vais regarder ces modifications de Jérôme.

Et je pourrai les tester sur la platine LaBox dès que j’aurai un moment la semaine prochaine.

J'ai eu un moment de répits (les enfants dorment) et regardé la modification de Thomas Peterreins du 28.5.2018 (sur trainboard) :
Il me semble que j'avais testé ce remplacement de loadPacket(0, resetPacket, 2, 1); par loadPacket(0,bRead,3,1); sur la version LaBox, donc pour l'ESP32 et je n'avais pas constaté d'amélioration (impossible de lire aucun CV, quelque soit le décodeur, la lecture du courant de l'impulsion de réponse ne tombant pas au moment où elle a lieu, mais c'est spécifique l'ESP32 et j'ai mis en place une ruse pour l'attraper à tous les coups).
Par acquis de conscience, je vais regarder cette modification à nouveau, bien que je n'ai pas de décodeur D&H.

En ce qui concerne la constante ACK_SAMPLE_COUNT, j'ai conservé la valeur de 500, après plusieurs tests avec une valeur inférieure et sans succès, probablement parce que l'ESP32 est bien plus rapide.
Titre: Re : Problème de lecture et programmation de CVs avec DCC++
Posté par: Jeje_12_34 le août 18, 2020, 06:16:09 pm
Bonjour Dominique

Les seules modifications de Thomas ne m'avaient pas suffit pour résoudre mon problème.

C'est bien l'ensemble des 8 modifications proposées dans les fichiers  (fournis me semble t il  par le service technique de D&H, avec l'aide de Thomas) qui m'ont aidé.

Je n'ai pas trop compris pourquoi il désactivait deux lignes en les commentant, par exemple.

 :)



Titre: Re : Re : Problème de lecture et programmation de CVs avec DCC++
Posté par: Dominique le août 18, 2020, 06:40:31 pm
C'est bien l'ensemble des 8 modifications proposées dans les fichiers  (fournis me semble t il  par le service technique de D&H, avec l'aide de Thomas) qui m'ont aidé.
Je n'ai pas trop compris pourquoi il désactivait deux lignes en les commentant, par exemple.
 :)

Ce qui est vrai pour l'ATMega328P ou 2560 n'est pas forcément vrai pour l'ESP32 pour lequel Thierry nous prépare une version spécifique, bien plus riche que l'original DCC++ de Gregg.
Tant mieux si ça apporte l'amélioration que tu souhaitais.
Mais je te remercie pour tous ces détails que je vais analyser et qui sont peut-etre utiles aussi pour l'ESP32.
Titre: Re : Problème de lecture et programmation de CVs avec DCC++
Posté par: Chris le août 26, 2020, 07:33:11 pm
Bonjour Jeje,
D'abord, merci pour ta proposition d'aide.
j'ai effectué les modifs que tu préconises, mais rien à faire ; pas de réponse du décodeur. :(
J'ai imprimé les retours ( variable "c") je n'ai que des 0, 1, 2 ou 3
y a t-'il autre chose que j'ai raté ?
Christian
Titre: Re : Problème de lecture et programmation de CVs avec DCC++
Posté par: Jeje_12_34 le août 26, 2020, 07:57:35 pm
Bonjour Chris

Hélas, si la rustine ne fonctionne pas alors qu'elle est correctement installée, je ne peux t'aider, cela dépasse mes compétences  :'(

Tu as bien modifié les 8 lignes concernées et tout reversé après la compilation?

Si oui ... je ne sais pas. Ma proposition d'aide était juste pour aider à faire les modifications  :(
Titre: Re : Problème de lecture et programmation de CVs avec DCC++
Posté par: Chris le août 28, 2020, 04:23:17 pm
Bonjour à tous,
Voici les résultats actuels de mes investigations :
Avec les modifications proposées par Jéjé ( Merci à toi), que j'ai légèrement modifiées de la façon suivante :
 - j'ai gardé les resetpacket et passé le bRead précédent à 6 au lieu de 5 (ce qui revient au même que de rajouter une ligne)
 - les init suivants dans le ".h" :
         #define  ACK_BASE_COUNT            100     
         #define  ACK_SAMPLE_COUNT          500       
         #define  ACK_SAMPLE_SMOOTHING      0.2     
         #define  ACK_SAMPLE_THRESHOLD       5     

Je peux lire et écrire des CVs dans mon vieux décodeur Arnold   ;D  depuis la console arduino avec de commandes R et W. Ça fonctionne aussi en programmation avec JMRI  :D, mais quand je passe sur le régulateur sur voie principale, rien ne se passe :'(
j'ai tracé le retour de courant et il tourne autour de 11 pour un seuil à 5.
Quant à mon décodeur LockPilot Micro V4.0 toujours pas de réponse.
Quelqu'un utilise t-il ces décodeurs ?
Par ailleurs je précise que je suis en N ; cela explique-t-il le niveau de courant ? est-ce que DCC++ est bien calibré pour du HO et du N ?

Pour ceux que ça intéresse,  le  ACK_SAMPLE_SMOOTHING est un paramètre de filtrage (filtre passe-bas de la forme Sn = a*En + (1-a)*Sn-1).
Le coefficient de 0,2 est un coefficient de filtrage important pour éliminer vraisemblablement les pics fr courant parasites.
Si vous avez des suggestions ou des expériences pour m'aider à m'en sortir...
Cordialement
Christian

Titre: Re : Problème de lecture et programmation de CVs avec DCC++
Posté par: msport le août 30, 2020, 02:48:15 pm
Une remarque : j'ai moins de difficultés sur la voie de programmation. Un grand circuit crée des capacités parasites qui peuvent influer sur la forme du signal DCC. Phénomène connu des décodeurs DIY qui ont besoin pour certains d'un petite capacité (100-270pF pour Mynabay) pour fonctionner.
Par ailleurs, il vaut mieux faire un reset des récalcitrants avant tout ( valeur à chercher dans la notice pour le CV 8 ).
Certains décodeurs ont des CV de verrouillage (LAISDCC en 15 et 16) qu'il faut déverrouiller avant le reset.
Si la loco frémit mais aucune valeur n'est lue, c'est une piste à explorer.
Titre: Re : Problème de lecture et programmation de CVs avec DCC++
Posté par: Chris le septembre 02, 2020, 12:09:12 pm
Bonjour msport,
Je pense que le problème n'est pas là.
Ma voie principale est pour le moment un tronçon de 1m de voie relié directement en sortie du booster et 20cm pour la voie secondaire.
Avec la Led branchée en sortie du booster j'ai une tension de base renvoyée (sur A0) de 143. sans la Led, j'ai bien 0 (pas de courant consommé).
Mais quand j"envoie un ordre vers le décodeur, la tension retournée (qui en principe correspond à la consommation de courant de la loco) est de 2 ou 3 par rapport au courant de base, soit quasiment rien....
Est-ce lié au N ???
Et pourtant ça fonctionne avec ma centrale Arnold d'il y a 30 ans !
Titre: Re : Problème de lecture et programmation de CVs avec DCC++
Posté par: msport le septembre 02, 2020, 03:11:55 pm
Comme il s'agit d'impulsions, on ne voit pas grand chose au multimètre. Il faudrait investir dans un mini oscilloscope genre https://fr.aliexpress.com/item/32826369650.html?spm=a2g0o.productlist.0.0.466545a25xA8F4&algo_pvid=48acc1ac-a1f2-448f-be18-a7de75e54c98&algo_expid=48acc1ac-a1f2-448f-be18-a7de75e54c98-3&btsid=0b0a187915990516330815210e1622&ws_ab_test=searchweb0_0,searchweb201602_,searchweb201603_

Curieux cette tension sur A0 : 143/1023*5V = 0,7V soit 700mA ???

Je ferais un test avec un montage volant avec un décodeur et un moteur de récupération (type 5V de CD), donc sans rails. La consommation sera plus importante.
Titre: Re : Problème de lecture et programmation de CVs avec DCC++
Posté par: Chris le septembre 04, 2020, 11:36:23 am
Un autre essai avec une carte Pololu MC33926 : Ça marche en programmation et sur voie principale :D
mais seulement avec la console de l'IDE.
Avec JMRI, ça fonctionne sur voie principale mais pas en programmation... Mais je ne sais pas ce que fait JMRI.
En tout cas, sur 4 MAX471 achetés, 3 sont défectueux. Ces circuits ne valent pas grand chose (au propre comme au figuré) et au moins la pololu a sa protection intégrée.
Quant à la L9110S je finis par la mettre en doute aussi...
Ces cartes qui viennent de Chine me semblent n'avoir aucune fiabilité, et si elle ne valent pas cher ça fini quand même par  avoir un certain coût.
Finalement, la fiabilité a un prix.
Donc je vais tester ce soir avec un ami qui a une config qui fonctionne en HO avec JMRI si il peut programmer ma loco. Je vous donnerai le résultat.
Cordialement
Titre: Re : Re : Problème de lecture et programmation de CVs avec DCC++
Posté par: Dominique le septembre 04, 2020, 12:46:24 pm
Bonjour à tous,
Voici les résultats actuels de mes investigations :
Avec les modifications proposées par Jéjé ( Merci à toi), que j'ai légèrement modifiées de la façon suivante :
 - j'ai gardé les resetpacket et passé le bRead précédent à 6 au lieu de 5 (ce qui revient au même que de rajouter une ligne)
 - les init suivants dans le ".h" :
         #define  ACK_BASE_COUNT            100     
         #define  ACK_SAMPLE_COUNT          500       
         #define  ACK_SAMPLE_SMOOTHING      0.2     
         #define  ACK_SAMPLE_THRESHOLD       5     

Je peux lire et écrire des CVs dans mon vieux décodeur Arnold   ;D  depuis la console arduino avec de commandes R et W. Ça fonctionne aussi en programmation avec JMRI  :D, mais quand je passe sur le régulateur sur voie principale, rien ne se passe :'(
j'ai tracé le retour de courant et il tourne autour de 11 pour un seuil à 5.
Quant à mon décodeur LockPilot Micro V4.0 toujours pas de réponse.
Quelqu'un utilise t-il ces décodeurs ?
Par ailleurs je précise que je suis en N ;
Christian

Bonjour Christian,
Tes tests sont intéressants et j’avoue être perplexe quand aux modifications des commandes bRead-Reset (avec ou sans). Pour les seuils, sûrement ça joue et le circuit de mesure de courant est très important (il y a des alternatives au Max471, voir  http://forum.locoduino.org/index.php?topic=1038.msg10994#msg10994 (http://forum.locoduino.org/index.php?topic=1038.msg10994#msg10994))

J’ai l’hypothèse qu’il faut de toute façon lire l’impulsion de courant au bon moment après la réception par le décodeur de la commande bRead, et il y a sûrement des dispersions de caractéristiques des décodeurs. Dans le cas de l’Esp32, la méthode avec un AVR ne marchait pas du tout. Ajouter un délai ne garantit rien. J’ai donc intégré une vingtaine de fenêtres de mesures (au lieu d’une seule) et je regarde s’il y a une impulsion dans une de ces fenêtres (ou aucune si pas d’impulsion). Sur l’ESP32 ça a l’air de marcher ( http://forum.locoduino.org/index.php?topic=922.msg10754#msg10754 (http://forum.locoduino.org/index.php?topic=922.msg10754#msg10754))

J’essayerai d’appliquer cette méthode sur l’AVR. mais à mon retour de vacances.

Par ailleurs il ne faut pas oublier que les ordres de programmation sur voie principale sont SANS réponse du décodeur (sauf la recherche d’adresse dans DCCpp). Beaucoup de modélistes programment l’adresse ainsi et font juste le test pour voir si ça marche.

Enfin je peux dire que ma petite MS2 marklin arrive parfois à lire les CVS quand DCCpp échoue, mais ça prend un temps fou donc elle essaye plusieurs méthodes (mais lesquelles, mystère).

Conclusion : on a encore du pain sur la planche (breadboard📎).

Dominique
Titre: Re : Problème de lecture et programmation de CVs avec DCC++
Posté par: dbdu78 le novembre 05, 2020, 03:06:40 pm
Hello messieurs

j'ai aussi des problèmes de programmation des CV.
J'ai un Arduino Mega, DCC++ original, LMD18200 sur les deux voies.
J'ai bien modifier les deux PacketRegister mais mes décodeurs Lenz ne veulent rien savoir.

En tout cas félicitation pour le travail accomplis ! je comprend a peine 5% de vos postes  ;D
Titre: Re : Problème de lecture et programmation de CVs avec DCC++
Posté par: msport le novembre 05, 2020, 05:33:12 pm
Bonjour et bienvenue.

Hors programmation des CV, tout fonctionne ? Qui produit les codes DCC++ ?
Titre: Re : Re : Problème de lecture et programmation de CVs avec DCC++
Posté par: Dominique le novembre 06, 2020, 09:08:18 am
J'ai bien modifier les deux PacketRegister mais mes décodeurs Lenz ne veulent rien savoir.

En tout cas félicitation pour le travail accomplis ! je comprend a peine 5% de vos postes  ;D

Modifier une partie sensible d’une bibliothèque sans la comprendre à 100% vous expose à de nombreux problèmes. C’est ce qu’il ne faut jamais faire mais plutôt chercher la réponse dans les nombreux sujets traités ou expliquer en détail le problème constaté avec tout l’environnement qui l’a révélé. Bon courage.
Titre: Re : Problème de lecture et programmation de CVs avec DCC++
Posté par: dbdu78 le novembre 09, 2020, 09:33:17 am
@msport. Oui tout fonctionne hormis la programmation par Jmri. Je referai des essais avec des nouveaux MAX471 car ceux que j'ai ont une résistance interne beaucoup trop importante mon problème vient potentiellement de la.

Merci
Titre: Re : Problème de lecture et programmation de CVs avec DCC++
Posté par: msport le novembre 09, 2020, 10:08:09 am
Les MAX471 qui restent en vente semblent souvent défectueux : on a proposé un circuit de remplacement à MAX472 :

https://forum.locoduino.org/index.php?topic=1038.msg11032#msg11032
Titre: Re : Problème de lecture et programmation de CVs avec DCC++
Posté par: JPB le janvier 04, 2022, 08:21:03 pm
Bonsoir,

En clair, je prends le bazar en cours de route, le dernier post date de plus d''un an et je suis néophyte en programmation.
A lire et relire ce sujet (4 pages) je fini par ne plus savoir de quel version de "DCC" il s'agit. J'ai pu télécharger et décortiquer les programmes suivants:
DCCpp-uno
DCCpp-master
Les deux récupérés sur le site Github/locoduino

- J'ai suivi à la lettre le projet de bobby & co: https://www.locoduino.org/spip.php?article253
- Je vois dans ce sujet, dès les premiers posts, qu'il ne faut pas confondre DCCpp et DCC++... Bah ça commence bien !
- Au fil des posts, certains s'engagent dans des charcutages de librairies et on ne sait toujours pas au final si le programme de départ ou d'arrivée fonctionne mieux ou pas.

Bien qu'ayant lu que "Modifier un programme sans comprendre... " c'était inconcevable, j'aimerai qu'au final une réponse claire soit apportée au sujet en cours... Je vous jure que je fais des efforts.

1- je suis équipé: Uno et/ou master (au choix, j'ai les deux), MAX471 / ASC712 (j'ai essayé les deux avec modifs du seuil dans le programme), MAX485 + module L298 (pas le shield), la carte 9110S est dans l'avion qui vient de Chine, et en connexion USB
2- Mon décodeur Train O mania (le seul que j'ai actuellement) réagi à la demande de JMRI mais ne retourne pas d'info dans le logiciel, lecture impossible.
3- les commandes d'alimentations de voies fonctionnent correctement (leds en sortie du L298).
4- La reconnaissance du décodeur ne fonctionne ni sur voie prog, ni sur voie principale.

Merci donc à ceux qui ont les bonnes infos et terminé leur projet de répondre de façon claire et positive à mes interrogations.


Titre: Re : Problème de lecture et programmation de CVs avec DCC++
Posté par: msport le janvier 04, 2022, 10:32:17 pm
Bonsoir,

vous êtes sur un forum qui évolue pour tenir compte des problèmes techniques rencontrés, alors il faut suivre l'actualité.
Depuis l'année dernière on a enterré les MAX471, trop souvent défectueux.
Et signalé que les ACS712 ne permettaient pas de faire la lecture des CV (juste la protection de court-circuit)
Le schéma modifié pour les GY-169 : https://forum.locoduino.org/index.php?topic=843.msg13424#msg13424

Mais j'ai du mal à comprendre en quoi consiste votre montage à L298 sans shield.
Titre: Re : Problème de lecture et programmation de CVs avec DCC++
Posté par: JPB le janvier 05, 2022, 07:38:06 am
Bonjour,

Vous écrivez: "Mais j'ai du mal à comprendre en quoi consiste votre montage à L298 sans shield"... J'ai un arduino suivi d'un MAX485 pour avoir deux signaux opposés en final et suivi d'un L298n. Pour moi un "shield" est une carte qui se monte sur la carte mère arduino, ce qui n'est donc pas le cas. J'attends ma carte L9110S qui est dans l'avion... Ce qui me permettra de me passer du MAX485 et d'être conforme au schéma d'origine. Seul bémol, l'asc712 placé entre la sortie d'alim 18V et le L298n avec un Vout sur A0
Un peu électronicien de formation, j'ai, après 42 ans de carrière, quelque notions de câblage et je ne comprends toujours pas en quoi un contrôleur d'intensité en amont dans un circuit perturbe un retour de signal sur la voie. Je peux comprendre que les "modules" L298 pourraient empêcher le retour d'info mais j'ai lu dans un autre post de ce forum qu'il pourrait suffire d'augmenter le seuil de déclenchement du programme avec un ASC712 (puisque Vout = 100mV/A) ce qui est d'ailleurs positif car l'alimentation démarre avec un seuil à 600 et qu'à 300, elle ne démarre pas.

Les L298n ici:
https://www.amazon.fr/DollaTek-Module-Stepper-Controller-Arduino/dp/B07DK6Q8F9/ref=sr_1_6?__mk_fr_FR=%C3%85M%C3%85%C5%BD%C3%95%C3%91&crid=3MVOVGS0QBMA5&keywords=L298n&qid=1641364631&sprefix=l298n%2Caps%2C123&sr=8-6 (https://www.amazon.fr/DollaTek-Module-Stepper-Controller-Arduino/dp/B07DK6Q8F9/ref=sr_1_6?__mk_fr_FR=%C3%85M%C3%85%C5%BD%C3%95%C3%91&crid=3MVOVGS0QBMA5&keywords=L298n&qid=1641364631&sprefix=l298n%2Caps%2C123&sr=8-6)

Je suis obligé de passer par un max485 pour obtenir les deux signaux en opposition de phase pour les modules L298n. Vu sur un autre site: La gare de Lormedy...

Lors de la lecture du décodeur avec decodeur pro, la loco réagit mais le logiciel ne récupère simplement pas les infos. J'ai aussi tenté de choisir manuellement le type de décodeur sans plus de succès de retour.

Je n'ai pas de réponse non plus sur le charcutage proposé dans ce post et ne sais pas réellement si son application a été positive.
Mon site de référence étant actuellement Amazon mais il en existe d'autres, je trouve aussi facilement des modules MAX471 que des ASC712 et les MAX472 sont vendus à la pièce, non câblés. J'ai bien trouvé le lien pour faire réalisé les CI adéquats et en ait fait réaliser avec une CNC (avec succès)

Comme je débute dans la construction à base d'Arduino, il est normal de poser plein de questions qui dans ce sujet sont restées sans réponse. Le but étant, pour les néophytes, d'avoir un maximum de détails et d'aller au bout de la démarche.

PS: Côté forum, je suis fondateur d'un forum de caravaning et sais très bien comment cela fonctionne. Je ne peux que regretter que certains posent des questions auxquelles on répond et ne donnent souvent pas suite de l'évolution de leur démarche !
Titre: Re : Problème de lecture et programmation de CVs avec DCC++
Posté par: msport le janvier 05, 2022, 06:06:03 pm
Bonsoir,

votre problème semble venir du fait que vos MAX471 n'ont pas été validés et que les ACS712 ne sont pas adaptés à la lecture des CV (jusqu'à preuve du contraire, car je n'en ai pas vu d'application jusqu'ici).

Pour l'ACS712, les échanges sur le forum ont conclu que l'on pouvait les utiliser en protection de court-circuit mais pas en lecture de CV.

Dans son dernier post sur ce sujet, BobyAndCo indique qu'il les utilise seulement pour la protection contre les courts-circuits.
https://forum.locoduino.org/index.php?topic=1030.msg10981#msg10981

Je vous suggère de monter un banc de test avec le DCCpp_Uno original de Gregg Berman :
https://github.com/DccPlusPlus/BaseStation
https://forum.locoduino.org/index.php?topic=843.msg14370#msg14370 (*)
présenté au paragraphe ARDUINO MOTOR SHIELD de :

https://www.locoduino.org/spip.php?article187

Pour le module à L9110S, voir le fil correspondant(*), il n'y a pas que des bêtises ...
Titre: Re : Problème de lecture et programmation de CVs avec DCC++
Posté par: JPB le janvier 05, 2022, 08:13:31 pm
Merci beaucoup pour ces excellentes précisions.
J'admets que ASC712 n'est pas le ci optimum pour cet usage et que tout ce que j'ai lu même ailleurs reste négatif... Je vais tâcher de m'approvisionner un "shield" moteur pour un montage test et faire le tour des références pour remplacer ce fichu MAX471par une référence plus adéquate.  je me suis servi jusqu'à lors de matériel déjà acquis au fil des semaines et depuis ma rencontre à Dreux avec Dominique (Rencontre très instructive d'ailleurs !).
J'avais bien téléchargé la "Base station" de Bergman sur github...
Je progresse pas à pas evec ce nouvel univers et vient de dévorer 20 pages en français sur la programmation et l'utilisation des décodeur tOm ! C'est bien plus ardu qu'il n'y parait pour faire tourner une loco voire plusieurs ! Il restera après à se familiariser avec JMRI mais ce n'est pas ici le sujet...

 :) :) :)
Titre: Re : Problème de lecture et programmation de CVs avec DCC++
Posté par: Dominique le janvier 05, 2022, 09:35:06 pm
c'est vrai qu'on est parfois face à des choix pas faciles, vu la quantité d'informations.

Mais pour se faire la main, je recommande toujours:
INA169 (au lieu de Max471 et ACS712, sauf pont en H de plus de 3A)
LMD18200 tout fait ou L6203 avec sa mesure de courant par ampli op

A ce sujet, avec msport on pourrait publier (si ce n'est déjà fait) sa carte à base de L6203 qui remplace le LMD18200 et qui fait partie intégrante de LaBox.

De même, je recommande de ne "brancher" JMRI que quand la centrale fonctionne bien et commande bien 1 ou 2 trains avec les commandes "<x x x >" manuelles via le moniteur de l'IDE (protocole DCC++).

Bon courage
Titre: Re : Problème de lecture et programmation de CVs avec DCC++
Posté par: msport le janvier 05, 2022, 10:06:44 pm
Merci Dominique pour la confirmation de l' INA169, le schéma revu est là :

https://forum.locoduino.org/index.php?topic=843.msg13879#msg13879

https://www.ebay.fr/itm/174358185974

la mesure de courant est envoyée sur A1.


Et le GY-169 n'est pas mal non plus et dispense de courir après la résistance de 0.1 ohm à souder à l'emplacement RS de l' INA169.

https://forum.locoduino.org/index.php?topic=843.msg13494#msg13494

https://www.ebay.fr/itm/253071135646
Titre: Re : Problème de lecture et programmation de CVs avec DCC++
Posté par: JPB le janvier 06, 2022, 07:32:52 am
Merci encore... J'ai désormais de bonnes références. Reste à commander ça !
Titre: Re : Problème de lecture et programmation de CVs avec DCC++
Posté par: CATPLUS 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

Titre: Re : Re : Problème de lecture et programmation de CVs avec DCC++
Posté par: Dominique 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

Titre: Re : Re : Problème de lecture et programmation de CVs avec DCC++
Posté par: msport 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.
Titre: Re : Problème de lecture et programmation de CVs avec DCC++
Posté par: JPB 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...
Titre: Re : Problème de lecture et programmation de CVs avec DCC++
Posté par: Dominique 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 (https://www.nmra.org/sites/default/files/standards/sandrp/pdf/S-9.2.3_2012_07.pdf)


Voir le D: Decoder Acknowledgment Mechanism
Titre: Re : Problème de lecture et programmation de CVs avec DCC++
Posté par: AmadeusHF 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...
Titre: Re : Problème de lecture et programmation de CVs avec DCC++
Posté par: Dominique le janvier 07, 2022, 08:19:08 pm
C’est super clair. Merci  ;D
Titre: Re : Problème de lecture et programmation de CVs avec DCC++
Posté par: JPB 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
Titre: Re : Problème de lecture et programmation de CVs avec DCC++
Posté par: AmadeusHF 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...
Titre: Re : Problème de lecture et programmation de CVs avec DCC++
Posté par: dmskd 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/ (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
Titre: Re : Problème de lecture et programmation de CVs avec DCC++
Posté par: msport 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.
Titre: Re : Problème de lecture et programmation de CVs avec DCC++
Posté par: dmskd 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.
Titre: Re : Problème de lecture et programmation de CVs avec DCC++
Posté par: msport 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++ ?
Titre: Re : Problème de lecture et programmation de CVs avec DCC++
Posté par: dmskd 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.
Titre: Re : Problème de lecture et programmation de CVs avec DCC++
Posté par: msport 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.
Titre: Re : Problème de lecture et programmation de CVs avec DCC++
Posté par: dmskd le janvier 10, 2022, 11:53:16 am
Merci pour cette précision.
En tous cas, je suis satisfait avec DCC++EX.
Titre: Re : Problème de lecture et programmation de CVs avec DCC++
Posté par: JPB le janvier 13, 2022, 07:39:31 am
Bonjour,

Je suis content d'avoir redémarré ce post et voit qu'aujourd'hui 3 programmes peuvent être mis en oeuvre avec pour chacun d'eux les petits détails qui font leur différence. DCC++, DCC_PP et DCC++EX

Comme j'en suis à tester tout ce matériel je vais pouvoir profiter des diverses solutions proposées. J'ai réceptionné ma carte L9110S à MOSFET, je vais tester une solution de détection à base de LM358 (AOP) le ci est en cours de fab.

Je vais peut-être pouvoir ainsi m'affranchir des divers MAX471/472 ou INAxx dont les ajustages et les caractéristiques sont parfois hasardeux. Il existe actuellement d'autres systèmes électroniques pas chers contre les courts-circuits sachant que les alims sont, elles, protégées et n'ai pas besoin de 10A pour mon réseau. 5A me suffisent...

Je ne manquerai pas de communiquer prochainement sur les solutions mises en oeuvre.
Titre: Re : Problème de lecture et programmation de CVs avec DCC++
Posté par: JPB le février 04, 2022, 12:53:04 pm
Aujourd'hui, retour sur une nouvelle configuration...

Arduino Master et DCCpp-uno
L9110S Mosfet
Controleur de courant à base d'AOP LM3140

Lecture de cv impeccable, allumage des voies OK. Reste à me familiariser avec les commandes du moniteur car la loco ne répond pas aux commande dans JMRI (on verra dans un autre post)

Ci-joint le schéma du circuit avec LM3140 (Source: lesiteferroviare)
R1: 0.1@ 2W
R2: 1K@
R3: 10K@
C1: 1µF
AOP: LM3140

Titre: Re : Problème de lecture et programmation de CVs avec DCC++
Posté par: msport le février 04, 2022, 03:18:57 pm
Bonjour,

ce montage donne environ 1V / A mais contrairement au MAX 471 regretté, il se place coté froid de l'alimentation.
Le bricoler sur un breadboard peut remplacer un module mais au détriment de la fiabilité. C'est ce que vous avez fait ?

Ce schéma a déjà été identifié :
https://forum.locoduino.org/index.php?topic=843.msg14371#msg14371
Quel serait l'avantage de ce circuit, - d'ailleurs réalisable avec n'importe quel ampli op - ?

Il serait peut-être souhaitable de rester sur le fil ci-dessus consacré à la contribution d'origine (Arduino MEGA, DCCpp-uno et L9110S Mosfet), cela éviterait de partir en ordre dispersé.

Par ailleurs pourquoi signaler à nouveau ce circuit, alors que deux solutions pérennes ont été fournies avec des modules tout fait, déjà testées :
https://forum.locoduino.org/index.php?topic=796.msg14528#msg14528

le schéma pour le GY-169 :
https://forum.locoduino.org/index.php?topic=843.msg13494#msg13494

Et le schéma pour le INA169 :
https://forum.locoduino.org/index.php?topic=843.msg13879#msg13879



Titre: Re : Problème de lecture et programmation de CVs avec DCC++
Posté par: JPB le février 04, 2022, 05:21:31 pm
J'ai juste mis à jour une config qui maintenant fonctionne chez moi en partie. J'attends mes INA169 dans un conteneur en provenance de Chine.
Je conçois que ce schéma a déjà été signalé et qu'une étude en a fait l'éloge. L'intensité qui traverse le circuit est la même que sur la ligne positive et mon décodeur peut être lu, les impulsions sont donc bien prises en compte dans DCCpp c'est ce qui m'importe aujourd'hui et je progresse donc à petit pas avec les délais des livreurs de composants.

Seul soucis rencontré ce jour:

Lecture du décodeur OK dans le moniteur série et dans JMRI.
Les réponses sont OK dans le moniteur série de l'IDE <t 1 03 20 1> répond <t 1 20> mais la loco ne réagit pas !
Alimentation voie OK <1> répond <p1> les voies sont alimentées.

 Là je cherche...

J'ai testé mon LM3140 avec différentes intensités, il fonctionne très bien, les tensions relevées sont correctes et la coupure à 2,8A reste correcte pour un montage sur breadboard...

Titre: Re : Re : Problème de lecture et programmation de CVs avec DCC++
Posté par: Dominique le février 04, 2022, 05:30:35 pm
Seul soucis rencontré ce jour:

Lecture du décodeur OK dans le moniteur série et dans JMRI.
Les réponses sont OK dans le moniteur série de l'IDE <t 1 03 20 1> répond <t 1 20> mais la loco ne réagit pas !
Alimentation voie OK <1> répond <p1> les voies sont alimentées.

 Là je cherche...

Sans doute la loco n’a pas l’adresse = 3. ?
De plus la réponse doit être <T 1 20 1>
Titre: Re : Re : Problème de lecture et programmation de CVs avec DCC++
Posté par: msport le février 04, 2022, 06:17:52 pm
... une étude en a fait l'éloge ...
On n'en doute pas puisqu'on l'a utilisé pour LaBox, cependant suggérer un montage utilisant un breadboard alors que des modules existent, c'est se faire l'avocat du diable.
Titre: Re : Re : Re : Problème de lecture et programmation de CVs avec DCC++
Posté par: JPB le février 04, 2022, 07:47:21 pm
...
Sans doute la loco n’a pas l’adresse = 3. ?
De plus la réponse doit être <T 1 20 1>



Le décodeur a bien l'adresse 3 par défaut et la reporte bien dans JMRI.

Je ne comprends pas pourquoi la loco ne réagi pas alors que les commandes renvoient bien le code de confirmation <T 1 20 1> C'est moi qui ait oublié le dernier chiffre ! Je n'ai pour l'instant pas mis en doute le décodeur.

Quoiqu'il en soit, il est vrai qu'une breadboard n'est pas la panacée mais le module réagit tout à fait correctement aux demandes qui lui sont faites. Je ne souhaite pas investir plus loin tant que mes INA169 ne sont pas dans la place... Le câblage en fils plantés dans l'arduino ne valent pas une bonne brasure sur le CI non plus, on verra ça quand l'ensemble fonctionnera véritablement.
Titre: Re : Problème de lecture et programmation de CVs avec DCC++
Posté par: msport le février 04, 2022, 09:06:30 pm
La confirmation <T 1 20 1> provient de l'Arduino.
Vous l'aurez même si il n'y a rien de branché sur la centrale.
Si  l'IDE ne démarre pas la locomotive sur la voie principale, il se peut qu'elle n'y soit pas et qu'elle soit restée sur la voie de programmation.
Les voies sont sous tension ?
Titre: Re : Problème de lecture et programmation de CVs avec DCC++
Posté par: JPB le février 05, 2022, 09:14:31 am
Bonjour,

Je place bien ma loco sur la voie principale pour la faire obéir mais aucun résultat probant ni sur le moteur, ni sur les feux... Pourtant, en débranchant la commande DIR sur la voie principale, la loco avance et part suivant une courbe de vitesse prédéfinie dans JMRI. même si le régulateur est à 0 . Il va falloir que je vérifie les données dans le programme pour voir si les commandes sont bien au bon endroit.

Je ne m'explique pas encore pourquoi le régulateur n'affiche plus les boutons de fonction. Je tâche de mettre une photo dans ce post dès que possible...
Titre: Re : Problème de lecture et programmation de CVs avec DCC++
Posté par: titi93 le février 12, 2022, 09:07:06 am
bonjour
je sais pas si je poste  ou il faut

novice arduino et jmri
windows > 10
arduino  > 1.8.19
jmri > 4.25+R381c8dfc32
java > version 8 mise a jour 291 (buid 1.8.0_291-b10)

j'ai monter la central  > https://www.locoduino.org/spip.php?article253
alimentation 15 v 5A
une méga
j' ai mis un INA169 a la place du MAX471

le tout par USB rien  d'autre (restons simple )

dans arduino j' ai mis ceci pour l'onglet « Config.h »

// DEFINE MOTOR_SHIELD_TYPE ACCORDING TO THE FOLLOWING TABLE:
//
//  0 = ARDUINO MOTOR SHIELD          (MAX 18V/2A PER CHANNEL)
//  1 = POLOLU MC33926 MOTOR SHIELD   (MAX 28V/3A PER CHANNEL)
//  2 = L9110S Dual Motor Driver      (MAX 28V/10A PER CHANNEL)

#define MOTOR_SHIELD_TYPE   0

///////////////////////////////////

et dans  « DCCpp_Uno.h »

 #elif MOTOR_SHIELD_TYPE == 2
 
  #define MOTOR_SHIELD_NAME "L9110S Dual Motor Driver"
 
  #define SIGNAL_ENABLE_PIN_MAIN 3
  #define SIGNAL_ENABLE_PIN_PROG 11
 
  #define CURRENT_MONITOR_PIN_MAIN A0
  #define CURRENT_MONITOR_PIN_PROG A0
 
  #define DIRECTION_MOTOR_CHANNEL_PIN_A 12
  #define DIRECTION_MOTOR_CHANNEL_PIN_B 13


1er test avec
un décodeur LAIDCC déja programmer

ce qui fonctionne
sur voie principale >  la loco réagis OK
                           > détection court circuit OK
                           > les fonctions du régulateur   OK

sur voie programmation  >  la loco réagis OK
                                     > lecture cv   Erreur 309
                                     > écriture cv > Erreur 309

test 2 avec un décodeur LAIDCC vierge
 même résultat
j'ai donc changer toute les cartes et alimentation rien ne change
j' ai commander un lenz 10231 v2  lui ne réagis même pas ( j'ai du tomber sur un  défectueux )

voila  je sais pas ou cela coince

si vous avez une idée par avance merci






Titre: Re : Problème de lecture et programmation de CVs avec DCC++
Posté par: titi93 le février 12, 2022, 09:15:20 am
j'ai oublier la carte  > https://fr.aliexpress.com/item/4000102260355.html?gatewayAdapt=glo2fra&spm=a2g0o.9042311.0.0.31726c37VPgAiA
Titre: Re : Problème de lecture et programmation de CVs avec DCC++
Posté par: msport le février 12, 2022, 10:37:14 am
Bonjour,

de vos précisions, il apparait que la mesure de courant ne fonctionne pas.

Pouvez vous dire comment vous avez équipé et branché votre carte INA169 (schéma)

Avez vous vérifié si sur vos MEGA le port analogique que vous utilisez (lequel ?) fonctionne.
Pour cela utilisez l'exemple de l'IDE AnalogInOutSerail.
Titre: Re : Problème de lecture et programmation de CVs avec DCC++
Posté par: titi93 le février 12, 2022, 01:23:59 pm
plan
Titre: Re : Problème de lecture et programmation de CVs avec DCC++
Posté par: Jeje_12_34 le février 12, 2022, 02:17:37 pm
Bonjour

Je suis de tres loin mais il me semble que dans config.H

// DEFINE MOTOR_SHIELD_TYPE ACCORDING TO THE FOLLOWING TABLE:
//
//  0 = ARDUINO MOTOR SHIELD          (MAX 18V/2A PER CHANNEL)
//  1 = POLOLU MC33926 MOTOR SHIELD   (MAX 28V/3A PER CHANNEL)
//  2 = L9110S Dual Motor Driver      (MAX 28V/10A PER CHANNEL)

#define MOTOR_SHIELD_TYPE   0

moi, j 'aurai mis 2  ... mais je ne suis sur de rien, vous avez sans doute raison
Jerome
Néophyte qui a tout mis en suspens pour un temps indéterminé mais qui suit toujours ce forum

Titre: Re : Problème de lecture et programmation de CVs avec DCC++
Posté par: Remi le février 12, 2022, 02:24:22 pm
Bonjour,
Comme l'indique Jeje, moi aussi j'aurai mis 2 dans la déclaration de la carte. C'est ce qui correspond à la L9110s !!!
A+. Remi
Titre: Re : Problème de lecture et programmation de CVs avec DCC++
Posté par: titi93 le février 12, 2022, 02:32:13 pm
ok je vais tester avec 2
Titre: Re : Problème de lecture et programmation de CVs avec DCC++
Posté par: titi93 le février 12, 2022, 02:48:44 pm
donc
en mode ajout loco message >  pas confirmation de la locomotive 308
en mode programme  onglet cv > lire tout les onglet
la case  dans la colonne (valeur décimal ) passe en rouge et case colonne (état) inconnu
Titre: Re : Problème de lecture et programmation de CVs avec DCC++
Posté par: msport le février 12, 2022, 03:54:47 pm
Le schéma de la réalisation est tout à fait correct.

Potentiellement deux difficultés :

1. l'utilisation du INA169 suppose la soudure d'une résistance à l'emplacement RS :

0,1 ohm 1W avec la 10K d’origine (rien sur RL)
ou
0,5 ohm 3W avec une 2,2K soudée sur RL

ce qui donne ~1V / A en sortie.
https://cdn-shop.adafruit.com/datasheets/ina169.pdf

2. Si on modifie le sketch d'origine DCCpp_Uno en ajoutant le type 2 au MOTOR_SHIELD_TYPE, on ne change que l'affectation de la mesure de courant de la piste de programmation.

  #define CURRENT_MONITOR_PIN_PROG A1
en
  #define CURRENT_MONITOR_PIN_PROG A0

Le schéma est correct mais je suggère de ne pas modifier le programme et de connecter la sortie de l'INA169 sur A1 et non A0.

La protection contre les courts-circuits est ainsi assurée pour la voie principale aussi puisque qu'un court-circuit détecté via l'entrée courant de la voie de programmation A1 arrêtera toute la centrale.

Quid de la fonctionnalité des entrées A0 et A1 des MEGA ?

PS : les modules à GY-169 comportent déjà une résistance de 0.1 ohm. Vérifier que la résistance de charge est de 10K (103)
https://www.ebay.fr/itm/253071135646

Titre: Re : Problème de lecture et programmation de CVs avec DCC++
Posté par: titi93 le février 12, 2022, 05:50:08 pm
j'y perd mon latin
nous somme bien d'accord que le INA169 est juste la pour préserver des court circuit ?
et que le signal dcc  lecture et écriture ce fait par la carte  de puissance ?
Titre: Re : Problème de lecture et programmation de CVs avec DCC++
Posté par: msport le février 12, 2022, 06:37:40 pm
Pas confondre le signal DCC qui fournit puissance et codes vers la locomotive et  ...
la lecture des CV qui va de la locomotive à la centrale.
Pour cela, le décodeur de la locomotive fournit de petites impulsions de courant (60 mA) que le INA-169 transforme en petites impulsions de tension qui sont lues par les entrées analogiques de l'Arduino  ...
Et c'est pour cela que votre fille est muette !
Titre: Re : Problème de lecture et programmation de CVs avec DCC++
Posté par: titi93 le février 13, 2022, 12:54:55 am
ok msport  la je pose question simple   le ina169  regle  et protège  des sur charge et court circuit
c'est le but  de ce circuit   il fait que cela ?
si c'est le cas  pourquoi  je peu pas lire les cv

lui  ne serait pas en cause

j'esssai comprendre
Titre: Re : Re : Problème de lecture et programmation de CVs avec DCC++
Posté par: msport le février 13, 2022, 10:21:36 am
Le INA169 et lui seul  lit les CV.
Merci de dire ce que vous avez fait au sujet des :


deux difficultés :


1. l'utilisation du INA169 suppose la soudure d'une résistance à l'emplacement RS :

...

2. ... sketch d'origine DCCpp_Uno et  A1 (pour la mesure de courant)

Titre: Re : Problème de lecture et programmation de CVs avec DCC++
Posté par: JPB le février 14, 2022, 01:09:33 pm
Bonjour,
Après avoir galéré un peu avec ces soucis j'ai eu confirmation de la chose suivante:

Dans le tableau édité sur le projet de Bobby & Co, il est écrit que les sorties sont 3, 11, 12, 2 et tu as mis dans le sketch:

 #define MOTOR_SHIELD_NAME "L9110S Dual Motor Driver"
 
  #define SIGNAL_ENABLE_PIN_MAIN 3
  #define SIGNAL_ENABLE_PIN_PROG 11
 
  #define CURRENT_MONITOR_PIN_MAIN A0
  #define CURRENT_MONITOR_PIN_PROG A0
 
  #define DIRECTION_MOTOR_CHANNEL_PIN_A 12
  #define DIRECTION_MOTOR_CHANNEL_PIN_B 13


Il faut donc mettre 2 au lieu de 13* et mettre A1 en détection de courant PROG au lieu de A0
Titre: Re : Problème de lecture et programmation de CVs avec DCC++
Posté par: msport le février 14, 2022, 02:23:46 pm
Bonjour,

je pense que le plus simple est d'utiliser le sketch DCCpp_Uno non modifié et de brancher la mesure de courant sur A1.

Les sorties 3, 11, 12, 2  sont effectivement celles de l'article qui a servi de référence : « Réalisation de centrales DCC avec le logiciel libre DCC++ (3) »
https://www.locoduino.org/spip.php?article187
Titre: Re : Problème de lecture et programmation de CVs avec DCC++
Posté par: titi93 le février 14, 2022, 07:16:33 pm
desoler de pas avoir repondu avant

donc je vais faire une pose
je commande  une carte moteur truc simple > greg
juste pour lire les décodeurs
en suite je verrais  le pb  alim  5ou 10 ampers

une question  serai t'il pas subtile  une fois pour toute   de refaire un tuto  simple
tu prend ceci cela  pour obtenir > ca

plan  composant  programme   mis a jour   en fonction des modifications
je dis cela  car a la fin  une personne qui veut ce lancer  ce retrouve vite perdu
dans toutes ses explications  cert trés intéressante



Titre: Re : Problème de lecture et programmation de CVs avec DCC++
Posté par: titi93 le février 14, 2022, 07:31:22 pm
mais je vais revenir sur l'alim
la j'essais resoudre de lire les cv (car mon ti fil arrive) et je peu pas monter un decodeur
le circuit  alimenter  avec un alim  15v  fonctionne même  si il y a court circuit  et que cela coupe pas
il est heureux 
ce que je verrais a résoudre aprés   
mais  pour moi je dis qu'il va falloir refaire tuto simple  tu prend cela tu fais ca et op cela marche
Titre: Re : Problème de lecture et programmation de CVs avec DCC++
Posté par: titi93 le février 14, 2022, 07:57:52 pm
donc je vais tester le montage avec  L298

juste question je cole comment  le radiateur ?
https://www.locoduino.org/spip.php?article187
Titre: Re : Problème de lecture et programmation de CVs avec DCC++
Posté par: JPB le février 14, 2022, 08:19:03 pm
A l'achat, le radiateur est équipé d'un pad double face qu'il suffit de coller (une fois pour toute) sur le composant.

Titre: Re : Re : Problème de lecture et programmation de CVs avec DCC++
Posté par: msport le février 14, 2022, 08:38:07 pm
il va falloir refaire tuto simple  tu prend cela tu fais ca et op cela marche

C'est justement le but de l’article Ma première centrale DCC  https://www.locoduino.org/spip.php?article304 (https://www.locoduino.org/spip.php?article304)

Mais il faut quand même se griller quelques neurones.

Pour l'article ci-dessus, je suggère de laisser le radiateur dans le tiroir pour l'instant. A ressortir quand vous aurez cinq locomotives à vitesse maxi avec 20 wagons derrière, toutes en montée. Et alors, la protection contre les courts-circuits aura fonctionné avant d'en avoir besoin.
Titre: Re : Problème de lecture et programmation de CVs avec DCC++
Posté par: titi93 le février 15, 2022, 07:05:51 pm
me revoila
donc j'ai suivi toute l'installation
dézipage dans  document /arduino /  ET DONC LE DOSSIER  DCCpp_Uno
une fois le dossier DCCpp_Uno  j'ai bien les 18 dossier
je clic sur  DCCpp_Uno.ino 
le programme ce lance 
je téverse  quelque ligne  en gouge  et  op  televersement fini
je teste 
<iDCC++ BASE STATION FOR ARDUINO ME<iDCC++ BASE STATION FOR ARDUINO MEGA / ARDUINO MOTOR SHIELD: V-1.2.1+ / Feb 15 2022 18:39:15><N0: SERIAL>

donc la j'ai pas la même réponse que dans le tuto

test 2
<1> 
la j'ai que 3 led
A+  A- B-  OK
ME MANQUE LA B+
la voie programme  sur voie principale  tout fonctionne   
une idée ?
Titre: Re : Problème de lecture et programmation de CVs avec DCC++
Posté par: titi93 le février 15, 2022, 07:07:27 pm
MESSAGE erreur 



C:\Users\train\Documents\Arduino\DCCpp_Uno\DCCpp_Uno.ino:196:59: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]
 CurrentMonitor mainMonitor(CURRENT_MONITOR_PIN_MAIN,"<p2>");  // create monitor for current on Main Track
                                                           ^
C:\Users\train\Documents\Arduino\DCCpp_Uno\DCCpp_Uno.ino:197:59: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]
 CurrentMonitor progMonitor(CURRENT_MONITOR_PIN_PROG,"<p3>");  // create monitor for current on Program Track
Titre: Re : Problème de lecture et programmation de CVs avec DCC++
Posté par: titi93 le février 15, 2022, 07:51:55 pm
le but est de pouvoir lire ecrire    decodeur et a chaque  fois  cela mache pas
les commandes fonctionne toujours mais  j'arrive jamais a pouvoir lire  (sauf une fois ca a marcher avec la premiere central  )  et plus   rien  apres je tourne en rond  je grille   truc et machin  la j' ai recommander 5 decodeurs    repartit  avec  une mega et shiell   neuf  et ce ne marche pas  je suis dannè 
Titre: Re : Problème de lecture et programmation de CVs avec DCC++
Posté par: titi93 le février 15, 2022, 07:55:14 pm
mon ti fils arrive demain  reste  2 semaines  les decodeur  arrive  ludi prochain  il rêve   de piloter 2 nouvelle loco  qu'ila vu  et papy  et bien il est comme uncon> ca marche pas   help
sic'est un probleme de pc je donne la main en directe dessus
Titre: Re : Problème de lecture et programmation de CVs avec DCC++
Posté par: titi93 le février 15, 2022, 07:58:18 pm
immaginnez   tout de même   je reprend tout en neuf  je monte je charge  et seul truc qui mache  pas c' la voie programme vous avez  une corde ? J4AI L4ARBRE  MDR
Titre: Re : Problème de lecture et programmation de CVs avec DCC++
Posté par: Dominique le février 15, 2022, 08:29:30 pm
Moi j’y arrive en général avec la bibliothèque DCCpp, pas à tous les coups, certains décodeurs sont connus pour être récalcitrants, mais ça ne me gêne pas.

Quand ça ne marche pas du tout, il y a une erreur dans votre montage ou le logiciel.
Titre: Re : Re : Problème de lecture et programmation de CVs avec DCC++
Posté par: Dominique le février 15, 2022, 08:30:59 pm
J4AI L4ARBRE  MDR
Restons polis et cool svp !
Titre: Re : Problème de lecture et programmation de CVs avec DCC++
Posté par: titi93 le février 15, 2022, 08:58:36 pm
ba oui dom restons polis ou polissons   bref
cela resoud pas le pb
Titre: Re : Re : Problème de lecture et programmation de CVs avec DCC++
Posté par: msport le février 15, 2022, 08:59:57 pm
Vous ne nous aidez pas beaucoup à comprendre ce que vous faites : Vous êtes sur le montage avec un shield à L298  ou avec une carte à L9110 ?

Si vous mélangez les deux, ça ne fonctionnera pas comme l'article ou pas du tout.


<iDCC++ BASE STATION FOR ARDUINO ME<iDCC++ BASE STATION FOR ARDUINO MEGA / ARDUINO MOTOR SHIELD: V-1.2.1+ / Feb 15 2022 18:39:15><N0: SERIAL>

C'est typique d'un mauvais contact et d'une mise sous tension pas franche.

la j'ai que 3 led
A+  A- B-  OK

ME MANQUE LA B+

La aussi, c'est un mauvais contact ou une erreur de n° sur les ponts. Ou un matériel qui n'est pas le bon ou qui a subi un court-circuit.

Si vous n'avez pas les LED B+ et B- allumées inutile d'aller plus loin, vérifiez votre câblage et votre matériel.

Les messages ne sont pas des erreurs mais des warnings, inutile d'en tenir compte.


Seul conseil, faites le montage calmement dans un espace dégagé en suivant pas à pas le topo.

Titre: Re : Problème de lecture et programmation de CVs avec DCC++
Posté par: msport le février 15, 2022, 09:11:34 pm
Vous utilisez votre MEGA à la place d'un UNO, les ponts ne sont pas les mêmes.

Ce qu'il faut changer :

Il faut supprimer le pont 10 - 12 et déplacer l'autre pour faire 2 - 13

Je n'ai pas pu tester cette modification ...
Titre: Re : Problème de lecture et programmation de CVs avec DCC++
Posté par: titi93 le février 16, 2022, 07:10:36 pm
bonsoir
alors je vais commencer  par  dire  un gros merci a MSPOR
TOUT FONCTIONE
la st valentin est passer mais je lui enverrais bien des fleurs

j'arrive enfin a lire les cv  donc  2  décodeur  que je pensais  mort  qui fonctionne

donc ce montage va  rester de coté  juste pour lire écrire

je reviendrais  vers  vous  pour résoudre  l'autre pb sur  l'alim  universelle 
je  ferais bien  une  photo mon ti fils  heureux   mais   on  va  la  supprimer 
Titre: Re : Re : Re : Problème de lecture et programmation de CVs avec DCC++
Posté par: JPB le février 20, 2022, 06:52:51 am
...

C'est typique d'un mauvais contact et d'une mise sous tension pas franche.

la j'ai que 3 led
A+  A- B-  OK

ME MANQUE LA B+

La aussi, c'est un mauvais contact ou une erreur de n° sur les ponts. Ou un matériel qui n'est pas le bon ou qui a subi un court-circuit.

Si vous n'avez pas les LED B+ et B- allumées inutile d'aller plus loin, vérifiez votre câblage et votre matériel.

Les messages ne sont pas des erreurs mais des warnings, inutile d'en tenir compte.


Seul conseil, faites le montage calmement dans un espace dégagé en suivant pas à pas le topo.
[/quote]


Je confirme ! J'ai eu le même soucis lors de mes branchements et tests. J'ai câblé deux leds tête bêche en sortie de L9110S et toujours une qui s'allumait par intermittence.  Le câblage avec les fils sur les connecteurs Dupont est très loin d'être fiable et il est préférable de passer par une bonne brasure. Depuis que j'ai brasé ces fils, plus de problème, un câblage plus propre, un pur bonheur !