2014 del 5 – RocRail (og lidt mere om servoer og sporskifter)

Medio og ultimo oktober 2014:

Nyt program til PC’en: RocRail:

JMRI er droppet. I hvert fald indtil videre.

Det ser ud til at RocRail er meget mere stabil. Med de nye skinner tog det ikke lang tid at få RocRail til at automatisere togdriften.

Det virker dog ikke med lange tog endnu. Kun med meget korte, og selv der er det meget tilfældigt hvor i en blok, lokomotivet stopper. Og indimellem kommer der en afsporing, fordi et tog sendes gennem et sporskifte, der er i gang med at skifte.

Flere sporskifteproblemer:

Og så har jeg lige et mekanisk problem med et af mine tre sporskifter: Pianotråden til servoen hopper af.

Det med pianotråden må løses. Jeg hiver nok servoen af, bøjer et nyt stykke tråd og monterer det hele forfra. Så virker det vel? Update: Jeps. Det virker.

Det er åbenbart vigtigt, at øjet på tråden i sporskifteenden sidder i forlængelse af selve tråden som på den nye tråd (den gamle tråd ligger ved siden af på billedet nedenfor. Den kan vippe af, fordi øjet er bøjet ud til siden af tråden.)

Processed with Snapseed.
Sporskifte med ny tråd + den gamle tråd på bordet ved siden af

MEN: Der er stadigvæk et problem med det samme ene sporskifte. Selvom tråden nu bliver siddende, så skifter sporskiftet ikke helt perfekt. Til den ene side mangler den lige at bevæge sig den sidste millimeter. Og så afsporer toget.

Problemet er tilsyneladende, at mekanikken er en anelse anderledes i lige præcis dette sporskifte, idet det kræver en lidt større vandring på servoen, så skiftemekanismen presses helt ud i endepositionen. Det sammenholdt med at Paco’s dekoder kun tillader, at man indstiller servoens totale vandring, og ikke position A og B som to separate størrelser, giver et krav til at jeg får tilpasset længden af tråden og placeret servoen “lige i midten”, så servoens to endepositioner præcist svarer til sporskiftets to endepositioner.

Dette problem forstærkes af, at min pianotråd ikke har indbygget fjedervirkning. Den er lige til den tykke og dermed stive side med sin 1 mm og der er ikke bukket i zig-zag, så der kan fjedres lidt, hvis servoens endestop går lidt for langt i forhold til sporskiftets endestop.

Indtil videre har jeg fiddlet det på plads ved at finjustere længden af tråden, så sporskiftet lige akkurat fungerer. Jeg skal have fundet en bedre og nemmere løsning, før jeg går videre med at “servoficere” flere sporskifter.

Men det bliver senere. Foreløbig virker alle mine tre sporskifter. Jeg har tænkt mig både at bruge tyndere tråd, bøje en zig-zag fjederform samt modificere dekoderen eller bruge en anden type dekoder, som f.eks. denne: http://digital-bahn.de/bau_servo/sand4.htm eller denne: http://wiki.rocrail.net/doku.php?id=mgv136-en. Jeg har også spurgt Paco, om en modificeret udgave af hans dekoder.

Han henviser til denne hjemmeside: http://www.fucik.name/masinky/servo/. Derudover har Paco offentliggjort kildeteksten, og jeg tror godt, at det lader sig gennemskue, hvordan man kan indføre den ekstra opsætningsmulighed. Og jeg har også spurgt fyren bag fucik hjemmesiden, om han også vil indvie mig i sin kildetekst.

Men det bliver som sagt senere, at jeg går videre med alt dette. Hr. Fucik har i øvrigt i mellemtiden svaret, at hans kildetekst findes her: http://usuaris.tinet.cat/fmco/colab/download/dcc4servo_v3_x.zip.

Hvordan får jeg toget til at standse samme sted hver gang?

RocRail standser tilsyneladende toget et ret tilfældigt sted i den blok, hvor der skal standses.

