Large Scale Central

TrainOps to JMRI

This thread is for people who wish to convert from TrainOps to JMRI. Please keep the noise down, I’ll delete off-topic posts out of this thread. Please start another thread if you need to.

Here’s a Google Doc that Bruce and I have done that has our notes about converting from TrainOps to JMRI.

It should get you going in the right direction. Any questions, discuss them here.

The download for the executable is at

You will want the latest version, 3.4. Note there is a Windows, Mac, and Linux release.

The operations section is accessible by clicking on the PanelPro icon that appears after it is installed.

Lots of documentation, too: - all of it much better than the feeble stuff I did for TrainOps. :wink:

The doc that Bob referenced really helped me to get started, though I probably should have read the stuff online, too.

The key is to measure all of your existing spurs and convert to scale feet - what ever scale you are actually using.

Bruce Chandler said:

The key is to measure all of your existing spurs and convert to scale feet - what ever scale you are actually using.

Yep, this is VITAL to get your trains correct. It’s REALLY cranky if you botch siding/car/train lengths. You’ll quickly get used to looking at the build log screen. When you build a train, and hit “preview” you get two windows. One is the switchlist, the other the build log. You’ll see exactly HOW the program built your train, and why certain things didnt happen.

I’m trying to download JMRI to give it a look. The link Bruce gives goes to the download page where I find the Production release 3.4 and this statement

"If you’ve previously installed a working version of the program, you only need to download and install one of the files listed here."What I don’t see is the full packages for Ver 3.4.

Am I just missing something; or do I have to install an older version first; then upgrade.

EDIT - I went ahead and installed from that link. It seemed to be a full install, but I’m not sure. This looks WAY more complicated than TrainOps. Probably a much steeper learning curve than I’m willing to climb just to run a few trains a month.

If you’ve never installed a version of this program before, please read the installation guide (on the left) for your computer type and layout hardware. They will show you how to install the things that are needed before the program will run.

Installation guides: Windows, Mac OS X, Linux

See also the page of layout connections.

If you’ve previously installed a working version of the program, you only need to download and install one of the files listed here.


The one in the middle, Jon…least that’s the one I used.

Thanks Ken. I downloaded and installed that. Gives me two program options: Decoder Pro and Panel Pro. Looks like I can ignore Decoder Pro as it’s all about DCC. Panel Pro doesn’t really tell me what it is for.

Where so I find the “Operations Module” ? Wait; let me read the Google Doc and see if that helps me.


When you double click on the “PanelPro” icon, you should get a screen that looks like this.


While you can get to the operations section from here, what you really want to do is select “Edit” then “Preferences”

You get a screen with a lot of different options, but you want to change the startup to something like this:


Then, next time you click on the “PanelPro” icon, you’ll get the Trains menu to open up.


Now, when you are first setting up, you should:

  1. Choose Operations, then Settings. Enter your distances in scale feet. For max train length, you might as well make it plenty long, as you can set the train length for each route later, but only up to the maximum length.
  2. Set up your locations. For each location, you will enter spurs, yard tracks, interchanges, or staging. Interchanges are a bit different than train ops, as they are really just used to move cars between different trains.
  3. Enter your cars. Enter the car length of the BODY in scale feet; JMRI will add the couplers when computer train length, or figuring if a car can be added to a spur.
  4. Skip the locomotives. You don’t need to do this ever, and it just adds complications. I usually just pick the loco I want to operate with that day, anyway. No need for the program to get involved.
  5. Now set up your routes. This is what will connect the locations. For each location on a route, you can determine the maximum number of switching moves. You can also set the maximum train length allowed between each location.
  6. Finally, it’s time to set up a train. Then you should be ready to build the train and generate the switch lists.

Note that there are a LOT of options along the way; I’d recommend sticking with the defaults until you get the hang of it. Then you can limit what types of cars are allowed on different spurs, or even in a specific train.

Thanks Bruce. I found some of that on my own from your earlier post and the Google doc. If you ignore all the other modules a lot of the the overwhelming factor goes away.

Glad it helped. I should probably rename my “PanelPro” icon to Ops…even that would help. :wink:

I don’t have enough cars to make export/import a big deal, but I enjoy fooling around with SQL. I’m a bit rusty but I did figure out by looking at the table schema of Cars and CarTypes that there is a problem with the export statement: Description does not exist in Cars, only in Car Types so it returns a not found error.

I’d like to figure this out just for the fun of it; but am still a bit puzzled on what the end result output should look like.

Ken was the “first” of us to host an operations using the JMRI Operations. See here:

