Auteur Sujet: Dépannage de Une station DCC complète, polyvalente et économique avec JMRI.  (Lu 14746 fois)

msport

  • Global Moderator
  • Hero Member
  • *****
  • Messages: 2217
  • HO avec DCC++ en DIY Réseaux très éphémères
    • Voir le profil
https://www.locoduino.org/spip.php?article253#forum4940

Bonjour,
pour éviter d'encombrer le site éditorial par des questions qui ne concernent que vous, nous vous suggérons de poster vos questions concernant le dépannage de votre montage ici. Indiquez ce que vous avez déjà vérifié.
Pensez à joindre une photo de votre réalisation.
Merci

Hello,
to avoid cluttering the editorial site with questions that only concern you,, we suggest that you post your questions regarding troubleshooting your assembly here. Indicate what you have already verified.
Consider attaching a photo of your assembly .
Thank you
Cordialement

Jeje_12_34

  • Jr. Member
  • **
  • Messages: 95
  • Double ovale N
    • Voir le profil
Bonjour

La réalisation de cette centrale est très attrayante pour de vrais débutants. L'article est clair et très bien  documenté.
Cette centrale permet de piloter des trains facilement, en s'affranchissant des codes DCC complexes, puisque c'est JMRI qui s'en charge.

Je vais tenter, en temps que néophyte, de la faire fonctionner avec DCCpp et non plus avec DCC++.
C'est peut être déjà fait par quelqu'un d'autre, mais je n'ai pas trouvé un "tuto" aussi clair que l'article.

Le but est de pouvoir faire bénéficier les néophytes des modernisations de DCCpp, et en particulier, la lecture/écriture d'un plus grand nombre de décodeurs "récents"; ainsi que des mises a jours quasi automatique d'une bibliothèque.

Si je n'y parviens pas, je demanderai de l aide à la suite de ce fil.
J'ai commencé à m'y pencher.
Croyez moi, c'est peut être évident pour beaucoup d'entre vous, mais pour moi; ca ne l'est pas.

Si j'y parviens, j'essaierai de faire un petit "tuto" pour les vrais débutants si le besoin s'en fait sentir.


Bonne soirée
Jerome
Le néophyte de service !
Adhérent AFAN

Jeje_12_34

  • Jr. Member
  • **
  • Messages: 95
  • Double ovale N
    • Voir le profil
Bonjour

J'ai tenté  . La connexion via Ethernet ne fonctionne pas .

/*************************************************************
project: <Dc/Dcc Controller>
author: <Thierry PARIS>
description: <Dcc Ethernet Controller sample>
*************************************************************
Modifié par Jerome
Adaptation de ma Centrale fonctionnelle sous DCC++ Ethernet pilotée via JMRI
Composée d'un "Mega", d'un "Shield Ethernet V2 5500", d'une carte "L9110S Dual Motor Driver" et d'un seul "Max 471"
Montage strictement identique à l'article paru dans Locoduino

J'ai adapté l'exemple "EthernetDcc" fourni dans le dossier examples de la bibliotheque DCCpp.
********************************************/
#include "DCCpp.h"

#if !defined(USE_TEXTCOMMAND) || !defined(USE_ETHERNET)
#error To be able to compile this sample,the lines #define USE_TEXTCOMMAND and #define USE_ETHERNET must be uncommented in DCCpp.h
#endif

/* j'ai decommenté la ligne 486 dans le fichier de la DCCpp de la bibliotheque. J'ai un shield V2 avec 5500
 La ligne #define USE_TEXTCOMMAND était déjà décommentée.*/

// the media access control (ethernet hardware) address for the shield:
// uint8_t mac[] = { 0xBE, 0xEF, 0xBE, 0xEF, 0xBE, 0xEF }; adresse MAC se trouve sur le materiel ou son emballage.
uint8_t mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xEF };  //ceci est l'adresse MAC de mon shield ethernet.

