Auteur Sujet: LaBox" : Une Centrale DCC polyvalente et abordable  (Lu 702090 fois)

lebelge2

  • Full Member
  • ***
  • Messages: 109
    • Voir le profil
Re : LaBox" : Une Centrale DCC polyvalente et abordable
« Réponse #585 le: août 23, 2025, 08:59:44 am »
Bonjour.
Premières constatations de cette nouvelle version.
1) LaBox démarre en mode programmation, il faut soit un HardReset ou entrer/sortir dans le menu CV (ou 3X bouton droit) pour être en mode Main.
2) RailCom ne fonctionne pas.
A l'analyseur logique c'est comme si le TimerCutOut ne fonctionnait pas (ou mauvais pins, mauvais canal)
Voir en pièce jointe.

Bien à vous.

Thierry

  • Global Moderator
  • Hero Member
  • *****
  • Messages: 859
    • Voir le profil
Re : LaBox" : Une Centrale DCC polyvalente et abordable
« Réponse #586 le: août 23, 2025, 10:18:39 am »
Tu as bien adapté ton .ino, notamment en utilisant LABOX_BASE_MOTOR_SHIELD ? Parce que je ne vois rien dans les différences avec l'ancienne version qui pourrait affecter Railcom...
« Modifié: août 23, 2025, 10:22:48 am par Thierry »

lebelge2

  • Full Member
  • ***
  • Messages: 109
    • Voir le profil
Re : LaBox" : Une Centrale DCC polyvalente et abordable
« Réponse #587 le: août 23, 2025, 03:37:38 pm »
Bonjour, J'utilise la dernière version téléchargée ci-dessus pour tests
Comparaison de Log. de démarrage de la V2.10.0 et V2.11.0

<@ 0 0 "LaBox v2.10.0">
<@ 0 1 "Lic GPLv3">
E (2399) wifi_init_default: netstack cb reg failed with 12308
<* Wifi in AP mode *>
<@ 0 5 "Wifi: WiFi_LaBox">
<@ 0 6 "PASS: ">
<@ 0 7 "IP: 192.168.4.1">
<* Server will be started on port 2560 *>
<* LaBox Main mode. *>
<* Pin 36 Max 2249mA (2823) *>
<* Channel 0 DCC signal for MAIN start *>
<= A MAIN>
<p0 A>
<p0>
<@ 0 2 "Power Off">
<* Railcom activated *>
<* Railcom pin:33 invpin:27 *>
<iDCC-EX V-5.4.10 / ESP32 / LABOXMAIN G-c389fe9>
<* EXRAIL 48b, fl=256, stash=0 *>
RailCom OK pin 33 et 27

<@ 0 0 "LaBox v2.11.0">
<@ 0 1 "Lic GPLv3">
E (2397) wifi_init_default: netstack cb reg failed with 12308
<* Wifi in AP mode *>
<@ 0 5 "Wifi: LaBox">
<@ 0 6 "PASS: ">
<@ 0 7 "IP: 192.168.0.150">
<* Server will be started on port 2560 *>
<* LaBox Main mode. *>
<* Pin 36 Max 2249mA (2823) *>
<* Channel 2 DCC signal for PROG start *>
<= B PROG>
<p0 B>
<p0>
<@ 0 2 "Power Off">
<* Railcom activated *>
<* Railcom pin:0 invpin:0 *>
<iDCC-EX V-5.4.10 / ESP32 / LABOXBASE G-c389fe9>
<* EXRAIL 48b, fl=256, stash=0 *>
RailCom no OK  pin 0 et 0 !!!

Thierry

  • Global Moderator
  • Hero Member
  • *****
  • Messages: 859
    • Voir le profil
Re : LaBox" : Une Centrale DCC polyvalente et abordable
« Réponse #588 le: août 23, 2025, 05:00:17 pm »
Oui tu as raison.

L'astuce utilisée dans le mode 'BASE' est de ne déclarer QUE une voie de programmation, ce qui explique les messages de lancement. Mais sur cette voie j'utilise le mode 'Joined' de EX-CommandStation pour la faire passer en mode 'Main' la plupart du temps, ce qui permet le pilotage et j'espère le Railcom. Je ne retire le 'Join' que lorsque l'on passe en mode programmation via les commandes idoines du menu.
En tout cas la version jointe devrait corriger le tir.

lebelge2

  • Full Member
  • ***
  • Messages: 109
    • Voir le profil
