Originally Posted by: David Dewar 
I would like to know what JMRI is. Is it some kind of controller.
JMRI is a software suite, originally developed at the tail end of the 1990s, for the purpose of making programming CVs in DCC decoders much easier than entering the CV values through a hand held cab control, with the high liklihood of making mistakes in either the CV number or the contents. The aim of the program was to show on-screen all the CV names, and where bits are used in CVs, the bit names, so that when programming a loco it was not necessary to keep referring to CV numbers, but use human readable names instead. Many decoders now also use index CVs to access groups of CV functions (e.g. the Loksound decoders) and JMRI sets out to handle the indexing required to do this without the operator being aware it is happening.
It was originally developed as a personal project by Bob Jacobson, in California, and was developed around a Loconet based system. As people became aware of it, and more brands of controllers became available, it was expanded to work with many other systems, some of which are now defunct, but are still supported within JMRI.
Other software developers came on board and have vastly expanded the capabilities of the program so that it can now rival RR&Co and many other programs as a basis for automating model railroads. And one of the best parts about it is that it is free.
The acronym stands for
Java Model Railroad Interface (link for further information), and contains several sections (but not limited to these): -
*Decoderpro which is the original portion for handling programming of DCC decoders.
*Panelpro which is used to design mimic panels for displaying on screen track maps showing signals, points, and with proper train position sensing, the location and tracking of trains as they move around the layout.
*Operationspro which is used to automate a layout.
*Soundpro which was an early attempt at having loco sounds on a layout before sound decoders became mainstream. There are still people who use this feature. It relies on having a sound card in the computer with multiple speakers under the layout. Using the features of OperationsPro and PanelPro JMRI keeps track of where the train is on the layout and attempts to adjust the speaker levels so the sound appears to follow the loco.
Because JMRI is built on top of Java it can be run on almost any computer system. They have releases for Linux, Windows and MacOS up to the current release. They release monthly development releases and approximately twice a year do a release candidate for those who don't wish to risk using development releases.
JMRI was also involved a significant court case where someone else attempted to patent using any form of network between a comuter and train controller (despite there being significant prior art before the patent was filed), appropriate the Decoderpro name and use the decoder definition files from JMRI while removing all copyright and licensing notices. The result of the court case was a win for JMRI, who were strongly supported by the Open Source Software Foundation, resulting in a major landmark win for Open Source Software in general. There is a Youtube video interview with Bob Jacobson about this case if you wish to look for it.
JMRI does have decoder definitions for mld, msd, mld/3 and msd/3 based on Marklin published documentation (such as pointed to above). It can also do everything a Lokprogrammer can do except load code and sound files into an ESU decoder. It knows about EcOS controllers, Marklin cs1, cs2 and cs3 controllers, but I haven't ascertained how extensive this support is yet (one of the items on a round tuit that keeps getting bigger).
JMRI is a pretty lightweight program in terms of computer resources required, and many people use an old machine that would otherwise be consigned to the trash, even though it is essentially working. It will also run on a Raspberry Pi (a model 3 would be regarded as the minimum spec) and for those who would despair at setting up a Linux system on an RPi one of the JMRI contributors has a download that comprises the operating system with JMRI already set up so that it just needs loading onto an SD card and plugged into an RPi. when turned on it will boot straight into JMRI which will attempt to autoconnect to most common DCC systems, so that it is then ready to go.
If you want any further information, or to download the program, see the link above. There is also a very active
groups.io email support group for the program.
There are also other programs available,
such as CATS, to help with layout automation and augment the facilities of JMRI.