//the IP address for the shield:
// uint8_t ip[] = { 192, 168, 1, 200 }; chez moi cette adresse n'a jamais fonctionné sans doute a cause de mon routeur free
uint8_t ip[] = { 192, 168, 0, 200 };  // cette adresse fonctionne chez moi avec la centrale précedente

EthernetServer DCCPP_INTERFACE(2560);                  // Create and instance of an EthernetServer

void setup()
{
Serial.begin(115200);

DCCpp::begin();
  // Configuration for my LMD18200. See the page 'Configuration lines' in the documentation for other samples.
#if defined(ARDUINO_ARCH_ESP32)
  DCCpp::beginMain(UNDEFINED_PIN, 33, 32, 36);
#else
// DCCpp::beginMain(UNDEFINED_PIN, DCC_SIGNAL_PIN_MAIN, 3, A0); script original du LMD18200 de l'auteur

  /* Ci dessous les lignes trouvées dans DCCP_Uno.h de la centrale sous DCC++  pour adapter a ma configuration */
 
  #define DCC_SIGNAL_PIN_MAIN 12          // Arduino Mega - uses OC1B
  #define DCC_SIGNAL_PIN_PROG 2           // Arduino Mega - uses OC3B
 
  /* Il convient de modifier certains noms  des variables trouvées.
  #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 */

  #define MOTOR_SHIELD_SIGNAL_ENABLE_PIN_MAIN  3
  #define MOTOR_SHIELD_SIGNAL_ENABLE_PIN_PROG 11
  #define MOTOR_SHIELD_CURRENT_MONITOR_PIN_MAIN A0
  #define MOTOR_SHIELD_CURRENT_MONITOR_PIN_PROG A0
  #define MOTOR_SHIELD_DIRECTION_MOTOR_CHANNEL_PIN_A 12
  #define MOTOR_SHIELD_DIRECTION_MOTOR_CHANNEL_PIN_B 13
 
  DCCpp::beginMain(MOTOR_SHIELD_DIRECTION_MOTOR_CHANNEL_PIN_A, DCC_SIGNAL_PIN_MAIN, MOTOR_SHIELD_SIGNAL_ENABLE_PIN_MAIN, MOTOR_SHIELD_CURRENT_MONITOR_PIN_MAIN);
  DCCpp::beginProg(MOTOR_SHIELD_DIRECTION_MOTOR_CHANNEL_PIN_B, DCC_SIGNAL_PIN_PROG, MOTOR_SHIELD_SIGNAL_ENABLE_PIN_PROG, MOTOR_SHIELD_CURRENT_MONITOR_PIN_PROG);
#endif
DCCpp::beginEthernet(mac, ip, EthernetProtocol::TCP);
}

