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

Dominique

  • Global Moderator
  • Hero Member
  • *****
  • Messages: 3000
  • 100% Arduino et N
    • Voir le profil
LaBox" : Une Centrale DCC polyvalente et abordable
« Réponse #195 le: août 18, 2024, 10:34:53 pm »
Justement j'étais en train de lister les modifications souhaitables au circuit imprimé de Labox en regardant la version 03C4 que Thierry nous a transmise, compatible avec Kicad 8.0.x

J'ai parcouru l'article, son forum et celui dans lequel nous sommes ici !

j'ai relevé les points suivants :

1) Ajout de la liaison GPIO27 vers IN2 (pin 7) du L6203 et suppression de R1, R2, Q1

2) Suppression des pads JP3, JP4, GND et VS (sous le convertisseur DC-DC)

3) Supprimer les leds CMS qui sont du coté CMS car on ne peux pas les voir;
Ne garder que les leds coté composants, donc à souder car elles sont indispensables pour voir la présence du signal DCC sur les rails.
Supprimer la led « DEFAUT » qui ne sert sans doute pas, ainsi que R11. On récupère un GPIO à l'occasion.

4) Remplacement des convertisseurs DC-DC MP1583 ou MP2307 parc des convertisseurs 3 broches format T0220 et supportant au moins 30 à 35V et délivrant au moins 1A, tels que : voir photo sur aliexpress.

5) Pour les boutons superposer 2 types de boutons (grands 1,2x1,2 cm et plus petits) sans prendre de place (suggéré par Jean-Paul)


Je pense qu'il faut en profiter pour suggérer d'autres modifications raisonnables et vraiment utiles qui ne donnent pas trop de difficulté à Thierry qui, en dernier ressort, décidera ou non de les réaliser.
Il ne faut donc pas trop se précipiter, sachant que la modification "à la main" de la carte 02C3, bien couverte par l'article et ce sujet reste parfaitement utilisable même avec une ficelle en dessous.
Personnellement je n'ai pas réussi à dessouder Q1 et R1 et j'ai juste coupé la piste qui arrive sur la pin 7 du 6203, ce qui tend la modification réversible.

En ce qui concerne les couches Can avec le protocole Marklin, je fais confiance à Christophe pour les proposer à l'intégration étant donné qu'elle fonctionnent chez Christophe (et chez moi pour les premières versions).

L'idéal serait de séparer (dans un onglet "protocole Can") la partie propre au protocole Can (Marklin ou autre) ce qui permettrait d'adapter Labox à son cas personnel, si cela est faisable évidemment. Mais que cela ne freine pas l'intégration du Can, les évolutions restant possibles à posteriori.



« Modifié: août 20, 2024, 06:26:48 pm par Dominique »
Cordialement,
Dominique

rNe

  • Jr. Member
  • **
  • Messages: 51
    • Voir le profil
    • Le blog à René
Re : LaBox" : Une Centrale DCC polyvalente et abordable
« Réponse #196 le: août 18, 2024, 11:28:20 pm »
Bonsoir.

