Doel:€250.00
Donaties:€88.00

Per saldo:€-162.00

Steun ons nu!

Laatst bijgewerkt
op 03-06-2025

Vacature: secretaris bestuur
Algemeen

De stichting

Recente berichten

Nederland jaren 50 op basis van mijn roots door defender
Vandaag om 08:05:42
Bouwbeschrijving Pec ex Dec van FRIE door AB 7216
Vandaag om 07:55:30
Mijn eerste H0-modeltreinbaan in aanbouw door Joz
Vandaag om 05:20:38
Aanpassen baanplan bestaande baan door Joz
Vandaag om 05:06:57
De bouw van mijn modelbaan in Thailand door Thai-Bundesbahn
Vandaag om 01:59:48
Aachenau West door Thai-Bundesbahn
Vandaag om 01:36:02
23 augustus modelspoorbeurs Houten door KNed
Vandaag om 00:11:30
Onlangs gespot - gefotografeerd, de foto's door GerardvV
13 August 2025, 23:55:21
Toon hier je nieuwe (model-) spooraanwinst(en)... door Kees-Jan
13 August 2025, 23:51:22
De projecten van Ruben (NL H0) door Sikko
13 August 2025, 23:36:52
Eén leuke of mooie trein/spoor foto van je vakantie. door Hans van de Burgt
13 August 2025, 23:08:01
YaMoRC YD8248 Servodecoder door Steven Loosman
13 August 2025, 22:53:25
Hoeveel treinen op Piko Trafo 55008? door Modeltreinmulder
13 August 2025, 22:23:20
NS2900-serie / Staatsmijnen SM 150-serie (H0) door jandcargo
13 August 2025, 22:19:39
booster vraag door Patrick Smout
13 August 2025, 22:05:38
Da's Daz 2 door Huup
13 August 2025, 22:02:43
Industrieel smalspoor inspiratiedraadje door defender
13 August 2025, 21:51:12
Modeltreinwinkels in Berlijn. door grossraumwagen
13 August 2025, 21:45:44
Nederlandse plattelandssfeer op een zolderkamer door MarcoK1999
13 August 2025, 19:58:23
ByPass Junction, een Amerikaanse modelbaan in N door RobVille
13 August 2025, 19:21:30
Rhätische Bahn in 0m; van Filisur naar Stuls door defender
13 August 2025, 19:08:33
Molenbaan (werktitel) door defender
13 August 2025, 19:03:45
BR-18.6 Schaal-0. door Sven
13 August 2025, 18:23:28
Van British Railways Class 58 naar ACTS 5814 in 0 door tijgernootje
13 August 2025, 17:42:24
Vijfhuis (v.h. Frotterdam) door Huup
13 August 2025, 17:29:32
US diorama in H0 door Wim Vink
13 August 2025, 16:47:48
Artitec vierdeurs stalen D door gtw6016
13 August 2025, 16:34:00
CIWL of toch niet?? Maar wat dan wel? door Hans van de Burgt
13 August 2025, 16:30:02
Rijnstraat door Huup
13 August 2025, 15:47:38
Göhrener Viaduct, een begin, Project 13 door Ronald Halma
13 August 2025, 15:40:21
  

Auteur Topic: Arduino Wisseldecoder Rocrail  (gelezen 2911 keer)

mcs51

  • Offline Offline
  • Berichten: 28
Arduino Wisseldecoder Rocrail
« Gepost op: 28 July 2022, 12:09:37 »
Hallo,
Ik probeer met het voorbeeld "NMRADccAccessoryDecoder_Pulsed_8" uit de Aruino NMRA DCC library een wisseldecoder te maken.

Via Rocrail, een MS2 en een CC-Schnitte zet ik DCC data op de rails.
Ik heb in Rocrail een demo baantje gemaakt met 2 wissels op adressen 1 & 2 en in Rocrail explicit NMRA DCC als protocol gekozen.
Klik ik op de wissels in het Rocrail scherm, dan zie ik op het scherm van de MS2 dat die wissel om gaat.
Omgekeerd is ook ok, bedienen op de MS2, wissel op PC scherm gaat om.