void loop()
{
DCCpp::loop();
}

 :(

Bonne journée

EDIT : 15:30  Manifestement, pour moi la marche est encore trop haute pour  faire fonctionner cette centrale en Ethernet/JMRI/DCCpp
Lundi prochain je tenterai de la faire fonctionner en serial .


Néanmoins, j'ai passé une bonne partie de la journée dessus. Dans l'article sur la Bibliothèque DCCpp, la ligne a décommenter  pour utiliser le Shield Ethernet V2 5500 ne semble pas la même que dans la bibliotheque. (pas la 486) Pour tant il est indiqué :

Voici l'extrait concerné :
#define USE_TURNOUT
#define USE_EEPROM
#define USE_OUTPUT
#define USE_SENSOR
#define USE_TEXTCOMMAND
//#define USE_ETHERNET_WIZNET_5100
#define USE_ETHERNET_WIZNET_5500
//#define USE_ETHERNET_WIZNET_5200
//#define USE_ETHERNET_ENC28J60

#ifdef DOXYGEN_SPECIFIC
    // DO NOT CHANGE THESE LINES IN THIS BLOCK 'DOXYGEN_SPECIFIC' : Only here for documentation !

    /**Comment this line to avoid using and compiling Turnout.*/
    #define USE_TURNOUT
    /**Comment this line to avoid using and compiling EEPROM saving.*/
    #define USE_EEPROM
    /**Comment this line to avoid using and compiling Outputs.*/
    #define USE_OUTPUT
    /**Comment this line to avoid using and compiling Sensors.*/
    #define USE_SENSOR
/**Comment this line to avoid using and compiling Serial commands.*/
#define USE_TEXTCOMMAND
/**Comment this line to avoid using and compiling Ethernet shield using Wiznet 5100 chip (Arduino Shield v1).*/
#define USE_ETHERNET_WIZNET_5100
/**Comment this line to avoid using and compiling Ethernet shield using Wiznet 5500 chip (Arduino Shield v2).*/
#define USE_ETHERNET_WIZNET_5500
/**Comment this line to avoid using and compiling Ethernet shield using Wiznet 5200 chip (Seeed Studio).*/
#define USE_ETHERNET_WIZNET_5200
/**Comment this line to avoid using and compiling Ethernet shield using ENC28J60 chip.*/
#define USE_ETHERNET_ENC28J60

#undef USE_TURNOUT
#undef USE_EEPROM
#undef USE_OUTPUT
#undef USE_SENSOR
#undef USE_TEXTCOMMAND
#undef USE_ETHERNET_WIZNET_5100
#undef USE_ETHERNET_WIZNET_5500
#undef USE_ETHERNET_WIZNET_5200
#undef USE_ETHERNET_ENC28J60

Un début de piste?

Autre chose, a la fin  du script :

DCCpp::beginEthernet(mac, ip, EthernetProtocol::TCP);

TCP ? (j'y connais rien mais ca n'apparait pas dans la version originelle qui fonctionne sur ma centrale.

Re aurevoir  8)


« Modifié: novembre 17, 2020, 03:49:36 pm par Jeje_12_34 »
Le néophyte de service !
Adhérent AFAN

Jeje_12_34

  • Jr. Member
  • **
  • Messages: 95
  • Double ovale N
    • Voir le profil
Bonjour

J'ai tres largement simplifié mon sketch

/*************************************************************
project: <Dc/Dcc Controller>
author: <Thierry PARIS>
description: <Dcc Ethernet Controller sample>
*************************************************************
Modifié par Jerome
Adaptation de ma Centrale fonctionnelle sous DCC++ Ethernet pilotée via JMRI
Composée d'un "Mega", d'un "Shield Ethernet V2 5500", d'une carte "L9110S Dual Motor Driver" et d'un seul "Max 471"
Montage strictement identique à l'article paru dans Locoduino

J'ai adapté l'exemple "EthernetDcc" fourni dans le dossier examples de la bibliotheque DCCpp.
********************************************/
#include "DCCpp.h"

#if !defined(USE_TEXTCOMMAND) || !defined(USE_ETHERNET)
#error To be able to compile this sample,the lines #define USE_TEXTCOMMAND and #define USE_ETHERNET must be uncommented in DCCpp.h
#endif

/* j'ai decommenté la ligne 486 dans le fichier de la DCCpp de la bibliotheque. J'ai un shield V2 avec 5500
 La ligne #define USE_TEXTCOMMAND était déjà décommentée.*/

// the media access control (ethernet hardware) address for the shield:
// uint8_t mac[] = { 0xBE, 0xEF, 0xBE, 0xEF, 0xBE, 0xEF }; adresse MAC se trouve sur le materiel ou son emballage.
uint8_t mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xEF };  //ceci est l'adresse MAC de mon shield ethernet.

//the IP address for the shield:
// uint8_t ip[] = { 192, 168, 1, 200 }; chez moi cette adresse n'a jamais fonctionné sans doute a cause de mon routeur free
uint8_t ip[] = { 192, 168, 0, 200 };  // cette adresse fonctionne chez moi avec la centrale précedente

EthernetServer DCCPP_INTERFACE(2560);                  // Create and instance of an EthernetServer

