LOCODUINO

Discussions Générales => Bus DCC => Discussion démarrée par: bobyAndCo le septembre 28, 2023, 11:25:42 am

Titre: EX-DCCInspector
Posté par: bobyAndCo le septembre 28, 2023, 11:25:42 am
Bonjour à tous,

Catplus et moi travaillons sur un projet qui nécessite de « sniffer » les trames DCC envoyées sur un réseau. En précisant que nous souhaitons utiliser l’ESP32 comme plateforme.

EX-DCCInspector semble faire l’unanimité pour le job. Il en est plusieurs fois question sur le forum mais rien pour en parler de manière un peu exhaustive. C’est l’ambition de ce fil.

Tout d’abord, la page traitant de EX-DCCInspector se trouve ici : https://dcc-ex.com/ex-dccinspector/index.html#gsc.tab=0 (https://dcc-ex.com/ex-dccinspector/index.html#gsc.tab=0)

Il y a deux manières de se procurer le fichier, soit en téléchargeant un fichier .zip, soit sur le GitHub.

J’ai rencontré plusieurs problèmes :

1° - Le scketch ne compile pas avec une version de l’IDE Arduino inférieure à 2.0
2° - J’essaye alors avec PlatformIO et je rencontre aussi un problème à la compilation.

Avec l’IDE Arduino, la solution a été d’installer la dernière version, pour moi la 2.2.2 (au 28 sept 2023)

Avec PlatformIO, les fonctions doivent être déclarées avant leur première utilisation. Or plusieurs fonctions utilisées dans le loop() sont définie après dans le code.

J’ai donc ajouté le prototype des fonctions juste avant le setup() et ça fonctionne.

void clearHashList();
bool processCommands();
void UpdateLED();
void DecodePacket(Print &, int, bool);
bool processDCC(Print &);