Jvf. RocRail manualen kommer det nok til at kræve en sensortype mere pr. blok. Og dermed mange flere sensorer og indgange til samme. Det skal lige overvejes nærmere. Og ikke mindst skal RocRail manualen studeres nærmere.

En anden fejlmulighed er, at mit testlokomotiv har en ret primitiv Marklin FX dekoder. Måske skal jeg bruge en rigtig DCC dekoder?

Ultimo oktober 2014:

Nu er FX dekoderen erstattet af en MFX, som også kan “tale” DCC. Det betyder, at jeg kan programmere dekoderen og dermed lave nogle bedre forsøg med RocRail.

Og det betyder, at jeg pludselig har 128 speedsteps i stedet for 14. Lige et godt råd, som det har kostet mig en del tid at nå frem til: Slå FX og MFX protokollerne fra, hvis du har en Märklin MFX dekoder og en kommandostation som f.eks. IB-COM, der kan tale flere protokoller, men i virkeligheden er et DCC apparat.

Det lykkedes mig kun at læse CV værdier en ud af ti gange, indtil dette gik op for mig.

Jeg er blevet helt glad for RocRail. Selvom det stadigvæk ikke er helt gennemskueligt for mig, hvad der sker, så er jeg i løbet af en enkelt aften blevet en hel del klogere af at læse om blokke, ruter og lokomotiver i RocRail manualen samt af at sætte både accelerations- og bremse-forsinkelser i MFX dekoderen til 0. Det giver nogen unaturligt abrupte fartændringer, så på et tidspunkt skal der nok lidt forsinkelse på igen. Men nu kan jeg se, hvad der sker:

RocRail bruger 3 forskellige hastigheder, som man sætter op i lokomotiv property dialogen. Jeg har sat dem op som km/h tal, fordi jeg tror, at det giver mig bedst mulighed for at justere forskellige lokomotiver (når jeg kommer til det punkt, hvor jeg kan forsøge med mere end et enkelt) til at stoppe der hvor jeg vil have dem til at stoppe ud for perron.

Man kan derefter sætte op, hvilken af de 3 hastigheder, der skal bruges hvor. Det sættes op i blok property dialogen.

Dog har jeg ikke fundet ud af at få et tog til at starte med andet end cruising hastighed endnu.

Men jeg er nået så langt, at det nu er rimeligt forudsigeligt, hvor i en given blok toget standser – og det er stadigvæk med min opsætning med kun en enkelt sensor pr. blok, som så til gengæld er i hele blokkens længde.

Speed Curve opsætning:

Som det næste skal jeg have justeret mit BR 216 lokomotivs SpeedCurve, sådan at lokomotivets reelle hastighed passer med virkeligheden og dermed med de km/h angivelser, som jeg indstiller i RocRail.

Ved at gøre det samme med alle ens lokomotiver og ved at lade alle lokomotiver anvende samme hastighed i de blokke, hvor de skal standse, tror jeg, at jeg kan få alle lokomotiver til at standse det samme sted i en blok.

Det samme vil muligvis kunne opnås ved at beregne et lokomotivspecifikt delay, der svarer til det enkelte lokomotivs individuelle hastighed. Men nu satser jeg altså på at gøre alle lokomotivers “speedometere” ens.

Jeg har fundet en anvisning her http://www.dccwiki.com/Speed_Table, som sammen med RocRails indbyggede hastighedsmåler http://wiki.rocrail.net/doku.php?id=mvtrack-setup-en samt min nyvundne mulighed for rent faktisk at programmere lokomotivets dekoder som en rigtig DCC dekoder http://www.rjftrains.com/technical/60942_62_en.pdf samt http://wiki.rocrail.net/doku.php?id=pt-en nok skal få lokomotivet til at køre rimeligt præcist med det antal km/h, som jeg angiver – naturligvis omsat til modelstørrelse.

Data på et fuldskala BR 216 lokomotiv hos DB er i øvrigt maks. hastighed 120 km/h og march hastighed 80 km/h. Så det skal mit lille futtog selvfølgelig også sættes op til.