void setup()
{
Serial.begin(115200);

DCCpp::begin();
  // Configuration for my LMD18200. See the page 'Configuration lines' in the documentation for other samples.
#if defined(ARDUINO_ARCH_ESP32)
  DCCpp::beginMain(UNDEFINED_PIN, 33, 32, 36);
#else

//DCCpp::beginMain(UNDEFINED_PIN, DCC_SIGNAL_PIN_MAIN, 3, A0); script original du LMD18200 de l'auteur
DCCpp::beginMain(UNDEFINED_PIN, DCC_SIGNAL_PIN_MAIN, 3, A0);
DCCpp::beginProg(UNDEFINED_PIN, DCC_SIGNAL_PIN_PROG, 11, A0);
#endif
  DCCpp::beginEthernet(mac, ip, EthernetProtocol::TCP);

}

void loop()
{
DCCpp::loop();
}


Cela ne fonctionne toujours pas, en ethernet

Avec ce programme, je n'arrive pas à ping l'adresse 192.168.0.200. Alors que j'y arrive avec le sketch original de l'article.

De plus, mon routeur voit bien l'adresse MAC de mon shield V2  avec l'ancien programme DCC++.
Il ne le voit pas dès que je suis avec DCCpp.
Je suis sur que je rate un truc tout bête.

Je vais essayer d'utiliser une liaison série, pour vérifier que la centrale fonctionne.

La suite bientot :) mais je prends tous les conseils  :P

Bonne soirée
Jerome
Le néophyte de service !
Adhérent AFAN

CATPLUS

  • Sr. Member
  • ****
  • Messages: 435
    • Voir le profil
Bonsoir,
Il me semble que l'adresse IP doit être
192.168.1.200 et non 192.168.0.200
A confirmer par Christophe.
Best Regards

Jeje_12_34

  • Jr. Member
  • **
  • Messages: 95
  • Double ovale N
    • Voir le profil
Merci de la réponse, vraiment :)

Mais je ne pense pas que ce soit ca .
Ma centrale sous DCC++ fonctionne avec l'adresse 192.168.0.200 parce que mon routeur est configuré ainsi.
Et quand je téléverse DCCpp sur cette centrale, branchée exactement de la même manière et au même endroit,  ça ne fonctionne plus .

Je ne m'explique pas pourquoi mon routeur ne voit pas le shieldV2 Ethernet  sous DCCpp alors qu'il le voit sous DCC++.

Je n'ai eu aucune erreur de compilation. La bibliothèque Ethernet2 est installée .

J'ai téléversé le sketch en serial et apparemment, la centrale  DCCpp via USB fonctionne. J'arrive a allumer les LEDs  d'alimentation des voies par JMRI.
Je n'ai pas eu le temps de tester plus loin, je n'ai pas mon matériel ferroviaire accessible.

Je sèche complètement . :)  et ca m'embête parce que je dois faire fonctionner en Ethernet, le fil USB entre l'ordi et la centrale n'est pas viable dans ma configuration . :-\

Bonne soirée à tous
Jerome

EDIT  : mais je tenterai demain avec l'adresse 192.168.1.200  ca ne coute rien  :)
« Modifié: novembre 21, 2020, 10:35:42 pm par Jeje_12_34 »
Le néophyte de service !
Adhérent AFAN

bobyAndCo

  • Global Moderator
  • Hero Member
  • *****
  • Messages: 1081
  • HO avec DCC++
    • Voir le profil
Bonsoir,

Il y a des réglages à faire à l'intérieur du fichier DCCpp.h, qui se trouve à l'intérieur du répertoire Arduino/libraries/DCCpp/src/

Lignes 480 et suivantes :

#define USE_TURNOUT
#define USE_EEPROM
#define USE_OUTPUT
#define USE_SENSOR
#define USE_TEXTCOMMAND
//#define USE_ETHERNET_WIZNET_5100
//#define USE_ETHERNET_WIZNET_5500
//#define USE_ETHERNET_WIZNET_5200
//#define USE_ETHERNET_ENC28J60