void setup() {

Pour utilisation avec un ESP32, il vous faut renseigner le réseau WiFi utilisé ainsi que son mot de passe dans le fichier Config.h

#define WIFI_SSID "myssid"
#define WIFI_PASSWORD "mypassword"

Nous commentons la ligne //#define USE_OLED car nos n(utiliserons pas d’écran OLED.

En contrepartie, l’ESP32 autorise l’affichage des données dans un navigateur web à l’adresse http://DccInspector.local/

(https://github.com/DCC-EX/DCCInspector-EX/raw/main/assets/WebInterface.PNG)

Voilà quelques précisions pour pouvoir utiliser EX-DCCInspector sur un ESP32 avec visualisation des données dans une page web.
Titre: Re : EX-DCCInspector
Posté par: bobyAndCo le septembre 28, 2023, 11:28:53 am
Pour la partie matérielle, je trouve que c’est nettement moins clair. Dans le README du GitHub, il est fourni le schéma suivant :

(https://github.com/DCC-EX/DCCInspector-EX/raw/main/assets/DCC-Isolator-6N137.png)

Avec cette mise ne garde :

Strictly, the 6N137 isn't rated for the 3.3V supply used on an ESP8266 or ESP32. I've had good results running with the circuit shown above with a 3.3V supply (replacing R3 with 330 ohm), but if you want to do things properly, the VCC terminal of the 6N137 should be connected to +5V, or the optocoupler should be replaced with a 3.3V tolerant optocoupler. In either case, R3 should be connected to +3.3V to avoid putting too high a voltage on the ESP's input pin.

Approximativement traduit en français : Strictement, le 6N137 n'est pas prévu pour l'alimentation 3.3V utilisée sur une ESP8266 ou ESP32. J'ai eu de bons résultats avec le circuit montré ci-dessus avec une alimentation de 3.3V (en remplaçant R3 par 330 ohms), mais si vous voulez faire les choses correctement, la borne VCC du 6N137 doit être connectée à +5V, ou l'optocoupleur doit être remplacé par un optocoupleur tolérant à 3.3V. Dans les deux cas, R3 doit être connecté à +3,3V pour éviter de mettre une tension trop élevée sur la broche d'entrée de l'ESP.

Mais dans le dossier hardware (toujours sur le GitHub) nous avons un autre schéma :

(https://raw.githubusercontent.com/DCC-EX/DCCInspector-EX/main/hardware/optoiso-board-only/schematic.png)

et aussi des représentations de la carte :

(https://raw.githubusercontent.com/DCC-EX/DCCInspector-EX/main/hardware/optoiso-board-only/board_front.png)

(https://raw.githubusercontent.com/DCC-EX/DCCInspector-EX/main/hardware/optoiso-board-only/board_back.png)

Je crois que certains ont réalisé ce circuit pour ESP32. Peuvent t’ils nous préciser comment ils ont procédé ?

Merci par avance

Christophe



Titre: Re : EX-DCCInspector
Posté par: Dominique le septembre 28, 2023, 11:41:58 am
Excellente initiative  ;D

EX-DCCInspector a été mentionné dans 2 discussions sur ce forum ;

Dans le sujet consacré à DCC-EX :
https://forum.locoduino.org/index.php?topic=1048.msg15187#msg15187 (https://forum.locoduino.org/index.php?topic=1048.msg15187#msg15187)

Et en particulier dans le sujet sur LaBox :
https://forum.locoduino.org/index.php?topic=922.msg15975#msg15975 (https://forum.locoduino.org/index.php?topic=922.msg15975#msg15975)

Titre: Re : EX-DCCInspector
Posté par: msport le septembre 28, 2023, 09:53:41 pm
Bonsoir,

j'avais fait en son temps un circuit imprimé sniffer multi fonctions auto alimenté par le DCC. (broches latérales)

vous trouverez ci-dessous le schéma (standard mynabay) et composants lambda, pcb ainsi que les gerber.

pour la fonction sniffer DCC, il y a deux ponts à faire (photo)
Titre: Re : EX-DCCInspector
Posté par: msport le septembre 28, 2023, 10:01:33 pm
suite, le pcb ...
Titre: Re : EX-DCCInspector
Posté par: bobyAndCo le septembre 29, 2023, 09:10:43 am
Merci Michel pour toutes ces infos précieuses.

Tu confirmes que 6N137 peut-être alimenté en 3,3V ?

Christophe
Titre: Re : EX-DCCInspector
Posté par: msport le septembre 29, 2023, 09:40:56 am
En tout cas, ceux que j'ai utilisés, oui.
Titre: Re : EX-DCCInspector
Posté par: CATPLUS le septembre 29, 2023, 12:09:17 pm
Bonjour
Pour tester ce montage il faut charger la version 2.2.1, je suis allé sur le site:

https://www.arduino.cc/en/software

Quelque difficulté avec Win7 (voir ci-dessous), aucun souci avec Win10

Pour le driver USB => CP2102

https://www.pololu.com/docs/0J7/all
Titre: Re : EX-DCCInspector
Posté par: MCPA le septembre 29, 2023, 03:12:02 pm
Bonjour,

Pour Windows 7 je pense que c'est probablement impossible. Kernel32.dll est une bibliothèque système de Windows représentant le noyau. La fonction GetPackageFamillyName a certainement été implémentée dans Windows 10

Philippe
Titre: Re : EX-DCCInspector
Posté par: msport le septembre 29, 2023, 04:27:24 pm
Bonjour à tous,

pour ma part, j'ai pu téléverser DCCInspector-EX avec l'IDE 1.8.19 sous W10.

A contrario, sur un autre W10 où j'avais installé l'IDE 2.1.1, la compilation s'est terminée en erreur (avec les deux IDE) avec :

C:\Users\moi\Documents\Arduino\EX\DCCInspector-EX\HttpManager.cpp: In member function 'bool HttpManagerClass::begin(const char*, const char*, const char*)':
C:\Users\moi\Documents\Arduino\EX\DCCInspector-EX\HttpManager.cpp:187:10: error: 'struct esp_wps_config_t' has no member named 'crypto_funcs'
   config.crypto_funcs = &g_wifi_default_wps_crypto_funcs;


Sur le serial monitor, juste après un reset, vous aurez l'adresse IP de connexion du sniffer à laquelle votre browser pourra se se connecter. Ajouter :80 (pour http)

style 192.168.1.23:80

Seules modifications : le SSID et le mot de passe (attention aux tirets et aux majuscules.)
Titre: Re : Re : EX-DCCInspector
Posté par: bobyAndCo le septembre 30, 2023, 10:24:41 am

Sur le serial monitor, juste après un reset, vous aurez l'adresse IP de connexion du sniffer à laquelle votre browser pourra se se connecter. Ajouter :80 (pour http)

style 192.168.1.23:80


Le moyen le plus simple pour se connecter à l'interface web est de copier dans la barre d'url du navigateur l'adresse : http://DccInspector.local
Titre: Re : EX-DCCInspector
Posté par: msport le septembre 30, 2023, 01:21:27 pm
Oui, sauf quand ça ne marche pas ...
Titre: Re : EX-DCCInspector
Posté par: bobyAndCo le octobre 02, 2023, 09:24:55 am
Il faut mettre un D (majuscule) et un I (majuscule). Les URL's sont sensibles à la casse : http://DccInspector.local/

Titre: Re : EX-DCCInspector
Posté par: Jean-Paul le octobre 02, 2023, 05:35:44 pm
J'utilise aussi DCCInspector-EX sans problème avec un ESP32

Pour le hardware 6N137
- alimentation par le 3.3V de l'ESP32 avec un petit 100nF de découplage
- côté entrée du 6N137 : condensateur 1nF en parallèle sur la diode
- côté sortie : résistance pull-up de 1K.

Pour le software: IDE 1.8.13 (je n'ai  jamais installé une version 2.x.y !)
Board définition pour ESP32: 2.0.9 (il faut absolument 2.0.x, avec les version 1.0.x : cela ne compile pas)

Config.h à configurer comme déjà indiqué (WIFI_SSID, pas d'OLED)

Accès Web via l'adresse http://dccinspector.local/ (et oui chez moi cela marche aussi sans les majuscules (?))

Mon environnement: W10 + Firefox
JP.


Titre: Re : EX-DCCInspector
Posté par: bobyAndCo le octobre 04, 2023, 03:45:40 pm
Si vous utilisez le nom de serveur http://dccinspector.local/ (http://dccinspector.local/) ,je vous conseille de modifier la ligne 132 du Config.h comme ceci :

// Name used by mDNS to register the device.  On some browsers it can be accessed
// through this name with a ".local" suffix (e.g. http://dccinspector.local/).
#define DNSNAME "dccinspector"
Titre: Re : EX-DCCInspector
Posté par: bobyAndCo le octobre 17, 2023, 01:24:23 pm
Bonjour à tous,

Je viens d’être livré des composants qui me manquaient pour le montage électronique de DCC Inspector et j’ai pu vérifier le fonctionnement correspondant à ce schéma avec un ESP32.

(https://raw.githubusercontent.com/DCC-EX/DCCInspector-EX/main/hardware/optoiso-board-only/schematic.png)

Ca fonctionne nickel ! comme vous pouvez le voir sur cette image.

(https://alkans.fr/locoduino/img/DCC_Inspector.jpg)

Du coup, je vais lancer la fabrication d’un PCB à partir d’une carte universelle (polyvalente) par un ajout que l’on voit sur fond gris en bas à gauche.

(https://alkans.fr/locoduino/img/_DSC1035.jpg)

Ceux d’entre vous qui pourraient être intéressés par une telle carte peuvent m’en faire la demande.

La carte est prévue pour un ESP32 à 38 pins, elle peut être équipée du CAN en ajoutant un MCP2562 (mais c’est facultatif). Elle peut aussi être équipée d’un module Ethernet pour une liaison filaire en RJ45. C’est la solution que j’adopte quand j’ai beaucoup d’ESP32 en même temps pour ne pas utiliser le Wifi. L’implantation de l’Ethernet est aussi facultative. Elle peut aussi être équipée en option d’un convertisseur de tension de jusqu’à 36V max vers 5V / 1A

Je propose de livrer le PCB avec juste les composants nécessaires à la détection DCC (la partie sur fond gris en bas à gauche donc) pour 15€, sans ESP32 donc et sans tous les autres composants décrit ci-dessus qui, comme expliqué, ne sont pas nécessaires.

Mais si vous voulez profiter de l’occasion pour vous équiper d’une carte plus complète (CAN, Ethernet…) je peux vous fournir les autres composants soudés ou pas ainsi que l’ESP32. Pour les détails et les prix, c’est à discuter en MP

Réponse avant le 22 octobre, après il sera trop tard !

Christophe


Titre: Re : EX-DCCInspector
Posté par: bobyAndCo le novembre 13, 2023, 06:50:59 pm
Voilà, les PCB sont arrivés, les cartes montées et ceux qui en avaient commandé seront bientôt livrés.

Il reste 2 pcb pour les retardataires qui seraient intéressés. Je rappelle que les cartes peuvent communiquer en CAN et qu'elles sont livrées équipées pour cela.

Qu'on se le dise.

Christophe

(https://alkans.fr/locoduino/img/_DSC1078.jpg)