Auteur Sujet: Upgrade de La Box pour compatibilité RailCom.  (Lu 5365 fois)

bobyAndCo

  • Global Moderator
  • Hero Member
  • *****
  • Messages: 1052
  • HO avec DCC++
    • Voir le profil
Re : Upgrade de La Box pour compatibilité RailCom.
« Réponse #15 le: août 09, 2024, 09:31:32 pm »
@Thierry, je vais tester ton code sans doute avant la fin du WE et je te redis.

Merci à tous pour le travail réalisé

Christophe

lebelge2

  • Jr. Member
  • **
  • Messages: 63
    • Voir le profil
Re : Upgrade de La Box pour compatibilité RailCom.
« Réponse #16 le: août 11, 2024, 12:47:49 am »
Bonjour.
Il y a quelques lignes à ajouter ou modifier     (Voir les commentaires : Ajouté ou Modifié)
(Les deux premières corrections sont indispensables si on n'utilise pas RailCom  //#define ENABLE_RAILCOM)

-  Dans le fichier : config.h       (écrire 27 au lieu de UNUSED_PIN)
#define LABOX_MAIN_MOTOR_SHIELD F("LABOXMAIN"), \
 new MotorDriver(32, 33, 27, UNUSED_PIN, 36, 0.80, 2500, UNUSED_PIN)        // Modifié

#define LABOX_PROG_MOTOR_SHIELD F("LABOXPROG"), \
 NULL, \
 new MotorDriver(32, 33, 27, UNUSED_PIN, 36, 0.80, 2500, UNUSED_PIN)        // Modifié

-  Dans le fichier: DCCRMT.cpp
RMTChannel::RMTChannel(pinpair pins, bool isMain) {
  byte ch;
  byte plen;
  byte dp;                                                                  // * Ajouté
  if (isMain) {
    ch = 0;
    plen = PREAMBLE_BITS_MAIN;                                    // 16
  } else {
    ch = 2;
    plen = PREAMBLE_BITS_PROG;                                    // 22
  }

  // preamble
  preambleLen = plen + 2; // plen 1 bits, one 0 bit and one EOF marker
  preamble = (rmt_item32_t*)malloc(preambleLen * sizeof(rmt_item32_t));
  dp = 0;                                                                        // * Ajouté
#ifdef ENABLE_RAILCOM
  dp = 1;                                                                        // * Ajouté
  setDCCBitCutOut(preamble);                                    // * Symbole CutOut
#endif
  for (byte n = dp; n < plen; n++)                                  // * Modif
    setDCCBit1(preamble + n);       // preamble bits

-  Dans le fichier:    Railcom.cpp
void IRAM_ATTR timer_isr_CutOut() {
  p++;
  switch (p) {
    case 1:
      break;
    case 2:
      gpio_matrix_out(RAILCOM_PININV, 0x100, false, false);                   
      gpio_set_level(RAILCOM_PININV, 1);                                         
      break;
    case 3:
      gpio_matrix_out(RAILCOM_PININV, RMT_SIG_OUT0_IDX + rmt_channel, true, false);   
      gpio_matrix_out(RAILCOM_PIN, RMT_SIG_OUT0_IDX + rmt_channel, true, false);   
      break;
    default:
      gpio_set_level(RAILCOM_PIN, 1);                                         // * Ajouté
      gpio_matrix_out(RAILCOM_PIN, RMT_SIG_OUT0_IDX + rmt_channel, false, false);   
      timerAlarmWrite(TimerCutOut, 160, false);                             
      break;
  }
}

Thierry

  • Global Moderator
  • Hero Member
  • *****
  • Messages: 795
    • Voir le profil
Re : Upgrade de La Box pour compatibilité RailCom.
« Réponse #17 le: août 11, 2024, 09:54:08 am »
Corrections poussées dans la version 2.5.1 .

bobyAndCo

  • Global Moderator
  • Hero Member
  • *****
  • Messages: 1052
  • HO avec DCC++
    • Voir le profil
Re : Upgrade de La Box pour compatibilité RailCom.
« Réponse #18 le: août 11, 2024, 10:25:02 am »
Bon, je venais juste de faire le test de la version que tu as publiée le 9 aout. Pourtant tout fonctionnait bien avec !!!

Je vais donc charger la nouvelle version.

Qu'apporte- t'elle de plus ???

Christophe

Thierry

  • Global Moderator
  • Hero Member
  • *****
  • Messages: 795
    • Voir le profil
Re : Upgrade de La Box pour compatibilité RailCom.
« Réponse #19 le: août 11, 2024, 10:57:30 am »
Juste les corrections demandées plus haut, qui permettent notamment de fonctionner correctement si le Railcom n'est pas activé. Les autres corrections concernent la génération du signal qui ne devait pas être optimal et pour lesquelles je laisserai lebelge répondre.

lebelge2

  • Jr. Member
  • **
  • Messages: 63
    • Voir le profil
Re : Upgrade de La Box pour compatibilité RailCom.
« Réponse #20 le: août 11, 2024, 10:58:35 am »
Tout fonctionne correctement si on utilise RailCom

Si on coupe RailCom ( //#define ENABLE_RAILCOM), il y a un grave dysfonctionnement.

Vu les corrections mais manque toujours celle-ci dans fichier :
 config.Labox.h    (écrire 27 au lieu de UNUSED_PIN)
#define LABOX_MAIN_MOTOR_SHIELD F("LABOXMAIN"), \
 new MotorDriver(32, 33, 27, UNUSED_PIN, 36, 0.80, 2500, UNUSED_PIN)        // Modifié

#define LABOX_PROG_MOTOR_SHIELD F("LABOXPROG"), \
 NULL, \
 new MotorDriver(32, 33, 27, UNUSED_PIN, 36, 0.80, 2500, UNUSED_PIN)        // Modifié




bobyAndCo

  • Global Moderator
  • Hero Member
  • *****
  • Messages: 1052
  • HO avec DCC++
    • Voir le profil
Re : Upgrade de La Box pour compatibilité RailCom.
« Réponse #21 le: août 11, 2024, 11:07:26 am »
Bon, pour ce qui me concerne, c'est à dire avec ENABLE_RAILCOM, je confirme que le lis bien les adresses (4 locos testées) que le comportement des loco est parfait et que le sniffer DCC me donne environ 5% de trames hors spécification ce qui me semble très satisfaisant.

J'ai passé la moitié de la matinée à me mélanger les pinceaux avec les différentes versions, maintenant je pars à la plage, il fait déjà 28° !

Christophe

Thierry

  • Global Moderator
  • Hero Member
  • *****
  • Messages: 795
    • Voir le profil
Re : Upgrade de La Box pour compatibilité RailCom.
« Réponse #22 le: août 11, 2024, 11:36:59 am »
Et je viens de pousser la modif de config.labox.h . J'avais bien fait la modif dans mon config.h et j'ai zappé la version labox...

Dominique

  • Global Moderator
  • Hero Member
  • *****
  • Messages: 3000
  • 100% Arduino et N
    • Voir le profil
Re : Upgrade de La Box pour compatibilité RailCom.
« Réponse #23 le: août 11, 2024, 04:54:46 pm »
Mais est-ce que j’ai bien compris dans la version 2.5.1 (dernière) ?:
1) soit on est en mode RAILCOM et alors il faut utiliser la GPIO27 connectée au IN2 du L6203, ça c’est clair.

2) soit on n’est pas en mode RAICOM et il y a 2 cas de figure :
-a- le cas où la GPIO27 est connectée au IN2 du L6203 (evolution à faire du PCB)
-b- le cas où le IN2 est relié à l’inverseur à transistor (version 2c3 actuelle du PCB)

Dans quel cas 2a ou 2b la version 2.5.1 fonctionne ?
Cordialement,
Dominique

lebelge2

  • Jr. Member
  • **
  • Messages: 63
    • Voir le profil
Re : Upgrade de La Box pour compatibilité RailCom.
« Réponse #24 le: août 11, 2024, 06:19:58 pm »
Les deux cas fonctionneront.

CATPLUS

  • Sr. Member
  • ****
  • Messages: 425
    • Voir le profil
Re : Upgrade de La Box pour compatibilité RailCom.
« Réponse #25 le: août 12, 2024, 07:07:39 am »
Bonjour
Vous pourriez svp donner le raccourcis pour accéder au programme.
Best Regards

Brunotoutsimple

  • Newbie
  • *
  • Messages: 48
    • Voir le profil
Re : Re : Upgrade de La Box pour compatibilité RailCom.
« Réponse #26 le: août 12, 2024, 07:52:17 am »
Bonjour
Vous pourriez svp donner le raccourcis pour accéder au programme.
Bonjour
Voici le liens:
https://github.com/Locoduino/CommandStation-EX-LaBox/tree/Labox-Railcom
Cordialement
Bruno

Dominique

  • Global Moderator
  • Hero Member
  • *****
  • Messages: 3000
  • 100% Arduino et N
    • Voir le profil
Re : Re : Upgrade de La Box pour compatibilité RailCom.
« Réponse #27 le: août 12, 2024, 03:36:21 pm »
Et je viens de pousser la modif de config.labox.h . J'avais bien fait la modif dans mon config.h et j'ai zappé la version labox...

Petits détails mineurs (du genre tétracapilosectomie !) :

Je viens de compiler cette dernière version sans fichier "config.h" pour voir si le fichier "config.labox.h" est utilisé à la place.
Je n'ai aussi changé aucune option de cette configuration, donc avec Railcom et en mode AP (WIFI_FORCE_AP true) avec le SSID "Labox" et password "YourPassword" parceque je trouve que c'est le meilleur jeu d'options possible pour quelqu'un qui démarre "sans échec".

Et bien l'IDE me dit :

exit status 1

Compilation error: #error Your config.h must include a LABOX_MAIN_MOTOR_SHIELD and a LABOX_PROG_MOTOR_SHIELD definition. If you see this warning in spite not having a config.h, you have a buggy preprocessor and must copy config.example.h to config.h


Je pense qu'il faut remplacer "config.example.h" par "config.labox.h"
Je n'ai pas retrouvé l'endroit ou il est écrit que si le config.h est absent, alors le config.example.h est pris à la place, ce qui génére cette erreur.
Cordialement,
Dominique

lebelge2

  • Jr. Member
  • **
  • Messages: 63
    • Voir le profil
Re : Upgrade de La Box pour compatibilité RailCom.
« Réponse #28 le: août 12, 2024, 06:35:44 pm »
Il faut renommer le fichier: config.labox.h en config.h
C'est écrit ici:

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

Configuration
Vous avez maintenant une version installée du projet, mais vous devez y apporter votre touche. Rien de bien compliqué, rassurez vous.
Le seul fichier que vous devez créer est le config.h . Ce fichier contient la configuration de CommandStation-EX. Quelles broches, quel wifi, quelles options... Pour vous simplifier la tâche un fichier d’exemple est inclus, config-labox.h, qui contient déjà l’essentiel du paramétrage bien configuré. Copiez le sous le nom config.h au même endroit. Ouvrez le avec un notepad ou assimilé, et configurez le Wifi comme vous le souhaitez ...
« Modifié: août 12, 2024, 08:40:23 pm par lebelge2 »

Thierry

  • Global Moderator
  • Hero Member
  • *****
  • Messages: 795
    • Voir le profil
Re : Upgrade de La Box pour compatibilité RailCom.
« Réponse #29 le: août 13, 2024, 03:09:56 pm »
Oui c'est écrit dans l'article, mais si quelqu'un récupère le code sur Github, autant qu'il sache quoi en faire... Dans la prochaine version les config.example.h sont renommés en config.Labox.h . D'autre part, J'ai modifié le readme pour y ajouter en prélude une partie Labox, avec cette même manip expliquée. On pourra le voir sur la page principale du Github de Labox. J'essaie aussi de maintenir les branches CAN et Railcom au même niveau.