Les premiers circuits imprimés sont montés, après la découverte d'une erreur de 2,54mm dans l'espacement entre les 2 rangées de broches de l'ESP32
Chacun y est allé avec sa solution, mais il faudra donc refaire le circuit imprimé prochainement. Nous avons décidé d'attendre différents tests qui peuvent entrainer d'autres modifications.
Coté logiciel, les choses se passent plutôt bien
La bibliothèque DCCpp change de nom et s'appelle "LaBox" pour le projet. A terme ces 2 bibliothèques seront alignées et n'en feront plus qu'une. Je vais dtailler un peu plus loin.
Une autre bibliothèque est en train de voir le jour : "HMI" qui va produire l'interface utilisateur sur l'écran OLED en conjonction avec les 3 boutons.
L'ensemble DCCpp + HMI sera intégré à terme, dans LaBox.
Nous avons eu une petite réunion la semaine dernière, en visio comme il se doit (et on n'habite pas les uns à coté des autres), et en voici les principaux éléments à retenir.
DCCppOn pourra monter jusqu'à 41 registres dans DCCpp, le registre 0 est réservé pour toutes les fonctions ponctuelles et les autres pour les fonctions permanentes comme les fonctions de vitesse qui sont répétées en permanence ce qui évite de perdre des ordres sur coupure.
La classe
Locomotives affecte un registre libre à chaque nouvelle locomotive pilotée. Une version pourrait supporter un registre pour la vitesse et un autre pour les fonctions pour chaque locomotive évitant ainsi les problèmes de perte d’activation des fonctions lors d’une coupure de courant fugitive.
La classe
Throttle est le moyen de transmettre les ordres à DCCpp. Chaque Throttle peut avoir un
MessageConverter associé qui réalise la traduction des messages reçus vers DCCpp, que ce soit en appel direct de fonctions DCCpp ou en traduction vers les commandes DCCpp texte habituelles. Lorsqu’aucun MessageConverter n’est spécifié, alors les commandes reçues doivent être au format DCCpp et seront envoyées directement.
L’ESP32 dispose de 4 Mo de mémoire flash. Le programme de test avec Withrottle et HMI occupe 53% de la place de l’espace de stockage du programme. Si on était amené à stocker des pages web, les 4 Mo seraient utilisés à cet effet sans impact sur les espaces programmes. La configuration de LaBox via un Webadmin nous semble la solution à retenir. Elle devrait se trouver dans cet espace si l’écriture dynamique y est possible.
Programmation de CV et détection de court-circuitLa lecture du courant dans l’ESP permet d’avoir à 4 A une tension sur l’entrée de l’ESP < à 3.3V donc l'ESP est protégé et on est en capacité de détecter un court-circuit.
On détecte bien les fronts de 60 mA en réponse à la lecture de CV. Cependant, la fonction n’est pas encore opérationnelle. La recherche d'une bonne gestion du convertisseur analogique-digital et de l'instant précis où apparait cette impulsion de 60mA pendant 6mS est encore à l'étude.
Du côté des nouvelles fonctions, des concepts présentés semblent intéressants- Un joueur de scénario, basé sur un mini-gestionnaire (ou l'inverse), serait certainement très simple dans un premier temps, pourrait permettre de gérer un va et vient par exemple. Un throttle « interne » pourrait permettre de joueur un scénario ou alors on pourrait aussi publier directement dans MessageStack.
- Le WebAdmin permet depuis une page web d’administration de régler les différents paramètres de La Box.
- PasserelleCan : Simple portage du module existant de Christophe. A voir l’intérêt.
- PasserelleMQTT : Permettrait au travers du protocole MQTT de communiquer à JMRI.
- Throttle Web : Une Throttle 100% web pourrait être pertinente car on pourrait ainsi s’affranchir de tout logiciel pour piloter les trains. Christophe dispose déjà d’un développement très pertinent pour faire un excellent candidat à l’intégration.
- Une version permettant de tester les commandes DCCpp texte via le serial (RX/TX) et la console est en cours de test.
Un schéma provisoire d'architecture du logiciel de LaBox est ci-dessous