Il faut décommenter la ligne qui correspond à votre shield Ethernet. C'est un réglage un peu fastidieux et je crois que Thierry en est conscient. Par ailleurs, ce fichier est certainement "écrasé" à l'occasion des mises à jour, ce qui oblige à recommencer !

Ensuite, parmi les exemples proposés dans la bibliothèque à partir de l'IDE Arduino, il faut choisir une exemple qui à trait à l'Ethernet :

/*************************************************************
project: <Dc/Dcc Controller>
author: <Thierry PARIS>
description: <Dcc Ethernet Controller sample>
*************************************************************/

#include "DCCpp.h"

#if !defined(USE_TEXTCOMMAND) || !defined(USE_ETHERNET)
#error To be able to compile this sample,the lines #define USE_TEXTCOMMAND and #define USE_ETHERNET must be uncommented in DCCpp.h
#endif

// the media access control (ethernet hardware) address for the shield:
uint8_t mac[] = { 0xBE, 0xEF, 0xBE, 0xEF, 0xBE, 0xEF };
//the IP address for the shield:
uint8_t ip[] = { 192, 168, 1, 200 };

EthernetServer DCCPP_INTERFACE(2560);                  // Create and instance of an EthernetServer

void setup()
{
Serial.begin(115200);

DCCpp::begin();
  // Configuration for my LMD18200. See the page 'Configuration lines' in the documentation for other samples.
#if defined(ARDUINO_ARCH_ESP32)
  DCCpp::beginMain(UNDEFINED_PIN, 33, 32, 36);
#else
DCCpp::beginMain(UNDEFINED_PIN, DCC_SIGNAL_PIN_MAIN, 3, A0);
#endif
DCCpp::beginEthernet(mac, ip, EthernetProtocol::TCP);
}

void loop()
{
DCCpp::loop();
}

et saisir l'adresse IP souhaitée, dans votre cas : uint8_t ip[] = { 192, 168, 0, 200 };Vous pouvez conserver le port qui est proposé, 2560 : EthernetServer DCCPP_INTERFACE(2560);
Il faudra ensuite que ces mêmes valeurs, IP et PORT soit entrées au lancement de l'application JMRI.

Je ne peux pas faire de tests et encore moins de copies d'écran car je ne suis pas à proximité d'une station DCC mais n'hésitez pas à revenir vers moi si vous rencontrez la moindre difficulté.

Il faut aussi bien faire attention d'avoir la dernière version de DCCpp car Thierry avait fait un petit oubli concernant l'Ethernet et m'a dit qu'il corrigeait cela dans la version actuelle.

Vous devriez avoir ligne 545 et suivant de DCCpp.h quelque chose comme ceci :

#if defined(USE_ETHERNET_WIZNET_5100) || defined(USE_ETHERNET_WIZNET_5500) || defined(USE_ETHERNET_WIZNET_5200) || defined(USE_ETHERNET_ENC28J60)
#define USE_ETHERNET

Que notre passion commune soit un plaisir pour vous, en tous les cas nous vous aiderons en cela.

Bien cordialement

Christophe
« Modifié: novembre 21, 2020, 11:58:50 pm par bobyAndCo »

Jeje_12_34

  • Jr. Member
  • **
  • Messages: 95
  • Double ovale N
    • Voir le profil
Bonjour  à tous

Mon DCCpp.h

Ma ligne 441 :
#define DCCPP_LIBRARY_VERSION "VERSION DCCpp library: 1.4.2"
Mes lignes  479 a 487  :
#define USE_TURNOUT
#define USE_EEPROM
#define USE_OUTPUT
#define USE_SENSOR
#define USE_TEXTCOMMAND
//#define USE_ETHERNET_WIZNET_5100
#define USE_ETHERNET_WIZNET_5500
//#define USE_ETHERNET_WIZNET_5200
//#define USE_ETHERNET_ENC28J60

