2015 del 1 – JMRI, S88-N og første lokomotiv ombygning

4/1-2015:

Så kom vi ind i 2015 og juleferien er slut. Men for en gangs skyld har jeg holdt ferie. Rigtig ferie, hvor jeg har haft en del futtogstid. Konen læser til eksamen, så jeg har kunnet bruge hele og halve dage. Sejrene er mangfoldige:

1. Jeg har fået dekoderprogrammering fra JMRI via IB-COM og Intellibox II til at fungere i samarbejde med en vis Alain Le Marchand fra Frankrig.
2. Samtidig har jeg fået rettet til, så sporskifter kan styres fra JMRI via IB-COM / Intellibox II samt fået en tidligere patch for tilbagemelding fra IB-COM / Intellibox II til JMRI, som fejlagtigt i sommers kun blev implementeret for Intellibox I, sneget med ind i JMRI kodebasen.
3. Jeg har gjort et lille hurtigt forsøg med scripts i JMRI, nærmere bestemt en tilpasset udgave af BackAndForth.py.
4. Jeg har bygget et S88-N-P og et S88-N modul. Og de fungerer.
5. Mit gamle Märklin 3060 lokomotiv er ombygget til DCC / digital drift.
6. Jeg har fået sat strøm til et af mine indkøbte infrarøde diode / fototransistor par.
7. Jeg har lagt bedre og meget specifikke planer for udvidelsen af min prototypebane.

Ad. 1 og 2: Weekenden op til jul gik med at få implementeret så meget dekoderprogrammering i JMRI, som jeg kunne læse ud af RocRail kildeteksten. Men det var nok til at få det til at fungere – hul igennem -agtigt. Jeg indsendte det som en patch, og fik lynhurtigt respons fra Bob Jacobsen (som nok er den mest aktive person bag JMRI) og fra Alain Le Marchand.

Bob implementerede straks min patch og forbedrede den med hensyn til detaljerne i indpasningen i JMRI kodebasen. Derudover spurgte han tilbage, hvorfor jeg ikke havde enablet flere programmere i JMRI end tilfældet var – bl.a. PoM (Programming on Main), samt skrev, hvordan jeg kunne enable dette. Jeg var ikke klogere end at IB-COM og dermed Intellibox II ikke understøtter PoM. Men det kunne Alain oplyse, at i hvert fald Intellibox II gør. Det har dog vist sig, at Intelliboxen ganske vist kan PoM, men IB-COM kan ikke.

Henover julen (hvor jeg var på familiebesøg i Jylland) gjorde Alain nogle forsøg, hvor han vha. tasterne på sin Intellibox II og LocoNet monitoren i JMRI fik frembragt noget dokumentation for hvilke LocoNet meddelelser, der svarer til PoM – foruden at han testede min service track programmeringsfunktion. Vi var i livlig e-mail kontakt, og jeg kunne sidde hundredvis af kilometer væk fra min IB-COM og alligevel kun vha. en iPad nå frem til en fuld forståelse af, hvordan disse LocoNet meddelelser var sat sammen.

Mandag efter jul (den første af mine egentlige feriedage) og det meste af tirsdagen og onsdagen (nytårsaftensdag) gik med at få såvel PoM til at virke som at finde ud af, at service track programming ikke kun er en ting: Der er tre modes (direct byte, register og ?????????), som har hver sin underkommando i LocoNet. Jeg ved stadigvæk ikke, hvad forskellen på de forskellige modes er, men jeg tror, at register mode er til visse meget gamle dekodere.

Det var en ganske morsom proces, og det var et godt samarbejde med Alain, som sendte flere outputs fra LocoNet monitor, testede mine ændringer og sluttede af med at checke det hele ind i JRMI kodebasen. Alain er nemlig registreret som JRMI udvikler, selvom han ikke er nogen haj mht. Java. Dog var Alain sideløbende i gang med at få F9 – F28 til at fungere for både Intellibox I og II fra JMRI – en ting, som jeg slet ikke bidrog til, men som Alain gjorde grundarbejdet til, og Bob implementerede ud fra Alains mock-up kode.

Ad. 3: Det var ikke meget tid, der blev til Jython kode. Nærmere bestemt har jeg ikke skrevet en linie. Men jeg har dog fundet en time eller to til at prøve et par eksisterende scripts. Det fungerer generelt ganske fint. Jeg fik den både til at båtte i hornet og køre min BR216 frem og tilbage mellem to sensorer.

Når det skal blive til mere, skal jeg nok begynde med at bestemme mig for, hvad jeg vil opnå, altså skrive en kravspecifikation. Det er ikke helt klart for mig, hvad jeg vil. Vil jeg skrive noget specifikt til min bane, eller skal det være generelt anvendeligt? Og i sidstnævnte tilfælde, skal jeg så selv opfinde et dataformat til at beskrive banen, eller skal jeg bruge det allerede eksisterende i JMRI? Skal mit program køre tog på må og få? Eller skal det være ud fra en køreplan? Hvordan skal programmet håndtere, når jeg manuelt kører med et tog? I hvert fald skal programmet holde øje med alle tog og opdatere deres position på banen (i modsætning til RocRail, der kun opdaterer positionen for de tog, som programmet selv flytter rundt med).