Echter in de Serial Monitor van de Arduino komt geen boodschap dat er een wissel commando gezien werd  :-[
Nochthans staan CV1 en 9 op standaard waarden 1 en 0 waardoor het eerste adres van deze Arduino 1 is, right?

Compileer ik de code zodanig dat ALLE DCC boodschappen getoond worden, dan krijg ik wel data te zien bij elke wisselbediening zowel op de PC (Rocrail) als op de MS2
Bij wissel 1 groen 4 maal "81 F9 78" en 2 maal "81 F1 70"
Bij wissel 1 rood 4 maal "81 F8 79" en 2 maal "81 F0 71"

Bij wissel 2 groen 4 maal "81 FB 7A" en 2 maal "81 F3 72"
Bij wissel 2 rood 4 maal "81 FA 7B" en 2 maal "81 F2 73"

Het feit dat er data te zien is, doet mij geloven dat mijn hardware om het DCC signal van de rails te "plukken" wel ok is, right again??

Maar wat heb ik niet goed gedaan met de Arduino dat hij die data niet als wissel data ziet ?  ???  ?

Dan nog een vraagje :
Hoe moet ik de data van CV1 en CV9 aanpassen om een ander basis adres te hebben?
Is mij niet duidelijk in de "NMRADccAccessoryDecoder_Pulsed_8" code

Bedankt voor elke input want ik zit een beetje vast  :-\
en voor een wissel is dat NOOIT goed  ;D


Met vriendelijke groet
Alain

bask185

  • Offline Offline
  • Berichten: 5009
Re: Arduino Wisseldecoder Rocrail
« Reactie #1 Gepost op: 28 July 2022, 12:32:59 »
Het lijkt mij op het eerste oog dat het adres van de Arduino niet is wat het moet zijn.

Ik word niet wijzer van de uitgepoepte data. De adressen althans. Mijn ervaring met de nmra DCC library is dat die wel goede getallen uitpoepte.

Heb je een link naar de source code? Je mag ook je project in een zip stoppen en dat naar me mailen. Adres staat bij het vlinder logo onder mm account naam.

Mvg,

Bas
Train-Science.com
Train-Science github
It ain't rocket science ;-)

mcs51

  • Offline Offline
  • Berichten: 28
Re: Arduino Wisseldecoder Rocrail
« Reactie #2 Gepost op: 28 July 2022, 13:06:04 »
Dank u wel Bas voor de snelle reactie!

Ik zal u de code doormailen maar het is 100% het voorbeeld "NmraDccAccessoryDecoder_Pulsed_8" uit de NmraDcc lib.
Ik heb er geen letter aan gewijzigd.
Dus wanneer je die lib geïnstalleerd hebt, heb je die code ook.

Daar ik default waardes gebruik van dat voorbeeld, heb ik ook wisseladressen 1 en 2 gebruikt in Rocrail en de MS2 (die trouwens ook op DCC staat wat magneetartikelen betreft).


Alain

mcs51

  • Offline Offline
  • Berichten: 28
Re: Arduino Wisseldecoder Rocrail
« Reactie #3 Gepost op: 28 July 2022, 19:49:17 »
Het verhaal van een beetje speurwerk… …

Base adres wijzigen is geen probleem meer.
In de struc FactoryDefaultCVs de gewenste waardes ingeven en bij power up komt er in de serial monitor venster het gewenste base address.

Maar een Turnout message, neen die krijg ik nog steeds niet  :'(

Moet ik het NMRA adres niet omzetten naar MADA ?  ???  ?
Dus bijvoorbeeld NMRA DCC adres 100 = MADA Adres 25, poort 4

Dit zo geconfigureerd in Rocrail
NMRA DCC 1 = MADA Adres 1 poort 1
NMRA DCC 2 = MADA Adres 1 poort 2
Noppes, niet te doen alles blijft werken tussen MS2 en Rocrail maar geen Turnout message te zien in de Serial Monitor window van de Arduino.


Dan voor de fun eens zot gedaan en wissel 1 in Rocrail verzet naar NMRA DCC adres 513 = MADA Adres 129, poort 1
Arduino CV1= 1 en CV9= 2 is base adres 513
Maar nog steeds geen muziek  :'( :-\ :'(
Wel gaat de MS2 wissel op adres 1 niet meer mee met Rocrail, zoals te verwachten  :)


Tja zoals ik reeds zei, alle inputs welkom!!

bask185

  • Offline Offline
  • Berichten: 5009
Re: Arduino Wisseldecoder Rocrail
« Reactie #4 Gepost op: 28 July 2022, 22:44:44 »
Ik heb volgende week maandag pas tijd helaas  :-\.

Ik heb er ook weinig ervaring mee, dus ik kan je ook niet vertellen wanneer of of ik een oplossing heb   :P.

Maar ik denk er wel uit te komen  ;D

Mvg,

Bas



Train-Science.com
Train-Science github
It ain't rocket science ;-)

mcs51

  • Offline Offline
  • Berichten: 28
Re: Arduino Wisseldecoder Rocrail
« Reactie #5 Gepost op: 29 July 2022, 07:39:38 »
Altijd positief blijven Bas, that's the spirit!!

Mocht je al kunnen bevestigen dat dit voorbeeld (NmraDccAccessoryDecoder_Pulsed_8.ino) "as such" wel of niet werkt met andere zuiver DCC hardware zou dit al ok zijn.
Dan weet ik dat mijn hardware wel ok is en dat het probleem in de adressering ligt.


Alvast bedankt
Alain

AlbertG

  • Offline Offline
  • Berichten: 1027
    • Modelbaan Den Akker / Rocrail / DCC-EX
Re: Arduino Wisseldecoder Rocrail
« Reactie #6 Gepost op: 29 July 2022, 08:21:02 »
Ik gebruik een DCC++ EX centrale met bijbehorende software en het zou maar zo kunnen dat deze gebruik maakt van dezelfde DCC bibliotheek.
In Rocrail moet ik daarvoor het MADA adresschema volgen, dat is de DCC standaard.

Zomaar een gedachte:
Stuurt de MS2 het adres wel op deze manier verder? Als die er PADA van maakt is het logisch dat je decoder niet reageert lijkt me.


Succes
Hartelijke groeten,
Albert.
Mijn Youtube kanaal: https://www.youtube.com/@Albert-DenAkker

mcs51

  • Offline Offline
  • Berichten: 28
Re: Arduino Wisseldecoder Rocrail
« Reactie #7 Gepost op: 29 July 2022, 10:08:32 »
Dag Albert,

Wanneer je #include <NmraDcc.h> in de code van de DCC++ EX centrale kan vinden, dan gebruikt die inderdaad dezelfde library.
Met een "Find" opdracht in de Arduino code zal je het snel weten.

Ik denk dat ik goed zit met MADA omdat ik een LDT TT_DEC decoder heb en die werken in adres bereik 14 (209 tem 224) of 15 (225 tem 240)
Met 100% dezelfde hardware en Rocrail heb ik "losse" wissels in een baanplan gezet met MADA conversie van de adressen 209 tem 224
Door die "wissels" te bedienen doet de draaischijf wat ik verwacht
Dus denk ik dat ik met MADA goed zit, of niet?

Alain

Karst Drenth

  • Offline Offline
  • Berichten: 10482
  • NS blauw, groen, rood, bruin, grijs en standgroen
    • Plan U op Sleutelspoor
Re: Arduino Wisseldecoder Rocrail
« Reactie #8 Gepost op: 29 July 2022, 13:33:17 »
In Rocrail moet ik daarvoor het MADA adresschema volgen, dat is de DCC standaard.

Stuurt de MS2 het adres wel op deze manier verder? Als die er PADA van maakt is het logisch dat je decoder niet reageert lijkt me.

Kan iemand, of jij Albert, eens precies uitleggen wat het op zich heeft met MADA/PADA/TADA etc... Ik heb geen idee wat Rob gerookt heeft toen hij dat heeft bedacht...  ;D ;)
DCC heeft 1 lineair adresbereik van 1-2048. En ik ken geen DCC centrale-protocol dat dat lineaire bereik niet ondersteund, sterker alleen (!!) maar lineair.