Re : LaBox" : Une Centrale DCC polyvalente et abordable
« Réponse #589 le: août 23, 2025, 05:47:50 pm »
Il y a un mieux, les n° de pin sont corrects, mais le CutOut est déformé et aléatoire. Voir analyses logiques.

Thierry

  • Global Moderator
  • Hero Member
  • *****
  • Messages: 859
    • Voir le profil
Re : LaBox" : Une Centrale DCC polyvalente et abordable
« Réponse #590 le: août 23, 2025, 06:17:24 pm »
Est  ce que ce ne serait pas lié au constructeur du RMT channel de programmation ?

  if (isMain) {
    ch = 0;
    plen = PREAMBLE_BITS_MAIN;
    static_assert (DATA_LEN(MAX_PACKET_SIZE+1) + PREAMBLE_BITS_MAIN + 2 <= RMT_CHAN_PER_DCC_CHAN * SOC_RMT_MEM_WORDS_PER_CHANNEL,
  "Number of DCC packet bits greater than ESP32 RMT memory available");
  } else {
    ch = RMT_CHAN_PER_DCC_CHAN; // number == offset
    plen = PREAMBLE_BITS_PROG;
    static_assert (DATA_LEN(MAX_PACKET_SIZE+1) + PREAMBLE_BITS_PROG + 2 <= RMT_CHAN_PER_DCC_CHAN * SOC_RMT_MEM_WORDS_PER_CHANNEL,
   "Number of DCC packet bits greater than ESP32 RMT memory available");
  }

avec une longueur de preamble plus importante ?

lebelge2

  • Full Member
  • ***
  • Messages: 109
    • Voir le profil
Re : LaBox" : Une Centrale DCC polyvalente et abordable
« Réponse #591 le: août 23, 2025, 06:34:08 pm »
Ce code est inclu dans la V2.10.0 et RailCom fonctionne bien.
Il faudrait avec un logiciel de comparaison de fichiers examiner les deux versions.

Thierry

  • Global Moderator
  • Hero Member
  • *****
  • Messages: 859
    • Voir le profil
Re : LaBox" : Une Centrale DCC polyvalente et abordable
« Réponse #592 le: août 23, 2025, 06:37:07 pm »
Le problème comme je l'ai dit plus tôt, c'est que là on essaie de mettre du Railcom sur la voie de programmation, donc forcément ça change...

lebelge2

  • Full Member
  • ***
  • Messages: 109
    • Voir le profil
Re : LaBox" : Une Centrale DCC polyvalente et abordable
« Réponse #593 le: août 23, 2025, 07:26:03 pm »
Il ne faut pas de RailCom sur la voie de programmation.

Thierry

  • Global Moderator
  • Hero Member
  • *****
  • Messages: 859
    • Voir le profil
Re : LaBox" : Une Centrale DCC polyvalente et abordable
« Réponse #594 le: août 23, 2025, 08:40:13 pm »
Ben si, parce que c'est aussi la voie de programmation qui est utilisée lorsque l'on est en pilotage normal.

lebelge2

  • Full Member
  • ***
  • Messages: 109
    • Voir le profil
Re : LaBox" : Une Centrale DCC polyvalente et abordable
« Réponse #595 le: août 23, 2025, 11:46:38 pm »
La structure  d'une trame de programmation se compose uniquement d'un préambule et d'un IDLE qui ne contient aucune information, pas de RailCom.
Une loco répond à une demande de valeur de CV en produisant des impulsions électriques, celles transmises pendant le CutOut seront perdues.

Avec cette modif. RailCom refonctionne.
void IRAM_ATTR interrupt(rmt_channel_t channel, void *t) {
#ifdef LABOX
#ifdef ENABLE_RAILCOM
  if(channel == 0)             // Modif.
    StarTimerCutOut(channel);
#endif
#endif
  RMTChannel *tt = channelHandle[channel];
  if (tt) tt->RMTinterrupt();
  if (channel == 0)
    DCCTimer::updateMinimumFreeMemoryISR(0);
}

Et avec cette modif. RailCom est désactivé en mode programmation.
#ifdef LABOX
#ifdef ENABLE_RAILCOM
 if (isMain){                    // Modif.
    setDCCBitCutOut(preamble);                               
    n = 1;
 }
#endif
#endif

En pièces jointes deux trames générées par LaBox.  V.2.11.0
La première en mode normal. (Datas et CutOut)
La deuxième en mode programmation.(Trame vide sans CutOut)