Mes lignes  544 a  546 :
#if defined(USE_ETHERNET_WIZNET_5100) || defined(USE_ETHERNET_WIZNET_5500) || defined(USE_ETHERNET_WIZNET_5200) || defined(USE_ETHERNET_ENC28J60)
#define USE_ETHERNET
#endif

Et je suis bien parti du bon exemple fourni avec la librairie.
Sauf que je l'ai modifié par des commentaires, puis divers essais. Il ne faudrait pas que j'y ai introduit une bêtise en faisant cela.

Je vais repartir tout propre à partir de l'exemple en testant la connexion sans aucune modification sauf mon IP.
Et mon adresse MAC ? Faut il la modifier ou  pas ? Je testerai une fois avec BEEF BEEF BEEF BEEF  et si ca ne marche pas je testerai avec l'adresse MAC de mon shield Ethernet V2 5500

Mais tout d'abord, puisque actuellement ma centrale est programmée avec le port serial, je vais faire les test de bon fonctionnement.

Au départ,  j'ai fait tout cela pour confirmer à Thierry que mes décodeurs D&H récalcitrants étaient bien pris en charge par DCCpp.
Sous DCC++, cela avait nécessité des modifications qui ont laissé perplexes quelques contributeurs de ce site  :), mais ca fonctionne :)

Si tout va bien je reviens vers vous dès ce soir :)

A bientot, donc  8)
Jerome

EDIT 22/1/2020 12h : la centrale et la programmation de tous mes décodeurs fonctionnent parfaitement en mode Serial/USB . C'est déjà ca et bravo Thierry



« Modifié: novembre 22, 2020, 01:20:26 pm par Jeje_12_34 »
Le néophyte de service !
Adhérent AFAN

Jeje_12_34

  • Jr. Member
  • **
  • Messages: 95
  • Double ovale N
    • Voir le profil
Bonsoir 

Plusieurs tests

J'ai connecté ma centrale sur le routeur de ma box, directement  sur la sortie Ethernet1. C'est le seul matériel connecté à cette sortie du routeur.

Avec DCC++ :
Allumage de la centrale  : Ethernet1 passe de statut inactif à statut actif. L'adresse MAC n'est pas affichée.
Ping de l'adresse 192.168.0.200 : l'adresse MAC de mon ShieldV2500 apparait et les paquets sont OK en 1ms.
Et bien sur JMRI fonctionne et pilote la centrale , y compris avec mon smartphone.


Avec DCCpp : 
J'utilise le sketch EthernetDcc sans aucune autre modification que l' IP et le Mac.
Et DCCpp.h est modifié comme dans le post précédent.

/*************************************************************
project: <Dc/Dcc Controller>
author: <Thierry PARIS>
description: <Dcc Ethernet Controller sample>
*************************************************************/

#include "DCCpp.h"

#if !defined(USE_TEXTCOMMAND) || !defined(USE_ETHERNET)
#error To be able to compile this sample,the lines #define USE_TEXTCOMMAND and #define USE_ETHERNET must be uncommented in DCCpp.h
#endif

// the media access control (ethernet hardware) address for the shield:
uint8_t mac[] = {0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xEF };
//the IP address for the shield:
uint8_t ip[] = { 192, 168, 0, 200 };

EthernetServer DCCPP_INTERFACE(2560);                  // Create and instance of an EthernetServer

void setup()
{
Serial.begin(115200);

DCCpp::begin();
  // Configuration for my LMD18200. See the page 'Configuration lines' in the documentation for other samples.
#if defined(ARDUINO_ARCH_ESP32)
  DCCpp::beginMain(UNDEFINED_PIN, 33, 32, 36);
#else
DCCpp::beginMain(UNDEFINED_PIN, DCC_SIGNAL_PIN_MAIN, 3, A0);
#endif
DCCpp::beginEthernet(mac, ip, EthernetProtocol::TCP);
}

void loop()
{
DCCpp::loop();
}