Og så skal jeg lige være sikker på, at motorreguleringen er rigtigt indstillet, jvf. http://tonystrains.com/download/BEMF_PID_Intro.pdf. På sidste side er det gode råd at kontrollere dette ved at lade lokomotivet køre på laveste hastighed, stoppe det ved at lade det køre ind i en finger, som sættes ned på sporet, kontrollere at hjulene spinner videre med uændret hastighed, fjerne fingeren og igen kontrollere, at hjulene fortsætter med uændret hastighed. Hvis hastigheden kortvarigt går op og ned, er der noget, der skal justeres.

Hmmmm. Det er åbenbart ikke helt som beskrevet:

RocRails hastighedsmålinger fungerer nemt og giver rimeligt ens værdi hver gang jeg bruger samme speedstep – i hvert fald ved lavere hastigheder. Og tonystrains opskrift på BEMF bestemte jeg mig for ikke at bruge tid på.

Opskriften på at stoppe lokomotivet med fingeren så ud til at fortælle, at motorreguleringen fungerer rimelig godt.

Men en bestemt værdi i CV 67-94 er åbenbart IKKE ensbetydende med en bestemt hastighed i en tilsvarende speedstep. Sådan forstod jeg ellers patentopskriften i dccwiki. Men jeg fandt f.eks. ud af, at speed step 17 ud af 28 svarede til 120 km/t og den syttende CV (dvs. CV 83) havde værdien 111. Jeg gik derfor ud fra, at hvis jeg i stedet satte CV 94 til værdien 111, så ville speedstep 28 komme til at svare til 120 km/t. Men sådan spiller klaveret bare ikke. Der virker i øvrigt også forkert, hvis CV 94 ikke skal være 255. Hele skalaen skal vel bruges for at definere kurven så godt som muligt?

Men der er flere patentopskrifter. Næste gang prøver vi denne: http://dcc-mueller.de/decoder/speedt_e.htm.

Dekoderens speed tabel (CV 67-94) er nu stillet tilbage til default værdier, og maksimal hastigheden er justeret til 120 km/h ved hjælp af trim CV’erne 66 og 95. Værdien 60 viste sig at passe.

Problemet er dog, at throttle skalaen på ingen måde er lineær, altså at halv throttle giver langt under halv hastighed.

Jeg prøver en ny beregning i Excel. Denne gang ud fra dcc-mueller opskriften, dvs. cirka samme kurve som før i CV 67-94, dog nu skaleret op, så den går op til 255, mens CV 66 og 95 begrænser maksimalhastigheden. Ikke fordi kurven i første omgang gav en lineær throttle. Men med den nye fremgangsmåde virker det meget tæt på perfekt.

Med lokomotivets properties i RocRail sat til 128 speedsteps, maksimal hastighed 120 km/h og visning i km/h, så passerhastighederne på throttlen med det målte indenfor ganske få procent.

Så hermed har jeg lært, at før et lokomotiv kommer på min bane gøres følgende:

1. Sørg for, at lokomotivet er udstyret med en dekoder, som har en programmerbar speed tabel.
2. Find ud af lokomotivets maksimale hastighed og dets marchfart i den virkelige verden.
3. Indstil throttle til 28 speedsteps og mål lokomotivets hastighed ved alle speedsteps op til dens virkelige fætters maksimale hastighed.
4. Læs de originale værdier for CV 67-94.
5. Indstil CV 66 og 95, så lokomotivet for fuld throttle lige netop kører med sin virkelige fætters maksimale hastighed.
6. Brug et regneark til at udregne hvilke CV værdier, der vil give en lineær hastighedskurve og sæt disse i dekoderens speed tabel.
7. Indstil RocRail med så mange speed steps som muligt (dvs. 128 med en ordentlig dekoder) samt med det virkelige lokomotivs maksimale og march hastigheder. Brug de samme tal for Vmid og Vlow for alle lokomotiver – f.eks. 35 og 10.
8. Indstil dekoderen til et lille delay for både acceleration og opbremsning. Det kan ikke være godt for tandhjul m.v. at de er sat til 0. Jeg har sat begge (dvs. CV 3 og 4) til 2. Så giver det ikke et skrald hver gang lokomotivet sætter i gang eller standser, så man tror, at alle tandhjul er på vej ud.

