SourisD17, application Win/Linux/OS-X pour D17

Les commandes numériques du réseau (appelées à tort "digitales") sont l'avenir du train miniature. Mais comment choisir, comment sauter le pas, avec ou sans ordinateur ? Autant de questions dont les réponses se trouvent dans l'expérience des uns et des autres…

Modérateur : MOD

Répondre
Avatar du membre
Bug Killer
Éloquent
Messages : 398
Enregistré le : ven. 08 sept. 2017, 12:46
Echelle pratiquée : H0
Prénom : Jean-Michel
Site Internet : http://jmdubois.free.fr/dcc/
Localisation : Loir et Cher
Âge : 65

Re: SourisD17, application Win/Linux/OS-X pour D17

Message par Bug Killer » ven. 01 nov. 2019, 22:48

J'ai probablement calculé une valeur théorique puis tâtonné pour équilibrer la luminosité des LED vertes et blanches par rapport aux autres. Au passage, j'ai vu une grosse boulette sur le plan d'implantation de D19 8x5+8x3. La LED intercalée sur SEGB (LEDs vertes) n'est pas au bon endroit. Là où elle est, elle ne sert à rien. Le plan rectifié est sur mon site.

Voici des liens vers :

les CI LED CMS : https://fr.aliexpress.com/item/32861237 ... 6c37yr31sL
les borniers à vis au pas de 5.08mm : https://fr.aliexpress.com/item/32869764 ... 6c37yr31sL

Je fais fondre un peu de soudure sur la panne pointue de mon fer à souder, pas trop chaud. En appuyant une lame de tournevis fin au centre de la LED, j'en mouille chaque bout avec un peu de la soudure présente sur la panne. Ensuite, je place avec mes gros doigts la minuscule LED sur le CI puis je fignole la position et la maintiens avec le tournevis. Enfin, je chauffe en même temps un des bouts de la LED et la pastille du CI avec la pointe du fer à souder. Une fois la soudure solide, il suffit de chauffer de l'autre côté.
Que la vapeur soit avec toi.

Avatar du membre
Bug Killer
Éloquent
Messages : 398
Enregistré le : ven. 08 sept. 2017, 12:46
Echelle pratiquée : H0
Prénom : Jean-Michel
Site Internet : http://jmdubois.free.fr/dcc/
Localisation : Loir et Cher
Âge : 65

Re: SourisD17, application Win/Linux/OS-X pour D17

Message par Bug Killer » mar. 07 janv. 2020, 11:42

On m'a signalé en MP avoir des difficultés à effectuer la mesure de vitesse des locomotives. Voici donc comment procèder :

- Avoir un réseau bouclé. SourisD17 ne sait pas mesurer la vitesse sur un réseau non bouclé car je chronométre le temps séparant deux passages dans la même zone.
- La boucle doit être découpée en au moins trois zones de détection de présence sur le bus S88.
- Tester le bon fonctionnement de ces zones avec un TCO, même simplifié à l'extrême, en déclarant la présence d'une loco en protocole v3. Vérifier si la mise à jour de l'état des zones correspond bien au déplacement de la loco.
- Choisir une des zones comme zone de mesure.
- Renseigner le numéro de cette zone, la longueur de la boucle de mesure en mm et l'échelle (1/87 en H0) dans Menu Configuration -> Software
- Utiliser le protocole v2 ou v3.
- Positionner la loco en amont de la zone de mesure, suffisamment loin pour qu'elle atteigne une vitesse stable avant d'y pénétrer.
- Ne laisser sur le réseau que la loco dont la vitesse doit être mesurée.
- Lancer Menu Utilities -> Speed measurement
- Sélectionner la loco.
- Si la boucle est trop courte pour que le train atteigne la vitesse à mesurer avent de penétrer dans la zone de mesure, activer l'option "Drive one loop before measure".
- Renseigner le pas de vitesse à mesurer.
- Lancer la mesure.
- Relever la vitesse mesurée.
- Si le protocole en vigueur est v3, faire un reset de la centrale car elle ne dispose plus d'informations pertinentes sur l'occupation des zones.

Attention, par défaut, le code source de D17++ contient une optimisation de boucle qui lui fait ignorer les trains dont l'identifiant (par défaut l'adresse DCC quand on utilise que des adresses courtes) est supérieur à 10. Cette valeur doit être modifiée pour correspondre à l'identifiant le plus élevé circulant sur le réseau. Modifier cette ligne de config.h :

Code : Tout sélectionner

constexpr auto DERNIER_TRAIN = 10;		// Identifiant de train avec machine le plus élevé utilisé. 127 maxi. Utilisé uniquement pour raccourcir des traitements.
Que la vapeur soit avec toi.

