D18: Un décodeur d'accessoires DCC à réaliser soi-même

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

Avatar du membre
Bug Killer
Éloquent
Messages : 338
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 : 64

Re: D18: Un décodeur d'accessoires DCC à réaliser soi-même

Message par Bug Killer » mar. 02 juil. 2019, 11:05

Vu : Modulation de largeur d'impulsion.
Que la vapeur soit avec toi.

Avatar du membre
Deimos_epIV
Intarissable !
Messages : 9237
Enregistré le : ven. 23 déc. 2011, 21:25
Echelle pratiquée : HO/DCC
Prénom : Claude
Club : MMF
Localisation : Montpellier (34)
Âge : 61

Re: D18: Un décodeur d'accessoires DCC à réaliser soi-même

Message par Deimos_epIV » mar. 02 juil. 2019, 12:39

MLI = modulation de largeur d'impulsion, PWM pour être plus "généraliste" !

Pour les servos linéaires, il y a ce qu'il faut chez Aliexpress mais pas au prix espéré, à priori.
Amicalement

Avatar du membre
Oliv690
Démonstratif
Messages : 1422
Enregistré le : lun. 08 janv. 2007, 18:40

Re: D18: Un décodeur d'accessoires DCC à réaliser soi-même

Message par Oliv690 » mar. 02 juil. 2019, 13:45

Je les ai trouvés à 8.40 les 2, livrés ...

https://fr.aliexpress.com/item/32848185 ... b201603_55

Lulu_ho
Causant
Messages : 280
Enregistré le : ven. 16 déc. 2016, 12:24
Echelle pratiquée : HO
Prénom : Ulysse

Re: D18: Un décodeur d'accessoires DCC à réaliser soi-même

Message par Lulu_ho » mar. 02 juil. 2019, 14:29

Merci pour ces précisions. Je dois avoir des servos vraiment bas de gamme car sans impulsion de commande c'est bzzzzz bzzz bzzzz dans tous les sens :mdr2:

Pour les servos linéaires, je n'en avait pas vu des abordables jusqu'à récemment. Je n'ai pas encore testé…
On en trouve au format "nano" (course d'environ 2cm) à partir de 5€. Le prix va surement baisser car ils sont relativement nouveaux…
lineaire.png
lineaire.png (40.09 Kio) Vu 1103 fois

Avatar du membre
Bug Killer
Éloquent
Messages : 338
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 : 64

Re: D18: Un décodeur d'accessoires DCC à réaliser soi-même

Message par Bug Killer » mar. 02 juil. 2019, 18:11

Je vais en commander 2 et tester.
Que la vapeur soit avec toi.

Avatar du membre
Deimos_epIV
Intarissable !
Messages : 9237
Enregistré le : ven. 23 déc. 2011, 21:25
Echelle pratiquée : HO/DCC
Prénom : Claude
Club : MMF
Localisation : Montpellier (34)
Âge : 61

Re: D18: Un décodeur d'accessoires DCC à réaliser soi-même

Message par Deimos_epIV » mar. 02 juil. 2019, 19:22

Ils sont TRES bruyants...
Amicalement

Avatar du membre
papat400
Messages : 14
Enregistré le : mer. 19 juin 2019, 20:19
Echelle pratiquée : HO
Prénom : Thierry
Localisation : Florennes - Belgique
Âge : 55

Re: D18: Un décodeur d'accessoires DCC à réaliser soi-même

Message par papat400 » mar. 02 juil. 2019, 22:31

OK, je vais voir pour le code. Il faut juste que je l'expurge un peu, histoire de l'avoir bien propre sans les commandes que j'y ai déjà casées.
Ensuite, une solution pratique serait peut-être de le mettre sur Github (avec les fichiers Eagle pour le PCB) et de publier le lien sur le forum.

Pour les servos, en effet je confirme le souci à la mise sous tension. Mon petit SG90 me fait le coup du "je retourne à ma butée zéro" si je le mets sous tension avant de lui envoyer la PWM. Ce qui est logique quelque part, pas de signal équivaut pratiquement à une largeur d'impulsion très très très courte !
J'ai aussi envisagé la solution du relayage pour l'alimentation des servos. Cela me semble l'idéal.

Autre souci constaté : arduino et la mémoire rémanente, c'est pas une folle histoire d'amour. Y a moyen, mais ...
Le problème est que ma centrale de commande mémorise la position des accessoires ; mais l'arduino, non (pas avec le code actuel en tout cas). Donc à la remise sous tension c'est un peu la galère.
Je ne sais pas encore comment je vais résoudre cela. Des idées ? Peut-être qu'en bidouillant le code de la Desktop Station (c'est de l'open source), mais c'est en python et là j'y connais rien.
Pour info, ma centrale c'est le logiciel Desktop Station de Yaasan (sur laptop). Comme on le voit un peu sur la photo, elle communique avec le boîtier Marklin via un UNO.

A plus :)

Avatar du membre
Bug Killer
Éloquent
Messages : 338
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 : 64

Re: D18: Un décodeur d'accessoires DCC à réaliser soi-même

Message par Bug Killer » mer. 03 juil. 2019, 10:07

Il est possible de stocker l'état du réseau dans l'eeprom de l'arduino. La limite c'est l'usure de l'eeprom. Vu le prix d'un arduino, la solution envisageable c'est de maintenir un compteur d'écritures et de remplacer l'arduino quand l'eeprom atteint la zone "dangereuse"
Que la vapeur soit avec toi.

Avatar du membre
Deimos_epIV
Intarissable !
Messages : 9237
Enregistré le : ven. 23 déc. 2011, 21:25
Echelle pratiquée : HO/DCC
Prénom : Claude
Club : MMF
Localisation : Montpellier (34)
Âge : 61