One problem that he had was that he printed the switch lists!

Hah! Rookie mistake. :wink:

For some reason, the JMRI Operations software (holy moley, does that ever need a new name or what?) acts different when you preview it as opposed to printing it.

When you print out the switch lists, you end up with a separate switch list per town. Back in TrainOps days, you got one switch list per train - a much better arrangement in my view.

Using the printed switch lists on my small layout resulted in 4 pages - each listing the two trains that switch each location.

So, what to do? Bob had recommended this earlier. Check the box in Manifest Tools option that says “Use Text Editor” for Manifest Preview.

Then, when you select the Preview button, it will open up a nice ONE page per train switch list in Notepad.

Looks like this:

Jackson & Burke Railroad

Manifest for train (Train #1)
Valid 8/2/1932 09:48

Scheduled work at Green Springs, departure time 00:00
[ ] Pick up UTLX 11050 Black Tank car L from Arrival Departure
[ ] Pick up C&S 8279 Red Boxcar E from Arrival Departure
[ ] Pick up J&B 111 Red Boxcar L from Oates Furniture
[ ] Pick up Shell A10 Black Tank car L from GS Yard Track 3
[ ] Pick up D&RGW 45 Yellow Reefer L from GS Yard Track 2
Train departs Green Springs Westbound with 5 cars, 170 feet, 265

Scheduled work at Occoquan, estimated arrival time 00:04
[ ] Pick up J&B 106 Red Boxcar L from Mystery, Inc
[ ] Pick up J&B 104 Red Boxcar L from Mystery, Inc
[ ] Pick up J&B 50 Black Gondola L from Team Track
[ ] Set out UTLX 11050 Black Tank car L to Brunt Interchange
[ ] Set out C&S 8279 Red Boxcar E to Mystery, Inc
[ ] Set out J&B 111 Red Boxcar L to Mystery, Inc
Train departs Occoquan Westbound with 5 cars, 170 feet, 285 tons

Scheduled work at Jackson, estimated arrival time 00:41
[ ] Pick up J&B 10 Black Hopper E from Mills Fuels
[ ] Pick up NCO A9 Silver Tank car L from Mills Fuels
[ ] Set out J&B 106 Red Boxcar L to Buchanan Tool & Die
[ ] Set out Shell A10 Black Tank car L to Mills Fuels
Train departs Jackson Westbound with 5 cars, 166 feet, 253 tons

Scheduled work at Lexington, estimated arrival time 01:22
[ ] Set out D&RGW 45 Yellow Reefer L to Stage 1
[ ] Set out J&B 10 Black Hopper E to Stage 1
[ ] Set out NCO A9 Silver Tank car L to Stage 1
[ ] Set out J&B 104 Red Boxcar L to Stage 1
[ ] Set out J&B 50 Black Gondola L to Stage 1
Train terminates in Lexington

Now, I just copy all of this into Word, enlarge the font so my old eyes can read it, and print it out.

Very easy, and much better. For instance, when you choose to print the manifest, it will not tell you how many cars you are leaving with! That would have been handy today…

I found it and adding the weight and cars is just a matter of checking off a few more boxes.

Glad we talked, answered a few questions I had.

So that means by October you will be able to tell me everything I did wrong?

I can do that NOW…:wink:

Another handy option is the “Car Roster”. When your starting an operating session, and bring up the car roster, click the button at the bottom that says “Location”. This will will list your roster by “Locations” in alphabetical order and list what cars are supposed to be there. Print that out and it Makes it easier when setting your cars out.

It will also show you what trains those cars will be on.

Found the answer to the question I asked Ken in the Operations Forum. Not a bad layout of orders.

What Bruce has showing isn’t what we used on my layout. I had printed out the “Switch List”, which prints out the work at each location on a separate sheet of paper. This was before I found out about the Text Editor, which prints it out the way Bruce has it. …on one sheet.

The Switch List also doesn’t print out the train length, weight and number of cars, which can be confusing. But we muddled our way through it…:wink:

Here’s the car roster that Ken was talking about, sorted by location.


I will typically print out one sorted by car number as well. This helps in putting out the cars, as it makes it easier to find a specific car.

Lots of different sort options. You can also change a car’s location by pressing the edit button.

Bruce Chandler said:

You can also change a car’s location by pressing the edit button.

That alone may be worth the bother of changing over. I can do that for the Train Ops database using SQL Lite, but I’m never sure if manipulating thy database outside the software isn’t going to screw something up.

Ken/Bruce. Did you end up doing the double-spur-length tweak, or do you find aggressive mode works well enough to move cars?