Sercat
Messages : 23
Enregistré le : dim. 17 avr. 2016, 18:36
Echelle pratiquée : HO
Prénom : SERGE

Re: SourisD17, application Win/Linux/OS-X pour D17

Message par Sercat » ven. 10 janv. 2020, 13:48

Bonjour,

j'ai voulu faire d'autres tests avant de vous déranger de nouveau.

Si j'ai bien compris votre réponse sur le forum, la mesure de vitesse à
l'échelle ne fonctionnera pas tant que je n'aurai pas mis des détecteurs
de courant reliés à un bus S88 ou S88-N raccordé lui-même à D17++.

N'ayant sous la main qu'une carte Mega 2560, il me semble que l'on peut
l'utiliser pour servir d'interface entre les capteurs d'occupations et
le connecteur de bus S88 et donc profiter de 64 capteurs sur 4 modules
internes.

Je pense également que c'est parce qu’il n'y a pas de capteurs que la
lecture des cv ne fonctionne pas (pas de consommation de courant).

Sans vouloir abuser, j'aurais une deuxième question.

depuis que j'ai lancé la mesure de vitesse, mes locos s'arrêtent dès que
je dépasse la valeur 100 de vitesse alors que la loco est paramétrée
pour aller jusqu'à 120 km/h.

J'ai essayé de supprimer la loco dans le tableau engines et de la
recréer, sans succès et même de re-télécharger souris D17.exe, mais rien
n'y fait non plus.

Si vous avez une idée, elle sera la bienvenue.

En attendant, je vous souhaite une très bonne journée et vous remercie
par avance de votre bienveillance.

Cordialement.

Serge

Avatar du membre
Bug Killer
Éloquent
Messages : 398
Enregistré le : ven. 08 sept. 2017, 12:46
Echelle pratiquée : H0
Prénom : Jean-Michel
Site Internet : http://jmdubois.free.fr/dcc/
Localisation : Loir et Cher
Âge : 65

Re: SourisD17, application Win/Linux/OS-X pour D17

Message par Bug Killer » ven. 10 janv. 2020, 17:00

C'est bien ça, tant qu'il n'y a pas de détecteur de présence, pas de mesure de vitesse. Je ne connais pas la carte Mega 2560 mais si elle peut être d'un côté interfacée avec la centrale D17 via le bus S88 et de l'autre être raccordée à des détecteurs de présence, ça doit marcher.

La lecture des CV n'utilise pas les détecteurs de présence. C'est un petit pont diviseur de deux résistances et un capacité de lissage raccordés entree le LMD18200 et la centrale qui est utilisé.

Si la vitesse à l'échelle d'une loco n'a pas été mesurée :

- mettre la vitesse mesurée à 320 km/h
- mettre la vitesse réelle à 320 km/h
- cliquer sur le bouton Calculate

Le logiciel calcule alors une droite de conversion.
Que la vapeur soit avec toi.

Sercat
Messages : 23
Enregistré le : dim. 17 avr. 2016, 18:36
Echelle pratiquée : HO
Prénom : SERGE

Re: SourisD17, application Win/Linux/OS-X pour D17

Message par Sercat » sam. 11 janv. 2020, 09:14

Bonjour,
j'ai procédé comme préconisé en indiquant 320 km/h dans vitesse mesurée et vitesse réelle puis cliquer sur calculate, mais la loco s'est mise à rouler à très faible vitesse alors que j'avais mis le curseur à 100.
J'ai procédé par tâtonnement et il a fallu que je rentre les vitesses mesurée et réelle à 100 km/h pour que ma loco roule à la même vitesse que ce soit avec souris D17 ou sur tablette avec souris rfobasic d'Ulysse Delmas-Begue.
Pour la lecture des CV, je suppose que les deux résistances et la capacité dont tu fais allusion sont celles du montage qui permet l'affichage de la jauge de consommation du réseau. Si c'est bien cela, elles sont bien montées et la jauge est fonctionnelle mais lorsque je lance une lecture de CV l'écran disparait alors que j’entends bien la loco bouger légèrement.
Encore merci pour ton aide précieuse.
Bien cordialement.
Serge

Avatar du membre
Bug Killer
Éloquent
Messages : 398
Enregistré le : ven. 08 sept. 2017, 12:46
Echelle pratiquée : H0
Prénom : Jean-Michel
Site Internet : http://jmdubois.free.fr/dcc/
Localisation : Loir et Cher
Âge : 65

Re: SourisD17, application Win/Linux/OS-X pour D17

