Raspberry Pi och JMRI

Hur funkar det egentligen, hårdvara

I grunden till detta är en Raspberry Pi dator. En enkortskator för ungefär 350:-. Till den för man skaffa lite till, ett SD-kort på minst 4GB (~130:-), strömförsökrjning (~150:-) och slutligen en USB trådlös adapter (~350:-). USB adapter behövs endast om inget annat trådlöst nätverk finns.

Datorn ansluts till DCC-systemet via ethernet nätverk. I mitt fall så är en Lenz USB/Ethernet adapter inkopplad. Kostar ca 1350:-

Hur funkar det egentligen, mjukvara

Mjukvaran är en Debian installerad för Raspberry Pi. Finns färdiga paket att hämta hem från internet och är gratis. Till detta så får man konfigurera för det trådlösa nätverket. Eftersom vi inte har något annat i lokalen så agerar även datorn som en accesspunkt. Det gör att wifi adaptern är lite dyrare en normalt då den måste kunna köras i ”Master Mode”.

När allt detta är igång så är det dags att installera JMRI programmet. En Java applikation som kan köras på olika operativsystem. Fungerar nu på Linux, MAC och Windows. När installationen är gjord är det bara att starta den och konfigurera upp för anslutning till digitalsystemet. En mängd olika digitalsystem stöds av programmet.

Hårdvara

Raspberry Pi
4GB SD-kort
5V USB laddare, microusb
D-Link DWL-140 USB adapter
Lenz LI USB/Ethernet adapter
Nätverkskabel

Mjukvara

Raspbian, Debian för Raspberry Pi. Enklast är att installera den ned hjälp av NOOBS
hostapd för att fungera som WiFi accesspunkt.
Java V1.6 eller senare (för JMRI V3.11 och senare krävs Java V1.8 eller senare)
JMRI http://jmri.sf.net

Information

Produkt Hemsida
Raspberry Pi http://www.raspberrypi.org/
JRMI http://jmri.sourceforge.net/
JMRI för Raspberry Pi http://www.raspberrypi.org/phpBB3/viewtopic.php?t=12452
Hostapd installation http://blog.mc-thias.org/?title=creating-a-wireless-access-point-in-a-few-minutes&more=1&c=1&tb=1&pb=1
Adafruit PiTFT 2.8” Touchscreen Display http://learn.adafruit.com/adafruit-pitft-28-inch-resistive-touchscreen-display-raspberry-pi/overview

Hur jag gjorde installationen

  • Hämtade ner NOOBS till min dator. Packade upp filerna från ZIP-filen till SD-kortet. Sätter SD-kortet i Raspberry Pi datorn och startar den.
  • Installerar Raspbian.
  • apt-get install hostapd för att få accesspunktfunktion
  • Konfigurerar /etc/hostapd/hostapd.conf enligt mina önskemål, dvs hur det trådlösa nätverket ska fungera.
  • apt-get install dhcp då datorn ska lämna ut IP adresser till telefonerna
  • Konfigurerar /etc/dhcp/dhcp.conf enligt mina önskemål, dvs hur adresser ska delas ut.
  • apt-get install openjdk-7-jre, installera Java runtime
  • Hämtar hem JRMI, i mitt fall senaste JMRI V3.7.1
  • Packar upp ZIP-filen
  • Startar JMRI genom kommando JMRI/Decoderpro
    Detta kräver en bildskärm av någon typ. Jag har en annan dator som bildskärm. För att få det att fungera kör jag en X11 klient på datorn, XMING. Finns att hämta på http://xming.sf.net/
  • Konfigurerar JRMI för att kommunicera med mitt digitalsystem.
  • Konfigurerar så att WiFiThrottle startar automatiskt med JMRI

Nu ska allt fungera om allt är rätt konfigurerat. Bara att testa genom att koppla upp telefonen till nätverket och ansluta till servern.

Viss kännedom om Linux är en fördel. Speciellt om man gör all konfiguration via terminalfönster. Har man en bildskärm kopplad direkt till Rapsberry Pi datorn kan allt göras grafiskt. Men det rekommenderas nog inte att ha grafiskt läge när JMRI körs. Det finns trots allt bara 512MB RAM och inte världens snabbaste CPU. Det är tungt jobb att visa flotta bilder på en skärm som igentligen inte gör något.

Jag har också nu en liten touchskärm installerad. Detta gör att jag inte behöver någon annan skärm eller tangentbord. När maskinen startas kommer den automatiskt att starta upp JMRI med WifiThrottle. Numer kör jag JMRI i “faceless”, dvs ingen skärm behövs. Skärmen är fortfarande kvar och med den stäger jag av datorn på ett snällt sätt.

Kan man göra mer med JMRI?

Man kan göra mycket mycket mer. Finns många som använder JMRI för att lägga tågvägar och köra tåg automatiskt bland annat. Och en stor fördel är att man enkelt kan programmera dekodrar.

Om allt löper väl ut med testen och intresse finns så kan vi börja programmera dekodrar. Man läser enkelt ut alla CV register på dekodern förutom ljuddata. Alla dessa värden lagras i en fil per dekoder. Att läsa av dekodern krävs programmeringsspår. Med nuvarande utrustning så har vi inte möjlighet att köra samtidigt som vi läser av dekodern. Men å andra sidan så ska vi väl bygga på anläggningen också. Därför kan utlösningen göras på icke körkvällar.

För att justera saker som hastighetskurva så gör man det grafiskt. Denna justering kräver inte programmeringsspår och kan göras under normal körning. Alla CV kan ändras förutom själva adressen till dekodern. För adressändring krävs programmeringsspår.

Ändrade värden sparas till tidigare skapad fil för att enkelt kunna göra ändringar i framtiden men även för att lätt ställa tillbaka värden om det skulle blir allt för tokiga värden.