Grtzz,
Karst

mcs51

  • Offline Offline
  • Berichten: 28
Re: Arduino Wisseldecoder Rocrail
« Reactie #9 Gepost op: 29 July 2022, 13:57:48 »
Ik heb een Arduino Mega met DCC++ (geen EX) uit de kast gehaald ter vervanging van de de MS2, CC-Schnitte & Rocrail

Dan, slechts 1 wissel aangemaakt in de Mega met ID= 1, Address= 1 en SubAddress= 1 (dus <T 1 1 1>)

Dan power up de DCC++ en de wissel aangestuurd met
<T 1 1> = rood = afslaan
<T 1 0> = groen = rechtdoor

and guess what  ??? ??? ??? ???


Juist dezelfde data in de Serial Monitor van de Arduino met de test wisseldecoder software

5 messages 81 FB 7A bij <T 1 1>
5 messages 81 FA 7B bij <T 1 0>

maar geen enkele Turnout messages grrrrrrr
 

bask185

  • Offline Offline
  • Berichten: 5009
Re: Arduino Wisseldecoder Rocrail
« Reactie #10 Gepost op: 29 July 2022, 16:21:41 »
Citaat
Ik heb geen idee wat Rob gerookt
;D Die gedachte heb ik dus bij dit...

Citaat
81 FB 7A
Waarom niet iets begrijpbaars als:

"turnout command: address 4, curved"

0xFA is 250 decimaal. Ik zou dus verwachten 0x04
0xFB is 251 decimaal,  "  "    "            "            0x05

255 - 251 = 4
255 - 250 = 5

Ik weet niet of dat normaal is in DCC. Bij loks in ieder geval niet en ik word ook niet gelukkiger van de matige beschrijving in Nmra documentatie..

Mvg

Bas.

Train-Science.com
Train-Science github
It ain't rocket science ;-)

meino

  • Offline Offline
  • Berichten: 2334
Re: Arduino Wisseldecoder Rocrail
« Reactie #11 Gepost op: 29 July 2022, 16:35:51 »
Er staat me vaag bij, dat er iets is met de adressen van wisseldecoders. Dat had geloof ik te maken met de index waarde zoals die oorspronkelijk door Lenz was gebruikt. Moest je er geen 4 bij optellen?

Groet Meino

mcs51

  • Offline Offline
  • Berichten: 28
Re: Arduino Wisseldecoder Rocrail
« Reactie #12 Gepost op: 29 July 2022, 16:41:59 »
;D Die gedachte heb ik dus bij dit...
Waarom niet iets begrijpbaars als:

"turnout command: address 4, curved"

Mvg

Bas.


Euh… …
Kijkend naar de code van het voorbeeld sketch verwacht ik wel een duidelijke tekst in de Serial Monitor Window… …
Zie // This function is called whenever a normal DCC Turnout Packet is received
void notifyDccAccTurnoutOutput( uint16_t Addr, uint8_t Direction, uint8_t OutputPower )
{
#ifdef  NOTIFY_TURNOUT_MSG
  Serial.print("notifyDccAccTurnoutOutput: Turnout: ") ;
  Serial.print(Addr,DEC) ;
  Serial.print(" Direction: ");
  Serial.print(Direction ? "Closed" : "Thrown") ;
  Serial.print(" Output: ");
  Serial.print(OutputPower ? "On" : "Off") ;
#endif
  if(( Addr >= BaseTurnoutAddress ) && ( Addr < (BaseTurnoutAddress + NUM_TURNOUTS )) && OutputPower )
  {
    uint16_t pinIndex = ( (Addr - BaseTurnoutAddress) << 1 ) + Direction ;
    pinPulser.addPin(outputs[pinIndex]);
#ifdef  NOTIFY_TURNOUT_MSG
    Serial.print(" Pin Index: ");
    Serial.print(pinIndex,DEC);
    Serial.print(" Pin: ");
    Serial.print(outputs[pinIndex],DEC);
#endif
  }
#ifdef  NOTIFY_TURNOUT_MSG
  Serial.println();
#endif
}