Message par Bug Killer » sam. 11 janv. 2020, 09:24

Quand tu dis : "l'écran disparaît", veux-tu dire : "le programme SourisD17 se ferme brutalement" ou s'agit-il de la fermeture de la boîte de dialogue d'accès aux CV ?
Que la vapeur soit avec toi.

Sercat
Messages : 23
Enregistré le : dim. 17 avr. 2016, 18:36
Echelle pratiquée : HO
Prénom : SERGE

Re: SourisD17, application Win/Linux/OS-X pour D17

Message par Sercat » sam. 11 janv. 2020, 09:29

Non, souris D17 reste ouvert et fonctionnel, c'est la boite de dialogue d’accès aux CV qui se ferme.

Avatar du membre
Bug Killer
Éloquent
Messages : 398
Enregistré le : ven. 08 sept. 2017, 12:46
Echelle pratiquée : H0
Prénom : Jean-Michel
Site Internet : http://jmdubois.free.fr/dcc/
Localisation : Loir et Cher
Âge : 65

Re: SourisD17, application Win/Linux/OS-X pour D17

Message par Bug Killer » sam. 11 janv. 2020, 12:57

C'est normal. Si tout va bien, elle va se réouvrir avec le résultat ou un message d'erreur va s'afficher.
Que la vapeur soit avec toi.

Sercat
Messages : 23
Enregistré le : dim. 17 avr. 2016, 18:36
Echelle pratiquée : HO
Prénom : SERGE

Re: SourisD17, application Win/Linux/OS-X pour D17

Message par Sercat » dim. 12 janv. 2020, 07:46

La boite de dialogue se rouvre bien mais avec le message d"erreur suivant:

CV could not be read

Pour infos:
- D17 est bien en software V2
- D17 est en connexion sur mon réseau local (ma box)
- J'entends la loco bouger légèrement

Merci d'avance pour ton aide quand ton réseau de test sera accessible

Avatar du membre
Bug Killer
Éloquent
Messages : 398
Enregistré le : ven. 08 sept. 2017, 12:46
Echelle pratiquée : H0
Prénom : Jean-Michel
Site Internet : http://jmdubois.free.fr/dcc/
Localisation : Loir et Cher
Âge : 65

Re: SourisD17, application Win/Linux/OS-X pour D17

Message par Bug Killer » dim. 12 janv. 2020, 09:56

SourisD17 propose 2 modes de lecture des CV. Les as-tu essayés tous les deux ?

Y-a-t-il bien une seule loco présente sur la voie ?

Peux-tu coller dans ce fil le compte-rendu affiché par le moniteur série de L'IDE Arduino pendant la lecture ?
Que la vapeur soit avec toi.

Sercat
Messages : 23
Enregistré le : dim. 17 avr. 2016, 18:36
Echelle pratiquée : HO
Prénom : SERGE

Re: SourisD17, application Win/Linux/OS-X pour D17

Message par Sercat » lun. 13 janv. 2020, 07:33

Pour répondre dans l'ordre tes questions:

- Oui, j'ai essayé les deux modes de lecture des CV.
- Oui, une seule loco présente sur la voie, j'ai même retiré les wagons et voitures voyageurs pour éviter toute consommation supplémentaire.
- Pour les résultats de lecture, je vais les mettre sous forme de texte pour éviter d’alourdir le fil.

Lecture CV mode normal:

Decoder::DirectRead bit 0
Decoder::ReadAck fail, max current 22
Decoder::ReadAck fail, max current 38
Decoder::ReadAck fail, max current 22
Decoder::ReadAck fail, max current 22
Decoder::ReadAck fail, max current 22
Decoder::DirectRead bit 1
Decoder::ReadAck fail, max current 22
Decoder::ReadAck fail, max current 22
Decoder::ReadAck fail, max current 22
Decoder::ReadAck fail, max current 22
Decoder::ReadAck fail, max current 22
Decoder::DirectRead bit 2
Decoder::ReadAck fail, max current 22
Decoder::ReadAck fail, max current 22
Decoder::ReadAck fail, max current 22
Decoder::ReadAck fail, max current 22
Decoder::ReadAck fail, max current 22
Decoder::DirectRead bit 3
Decoder::ReadAck fail, max current 22
Decoder::ReadAck fail, max current 38
Decoder::ReadAck fail, max current 22
Decoder::ReadAck fail, max current 22
Decoder::ReadAck fail, max current 22
Decoder::DirectRead bit 4
Decoder::ReadAck fail, max current 22
Decoder::ReadAck fail, max current 22
Decoder::ReadAck fail, max current 22
Decoder::ReadAck fail, max current 22
Decoder::ReadAck fail, max current 22
Decoder::DirectRead bit 5
Decoder::ReadAck fail, max current 22
Decoder::ReadAck fail, max current 22
Decoder::ReadAck fail, max current 22
Decoder::ReadAck fail, max current 22
Decoder::ReadAck fail, max current 22
Decoder::DirectRead bit 6
Decoder::ReadAck fail, max current 22
Decoder::ReadAck fail, max current 22
Decoder::ReadAck fail, max current 22
Decoder::ReadAck fail, max current 22
Decoder::ReadAck fail, max current 22
Decoder::DirectRead bit 7
Decoder::ReadAck fail, max current 22
Decoder::ReadAck fail, max current 22
Decoder::ReadAck fail, max current 22
Decoder::ReadAck fail, max current 22
Decoder::ReadAck fail, max current 22
Decoder::DirectRead value address 0, value 0
Decoder::ReadAck fail, max current 22
Decoder::ReadAck fail, max current 22
Decoder::ReadAck fail, max current 22
Decoder::ReadAck fail, max current 22
Decoder::ReadAck fail, max current 22
Decoder::DirectRead verify -1
Client 0 '? '
au0 dcc i000000000000000000000000 d000000000000 e000000000000 u000000000000000000000000 c02 PRFFFFFFFF
#au0 dcc i000000000000000000000000 d000000000000 e000000000000 u000000000000000000000000 c02

Lecture CV mode page:

Client 0 ' PRP0001 '
Decoder::MeanCurrent 21
Decoder::PagedRead address 1
Decoder::PagedRead 1, value 0
Decoder::ReadAck fail, max current 21
Decoder::ReadAck fail, max current 21
Decoder::ReadAck fail, max current 21
Decoder::ReadAck fail, max current 21
Decoder::ReadAck fail, max current 21
Decoder::ReadAck fail, max current 21
Decoder::ReadAck fail, max current 21
Decoder::ReadAck fail, max current 21
Decoder::ReadAck fail, max current 21
Decoder::ReadAck fail, max current 21
Decoder::ReadAck fail, max current 21
DCC_PROG_FRAME_ACK no ack
Decoder::PagedRead 1, value 1
Decoder::ReadAck fail, max current 25
Decoder::ReadAck fail, max current 25
Decoder::ReadAck fail, max current 21
Decoder::ReadAck fail, max current 21
Decoder::ReadAck fail, max current 21
Decoder::ReadAck fail, max current 21
Decoder::ReadAck fail, max current 21
Decoder::ReadAck fail, max current 21
Decoder::ReadAck fail, max current 21
Decoder::ReadAck fail, max current 21
Decoder::ReadAck fail, max current 21
DCC_PROG_FRAME_ACK no ack
Decoder::PagedRead 1, value 2
Decoder::ReadAck fail, max current 21
Decoder::ReadAck fail, max current 21
Decoder::ReadAck fail, max current 21
Decoder::ReadAck fail, max current 21
Decoder::ReadAck fail, max current 21
Decoder::ReadAck fail, max current 21
Decoder::ReadAck fail, max current 21
Decoder::ReadAck fail, max current 21
Decoder::ReadAck fail, max current 21
Decoder::ReadAck fail, max current 21
Decoder::ReadAck fail, max current 21
DCC_PROG_FRAME_ACK no ack
Decoder::PagedRead 1, value 3
Decoder::ReadAck fail, max current 25
Decoder::ReadAck fail, max current 25
Decoder::ReadAck fail, max current 21
Decoder::ReadAck fail, max current 21
Decoder::ReadAck fail, max current 21
Decoder::ReadAck fail, max current 21
Decoder::ReadAck fail, max current 21
Decoder::ReadAck fail, max current 21
Decoder::ReadAck fail, max current 21
Decoder::ReadAck fail, max current 21
Decoder::ReadAck fail, max current 21
DCC_PROG_FRAME_ACK no ack
Decoder::PagedRead 1, value 4
Decoder::ReadAck fail, max current 25
Decoder::ReadAck fail, max current 21
Decoder::ReadAck fail, max current 21
Decoder::ReadAck fail, max current 21
Decoder::ReadAck fail, max current 21
Decoder::ReadAck fail, max current 21
Decoder::ReadAck fail, max current 21
Decoder::ReadAck fail, max current 21
Decoder::ReadAck fail, max current 21
Decoder::ReadAck fail, max current 21
Decoder::ReadAck fail, max current 21
DCC_PROG_FRAME_ACK no ack
Decoder::PagedRead 1, value 5
Decoder::ReadAck fail, max current 21
Decoder::ReadAck fail, max current 21
Decoder::ReadAck fail, max current 21
Decoder::ReadAck fail, max current 21
Decoder::ReadAck fail, max current 21
Decoder::ReadAck fail, max current 21
Decoder::ReadAck fail, max current 21
Decoder::ReadAck fail, max current 21
Decoder::ReadAck fail, max current 21
Decoder::ReadAck fail, max current 21
Decoder::ReadAck fail, max current 21
DCC_PROG_FRAME_ACK no ack
-
-
-
Decoder::PagedRead 1, value 255
Decoder::ReadAck fail, max current 25
Decoder::ReadAck fail, max current 25
Decoder::ReadAck fail, max current 21
Decoder::ReadAck fail, max current 21
Decoder::ReadAck fail, max current 21
Decoder::ReadAck fail, max current 21
Decoder::ReadAck fail, max current 21
Decoder::ReadAck fail, max current 21
Decoder::ReadAck fail, max current 21
Decoder::ReadAck fail, max current 21
Decoder::ReadAck fail, max current 21
DCC_PROG_FRAME_ACK no ack
Client 0 '? '
au0 dcc i000000000000000000000000 d000000000000 e000000000000 u000000000000000000000000 c02 PRFFFFFFFF
#