Je suggère le rajout d'une prise ou d'un pad pour un bouton poussoir avec pour fonction "Arrêt d'urgence" (comme chez NitraThor : https://www.nitrathor.fr/projets/micro-centrale-dcc/micro-centrale-dcc-minimale) pour les cas où il serait plus rapide d'arrêter tout sans se précipiter sur les commandes de la box. Et, bien sûr le p'tit bout de logiciel qui va avec.
Cordialement

L'expérience a ceci d'étrange : elle ressemble aux cure-dents - personne veut s'en servir après vous...

Dominique

  • Global Moderator
  • Hero Member
  • *****
  • Messages: 3000
  • 100% Arduino et N
    • Voir le profil
LaBox" : Une Centrale DCC polyvalente et abordable
« Réponse #197 le: août 18, 2024, 11:39:20 pm »
Bonsoir.

Je suggère le rajout d'une prise ou d'un pad pour un bouton poussoir avec pour fonction "Arrêt d'urgence" (comme chez NitraThor : https://www.nitrathor.fr/projets/micro-centrale-dcc/micro-centrale-dcc-minimale) pour les cas où il serait plus rapide d'arrêter tout sans se précipiter sur les commandes de la box. Et, bien sûr le p'tit bout de logiciel qui va avec.

Avec l’appli Z21 il y a un bouton STOP en haut de l’écran qui fait cela (et relance le DCC a l’appui suivant.
Mais je suis d’accord qu’un vrai bouton réel optionnel (a brancher) est une option utile et il y a des GPIO dispos ( par exemple la led “DÉFAUT” supprimée).
« Modifié: août 20, 2024, 06:27:15 pm par Dominique »
Cordialement,
Dominique

lebelge2

  • Jr. Member
  • **
  • Messages: 63
    • Voir le profil
Re : LaBox" : Une Centrale DCC polyvalente et abordable
« Réponse #198 le: août 19, 2024, 01:29:34 am »
Sur ma Box les numéros de fonctions ne s'affichaient pas et sur la votre ?
Il manquait deux lignes de code dans le fichier: DCC.cpp
Maintenant les fonctions s'affichent.

Dominique

  • Global Moderator
  • Hero Member
  • *****
  • Messages: 3000
  • 100% Arduino et N
    • Voir le profil
Re : LaBox" : Une Centrale DCC polyvalente et abordable
« Réponse #199 le: août 19, 2024, 09:09:20 am »
Stp, peux-tu décrire le détail de cette correction ?
Cordialement,
Dominique

lebelge2

  • Jr. Member
  • **
  • Messages: 63
    • Voir le profil
Re : LaBox" : Une Centrale DCC polyvalente et abordable
« Réponse #200 le: août 19, 2024, 09:17:23 am »
Auparavent, uniquement les fonctions supérieures à 28 s'affichaient
Voici la correction dans: DCC.cpp

// Set function to value on or off
bool DCC::setFn( int cab, int16_t functionNumber, bool on) {
  if (cab<=0 ) return false;
  if (functionNumber < 0) return false;

  if (functionNumber>28) {
    //non reminding advanced binary bit set
    byte b[5];
    byte nB = 0;
    if (cab > HIGHEST_SHORT_ADDR)
      b[nB++] = highByte(cab) | 0xC0;    // convert train number into a two-byte address
    b[nB++] = lowByte(cab);
    if (functionNumber <= 127) {
       b[nB++] = 0b11011101;   // Binary State Control Instruction short form
       b[nB++] = functionNumber | (on ? 0x80 : 0);
    }
    else  {
       b[nB++] = 0b11000000;   // Binary State Control Instruction long form
       b[nB++] = (functionNumber & 0x7F) | (on ? 0x80 : 0);  // low order bits and state flag
       b[nB++] = functionNumber >>7 ;  // high order bits
    }
    DCCWaveform::mainTrack.schedulePacket(b, nB, 4);
#ifdef USE_HMI
  if (hmi::CurrentInterface != NULL)
  {
  hmi::CurrentInterface->ChangeFunction(cab, functionNumber, on);
  hmi::CurrentInterface->HmiInterfaceUpdateDrawing();
  }
#endif
    return true;
  }

  int reg = lookupSpeedTable(cab);
  if (reg<0) return false;

  // Take care of functions:
  // Set state of function
  unsigned long previous=speedTable[reg].functions;
  unsigned long funcmask = (1UL<<functionNumber);
  if (on) {
      speedTable[reg].functions |= funcmask;
  } else {
      speedTable[reg].functions &= ~funcmask;
  }
  if (speedTable[reg].functions != previous) {
    updateGroupflags(speedTable[reg].groupFlags, functionNumber);
    CommandDistributor::broadcastLoco(reg);
  }
  #ifdef USE_HMI
    if (hmi::CurrentInterface != NULL)
    {
      hmi::CurrentInterface->ChangeFunction(cab, functionNumber, on);
      hmi::CurrentInterface->HmiInterfaceUpdateDrawing();
    }
#endif
  return true;
}

Thierry

  • Global Moderator
  • Hero Member
  • *****
  • Messages: 795
    • Voir le profil
Re : LaBox" : Une Centrale DCC polyvalente et abordable
« Réponse #201 le: août 19, 2024, 10:57:54 am »
Je vois que ça phosphore beaucoup sur Labox. C'est plaisant. Je vais m'atteler aux modifs de la carte, mais en testant ce matin, je n'arrive plus à lire une CV. Ce n'est que chez moi ?

Dominique

  • Global Moderator
  • Hero Member
  • *****
  • Messages: 3000
  • 100% Arduino et N
    • Voir le profil
Re : LaBox" : Une Centrale DCC polyvalente et abordable
« Réponse #202 le: août 19, 2024, 11:17:48 am »
Hier en faisant une démo à mon petit fils, labox n’a pas pu lire l’adresse à partir du menu hmi. Je vais faire d’autres tests.
Cordialement,
Dominique

Dominique

  • Global Moderator
  • Hero Member
  • *****
  • Messages: 3000
  • 100% Arduino et N
    • Voir le profil
Re : LaBox" : Une Centrale DCC polyvalente et abordable
« Réponse #203 le: août 19, 2024, 12:24:29 pm »
J'ai fait une mise à jour de l'article (2) de la série pour supprimer la référence qu LMD18200 et le support de Railcom moyennant une petite modification (ajout d'un fil et coupure d'une piste et renvoi vers ce sujet du forum) pour ceux qui seraient impatients de disposer de Railcom avec cette version publiée, sans attendre la suivante.
Cordialement,
Dominique

rNe

  • Jr. Member
  • **
  • Messages: 51
    • Voir le profil
    • Le blog à René
Re : LaBox" : Une Centrale DCC polyvalente et abordable
« Réponse #204 le: août 19, 2024, 12:33:31 pm »
Bonjour à tous.

Pardonnez moi d'avoir les idées qui arrivent en ordre dispersé. En suggestion:
Comme le principe du voyant défaut semble abandonnée il serait malgré-tout utile de signaler à l'opérateur l'origine du défaut par le biais de l'afficheur.
Par exemple :
  • Tension d'alimentation hors seuils de sécurité
  • Intensité DCC trop élevée
  • Court circuit sur canton X
  • Etc. etc...
Cordialement

L'expérience a ceci d'étrange : elle ressemble aux cure-dents - personne veut s'en servir après vous...

Dominique

  • Global Moderator
  • Hero Member
  • *****
  • Messages: 3000
  • 100% Arduino et N
    • Voir le profil
LaBox" : Une Centrale DCC polyvalente et abordable
« Réponse #205 le: août 19, 2024, 12:49:43 pm »
Je vois que ça phosphore beaucoup sur Labox. C'est plaisant. Je vais m'atteler aux modifs de la carte, mais en testant ce matin, je n'arrive plus à lire une CV. Ce n'est que chez moi ?

trace du moniteur en sélectionnant la lecture d'adresse par le menu sur Oled :
LaBox redémarre en mode Prog mais plante très vite et redémarre en mode Main
Je n'ai pas vu les leds de présence DCC s'allumer.

<* LaBox : 2.5.1 *>
<* Mode Prog *>
<* Wifi AP SSID LaBox PASS YourPassword *>
<* Wifi AP IP 192.168.4.1 *>
<* UDP Connection started port 21105. Z21 apps are available. *>
<* Server will be started on port 2560 *>
<* LaBox Prog mode. *>
<* Pin 36 Max 2249mA (2823) *>
<= B PROG>
<* Channel 2 DCC signal for PROG start *>
<iDCC-EX V-5.0.9 / ESP32 / LABOXPROG G-3bddf4d>
<* LCD3:Ready *>
<p0>
<* LCD2:Power Off *>
Guru Meditation Error: Core  1 panic'ed (LoadProhibited). Exception was unhandled.

Core  1 register dump:
PC      : 0x400e302b  PS      : 0x00060033  A0      : 0x800d7051  A1      : 0x3ffbf5ec 
A2      : 0x00000000  A3      : 0x00000000  A4      : 0x000000a0  A5      : 0x00000000 
A6      : 0x00000001  A7      : 0x003fffff  A8      : 0x80000020  A9      : 0x00000007 
A10     : 0x00000005  A11     : 0x00000001  A12     : 0x3ffcc260  A13     : 0x3ffcc240 
A14     : 0x00000000  A15     : 0x3ffc5eb4  SAR     : 0x0000001f  EXCCAUSE: 0x0000001c 
EXCVADDR: 0x00000001  LBEG    : 0x00000000  LEND    : 0x00000000  LCOUNT  : 0x00000000 


Backtrace: 0x400e3028:0x3ffbf5ec |<-CORRUPTED


ELF file SHA256: d34e574e2883615c

Rebooting...


« Modifié: août 20, 2024, 06:27:52 pm par Dominique »
Cordialement,
Dominique

Dominique

  • Global Moderator
  • Hero Member
  • *****
  • Messages: 3000
  • 100% Arduino et N
    • Voir le profil
LaBox" : Une Centrale DCC polyvalente et abordable
« Réponse #206 le: août 19, 2024, 02:36:07 pm »
A mon avis :
Tension d'alimentation hors seuils de sécurité
Quel serait un seuil de sécurité? Pour du N ou du HO ou du LGB ?
Ce sujet me semble en dehors du logiciel de LaBox qui doit rester simple

Intensité DCC trop élevée
Le seuil d’intensité de court-circuit est défini en configuration et géré par la partie DCC-EX
Le fait de voir les leds DCC éteintes me suffit.
Le protocole Can avec un gestionnaire qui a, en principe, un écran, est plutôt chargé de cette question.
Il me semble que l’écran de LaBox n’est pas suffisant pour tout faire .

Court circuit sur canton X
La centrale n’a pas connaissance du canton concerné, sauf via protocole can et je reviens à la question précédente: c’est du ressort du gestionnaire et de son écran

Etc. etc..
C’est intéressant de proposer des améliorations, merci, mais il faut veiller à la stabilité du projet. Ce n’est en aucun cas une censure et la démocratie fonctionne.
« Modifié: août 20, 2024, 06:28:17 pm par Dominique »
Cordialement,
Dominique

lebelge2

  • Jr. Member
  • **
  • Messages: 63
    • Voir le profil
Re : LaBox" : Une Centrale DCC polyvalente et abordable
« Réponse #207 le: août 19, 2024, 05:13:08 pm »
Correction d'un bug.
En mode programmation, il faut désactiver RailCom sinon impossible de lire ou écrire un cv.
Une solution simple et rapide est de mettre la condition: Si pas en mode programmation.
Voir le fichier DCCRMT.cpp modifié
Ne pas oublier   #include "hmi.h"

void IRAM_ATTR interrupt(rmt_channel_t channel, void *t) {
#ifdef ENABLE_RAILCOM
  if (!hmi::progMode) {                                           // * Pas en mode programmation
    gpio_matrix_out(RAILCOM_PIN, 0x100, false, false);            // * Déconnecte la pin 33 du module RMT
    gpio_set_level(RAILCOM_PIN, 1);                               // * Pin 33 à l'état haut
    rmt_channel = channel;                                              // * Mémorise n° de canal
    StarTimerCutOut();                                            // * Start Timer CutOut
  }
#endif
  RMTChannel *tt = channelHandle[channel];
  if (tt) tt->RMTinterrupt();
  if (channel == 0)
    DCCTimer::updateMinimumFreeMemoryISR(0);
}

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;                                         
#ifdef ENABLE_RAILCOM
  if (!hmi::progMode) {                            // * Pas en mode programmation
    dp = 1;                                       
    setDCCBitCutOut(preamble);                     // * Symbole CutOut
  }
#endif


Thierry

  • Global Moderator
  • Hero Member
  • *****
  • Messages: 795
    • Voir le profil
Re : LaBox" : Une Centrale DCC polyvalente et abordable
« Réponse #208 le: août 19, 2024, 06:03:32 pm »
Voici un premier jet du soft passé en version 2.5.2:
- intégration des corrections sur l'affichage des fonctions et le mode prog.
- simplification de la configuration dans config.Labox.h . Veillez à bien le copier dans config.h pour tester. On va maintenant configurer le MotorDriver comme d'habitude, mais la partie Railcom va y puiser les pins 33 et 27 pour son fonctionnement. Plus besoin de déclarer d'autres defines avec les mêmes numéros de broche. Je n'ai pas pu tester, j'attends mes cartes Railcom de JLCPCB...

J'attends vos retours avant de pousser sur Github.

Pour la lecture de CV, je n'ai pas de plantage, et j'ai bien mes locos qui sursautent, mais erreur de lecture à chaque fois...

Thierry

  • Global Moderator
  • Hero Member
  • *****
  • Messages: 795
    • Voir le profil
Re : LaBox" : Une Centrale DCC polyvalente et abordable
« Réponse #209 le: août 19, 2024, 06:52:01 pm »
Accessoirement Dominique, tu aurais le lien Aliexpress pour le DC-DC ?