Maar blijkbaar herkent de sketch  geen Turnout command en aangezien ik “ALLE DCC Messages” gevraagd heb
// You can print every DCC packet by un-commenting the line below
#define NOTIFY_DCC_MSG

krijg ik die 3 bytes te zien bij elke turnout actie die ik doe

Dus aan de ene kant is het wel DCC omdat de sketch erop ingaat maar blijkbaar geen turnout command?!!?
« Laatst bewerkt op: 29 July 2022, 16:43:30 door mcs51 »

AlbertG

  • Offline Offline
  • Berichten: 1027
    • Modelbaan Den Akker / Rocrail / DCC-EX
Re: Arduino Wisseldecoder Rocrail
« Reactie #13 Gepost op: 30 July 2022, 08:31:41 »
Kan iemand, of jij Albert, eens precies uitleggen wat het op zich heeft met MADA/PADA/TADA etc...

Hier de link naar de Engelstalige Rocrail wiki waar het wordt uitgelegd
https://wiki.rocrail.net/doku.php?id=addressing-en#bus

Het komt voort uit het feit dat verschillende centrales verschillende adresseringsschema's hanteren.
Zo werkt de DCC++ EX centrale (maar ook de oorspronkelijke (DCC++) met het volgende commando om een wissel te definiëren:
<T id address subaddress>, dus een adres en een subadres, in Rocrail het Adres (van de module) en de Poort (1 t/m 4) op die module.

Maar ik zie nu in dat dat in de nieuwste DCC++ EX software vervangen is door:
<T id DCC address subaddress> en
<T id DCC linearaddress>

Bron:
https://dcc-ex.com/reference/software/command-summary.html#turnouts

Hartelijke groeten,
Albert.
Mijn Youtube kanaal: https://www.youtube.com/@Albert-DenAkker

mcs51

  • Offline Offline
  • Berichten: 28
Re: Arduino Wisseldecoder Rocrail
« Reactie #14 Gepost op: 30 July 2022, 09:20:45 »
Opgelost !  (y) !

Er zat een "vergetelheidje" van Alex in dat voorbeeld

On line 137 of the sketch change:

Dcc.init( MAN_ID_DIY, DCC_DECODER_VERSION_NUM, CV29_ACCESSORY_DECODER, 0 );
To look like:
Dcc.init( MAN_ID_DIY, DCC_DECODER_VERSION_NUM, FLAGS_OUTPUT_ADDRESS_MODE | FLAGS_DCC_ACCESSORY_DECODER, 0 );
en dan werkt alles perfect!
Merk wel dat de ontvangen hex codes nog steeds dezelfde zijn maar nu kan de sketch ze blijkbaar ook correct vertalen en de pinnen van de Arduino aansturen.


Maar ik heb nu een volgende vraag voor Rocrail specialist @AlbertG
Met Rocrail krijg ik 4 boodschappen om een spoel van een wissel aan te sturen onmiddelljk gevolgd door 4 boodschappen om de spoel terug uit te schakelen.
Lijkt logisch omdat we slechts een puls van x ms wensen op de spoelen van een wissel.
Echter die puls wordt beheerd door de Arduino wisseldecoder, Rocrail hoeft zich daar niets van aan te trekken, enkel een commando wissel x naar positie y geven, meer niet.

Is dit mogelijk?

Ik heb de optie "Schakeltijd" al uitgevinkt en die tijd ook op 0 gezet maar die 4 "OFF" messages blijven maar komen  :-\


Ok, ik geef toe dat het geen kwaad kan maar aangezien ze overbodig zijn en Rocrail de optie heeft om ze uit te schakelen zou ik ze niet meer verwachten.
Dat zijn trouwens ook 4 overbodige boodschappen die de communicatie maar overbelasten.


Alvast bedankt voor jullie inputs tot nu!

Met vriendelijke groet
Alain