Ad 4: Nytårsaftensdag, nytårsdag og en del af fredagen gik med at bygge S88-N og især S88-N-P modul. “Især”, fordi det tog meget lang tid at designe og implementere et veroboard layout og sluttelig måle det så godt igennem med et voltmeter som muligt, før indsætning af diverse IC’ere. Der var kun to problemer, før det hele fungerede: Der var en enkelt bane på veroboardet, jeg ikke havde fået afbrudt (hvilket jeg fandt ud af vha. voltmeteret), og jeg havde lidt problemer med at få programmeret PIC kredsene. Se mere under “Tilbagemeldingsmoduler”.

Ad 5: Lørdag før nytår var sidste åbningsdag hos Spor23 alias Taastrup Togcenter. Og jeg var lige forbi for at købe ESU LokPilot 4.0 dekodere til mit gamle Märklin lokomotiv og mit indkøbte Lima MR tog. Ikke fordi der just var ophørsudsalg – jeg betalte 50 kroner mere pr. stk. end jeg kunne have fået dem for hos LokDoc. Men til gengæld kunne jeg straks gå i gang med ombygningen: Det tog faktisk ikke mange minutter at skille Märklin lokomotivet ad og smide gearkassen i et glas terpentin, så al gammel olie kunne blive opløst. Største problem var at finde ud af, hvor de to skruer, der holder motorskjoldet, sidder. Til oplysning: De sidder for oven til højre og for neden til venstre, selvom de er dækket til af skidt og gammel olie.

Det tog lidt længere tid at anbringe en lysdiode i stedet for den originale pære. Men skal jeg gøre det igen er det hurtigt gjort: En 5 mm lysdiode passer ganske fint ind i hullet fra den gamle pære, og skal bare lige have en lille klat klar lim og en 1 kOhm formodstand.

Søndag (sidste dag i ferien) fik jeg smurt gearkassen med en dråbe ny symaskineolie og samlet motoren med ny magnet, 5-polet anker og motorskjold inklusive andre kul. Det tog ikke mange sekunder. Alle delene kom fra det Märklin ombygningssæt, jeg købte i foråret 2014. Fra et MFX dekodersæt, jeg købte samtidig, kom et 21-polet print til dekodermontering. Selve dekoderen har jeg monteret i BR216. Der er ret mange ledninger på sådan et print. Men jeg loddede de ledninger, jeg ikke skulle bruge, af. Pålodning af de tilbageværende ledninger og fastgørelse af dekoderprintet tog lidt tid, fordi jeg aldrig har prøvet det før. Men dybest set er det ikke svært, og var da også overstået på en timestid. Og endnu en succes var en realitet: Lokomotivet kører fint. Dioden lyser meget hvidt. Men det er sådan set pænt. Den er på ingen måde blålig. Bare anderledes end de glødepærer, jeg er vant til. De er dog nok alt for gule.

LokPilot 4.0 dekoderen viste sig at fungere langt bedre på programmeringssporet end Märklin MFX dekoderen i mit BR216 lokomotiv. Märklin dekoderen er umulig at programmere, før man har slået MFX fra. Men der er overhovedet ikke noget problem med LokPilot. Dvs. lige med undtagelse af, at der ikke står i manualen, at de CV’er, der styrer hvordan lys og AUX udgange skal fungere, kun er tilgængelige, når man først skriver værdien 16 i CV 31 og 0 i CV 32. Men det gør ikke så meget, når man kan programmere fra JMRI: Den kender LokPilot og denne særhed, så man skal bare finde det rette faneblad, indlæse dekoderens indstillinger, ændre det man vil have ændret (vha. checkbokse m.v. med sigende labels i stedet for CV numre) og sluttelig skrive ændringerne tilbage. Et voila: Mit Santa Fe lokomotiv lyser ikke så skarpt, blænder ned når den holder stille, og har for øvrigt også en mere realistisk maksimal hastighed (den drønede af sted med hvad der svarer til 200 km/t, hvilket ikke er sømmeligt for et lokomotiv fra 1950). Og det hele er gemt som en backup inde i JMRI.

Ad. 6: Søndagen gav også lige lidt tid til at lege med CNY 37, som er en lille plastik kasse med en IR diode og en foto transister i hver sin side og med en luftspalte imellem. Cirka det samme som en optokobler, bare med mulighed for at stikke et stykke papir eller en tynd plade imellem lyskilde og detektor. Jeg regnede mig frem til en formodstand til dioden (5 V drift) på under 100 ohm, men besluttede mig for 330 ohm og dermed mindre strøm og formentlig længere holdbarhed. Og det fungerer fint. Det eneste, jeg ikke lige havde tænkt på, er, at denne detektionsmekanisme er inverteret: Når lysstrålen afbrydes går inputtet til tilbagemeldingmodulet højt. Og detektionen går på et lavt input. Så der skal en inverter ind et eller andet sted. Enten i hardware, i form af en opsætning i tilbagemeldingsmodulet, eller i software (dvs. JMRI). S88 modulerne har ikke den mulighed. Det kan dog (hard-)kodes – jeg har kildeteksten. Uhlenbrock LocoNet modulet har måske muligheden. Det har jeg ikke undersøgt. JMRI har helt sikkert muligheden.

Ad. 7: Ind imellem – især i aftentimerne – fik jeg lavet mig en indkøbsliste med sporskifter og skinner m.v., fik tegnet lidt flere sidespor på, samt udtænkt, hvordan jeg kan gøre en 55 cm forlængelse af prototypepladen fast. Næste weekend bliver indkøbsdag. Så er konens eksamen overstået og vi kan tage på udflugt til Store Heddinge og gøre mig 1000 kroner fattigere på sporskifter og skinner samt et par telex koblinger til BR216.

Translate »