Update vedrørende punkt 5: Med mit næste lokomotiv kunne jeg ikke få det til at fungere ordentligt. I stedet lod jeg CV 66 og 95 have værdien 0 og så bare give CV 67 – 94 tilsvarende lavere værdier.

Blok timere og sporskifte delay i RocRail:

Nu kan jeg komme videre med at fiddle med timer værdier og andre opsætninger i blokkene, så jeg får lokomotivet til at holde, så det er kørt helt ind i hver blok, dvs. der hvor udkørselssignalet skal anbringes. Jeg har læst, at man burde kunne opnå en nøjagtighed på +/- 2 cm. Så det må være målet.

Et lille fif: Mine sporskifter er jo servostyrede, og der er ingen feedback på, hvornår de har nået deres position. Det betyder, at man i RocRail skal sætte kryds ved både “Switch time” og “Synchronize” samt sætte f.eks. 4000 ms i feltet ud for “Switch time” i Interface fanebladet i Switch property dialogen.

Med den indstilling holder toget pænt stille og venter i 4 sekunder, så sporskifterne står rigtigt, før lokomotivet sætter i gang.

Hvad skal vi nu lege? Lyde? Mere automatisering? Digitalisering af lokomotiver?
Hvad med lidt sjove lyde? RocRail kan læse tekster op. Hvad med en afgangsmelding a la “Toget på perron 1 er BR216 mod blok 4. Toget kører om 2 sekunder”?

Det burde faktisk kunne lade sig gøre jvf. “Speak to me” afsnittet lidt nede på denne side http://wiki.rocrail.net/doku.php?id=text-en&s%5B%5D=espeak. Der er et antal ekstraprogrammer, der skal udforskes: espeak, playwav og balabolka inklusive Microsoft Speech Platform. Bemærk links nederst på siden til espeak og playwav.

RocRail serveren afspiller også lyde i forbindelse med actions. Og afspilleren kan konfigureres vha. feltet “Sound Player” her: http://wiki.rocrail.net/doku.php?id=rocrailini-gen-en&s%5B%5D=mplayer

Eller hvad med at sætte et lokomotiv i fast rutefart, mens andre køres manuelt og atter andre med RocRails tilfældigheds-automatik?

Først skal jeg så lige have mere end det ene lokomotiv. Jeg har faktisk købt et mere. Og jeg har også købt et konverteringssæt til det bedste af mine gamle Märklin lokomotiver, så det kan blive udstyret med 5-polet DC motor og DCC dekoder. Men det var derfra, jeg lånte MFX dekoderen til BR216.

Derudover har jeg et par gamle Lima lokomotiver (dvs. allerede udstyret med DC motorer), hvoraf det ene er bygget om til 3-skinne drift. Så der er snart basis for endnu et dekoder indkøb. Men skal det nu være den dyre løsning med lyd, eller er det ligegyldigt? Det skal jeg lige i tænkeboks omkring.

Måske skal jeg lige lege lidt med RocRails muligheder og/eller overveje en løsning, hvor lokomotivlydene genereres af en stationær lyddekoder? Det koster nemt 1.000 kroner at udstyre et lokomotiv med lyddekoder. Og for MFX dekoderen gav jeg ikke mere end 215 kroner. Det er immervæk en forskel. Og vel at bemærke en forskel, der skal ganges med antallet af lokomotiver. Jeg vil gerne have en interessant og flot togbane. Men det er ikke meningen, at jeg skal ende på fattighuset af den grund.

Se i øvrigt http://www.digital-train.com/digital_conversion.htm vedrørende konvertering af lokomotiver. Eller en af de mange andre opskrifter. Der er masser derude på internettet.