Allumage de la centrale  : le port Ethernet1 passe du statut inactif à statut actif. L'adresse MAC n'est pas affichée.
Mais ensuite impossible de pinguer  l'adresse 192.168.0.200,et bien sur, l'adresse MAC du V2 ne s'affiche pas.
Donc ca  fonctionne pas  8)

Pistes :
-Le Shield V2 semble mal initialisé ? La bibliothèque Ethernet2  est bien installée
- Je n'ai aucun message d'erreur à la compilation, ni au téléversement.
- Est ce que la syntaxe de l Ip et/ou du MAc sont correctes ? C'est bien entre accolade ?
- Est ce que le protocole TCP  est le bon ?
_ Peut etre recharger la bibliothèque ? La désinstaller puis la remettre ?


Voilà . Je vais encore creuser un peu, puis je remettrai mon DCC++ rustiné .
Mais cela ne me satisfait pas  :)

Bonne soirée
Jerome.
« Modifié: novembre 22, 2020, 05:27:34 pm par Jeje_12_34 »
Le néophyte de service !
Adhérent AFAN

bobyAndCo

  • Global Moderator
  • Hero Member
  • *****
  • Messages: 1081
  • HO avec DCC++
    • Voir le profil
Tes tests permettent de cerner un peu plus le problème. Si en DCC++ tu peux faire un ping sur l'adresse 192.168.0.200 et que celle-ci répond, on peut déduire que le problème est uniquement dans DCCpp.

Au passage, changer l'adresse Mac dans le scketch n'a aucune incidence.

Es-tu en Mac ou en PC ?

J'ai essayé avec DCCpp 1.4.2 exactement le code que tu as mis en ligne, en changeant pour moi l'IP en 192.168.1.200 et mon shield Ethernet qui est USE_ETHERNET_WIZNET_5100

Cela fonctionne ! (je suis en Mac).

Il est vraisemblable donc que ce soit une incompatibilité de shield et de sa bibliothèque avec DCCpp. Peux-tu changer facilement de shield ?


Jeje_12_34

  • Jr. Member
  • **
  • Messages: 95
  • Double ovale N
    • Voir le profil
Re : Dépannage de Une station DCC complète, polyvalente et économique avec JMRI.
« Réponse #10 le: novembre 22, 2020, 06:18:33 pm »
Bonsoir Christophe

Je suis sous W10 .
Et malheureusement, je ne peux pas changer de shield, je n'en ai qu'un  ... pour l'instant  :)

Je soupçonne de plus en plus que DCCpp  ne va pas chercher la bibliothèque ethernet2 qui est nécessaire pour mon V2, comme le fait DCC++

Malheureusement je ne sais pas où chercher dans la bibliothèque.

Pour info, j'ai ajouté un bail fixe DHCP, avec l'adresse MAC et mon IP  . Mais pas de changement :) .

Merci bcp encore


« Modifié: novembre 22, 2020, 06:23:20 pm par Jeje_12_34 »
Le néophyte de service !
Adhérent AFAN

bobyAndCo

  • Global Moderator
  • Hero Member
  • *****
  • Messages: 1081
  • HO avec DCC++
    • Voir le profil
Re : Dépannage de Une station DCC complète, polyvalente et économique avec JMRI.
« Réponse #11 le: novembre 22, 2020, 06:22:10 pm »
Si cela peut te rendre service, je peux t'envoyer un shield de type WIZNET_5100, j'en ai plusieurs cela ne me pose pas de problème et tu le recevrais d'ici deux ou trois jours ! Si tu es intéressé, tu me contactes en MP.

Jeje_12_34

  • Jr. Member
  • **
  • Messages: 95
  • Double ovale N
    • Voir le profil
Re : Dépannage de Une station DCC complète, polyvalente et économique avec JMRI.
« Réponse #12 le: novembre 23, 2020, 02:43:42 pm »
Bonjour

Merci  Christophe pour ta proposition, je te fais un MP dans la foulée

Néanmoins je farfouille toujours :

J 'ai rajouté 3 Println au script dans le setup:

void setup()
{
Serial.begin(115200);
  Serial.println(" le setup est lancé ");
  Serial.println(COMM_SHIELD_NAME);
 
DCCpp::begin();
  Serial.println(" DCCpp est lancé ");


et voici ce qui s'affiche dans la console  en 115200 baud

14:27:16.886 ->  le setup est lancé
14:27:16.886 -> ARDUINO-ORG ETHERNET-2 SHIELD (WIZNET 5500)
14:27:16.886 ->  le setup est lancé
14:27:16.886 -> ARDUINO-ORG ETHERNET-2 SHIELD (WIZNET 5500)

deux fois !
et le programme ne lance pas le DCC ?

Par contre, il me semble que le comm.h est bien activé correctement puisque le nom du shield est OK. Dans ce comm.h,  la ligne juste en dessous de la definition du nom du shield lance la bibliotheque Ethernet2,je ne vois pas de raison pour que ce ne soit pas fait.

Extrait du comm.h :
#elif defined(USE_ETHERNET_WIZNET_5500)
    #define COMM_SHIELD_NAME      "ARDUINO-ORG ETHERNET-2 SHIELD (WIZNET 5500)"
    #include <Ethernet2.h>        // https://github.com/arduino-org/Arduino

J'ai aussi tenté de définir le shield V1 au lieu du shieldV2, mais ca m'a envoyé une jolie erreur de compilation (normal, me direz vous, ce n'est pas le matériel installé :) )

J'ai meme tenté de inclure la bibliotheque Ethernet2 directement dans le programme principal ... ca n'a pas marché  :)


Pour l'instant je suis a court d'idée .

Mais je  cherche , je cherche 

a bientot pour la suite du casse tête du jour  ;D

Jerome

EDIT 17:30 .
En désactivant la ligne
    // DCCpp::begin();
le sketch va jusqu'au bout.
Tous mes Serial.println  s'affichent  toujours deux fois sauf  celui ci qui ne s'affiche qu'une fois :
DCCpp::beginEthernet(mac, ip, EthernetProtocol::TCP);
 Serial.println(" ethernet est activé  ");

Il n'y a aucune erreur à la compilation et le V2 est  pingable !
Et JMRI se connecte bien a ma centrale, mais bien entendu ne peut pas l'utiliser (normal, y a pas DCCp dessus  ;D)

Je commence donc a penser comme Christophe. Il y a une incompatibilité avec entre DCCpp et la bibliothèque  Ethernet2 du Shield V2

Décidément, après mes décodeurs D&H, c'est le choix de mon Shield Ethernet qui  pêche :)


« Modifié: novembre 23, 2020, 05:41:08 pm par Jeje_12_34 »
Le néophyte de service !
Adhérent AFAN

Jeje_12_34

  • Jr. Member
  • **
  • Messages: 95
  • Double ovale N
    • Voir le profil
Re : Dépannage de Une station DCC complète, polyvalente et économique avec JMRI.
« Réponse #13 le: novembre 23, 2020, 06:44:31 pm »
J AI TROUVE  ! 8) 8) 8) 8) 8)

Il faut desactiver l'EEPROM dans DCCpp.h

#define USE_TURNOUT
//#define USE_EEPROM
#define USE_OUTPUT
#define USE_SENSOR
#define USE_TEXTCOMMAND
//#define USE_ETHERNET_WIZNET_5100
#define USE_ETHERNET_WIZNET_5500
//#define USE_ETHERNET_WIZNET_5200
//#define USE_ETHERNET_ENC28J60

Alors .. je ne sais pas pourquoi, je laisse la réponse à de plus pointus que moi.

Mais tout marche nickel désormais  sous DCCpp, Ethernet et JMRI  (la centrale de Christophe) !

J'suis trop content !

A (très) bientot pour de nouvelles aventures  :)
Jerome
« Modifié: novembre 23, 2020, 08:05:55 pm par Jeje_12_34 »
Le néophyte de service !
Adhérent AFAN