Auteur Sujet: DccToolkit / SystemToolkit  (Lu 38068 fois)

msport

  • Global Moderator
  • Hero Member
  • *****
  • Messages: 2217
  • HO avec DCC++ en DIY Réseaux très éphémères
    • Voir le profil
Re : DccToolkit / SystemToolkit
« Réponse #30 le: mai 08, 2021, 03:31:39 pm »
Bonjour,

à vérifier : la tension sur les rails du DCC (+/-) ou du continu ?
Cordialement

kortex77

  • Newbie
  • *
  • Messages: 10
    • Voir le profil
Re : DccToolkit / SystemToolkit
« Réponse #31 le: mai 08, 2021, 05:36:42 pm »
Bonjour,
tout d'abord je tenais à vous remercier pour vos réponses. Je débute dans ce domaine et elles me m'aident beaucoup.
Nullement l'idée pour moi de remettre en cause le fonctionnement du code. C'est plutôt mon montage que je soupçonne  :)

Je n'ai pas un super niveau en électronique, mais je vais refaire des tests. Mais je pense effectivement qu'il y a un problème de liaison avec l'arduino car il n'y a qu'une seule des 2 led qui s'allume sur la carte L9110S au lieu des deux avant (test avec DCC++).

Je vais chercher sur le net comment envoyer des commandes.

Encore merci.

AmadeusHF

  • Full Member
  • ***
  • Messages: 205
    • Voir le profil
Re : DccToolkit / SystemToolkit
« Réponse #32 le: mai 08, 2021, 05:39:40 pm »
Si vous nous précisez quel modele d'arduino vous utilisez et quels branchements vous avez fait, on va pouvoir vous dire ce qui coince. L'affectation des broches est pour une partie imposée, pour l'autre libre. Si vous n'avez qu'une seule LED d'allumée c'est que vous alimentez électriquement le shield moteur, mais que vous n'injectez pas le signal DCC....donc que la broche MOTOR DIR de la carte moteur n'est pas reliée à la bonne brocher de l'Arduino.
Sébastien.
La perfection est un chemin, non un but...

msport

  • Global Moderator
  • Hero Member
  • *****
  • Messages: 2217
  • HO avec DCC++ en DIY Réseaux très éphémères
    • Voir le profil
Re : DccToolkit / SystemToolkit
« Réponse #33 le: mai 08, 2021, 06:24:10 pm »
Les commandes DCC++ sont là :
https://dcc-ex.com/reference/software/command-reference.html

En retour, à la mise sous tension de l'Arduino, sur le serial monitor réglé à 115200 bauds, après le message d'identification de la version, il devrait y avoir <p1> qui indique la mise sous tension des rails (ou au moins la tentative de).
Cordialement

kortex77

  • Newbie
  • *
  • Messages: 10
    • Voir le profil