Re: D18: Un décodeur d'accessoires DCC à réaliser soi-même

Message par Deimos_epIV » mer. 03 juil. 2019, 13:45

Que donne le datasheet ?

Les MCU que j'utilise pour mes décodeurs ont une EEPROM de 512 octets me servant au stockage des CV:
Nombre de cycles erase/program pour la plage de température spécifiée de -40 à +125 : 500000.
Durée de rétention moyenne après 10000 cycles erase/program : 100 ans.
Autant te dire que ta préoccupation ne m'a jamais effleuré l'esprit !
Amicalement

Avatar du membre
Bug Killer
Éloquent
Messages : 338
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 : 64

Re: D18: Un décodeur d'accessoires DCC à réaliser soi-même

Message par Bug Killer » mer. 03 juil. 2019, 14:22

Atmel indique une espérance de vie de 100.000 écritures/effacements. Extrait de la datasheet :

Note:

An EEPROM write takes 3.3 ms to complete. The EEPROM memory has a specified life of 100,000 write/erase cycles, so you may need to be careful about how often you write to it.

L'expérience montre qu'elle est largement supérieure.
Que la vapeur soit avec toi.

Avatar du membre
Deimos_epIV
Intarissable !
Messages : 9237
Enregistré le : ven. 23 déc. 2011, 21:25
Echelle pratiquée : HO/DCC
Prénom : Claude
Club : MMF
Localisation : Montpellier (34)
Âge : 61

Re: D18: Un décodeur d'accessoires DCC à réaliser soi-même

Message par Deimos_epIV » mer. 03 juil. 2019, 17:05

Oui, toute spéc est un minimum permettant au fabricant de garantir les perf de son produit mais généralement les perf réelles sont bien supérieures.

100000 cycles, c'est pour la Flash de mes MCU. Bon, avant d'atteindre ce nombre de cycles dans notre usage, même pour l'EEPROM plus sollicitée...
Amicalement

Avatar du membre
Bug Killer
Éloquent
Messages : 338
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 : 64

Re: D18: Un décodeur d'accessoires DCC à réaliser soi-même

Message par Bug Killer » mer. 03 juil. 2019, 19:52

Un test d'écriture de valeurs dont les bits sont alternés à été fait, l'eeprom à tenu 1.2 millions de cycles. On peut effectivement enregistrer beaucoup de changements d'état des détecteurs d'occupation et de position des aiguillages.
Que la vapeur soit avec toi.

Avatar du membre
Deimos_epIV
Intarissable !
Messages : 9237
Enregistré le : ven. 23 déc. 2011, 21:25
Echelle pratiquée : HO/DCC
Prénom : Claude
Club : MMF
Localisation : Montpellier (34)
Âge : 61

Re: D18: Un décodeur d'accessoires DCC à réaliser soi-même

Message par Deimos_epIV » mer. 03 juil. 2019, 20:05

Jean-Michel, très honnêtement, pour des CV je n'ai jamais fait le test ni calculé quoi que ce soit. Il me parait évident que de toute la vie de mes décodeurs, ce nombre de cycles ne sera jamais atteint !
Amicalement

Avatar du membre
papat400
Messages : 14
Enregistré le : mer. 19 juin 2019, 20:19
Echelle pratiquée : HO
Prénom : Thierry
Localisation : Florennes - Belgique
Âge : 55

Re: D18: Un décodeur d'accessoires DCC à réaliser soi-même

Message par papat400 » mer. 03 juil. 2019, 20:31

Je n'ai aucune expérience en matière de sauvegarde sur arduino. C'est ce que j'en ai lu sur le net qui m'a inquiété.
Une difficulté (pour moi en tout cas), c'était de déterminer quand la sauvegarde devait être effectuée. Certainement pas à chaque cycle, c'est certain.
L'idée de Bug Killer ne m'avait pas effleuré. C'est vrai qu'en ne sauvegardant que les changements d'état ... faudra remplacer l'aiguillage avant l'arduino ! :lol:
Reste plus qu'à m'informer puis à coder ... puis à corriger un certain nombre de gois jusqu'à ce que ça fonctionne :mrgreen: :mrgreen: :mrgreen:

Merci pour la piste à suivre :wink:

Lulu_ho
Causant
Messages : 280
Enregistré le : ven. 16 déc. 2016, 12:24
Echelle pratiquée : HO
Prénom : Ulysse

Re: D18: Un décodeur d'accessoires DCC à réaliser soi-même

Message par Lulu_ho » mer. 03 juil. 2019, 21:24

Bonsoir,

Personnellement, je préfère que ce soit le logiciel PC qui fasse l'initialisation des aiguillages au démarrage.
Afin d'avoir une vrai concordance entre le PC et la réalité.
Car il se peut que l'on change des aiguillages à la main (c'est possible avec les aiguillages à bobines, ex: jouef)
Si on a plusieurs sauvegardes du logiciel PC forcement elles n'auront pas le dernier état …

Certains logiciels PC ne sauvent pas la position des aiguillages et demarrent toujours avec une position par defaut:
Dans ce cas pas de PB, il suffit que la position d'initialisation soit celle par defaut du décodeur
ou dire au decodeur de mettre les aiguillages dans les positions souhaitées au démarrage.

D'autres logiciels sauvent la position. S'ils ne commandent pas les aiguillages au lancement pour les mettre dans la bonne position
(ce qui est mal ...), comme le suggère BK, il est possible de sauvegarder la position des aiguillages en eeprom.
A chaque commande, il faut mettre a jour la position de l'aiguillage dans l'eeprom
(avec une endurance min de 100 000cycles sur l'AT328P des arduinos ca ne devrait pas poser de PB …)
A la mise sous tension du decodeur, il suffit de lire l'eeprom et commander les aiguillages en fonction ...

Répondre