Auteur Sujet: EX-DCCInspector  (Lu 14150 fois)

bobyAndCo

  • Global Moderator
  • Hero Member
  • *****
  • Messages: 1084
  • HO avec DCC++
    • Voir le profil
EX-DCCInspector
« 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

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/



Voilà quelques précisions pour pouvoir utiliser EX-DCCInspector sur un ESP32 avec visualisation des données dans une page web.

bobyAndCo

  • Global Moderator
  • Hero Member
  • *****
  • Messages: 1084
  • HO avec DCC++
    • Voir le profil
Re : EX-DCCInspector
« Réponse #1 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 :



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 :



et aussi des représentations de la carte :





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



« Modifié: septembre 28, 2023, 11:37:45 am par bobyAndCo »

Dominique

  • Global Moderator
  • Hero Member
  • *****
  • Messages: 3043
  • 100% Arduino et N
    • Voir le profil
Re : EX-DCCInspector
« Réponse #2 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

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

Cordialement,
Dominique

msport

  • Global Moderator
  • Hero Member
  • *****
  • Messages: 2217
  • HO avec DCC++ en DIY Réseaux très éphémères
    • Voir le profil
Re : EX-DCCInspector
« Réponse #3 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)
« Modifié: septembre 28, 2023, 09:55:28 pm par msport »
Cordialement

msport

  • Global Moderator
  • Hero Member
  • *****
  • Messages: 2217
  • HO avec DCC++ en DIY Réseaux très éphémères
    • Voir le profil
Re : EX-DCCInspector
« Réponse #4 le: septembre 28, 2023, 10:01:33 pm »
suite, le pcb ...
Cordialement

bobyAndCo

  • Global Moderator
  • Hero Member
  • *****
  • Messages: 1084
  • HO avec DCC++
    • Voir le profil
Re : EX-DCCInspector
« Réponse #5 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

msport

  • Global Moderator
  • Hero Member
  • *****
  • Messages: 2217
  • HO avec DCC++ en DIY Réseaux très éphémères
    • Voir le profil
Re : EX-DCCInspector
« Réponse #6 le: septembre 29, 2023, 09:40:56 am »
En tout cas, ceux que j'ai utilisés, oui.
Cordialement

CATPLUS

  • Sr. Member
  • ****
  • Messages: 435
    • Voir le profil
Re : EX-DCCInspector
« Réponse #7 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
« Modifié: septembre 29, 2023, 02:20:49 pm par CATPLUS »
Best Regards

MCPA

  • Newbie
  • *
  • Messages: 15
    • Voir le profil
Re : EX-DCCInspector
« Réponse #8 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

msport

  • Global Moderator
  • Hero Member
  • *****
  • Messages: 2217
  • HO avec DCC++ en DIY Réseaux très éphémères
    • Voir le profil
Re : EX-DCCInspector
« Réponse #9 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.)
Cordialement

bobyAndCo

  • Global Moderator
  • Hero Member
  • *****
  • Messages: 1084
  • HO avec DCC++
    • Voir le profil
Re : Re : EX-DCCInspector
« Réponse #10 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

msport

  • Global Moderator
  • Hero Member
  • *****
  • Messages: 2217
  • HO avec DCC++ en DIY Réseaux très éphémères
    • Voir le profil
Re : EX-DCCInspector
« Réponse #11 le: septembre 30, 2023, 01:21:27 pm »
Oui, sauf quand ça ne marche pas ...
Cordialement

bobyAndCo

  • Global Moderator
  • Hero Member
  • *****
  • Messages: 1084
  • HO avec DCC++
    • Voir le profil
Re : EX-DCCInspector
« Réponse #12 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/


Jean-Paul

  • Newbie
  • *
  • Messages: 30
  • Z
    • Voir le profil
Re : EX-DCCInspector
« Réponse #13 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.



bobyAndCo

  • Global Moderator
  • Hero Member
  • *****
  • Messages: 1084
  • HO avec DCC++
    • Voir le profil
Re : EX-DCCInspector
« Réponse #14 le: octobre 04, 2023, 03:45:40 pm »
Si vous utilisez le nom de serveur 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"