Re : DccToolkit / SystemToolkit
« Réponse #34 le: mai 08, 2021, 06:34:25 pm »
Il y avait effectivement un mauvais branchement. Je n'avais pas fait attention que le code copié n'était pas pour le mega (SignalGenerator generator(1, 10, true)  :-\
J'ai bien maintenant les deux led allumées.

Je suis descendu jusqu'à 30 pour driver.setAckThresholdCurrent.
J'ai bien utilisé ACS712CurrentSensor currentSensor(A4, 5000,185);
L'arduino mega est allumé uniquement par le port usb, et l"ACS712 par l'arduino.

J'ai aussi essayé avec un autre moteur récent.
Le moteur s'active bien de temps en temps.  Mais les valeurs sont toujours différentes à chaque lecture.

Par contre l'alimentation est une 18 volts (comme indiqué ici : https://www.locoduino.org/spip.php?article253).

Merci pour les commandes.

kortex77

  • Newbie
  • *
  • Messages: 10
    • Voir le profil
Re : DccToolkit / SystemToolkit
« Réponse #35 le: mai 08, 2021, 06:40:00 pm »
J'utilise le code fourni par AmadeusHF dans la première page.
La console de l'arduino IDE indique

<p0><iDCC++ BASE STATION FOR ARDUINO UNO / L9110S / V-1.2.1+ / May  8 2021 / 18:36:17><N0:SERIAL><X><X>
C'est correct ?

<1> allume bien les leds.

Par contre est-ce que le Dcctoolkit/SystemToolkit prend en compte toutes le commandes (je crois avoir compris que non) ?
« Modifié: mai 08, 2021, 06:51:02 pm par kortex77 »

AmadeusHF

  • Full Member
  • ***
  • Messages: 205
    • Voir le profil
Re : DccToolkit / SystemToolkit
« Réponse #36 le: mai 08, 2021, 06:46:15 pm »
Si vous avez les deux leds allumées sur le driver moteur et que la loco "gigotte" régulièrement c'est qu'elle reçoit les commandes et réagit.

Dans un premier temps il est préférable de monter l'ACS712 dans le circuit d'alimentation de la carte 9110.

Vous avez bien branché la sortie OUT de l'ACS sur la broche de mesure de votre Arduino, dont vous passez le numéro dans le constructeur de l'objet ? (A4 en l'occurence).

Et l'ACS est alimenté par le VCC de votre arduino, GND relié au GND de votre arduino ?

Petite photo (gros plan) de votre montage ?

L'alimentation 18V est normale pour des locos en HO.
Sébastien.
La perfection est un chemin, non un but...

kortex77

  • Newbie
  • *
  • Messages: 10
    • Voir le profil
Re : DccToolkit / SystemToolkit
« Réponse #37 le: mai 08, 2021, 07:01:23 pm »
J'ai vérifié et les branchement sont correct.
Il y a de l'amélioration. Avec un réglage à 40,, j'ai réussi à obtenir deux fois de suite :


CV 1 = 3 : OK
CV 2 = 3 : OK
CV 3 = 40 : OK
CV 4 = 40 : OK
CV 5 = 255 : OK
CV 6 = 88 : OK
CV 7 = 255 : OK
CV 8 = 151 : OK
CV 9 = 40 : OK
CV 10 = 0 : OK
CV 11 = 0 : OK
CV 12 = 0 : OK
CV 13 = 1 : OK
CV 14 = 1 : OK
CV 15 = 0 : OK
CV 16 = 0 : OK
CV 17 = 192 : OK
CV 18 = 0 : OK
CV 19 = 0 : OK
CV 20 = 0 : OK
CV 21 = 0 : OK
CV 22 = 0 : OK
CV 23 = 0 : OK
CV 24 = 0 : OK
CV 25 = 32 : OK
CV 26 = 0 : OK
CV 27 = 24 : OK
CV 28 = 131 : OK
CV 29 = 2 : OK
CV 30 = 0 : OK

Puis après plus. Je viens de refaire un test et j'ai obtenu :
CV 1 = 3 : OK
CV 2 = 3 : OK
CV 3 = 40 : OK
CV 4 = 40 : OK
CV 5 = 127 : Failed to read !
CV 6 = 88 : OK
CV 7 = 255 : OK
CV 8 = 151 : OK
CV 9 = 40 : OK
CV 10 = 0 : OK
CV 11 = 0 : OK
CV 12 = 0 : OK
CV 13 = 1 : OK
CV 14 = 1 : OK
CV 15 = 0 : OK
CV 16 = 0 : OK
CV 17 = 192 : OK
CV 18 = 0 : OK
CV 19 = 0 : OK
CV 20 = 1 : OK
CV 21 = 0 : OK
CV 22 = 0 : OK
CV 23 = 0 : OK
CV 24 = 0 : OK
CV 25 = 0 : OK
CV 26 = 128 : OK
CV 27 = 24 : OK
CV 28 = 131 : OK
CV 29 = 2 : OK
CV 30 = 0 : OK

Peut-on utiliser des valeurs intermédiaires entre 40 et 30 ou bien est-ce que cela doit toujours être un multiple de 10 ?

AmadeusHF

  • Full Member
  • ***
  • Messages: 205
    • Voir le profil
Re : DccToolkit / SystemToolkit
« Réponse #38 le: mai 08, 2021, 07:03:21 pm »
On peut mettre la valeur que l'on veut. Théoriquement le seuil de la norme est 60...donc on devrait utiliser 60 MAIS comme la précision de mesure dépend du composant utilisé, il faut ajuster au besoin.
Sébastien.
La perfection est un chemin, non un but...

kortex77

  • Newbie
  • *
  • Messages: 10
    • Voir le profil
Re : DccToolkit / SystemToolkit
« Réponse #39 le: mai 08, 2021, 09:55:52 pm »
J'ai remis l'ACS712 entre l'alimentation et la carte L9110S et j'arrive à avoir des lectures satisfaisantes.

Maintenant j'essaye d'utiliser la librairie avec JMRI mais il n'arrive pas a trouver le décodeur. La lecture des CV semble ne plus fonctionner (valeur de 255).
Peut-on l'utiliser avec JMRI ?

J'utilise le code trouvé dans les premières pages

Citer
// Do not remove the include below

#include "DuinoBaseStation.h"

#include "SystemToolkit.h"
#include "DccToolkit.h"

// Create a current sensor reading on A0 with VCC = 5.0 volts
ACS712CurrentSensor currentSensor(A0, 5000,185);
//Max471CurrentSensor currentSensor(A0, 5000);

// Create a signal generator using timer 1, pin 12 which is OUTPUT COMPARE B
// for timer 1 on MEGA for example
SignalGenerator generator(1, 12, true);

// Create a track driver using previous generator & current sensor, also using
// pin 11 to switch track power ON/OFF
TrackDriver driver(11, &generator, &currentSensor);

// Create a command stream using USB serial port
SerialPortCommandStream usbStream;

// Create a command parser using the stream and our single track driver
CommandParser usbParser(&usbStream, &driver, NULL);

#if defined(DCC_ETHERNET_WIZNET_5100_ENABLED) || defined(DCC_ETHERNET_WIZNET_5200_ENABLED) || defined(DCC_ETHERNET_WIZNET_5500_ENABLED)
// Create a command stream using ETHERNET port
SocketCommandStream ipStream;

// Create a command parser using the stream and our single track driver
CommandParser ipParser(&ipStream, &driver, NULL);
#endif

void setup()
{
  driver.start();
  driver.setAckThresholdCurrent(40);
  usbParser.start();
#if defined(DCC_ETHERNET_WIZNET_5100_ENABLED) || defined(DCC_ETHERNET_WIZNET_5200_ENABLED) || defined(DCC_ETHERNET_WIZNET_5500_ENABLED)
  ipParser.start();
#endif
}

void loop()
{
  usbParser.run();
#if defined(DCC_ETHERNET_WIZNET_5100_ENABLED) || defined(DCC_ETHERNET_WIZNET_5200_ENABLED) || defined(DCC_ETHERNET_WIZNET_5500_ENABLED)
  ipParser.run();
#endif
}

AmadeusHF

  • Full Member
  • ***
  • Messages: 205
    • Voir le profil
Re : DccToolkit / SystemToolkit
« Réponse #40 le: mai 08, 2021, 10:04:36 pm »
J'utilise systématiquement DecoderPro via USB pour mes tests, donc oui ça marche.
Sébastien.
La perfection est un chemin, non un but...

kortex77

  • Newbie
  • *
  • Messages: 10
    • Voir le profil
Re : DccToolkit / SystemToolkit
« Réponse #41 le: mai 09, 2021, 11:55:24 am »
Dans ce cas est-ce que le code que j'utilise est suffisant pour une utilisation avec JMRI ?
Je rencontre un problème dans la lecture des CV qui ne fonctionne pas : que des valeur à 255.

11:52:38.272:  Prog Read Cmd: CV: 8, Callback Num: 0, Callback Sub: 82
11:52:38.675:  Program Reply: Callback Num: 0, Callback Sub: 82, CV: 8, Value: 255
11:52:38.676:  Prog Read Cmd: CV: 7, Callback Num: 0, Callback Sub: 82
11:52:39.109:  Program Reply: Callback Num: 0, Callback Sub: 82, CV: 7, Value: 255
11:52:39.112:  Prog Read Cmd: CV: 29, Callback Num: 0, Callback Sub: 82
11:52:39.556:  Program Reply: Callback Num: 0, Callback Sub: 82, CV: 29, Value: 255
11:52:39.556:  Read Track Current Cmd
11:52:41.559:  Prog Read Cmd: CV: 1, Callback Num: 0, Callback Sub: 82
11:52:41.952:  Program Reply: Callback Num: 0, Callback Sub: 82, CV: 1, Value: 255
11:52:41.952:  Prog Read Cmd: CV: 17, Callback Num: 0, Callback Sub: 82
11:52:42.386:  Program Reply: Callback Num: 0, Callback Sub: 82, CV: 17, Value: 255
11:52:42.387:  Prog Read Cmd: CV: 18, Callback Num: 0, Callback Sub: 82
11:52:42.829:  Program Reply: Callback Num: 0, Callback Sub: 82, CV: 18, Value: 255
11:52:42.830:  Prog Read Cmd: CV: 19, Callback Num: 0, Callback Sub: 82
11:52:43.271:  Program Reply: Callback Num: 0, Callback Sub: 82, CV: 19, Value: 255
11:52:46.382:  Status Cmd
11:52:46.384:  Power Status: OFF
11:52:46.398:  Status:Station: , Build: , Version: 0.0.0
11:52:46.404:  Comm Type Reply Type: 0 Port: N/A
11:52:46.405:  No Sensor/Turnout/Output Reply
11:52:46.408:  No Sensor/Turnout/Output Reply
11:52:49.456:  Read Track Current Cmd

Il y a aussi le Voltage Meter qui n'indique rien : - - - A

Il s'agit de la version 4.22+R4c4384d74 de JMRI.

Voici les messages générés dans la console par DecoderPro lors du démarrage et du lancement d'une recherche de décodeur :

2021-05-09 11:58:42,327 util.Log4JUtil                        INFO  - ****** JMRI log ******* [main]
2021-05-09 11:58:42,384 util.Log4JUtil                        INFO  - This log is appended to file: /home/christophe/.jmri/log/messages.log [main]
2021-05-09 11:58:42,386 util.Log4JUtil                        INFO  - This log is stored in file: /home/christophe/.jmri/log/session.log [main]
2021-05-09 11:58:42,395 apps.AppsBase                         INFO  - DecoderPro version 4.22+R4c4384d74 starts under Java 1.8.0_292 on Linux amd64 v3.10.0-1160.24.1.el7.x86_64 at Sun May 09 11:58:42 CEST 2021 [main]
2021-05-09 11:58:44,613 gui3.Apps3                            INFO  - Starting with profile Mon_Réseau_JMRI.3eec594e [main]
2021-05-09 11:58:44,707 node.NodeIdentity                     INFO  - Using 0adc91f1-ffaa-462b-876a-5da7604188fc as the JMRI storage identity for profile id 3eec594e [AWT-EventQueue-0]
2021-05-09 11:58:44,828 xml.AbstractSerialConnectionConfigXml INFO  - Starting to connect for "DCC++" [main]
2021-05-09 11:58:44,998 serial.DCCppAdapter                   INFO  - ttyACM0 port opened at 115200 baud with DTR: true RTS: true DSR: false CTS: true  CD: false [main]
2021-05-09 11:58:45,058 dccpp.DCCppInitializationManager      INFO  - DCC++ Initialization Complete with station type 'Unknown', version '0.0.0' and build 'Unknown' [main]
2021-05-09 11:58:45,356 util.FileUtilSupport                  INFO  - File path program: is /home/christophe/Documents/trains électriques/dcc/centrale/JMRI/JMRI/ [main]
2021-05-09 11:58:45,357 util.FileUtilSupport                  INFO  - File path preference: is /home/christophe/.jmri/Mon_Réseau_JMRI.jmri/ [main]
2021-05-09 11:58:45,358 util.FileUtilSupport                  INFO  - File path profile: is /home/christophe/.jmri/Mon_Réseau_JMRI.jmri/ [main]
2021-05-09 11:58:45,358 util.FileUtilSupport                  INFO  - File path settings: is /home/christophe/.jmri/ [main]
2021-05-09 11:58:45,359 util.FileUtilSupport                  INFO  - File path home: is /home/christophe/ [main]
2021-05-09 11:58:45,359 util.FileUtilSupport                  INFO  - File path scripts: is /home/christophe/Documents/trains électriques/dcc/centrale/JMRI/JMRI/jython/ [main]
2021-05-09 11:58:46,138 dccpp.DCCppReply                      ERROR - DCCppReply 'iDCC++ BASE STATION FOR ARDUINO UNO / L9110S / V-1.2.1+ / May  8 2021 / 21:48:06' not matched by '' [AWT-EventQueue-0]
2021-05-09 11:58:46,138 dccpp.DCCppCommandStation             INFO  - Station Type set to '' [AWT-EventQueue-0]
2021-05-09 11:58:46,139 dccpp.DCCppReply                      ERROR - DCCppReply 'iDCC++ BASE STATION FOR ARDUINO UNO / L9110S / V-1.2.1+ / May  8 2021 / 21:48:06' not matched by '' [AWT-EventQueue-0]
2021-05-09 11:58:46,140 dccpp.DCCppCommandStation             INFO  - Build set to '' [AWT-EventQueue-0]
2021-05-09 11:58:46,140 dccpp.DCCppReply                      ERROR - DCCppReply 'iDCC++ BASE STATION FOR ARDUINO UNO / L9110S / V-1.2.1+ / May  8 2021 / 21:48:06' not matched by '' [AWT-EventQueue-0]
2021-05-09 11:58:48,231 jmrix.AbstractMRTrafficController     WARN  - Timeout on reply to message: T consecutive timeouts = 0 in serial.SerialDCCppPacketizer [serial.SerialDCCppPacketizer Transmit thread]
2021-05-09 11:58:50,232 jmrix.AbstractMRTrafficController     WARN  - Timeout on reply to message: Z consecutive timeouts = 1 in serial.SerialDCCppPacketizer [serial.SerialDCCppPacketizer Transmit thread]
2021-05-09 11:58:52,233 jmrix.AbstractMRTrafficController     WARN  - Timeout on reply to message: S consecutive timeouts = 2 in serial.SerialDCCppPacketizer [serial.SerialDCCppPacketizer Transmit thread]
2021-05-09 11:58:54,235 jmrix.AbstractMRTrafficController     WARN  - Timeout on reply to message: c consecutive timeouts = 3 in serial.SerialDCCppPacketizer [serial.SerialDCCppPacketizer Transmit thread]
2021-05-09 11:58:56,236 jmrix.AbstractMRTrafficController     WARN  - Timeout on reply to message: T consecutive timeouts = 4 in serial.SerialDCCppPacketizer [serial.SerialDCCppPacketizer Transmit thread]
2021-05-09 11:58:58,237 jmrix.AbstractMRTrafficController     WARN  - Timeout on reply to message: Z consecutive timeouts = 5 in serial.SerialDCCppPacketizer [serial.SerialDCCppPacketizer Transmit thread]
2021-05-09 11:59:00,238 jmrix.AbstractMRTrafficController     WARN  - Timeout on reply to message: S consecutive timeouts = 6 in serial.SerialDCCppPacketizer [serial.SerialDCCppPacketizer Transmit thread]
2021-05-09 11:59:02,239 jmrix.AbstractMRTrafficController     WARN  - Timeout on reply to message: T consecutive timeouts = 7 in serial.SerialDCCppPacketizer [serial.SerialDCCppPacketizer Transmit thread]
2021-05-09 11:59:04,240 jmrix.AbstractMRTrafficController     WARN  - Timeout on reply to message: c consecutive timeouts = 8 in serial.SerialDCCppPacketizer [serial.SerialDCCppPacketizer Transmit thread]
2021-05-09 11:59:06,242 jmrix.AbstractMRTrafficController     WARN  - Timeout on reply to message: Z consecutive timeouts = 9 in serial.SerialDCCppPacketizer [serial.SerialDCCppPacketizer Transmit thread]
2021-05-09 11:59:08,243 jmrix.AbstractMRTrafficController     WARN  - Timeout on reply to message: S consecutive timeouts = 10 in serial.SerialDCCppPacketizer [serial.SerialDCCppPacketizer Transmit thread]
2021-05-09 11:59:10,244 jmrix.AbstractMRTrafficController     WARN  - Timeout on reply to message: T consecutive timeouts = 11 in serial.SerialDCCppPacketizer [serial.SerialDCCppPacketizer Transmit thread]
2021-05-09 11:59:12,245 jmrix.AbstractMRTrafficController     WARN  - Timeout on reply to message: Z consecutive timeouts = 12 in serial.SerialDCCppPacketizer [serial.SerialDCCppPacketizer Transmit thread]
2021-05-09 11:59:14,247 jmrix.AbstractMRTrafficController     WARN  - Timeout on reply to message: c consecutive timeouts = 13 in serial.SerialDCCppPacketizer [serial.SerialDCCppPacketizer Transmit thread]
2021-05-09 11:59:16,249 jmrix.AbstractMRTrafficController     WARN  - Timeout on reply to message: S consecutive timeouts = 14 in serial.SerialDCCppPacketizer [serial.SerialDCCppPacketizer Transmit thread]
2021-05-09 11:59:16,739 dccpp.DCCppReply                      ERROR - DCCppReply 'iDCC++ BASE STATION FOR ARDUINO UNO / L9110S / V-1.2.1+ / May  8 2021 / 21:48:06' not matched by '' [AWT-EventQueue-0]
2021-05-09 11:59:16,739 dccpp.DCCppReply                      ERROR - DCCppReply 'iDCC++ BASE STATION FOR ARDUINO UNO / L9110S / V-1.2.1+ / May  8 2021 / 21:48:06' not matched by '' [AWT-EventQueue-0]
2021-05-09 11:59:16,740 dccpp.DCCppReply                      ERROR - DCCppReply 'iDCC++ BASE STATION FOR ARDUINO UNO / L9110S / V-1.2.1+ / May  8 2021 / 21:48:06' not matched by '' [AWT-EventQueue-0]
2021-05-09 11:59:17,141 symbolicprog.CombinedLocoSelTreePane  WARN  - Found mfg 255 version 255; no such manufacturer defined [AWT-EventQueue-0]
2021-05-09 11:59:17,142 decoderdefn.IdentifyDecoder           INFO  - Decoder returns mfgID:255;modelID:255;productID:-1 [AWT-EventQueue-0]
2021-05-09 11:59:20,463 jmrix.AbstractMRTrafficController     WARN  - Timeout on reply to message: c consecutive timeouts = 0 in serial.SerialDCCppPacketizer [serial.SerialDCCppPacketizer Transmit thread]
^C2021-05-09 11:59:25,123 managers.DefaultShutDownManager       INFO  - Normal termination complete [Thread-2]

« Modifié: mai 09, 2021, 12:01:34 pm par kortex77 »

AmadeusHF

  • Full Member
  • ***
  • Messages: 205
    • Voir le profil
Re : DccToolkit / SystemToolkit
« Réponse #42 le: mai 09, 2021, 11:58:13 am »
Dans DecoderPro vous devez mettre la voie sous tension avant d'envoyer des commandes de lecture : il ne le fait pas seul. Vous l'avez fait ? Votre loco 'gigote" ?
Sébastien.
La perfection est un chemin, non un but...

kortex77

  • Newbie
  • *
  • Messages: 10
    • Voir le profil
Re : DccToolkit / SystemToolkit
« Réponse #43 le: mai 09, 2021, 12:05:00 pm »
Oui. Le moteur bouge une seule fois avant l'affichage de "Found mfg 255 version 255; no such manufacturer defined".

J'ai modifié mon ancien post avec les sorties sur la console de DecoderPro. Il y a des erreurs qui ne sont peut être pas normales.

AmadeusHF

  • Full Member
  • ***
  • Messages: 205
    • Voir le profil
Re : DccToolkit / SystemToolkit
« Réponse #44 le: mai 27, 2021, 04:54:59 pm »
Image rare d'une trame IDLE générée par la librairie DccToolkit passant sur un bus....

 ;D  ;) :D 8)
Sébastien.
La perfection est un chemin, non un but...