Mais pendant la lecture des CV en mode page, souris D17 affiche cette boite de dialogue:

connection was unexpectedly lost.

Merci à toi de t'interresser à mon problème et surtout d'y apporter des solutions.

Avatar du membre
Bug Killer
Éloquent
Messages : 398
Enregistré le : ven. 08 sept. 2017, 12:46
Echelle pratiquée : H0
Prénom : Jean-Michel
Site Internet : http://jmdubois.free.fr/dcc/
Localisation : Loir et Cher
Âge : 65

Re: SourisD17, application Win/Linux/OS-X pour D17

Message par Bug Killer » lun. 13 janv. 2020, 10:28

Quelle est l'adresse DCC de la loco dont tu essaies de lire le CV 1 ?
Que la vapeur soit avec toi.

Sercat
Messages : 23
Enregistré le : dim. 17 avr. 2016, 18:36
Echelle pratiquée : HO
Prénom : SERGE

Re: SourisD17, application Win/Linux/OS-X pour D17

Message par Sercat » lun. 13 janv. 2020, 10:37

Adresse 9

Avatar du membre
Bug Killer
Éloquent
Messages : 398
Enregistré le : ven. 08 sept. 2017, 12:46
Echelle pratiquée : H0
Prénom : Jean-Michel
Site Internet : http://jmdubois.free.fr/dcc/
Localisation : Loir et Cher
Âge : 65

Re: SourisD17, application Win/Linux/OS-X pour D17

Message par Bug Killer » lun. 13 janv. 2020, 11:09

C'est ce que j'avais compris à la lecture du compte rendu du mode direct. La consommation de ta loco en mouvement est faible (valeurs 38 des bits 0 et 3) par rapport à sa consommation au repos (valeur 22). Or, l'algorithme de mesure calcule un seuil plus élevé. Je vais l'affiner.
Que la vapeur soit avec toi.

Avatar du membre
Bug Killer
Éloquent
Messages : 398
Enregistré le : ven. 08 sept. 2017, 12:46
Echelle pratiquée : H0
Prénom : Jean-Michel
Site Internet : http://jmdubois.free.fr/dcc/
Localisation : Loir et Cher
Âge : 65

Re: SourisD17, application Win/Linux/OS-X pour D17

Message par Bug Killer » lun. 13 janv. 2020, 11:36

Dans le projet D17pp, remplace la fonction Decoder::ReadAck du fichier decoder.cpp par celle-ci :

Code : Tout sélectionner

bool Decoder::ReadAck(int reference, byte reset)
{
	unsigned int i;
	unsigned int current;
	unsigned int threshold = reference + reference / 5;
	unsigned int maxcurrent = 0;

	for (i = 0; i < 500; ++i) {
		if ((current = (unsigned int) analogRead(A0)) >= threshold) {
			TRACE_DECODER("Decoder::ReadAck OK, current %d\n", current);
			Reset(reset ? reset : 1);
			return true;
		}

		if (maxcurrent < current)
			maxcurrent = current;
	}

	TRACE_DECODER("Decoder::ReadAck fail, max current %d, >= %d expected\n", maxcurrent, threshold);
	return false;
}
recharge le croquis dans la centrale et tiens moi au courant du résultat.
Que la vapeur soit avec toi.

Répondre