JMRI Decoder Pro History


Mark is proud to one of the two people who indirectly helped the DCC world with the VERY SMALL part involving the creation of the "Decoder Pro" program concept.   Mark recognized early on in late 1996 that the number of CV's a given decoder will have are going to exploded as new features are added.   Using some early but limited decoder programming utility programs like "EasyRamp", he also recognized that these type of programs were going to quickly fall way behind the fast growing decoder market.  Why?   These types of programs are always dependent on the effort of one programmer to both maintain and update it. 

The only solution in his mind was an application were the user can create a "decoder description" file that is read by the application program.  The file would describe the specific decoders abilities, limitations and rules regarding programming while also being DCC brand independent.  Ideally the file would be in ASCII so people could read it and not in any complex language. Furthermore with the (then) recent introduction of Windows 95 graphical user interfaces, decoder programming complexity could be simplified by organizing the decoder programming information into multiple individual "sheets" (Formally called "Panes" as in "window pane").  Each sheet would be topic specific to a given decoder's major function (Address, Motor control, Light control and effects...ect).

Mark and his best friend, a software programmer for Apple, came up with the name "Decoder Pro" over a series of lunch conversations.  Both Mark and his friend were Mac Users that wanted to program their decoders with their PowerBooks.  However, since Apple was in decline at the time (middle 90's), they wanted Decoder Pro to work on PCs as well.  They knew that the success of the program directly related to having widest PC base possible.  Some proof of concept code was developed on the Macintosh and hence it was not PC compatible.  At that time, the Java language was an up and coming independent cross platform language that allowed a java program to run on ANY PC based operating system that supports java (MacOS, Windows, Linux..).  Switching to Java would also allow the decoder description files to be created and edited by any ASCII text editor.

Mark's friend found out about JMRI (Java Model Railroad Interface at the NMRA convention in 2000, and met the man behind it, Bob Jacobsen, who was also a Macintosh user.  Over lunch at Clarks Burgers in Mountain View Ca, Mark and his friend presented their ideas about Decoder Pro to Bob.  It was then decided to hand the Decoder Pro project to Bob so it could be integrated into his JMRI project.  The original Mac code from the Decoder Pro project, which only supported NCE's PowerPro DCC system at the time,  was rewritten/translated into Java by Bob, and the rest is history.

Decoder Pro has since grown way beyond Mark's and his friend's expectations through Bob's effort and more importantly, the tireless efforts of the JMRI programing community at large.  They deserve the recognition.

Decoder Pro can be found here:

Additional related JMRI history can be found here:
which says:

Date: April 7, 2004
From: Bob Jacobsen (Bob_Jacobsen at, 510-486-7355, fax 510-495-2957)
Subject: Re: Differences between JMRI Programs?

"What's past is prolog..."

Originally, JMRI was a library project, and JmriDemo was just a little driver program that would let you test the library.

Since my layout at that time was LocoNet based, I wrote some tools for LocoNet. A couple people asked for copies of them, but were confused by JmriDemo's references to tools for NCE, etc. The preferences system in the code back then wasn't very smart, so there was no easy way to have just tools that work with the current system appear. So I created the LocoTools application to bundle the LocoNet-specific tools together.

Then the idea for DecoderPro came along from Mark Gurries and <name removed>.   It started as menu items in JmriDemo, but soon people wanted a _program_ by that name, so one was created. Over time, the menus in DecoderPro have changed a lot. The original idea was that _only_ decoder-related items would be there, to reduce confusion. But people would request that other things be put there: First control over power, then turnouts (to flip the turnout to put the loco onto the programming track), then throttles, etc. About eight months ago, that was stripped back down, but people wanted the stuff added back, so it was.

At last summer's NMRA convention, a couple people suggested that the panel tools needed a program of their own, so PanelPro was created. (And that gave a place to put the cool PanelPro logo!)

With the addition of the preferences for adding your own buttons at startup (and your own menu items if you dig a little deeper), the differences between the various programs have really become quite minor.

Throughout, this has been an attempt to balance power and simplicity for both new and experienced users. I don't at all claim the current situation is the right balance; suggestions are always welcomed, and often acted upon.