JMRI Operations

The operations program allows you to build computer generated car manifests for your railroad. A manifest or switch list defines where a car is located on the railroad and how and where it should be eventually positioned on the railroad. The program allows you to build a roster of cars, define locations on the railroad, and routes for trains to travel. The car roster includes information about the car, including road name, type of car, color, length, date built, and its owner. Trains are assigned routes that define locations where cars can be picked up or dropped. Features include the ability to define what car types and car road names a location can service, the available track space for a location, and the maximum length the train can be between any two locations on the route. Locations can have sidings, yards, staging and interchange tracks. Optionally, trains can be configured to require a caboose or car with FRED. The program generates car manifests for each train and optionally for any location. The program can also place icons representing trains on a JMRI panel. The icon can be taught to move in the panel along with the train from location to location.

Operations Demo Files

The operations program provides a set of demo files to help introduce you to the some of the features and capabilities of this program. To load the demo files, first open the Operations Settings panel "Tools->Operations->Settings", and in the upper left corner of the Setting panel is the Tools menu, select "Load Demo Files". The program will create a backup of your current configuration if you have one, and then load the demo files. Restart JMRI to complete the demo load process.

The program also supplies a simple panel to show how the train icons work. Load the panel before building the trains by selecting in the main JMRI menu, "Panels->Load Panels .." a window should appear and open the "operations" directory and then open the "Operations Demo Panel" xml file.

Quick Start Help

In the top level menu for JMRI find the "Tools->Operations" menu. There are six items in this menu. We recommend that you start with "Settings" and work your way down to "Trains". We also recommend that when defining your locations that you first use yard and siding tracks, and try staging and interchange tracks when you're more comfortable with how the program operates.

British Railways

The program supports an alternate set of railway terminology for our British modelers. To use British terminologies, go to the JMRI Advanced Preferences (Edit->Preferences.. select the Show Advanced Preferences checkbox) and select English (United Kingdom) in the "Locale:" menu box. The program will also convert from centimeters to meters when entering wagon, locomotive, or location lengths, just append "cm" to any length.

Settings

The Settings panel contains general parameters for the operations program. Select from the JMRI main window "Tools->Operations->Settings" to load the Settings panel. The Setting panel has fields and buttons to allow you to enter your railroad name, the directions your train's travel, the scale that you are using, printer and icon controls, and the ability to create backups and restore files for operations.

Railroad Name

Enter your railroad name in the field across from "Railroad Name". This name will show up on your manifests.

Train Directions

If your railroad depicts trains traveling north and south select the "North/South" box, if your trains travel east and west select the "East/West" box. You must select at least one direction, and can if desired select both.

Maximum Train Length

Now enter the default "Maximum Train Length" you desire for your trains. This field provides the maximum default train length between cities. Later you can override this length if you wish a shorter train between any two locations. A 1000 foot train can carry approximately 20 cars, and is of course dependent on the car lengths assigned to the train.

Maximum Number of Engines

Now set the maximum number of engines that you want the program to assign to a train. If you don't want the program assigning engines, set this value to 0.

Switch and Travel Times

The program when generating switch lists for the various locations on your railroad, will estimate the arrival times for your trains based on the train's departure time and the switch and travel times. Enter the average number of minutes it takes to drop or pickup a car on your railroad. Then enter the average amount of time in minutes it takes to travel from one location to the another.

Scale

Next select the scale you are modeling. This is useful when you enter the length of cars and tracks. You can enter the number of actual inches and the program will convert to scale feet. Append a double quote to the length when entering actual inches. The program will also automatically assign the proper NMRA weight for a car based on scale and length.

Car Types

The program has two sets of car types for you to use. Descriptive provides type names like "Boxcar" and "Tankcar", and AAR provides type names like "XM" and "T" for boxcars and tank cars respectively. Select the one that you prefer. Note that if you change the car types after you've entered cars, locations, or trains, press the "Save" button at the bottom of the Operation Settings panel and also press the "Save Builds" button on the train panel to update all of your files.

Owner Name

You can optionally enter your name in the "Owner" field.

Add Operations Menu to Main Menu

When selected, add the operations menu to the main menu bar. The operations menu will appear the next time you restart JMRI.

Manifest Printer Font

The program supports two types of fonts for printing. Select the desired font using the radio buttons.

Build Report Details

You can adjust the amount of information that the build report will show. Select one of the four levels using the radio buttons. The program when generating the build reports stores the "Very Detailed" information to disk. The radio buttons control how much of that data is actually printed. The "Minimal" radio button provides the least amount of information and "Very Detailed" provides the most. If you're only interested why a train won't build, the "Minimal" setting can provide you with this information. The "Normal" setting shows which engines and cars are being excluded from the train, and which engines and cars are being picked up and dropped. The "Detailed" setting will generate quite a few pages depending on the size of your railroad. It will show all available cars and engines, and a bit how the program finds destinations for the cars and engines. The "Very Detailed" setting produces the most pages, and will show why cars are not picked up or dropped. Be sure and press "Save" after changing the build report selection.

Show Car Length

Select the "Show Car Length" checkbox if you want the car's length shown in your manifests and switch lists.

Show Car Load

You can optionally show whether the car is empty or loaded. When a car is delivered to a siding the load state will change. You can also create your own loads but there are restrictions. Cars with "loads" other than empty or loaded can only be serviced by sidings with a Schedule. It is strongly recommended that you not create your own loads until you become very familiar with how the program works. For many operators, showing whether the car is empty or loaded adds just enough realism to their operations.

Show Car Color

Select the "Show Car Color" checkbox if you want the car's color shown in your manifests and switch lists.

Show Car Destination

If you want your manifest and switch lists to show the cars destination when picking it up, select the "Show Car Destination" checkbox. The program always provides the car's destination when dropping a car from the train.

Append Car and Engine Comments

For each car in your roster, you can have an optional comment. If you want the car's comment added to your manifest and switch lists, select the checkbox.

Train Icons

If you want the operations program to place an icon representing the train on a panel, add the panel name, otherwise leave the name blank to disable. The "Enable Train Icon SetX&Y" when selected allows you to teach the operations program where to place the train icon on your panel when moving your train from location to location. Deselect this feature after your done teaching the program to prevent accidentally changing the train icon's position on your panel. If you also want the lead engine number as part of your train icon text, select the "Append Engine Number" box. You can select the background color of your train icon depending on the train's direction. Select the color desired for each direction using the pull down menus.

Save

When you're finished with the settings panel, press the save button to store the setting in a file called "Operations.xml". You can find this file in your JMRI directory in a folder called "operations". The program will also create a backup file each time you press the save button.

Backup and Restore

The "Backup" button will store a copy of the operation files. The "Restore" button will prompt you to select which set of backup files you wish to use to recover your operation files. You must quit and restart JMRI to complete the restoration of the operation files.

When you press the "Backup" button the program creates a new directory in operations called "backups", and then stores the operation files in a directory that is based on the day you pressed the "Backup" button. For example, if today was November 21, 2008, the program will create a backup directory named "2008_11_21".

Locations

Locations are places on your railroad that trains visit to pickup or drop off cars and engines. Locations can be cities, towns, or just places where trains need to work cars. Select "Tools->Operations->Locations" to add or edit the locations on your railroad.

To add a location, press the "Add" button located on the bottom of the "Locations" panel. A new panel should appear.

In the "Add Location" panel, enter the name of the location in box across from "Name". The location name must be unique; the program will not allow two locations with identical names. However, if you want more than one location to have the same name for your manifests and switch lists, add a hyphen and a number to the locations name. For example, "Boston-1" and "Boston-2" will print as "Boston". The program will remove the hyphen and number when printing manifests and switch lists.

Now press the "Add Location" button at the bottom of the panel. The various fields that were disabled should now appear.

Each location can have several yard, siding, interchange or staging tracks. Yards are where cars and engines are placed for temporary storage. A siding can be an industry or any place where a car is loaded or unloaded. For a train to service a location, there must be at least one track for that location. See below how to add tracks to your location.

The tables show the length of the tracks, the amount of track that is occupied (Used) by cars and engines, the total number of cars and engines (Rolling Stock) at each location, the number of cars and engines that will be picked up (Pickups) by trains, and the number of cars and engines that will be delivered (Drops) by trains.

Location Service Direction

You can decide which train direction the location can service. For example, if only south bound trains can access the location select "South" and deselect the other directions. This can be useful if you want to only support trailing point switching for a given location. If a location can support multiple directions then select the ones that are appropriate.

Location Rolling Stock

You can control the rolling stock a location can service. Push the "Clear All" to deselect all types, or "Select All" to select all types, then select or deselect the rolling stock you wish the location to accept.

Yards

To add a yard, press the "Add Yard Track" button. Now enter the name of the yard along with the length of the track in scale feet or in actual inches. Append a double quote (") to the length when entering actual inches and the program will convert the length into scale feet. Append cm if you want to convert from centimeters to meters. Press the "Add Yard Track" button at the bottom of the panel and the disabled fields should now appear.

Rolling Stock Serviced

You can control what type of rolling stock the yard can service. Note that the yard rolling stock is restricted to the ones that the location can service. If the rolling stock that you wish doesn't appear for a yard, confirm that the location's rolling stock types are properly selected. If the rolling stock type you want doesn't exist for a location, you will have to create the type using the "Cars" panels, see Cars below.

Road Names Serviced

You can also restrict which roads a yard can service. Select "Accept Only" if you want to build a list of road names that the yard will accept. Select "Exclude" if you want to build a list of road names that you want to exclude from the yard.

Comment

You can enter an optional comment for the yard.

Save Yard Track

Press the "Save Yard Track" to save your work. The program will create a file (OperationsLocationRoster.xml) in your JMRI directory in a folder called "operations". The program will also create a backup file containing the last settings for all of your locations.

Sidings

To add a siding, press the "Add Siding" button. Sidings are very similar to Yards , so see above for more information. You can if you wish schedule the order that cars will be delivered to a siding. See Schedules below for more information.

Schedules

If you would like to see cars delivered in a particular sequence, or with a specific load for delivery or shipping, the program allows you to apply a schedule to a siding. This is an optional feature and shouldn't be used until you become very familiar with how the program generates manifests and switch lists. A schedule provides very fine control on the order types of cars will be delivered to a siding. You can also specify the road name for the type of car delivered. For example, if you wanted two SP boxcars to be delivered followed by a tank car loaded with "Oil", you can create a schedule that will do exactly that. To create a schedule press the "Edit" button next to "Optional Schedule" pull down menu on the "Edit Siding Track" panel. Pressing the "Edit" button should create the "Add Schedule" panel.

Enter a name for your schedule and press the "Add Schedule" button on the bottom of the panel. Multiple sidings can use the same schedule as long as the sidings use the same car types and roads. Now add your first delivery for this siding by selecting a car type in the menu box found in the lower left corner of the panel and pressing the "Add car type" button. A new item should appear in your schedule containing the type of car, a pull down menu for road names, and a count of 1. You can if you wish specify a particular road for the type of car you entered, or leave it blank if you don't care about the road name. You can also specify the car load received and shipped.

If you wanted more than one car type to be delivered consecutively, increase the count to the number that you wish. The maximum count is 10 and the minimum is 1. Repeat selecting the car types and pressing to "Add car type" until your have a delivery schedule you like. Press "Save Schedule" and close the schedule panel when you are done.

Note only car types and roads that are accepted by this siding are available. If a car type or road isn't available, check the car types and roads for this siding and location.

If you want a specific load for your cars, you can create them using the Edit Car Attributes for car "Load". Each new load is associated with the car type. For example you can have "Screws" for a boxcar, and "Oil" for a tank car. The program will only deliver cars with a "Schedule" load to a siding that has a Schedule that also requests that particular load. However, cars with a Schedule load can still be placed at yards, staging, and interchanges.

You can optionally use your staging tracks to empty cars with a "Schedule" load, and you can also optionally create "Schedule" loads using staging tracks.

You can also access your Schedules from the Locations Tools menu. The Schedules table provides status for each schedule. Since you can assign a schedule to multiple sidings, the table also provides additional status for each of the sidings that use that particular schedule. The table also allows you the edit a schedule once its been assigned to a siding.

Local Switcher

If you want only a local switcher to service a siding, deselect all of the direction boxes for that siding. The program will only allow a train that has one location in its route (local switcher) to service the siding. This would be useful if you wanted your trains to pick up and drop cars to a yard, and then have a local switcher move them to the town's sidings.

Why are there Yards and Sidings?

The program when generating a switch list for a train with a single location (local switcher) will never move a car from a siding to a siding or yard to a yard, only yard to siding or siding to yard. This rule also applies to interchanges.

Interchange Tracks

If you want the program to force the exchange of cars between trains you need to define an interchange track. Cars dropped off to an interchange track by a train on a given route will not be picked up by any train using that route. Another train with a different route is required to pickup the cars. For example, you might have a branch line that picks up and drops off cars from a terminal. By defining the track as an interchange, once the branch line train delivers the cars, they will remain there until the main line train stops to service the terminal's interchange track.

If you want more control on how your interchange track will operate, you can optionally specify a train or route to pickup or drop off cars at an interchange track.

Staging Tracks

A staging track allows you to have all cars and engines in a train delivered to one track. When terminating a train into staging, the program will search for a completely empty track, one with no engines or cars. Trains can not share staging tracks; the program will only place one train per track. When departing a location with a staging track, all cars and engines on one track will be assigned to the train. A location can have multiple staging tracks, but can't have any other types of tracks, sidings, yards, etc. Staging tracks can be at the start of a route, the end of the route, or both. Staging tracks in the middle of a route are ignored by the program.

Note if you are running a train to and from the same staging track, you must define two staging tracks for the program, one to depart on and one to return on. Physically the two staging tracks can be the same one.

If you require a train leaving staging to have a certain number of engines, engine model, or road name; the program will search all staging tracks at the departure location for a train meeting those requirements. If you set the engine requirements to 0, the program will select the next available train from staging; and will ignore the number of engines leaving that staging track. See Train Requires for more info.

Looping Trains through Staging

Sometimes for operations a train enters staging at one location (call it A) and then later departs at another location (call it B). From an operations perspective locations A and B are locations not directly connected by trains. So we need to relocate engines and cars from location A to B so the operations manifest can make sense. One way to do this is to terminate the train into staging at location A. Then create a "virtual" train that simply moves the cars from location A staging to location B staging. Doing this causes the program to "move" the train and its cars from A to B which is really the same physical track. Later you can build a train that departs location B, and the manifest will show that the train originated from B and not A.

Staging and Car loads

Staging tracks can optionally swap the default car loads from empty to loaded, and loaded to empty. Select the "Swap default Loads and Empties" if you want your cars loads to change when arriving at the staging track. If you're using "Scheduled" loads, you can optionally remove the load when the cars arrive at the staging track. Select the "Empty cars with Scheduled loads" box if you want to change your cars with "Schedule" load to the default load empty.

You can also generate "Schedule" loads on demand. Select the "Generate scheduled loads if necessary" to create schedule loads for your sidings that are requesting a schedule loads. The program will create a schedule load for an empty car that is the correct type for the siding that is demanding a load. For a load to be created, the siding must be directly serviced by the route that departs the staging track.

Cars

The cars panel allows you to edit your car roster. You can enter a car's number, road, type, length. The program will automatically calculate the car's weight based on length and the scale your modeling. You can optionally add the car's color, build date, load and owner. If you want a group of cars to be switched as a unit, you can create a "kernel". You can assign any number of cars to a kernel but the type of the first car assigned will be used by the program to determine if the kernel is allowed at a location. The entire length of the kernel is used to determine if the cars in the kernel will fit. Note that the program also includes space for the car's couplers when calculating the length of a kernel.

Importing Cars from a File

If you already have a list of cars in a database, you can import the cars into the program. The import function requires an ACSII text file, with one line for each car. The import order is car number, car road name, car type, car length, car weight, car color. The following shows two examples of the correct format:

336 GCR Flat 40 3.8 Black
655578 UP Boxcar 40 3.8 Yellow

Each line can start with a space and multiple spaces between fields is okay. Optionally you can include additional information in the following order, owner name, date built, and location. The location can have two fields, the location name followed by the location's siding or yard name separated by a hyphen. The following shows two examples of the correct format:


336 GCR Flat 40 3.8 Black AT 1930 Home Town USA - George's Oil Terminal
655578 UP Boxcar 40 3.8 Yellow DB 1934 York - York Freight

If you prefer to use comma delimiters instead of spaces, place the word "comma" at the start of your import file and use commas instead of spaces. The following are two examples of importing cars with comma deliminters.

comma
336,GCR,Flat Car,40,3.8,Black,AT,1930,Home Town USA,-,George's Oil Terminal
655578,UP,Tank Car,40,3.8,Yellow,DB,1934,York,-,York Freight

You need to be very careful with spaces when importing a comma delimitated file. The program will include leading and trailing spaces if they exist between the commas.

To import a file, use the "Tools" menu in the upper left hand corner of the Tools->Operations->Cars menu. Then select "Tools->Roster->Import from file". Note that the program will only add cars that don't exist in the program's car roster. It the car already exists, the import will be skipped by the program. You must also create the locations and their tracks before importing the cars into the operations program.

To improve the speed of the car import, you can close the cars panel. It takes significantly more processor cycles to update the cars panel than to actually import the cars.

After importing your cars, you must save them if you want to keep them as part of your roster. Select any car by pressing the edit button and then press the "Save" button that can be found at the bottom right of the "Edit Car" panel.

Adding Cars to your Roster

To manually add a car to your roster, press the "Add" button located at the bottom of the "Tools->Operations->Cars" panel.

Then select the road for the car. If the desired road doesn't exist, press the "Edit" button across from the road select menu box. This will allow you to add a new road or delete any that you don't need.

Road Number

Now enter the car's number in the text box. The program requires a unique road name and road number for each car. If you have cars with identical roads and numbers, simply add a -1, -2, etc. to each of the car numbers. The program when printing out the manifest or switch list will drop the -1, -2, etc. from the car's road number.

Car Type, Length, Color, Weight

Select the car's type, length, and color from the menu boxes. Use the "Edit" button to add or delete car types, lengths, or colors that you want to add or remove. The car weight is automatically calculated, but you can enter a different weight if necessary. When entering the length of a car, enter the length of the body and not the total length. For example, a forty foot boxcar has a length of 40 feet. The program when calculating lengths will add two feet to each end of a car for the couplers. Therefore when you place a forty foot car at a siding, it will consume 44 feet of track.

Car subType

The program supports the ability to add a subType to your car types. Adding a "-subType" to your car type will create a new type of car. The "-subType" is not printed on the manifest or switch lists. For example you might have coal cars with loads and coal cars that are empty. If you enter the car type as HopCoal-C for your cars with coal, and HopCoal-E for the empties, the program can use this information to assign and deliver cars to their appropriate trains and locations respectively.

Caboose, FRED, Hazardous

If the car is a caboose, has a FRED (Flashing Rear End Device), or is hazardous, select the proper box. The program uses the caboose and FRED functions to place the car at the end of a train when the train requires a caboose or car with FRED. The hazardous checkbox will cause the program to add a note to the switch list that the car is transporting hazardous materials. Your railroad's policy regarding hazardous materials can than be applied to this car!

Car Location

Now set the car's location on the layout. If the car is off the layout, set the location to none (blank space).

Car Load

You can optionally set the load state of the car. Select E for empty or L for loaded. You can also create your own car loads, but there are restrictions. Only sidings with Schedules can load or unload cars with loads that you've created. It is also suggested that you use a format similar to L(commodity) to describe your loads. For example a load of tools could be entered as L(Tools).

Kernel, or Group of Cars

If wish this car to be part of a kernel which is a group of cars that you want to switch as one unit, press "Edit" across from "Kernel" and enter a kernel name. Then select the kernel from the menu box.

Optional Fields

Finally you can optionally enter the build date, owner and comment for this car.

Save

Press "Save" to store the car's settings. The program will create a file (OperationsCarRoster.xml) in your JMRI directory in a folder called "operations". A backup file with the last settings for all of your cars is also created each time the "Save" button is pressed.

Edit Car Attributes

To the right of each of the car attributes (Road, Type, Length, Color, Kernel, Load, Owner) is an "Edit" button. Use this to add, delete, or replace the available attributes for a car.

Add Button

To add a new car attribute, enter the desired text in the text box and press the "Add" button. When you first enter a new car attribute it will show up at the start of the list. Later when your restart the program it will be sorted in the correct order.

Delete Button

To delete a car attribute, select the attribute you want to delete in the menu box and press the "Delete" button.

Replace Button

If you need to change a specific car attribute (road, type, color, etc) in your entire car roster, you can use the "Replace" button found at the bottom right of the edit car attribute panel. For example, if you wish to change the car road name attribute "UP" to "UPS" for all of your cars. Press the "Edit" button for any of your cars in the Cars panel, and then press the "Edit" button across from Road in the "Car Edit" panel. Enter the new road "UPS" in the text box, select "UP" in the menu box, and press "Replace". All cars with "UP" as their road will now have "UPS" as their road name.

Car Set Location Button

After creating a car, you can set the car's location, and optionally the car's destination and train. Normally the car's destination and assigned train are generated by the program, but you can use these fields to force a car to a specific location using a specified train.

Tools

The cars "Tools" menu allows you to perform some useful functions to your car roster. In addition to "Import from file" feature described earlier, you can remove all of the cars in your roster using the "Delete all cars" option. You can also preview and print your car roster. The preview and print features use the same "Sort by" radio buttons as the cars panel. One of the more useful sorts is by "Location", this allows you to quickly verify your car locations before or after an operations session.

Engines

The engines panel allows you to edit your engine roster. You can enter an engine's number, road, model, type, and length. You can optionally add the engine's build date and owner. If you want a group of engines to be assigned as a unit, you can create a "consist". The engine type is used by the program to determine where engines are picked up and or stored at the various locations on your layout. Some of default engine types are electric, diesel, gas turbine, and steam.

Import Engines

If you already have a list of engines in your JMRI roster or in a database, you can import the engines into the program. To get your engines from your JMRI roster, select "Import from JMRI roster" from the Tools->Operations->Engines->Tools menu. Only engines that don't exist will be added to the programs engine roster. This way you can use this tool any time you add engines to your JMRI engine roster. The JMRI engine roster doesn't have the length field, so a default length is entered for you. You should correct the engine length if you want the program to correctly calculate your train lengths.

Import Engines from a File

The import from file function requires an ACSII text file, with one line for each engine. The import order is engine number, engine road name, engine model, and engine length. The following shows two examples of the correct format:

236 UP RS4 40
5578 SP SW1200 42

Each line can start with a space and multiple spaces between fields is okay. Optionally you can include additional information in the following order, owner name, date built, and location. The location can have two fields, the location name followed by the location's siding or yard name separated by a hyphen. The following shows two examples of the correct format:


236 UP RS4 40 AT 1930 Home Town USA - Engine Terminal
5578 SP SW1200 42 DB 1934 York - York Engine Yard

If you prefer to use comma delimiters instead of spaces, place the word "comma" at the start of your import file and use commas instead of spaces. The following are two examples of importing engines with comma deliminters.

comma
236,UP,RS 4,40,AT,1930,Home Town USA,-,Engine Terminal
5578,SP,SW 1200,42,DB,1934,Town of York,-,York Engine Yard

You need to be very careful with spaces when importing a comma delimitated file. The program will include leading and trailing spaces if they exist between the commas.

To import a file, use the "Tools" menu in the upper left hand corner of the Tools->Operations->Engines menu. Select "Tools->Roster->Import. Note that the program will only add engines that don't exist in the program's engine roster. It the engine already exists, it will be skipped by the program.

After importing your engines, you must save them if you want to keep them as part of your roster. Select any engine by pressing the edit button and then press the "Save" button that can be found at the bottom right of the "Edit Engine" panel.

Adding Engines to your Roster

To manually add an engine to your roster, press the "Add" button located at the bottom of the "Engines" panel. Then select the road for the engine. If the desired road doesn't exist, press the "Edit" button across from the road select menu box. This will allow you to add a new road or delete any that you don't need. Now enter the engine's number, model, type, length and horsepower. The engine's horsepower, the train's weight, and track grade is used by the program to calculate how many engines are required when using the "Auto" feature when building trains.

Now set the engine's location on the layout. If the engine is off the layout, set the location to none (blank space). If wish this engine to be part of a consist, press "Edit" across from "Consist" and enter a consist name. Then select the consist name from the menu box. Finally you can optionally enter the build date, owner and comment for this engine.

Engine Models

The program allows you organize your engines by model. Each model can only have one engine type, length and horsepower rating associated with it. For example, if you assign the model name "RS11" to a set of engines, when you change the length of one of the "RS11"s, the length will also change for the others.

Save

Press "Save" to store the engine's settings. The program will create a file (OperationsEngineRoster.xml) in your JMRI directory in a folder called "operations". A backup file with the last settings for all of your engines is also created each time the "Save" button is pressed.

Engine Set Location Button

After creating an engine, you can set the engine's location, and optionally the engine's destination and train. Normally the engine's destination and assigned train are generated by the program, but you can use these fields to force an engine to a specific location using a specified train.

Synchronize with NCE Consists

If you are using NCE as your DCC command station, you can have the program synchronize your consist numbers with your engines. The program will read all of the consists out of the NCE system and then will search for matching engines in your operations roster. The program will assign the consist name nce_xxx where xxx is the consist number. To synchronize your consists, select "Synchronize with NCE Consists" under the "Tools" menu.

Routes

A route is a list of locations that a train will visit. Later you can decide if the train stops at a location for work. Routes can be point to point or out and back. To build a route, select "Tools->Operations->Routes".

Then press the "Add" button located at the bottom of the page.

Enter the route name. Each route must have unique name. Then press the "Add Route" button located at the bottom of the panel. Now select the location the train will depart by selecting the location in the menu box located at the left bottom side of the panel. Press "Add Location". Now build your route by selecting the next location the train will visit, select all locations that the train will pass through even if the train will not work the location. This way your train's engineer will know when reading his manifest the towns he will be traveling through. Each time you add a location to the route, the table shows the order in which the train will visit. You can move a location up or down in the sequence if needed.

Route Train Direction, Moves, Drops, Pickups, Train Length, Grade, X and Y

Each location has the train's departure direction, number of desired car moves, and whether car pickups and or car drops are allowed at that location. You can also adjust the maximum train length that can depart that location. A car move can be a car pickup or car drop at that location. For example, 5 moves can be 5 pickups or 5 drops or any combination of 5 pickups or drops.

The grade is used to determine how many engines the train will require for that segment. The X and Y are the coordinates on your dispatcher's panel for the optional train icon. You can set the coordinates here, or use the "SetX&Y" train icon popup menu to teach the program where you want the train icon placed when the train is at the specified location. Leave the X and Y coordinates at zero if you want to manually move the icon or you're not using the icon feature. After setting the number of moves, maximum length, or coordinates, click on the table to make sure it is recognized by the program, then hit "Save Route."

Save Route

Press "Save Route" to save your route. The program will create a file (OperationsRouteRoster.xml) in your JMRI directory in a folder called "operations". A backup file with the last settings for all of your routes is also created each time the "Save Route" button is pressed.

Copy Route

In the Route panel select "Tools->Copy Route" to make a copy of your route. Enter the name of the new route and select the route that you want to copy. If you want the route reversed check the "Invert" box.

Trains

Now that we've created our routes we need trains to move cars! Create a train by selecting "Tools->Operations->Trains" from the top level menu.

Press the "Add" button to create a train.

Enter the train's name and optional description, and then press the "Add Train" button. Both will show up on the train's manifest. The train's name will also show up on the train icon, so short names work best. Then select the route that this train will travel. There's an Edit button to the right of the route that allows you to directly edit the selected route. Once a route is selected a list of locations that the train will visit should appear. You can deselect any location that you don't want the train to work.

Train Departure Time

Enter the time that this train will depart the first location in its route. You can use the departure time to sort your trains in the order that you want them built when using the Build Selected Trains button.

Train Rolling Stock

You can determine what type of rolling stock the train will service. Select the Rolling stock the train will carry by clicking on the appropriate check boxes. A checked box means the train will service this type of rolling stock.

Train Road Names

You can control the car road names that the train will service. If the train will service any road name, select the "Accept All" radio button. If you want to accept only some road names, select "Accept only" radio button. Then use the menu of road names and "Add Road" button to make a list of road names that the train will service. To remove a road name from your list, select the road name from the menu and use the "Delete Road" button.

To build a list of road names that the train will not service, select the "Exclude" radio button. Use the menu of road names and the "Add Road" button to build a list of roads that this train will not service.

Train Requires

You can control the number of engines that will be assigned to this train, and optionally, the engine's model and road name. If you want two or more engines assigned to a train, the engines must be part of a consist. If you select "Auto", the program will calculate the number of engines required for this train based on the weight of the train, the track grade, and the horsepower of the engines.

You can also require a caboose or car with FRED (Flashing Rear End Device) as the last car in the train, and you can optionally specify the road name for the caboose or car with FRED. If you leave the road name blank, the program will try and find a caboose with the same road name as the engine.

Reset Train

The "Reset Train" button allows you to remove engines and cars that have been assigned to a train. Useful when you want to try various build options and don't what to physically move engines and cars on the railroad.

Save Train

Press "Save Train" to save your train. The program will create a file (OperationsTrainRoster.xml) in your JMRI directory in a folder called "operations". A backup file with the last settings for all of your trains is also created each time the "Save Train" button is pressed.

Building Trains

To build one train, press the "Build" button in the row for the desired train in the "Trains" panel. The button will become "Print" after the train is built. If you want to review how the train was built, select the "Build Reports" before pressing the "Print" button for the desired train. If the "Preview Manifest" checkbox is selected, the program will generate the build report and manifest and present them in preview windows. If you want to build several trains without having to press individual buttons for each train, select the trains that you want built and press the "Build" button found at the bottom of the trains panel. The program will then build manifests for all of the selected trains.

If a train fails to build, the "Move" button will change its text to "Report". Pressing "Report" will print or preview the build report for this train. Whenever a train fails to build, a build failure message will appear. If you want to disable this feature deselect the checkbox "Build Messages".

Problems Building Trains

If you have a problem building a train you can select the "Build Reports" checkbox at the bottom of the train panel. When a build fails for any reason and the "Build Reports" checkbox is selected, the program will send a report to your printer if the "Preview Manifests" isn't selected; or to a preview window if the "Preview Manifest" is selected. The build report can print out different levels of detail, from minimal to very detailed. See the Settings section Build Report Details for more information on how to change the build report detail level.

Printing Manifests

After building a train, the "Build" button will become "Print". Pressing the "Print" button will then print the manifest for that train. If you want to print manifests for several trains, select the trains you want in the build column and then press the "Print" button found at the bottom of the trains panel. The program will then print manifests for all of the selected trains.

Switch Lists

Press the "Print Switch List" button if you want a switch list for a given location. A menu will appear that allows you to select which locations to preview or print. Once you've determined which locations you want to print or preview, press the "Save" button to keep your selections.

Moving Trains

After providing your operators with a printed manifest or location switch list, you must keep the program database synchronized with the actual movement of trains on your layout. This is done by the "Move" button located on the far right of the train menu. Pressing the "Move" button will cause the train to depart its current location move to the next location in the route. The engines and cars assigned to the train will travel to the next location on the railroad. At each location, cars can be picked up or dropped off. You can also move a train by selecting the train's icon and selecting "Move" from the icon's popup menu. Each press of the "Move" button moves the train closer to its terminal location. When the train arrives at the last location in the route, the last press of the "Move" button will terminate the train. Once a train is terminated, you can build it again.

Each time an engine or car is moved a count associated with them is incremented. The program uses this to determine which cars haven't moved recently and tries to select cars with the least number of moves when building new trains. Each time a location has a car picked up or dropped, the program increments a count associated with that location. The program tries to move cars to locations that have experienced the least number of car operations.

Terminate Trains

When you terminate a train, you are asking the program to move the train from its current location to its final destination. The cars and engines associated with the train will be picked up and delivered to the locations shown in the train manifest. To terminate several trains, select the trains you wish to terminate in the build column and press the "Terminate" button at the bottom of the train panel.

Save Builds

Pressing the "Save Builds" button causes the program to update the train, car, engine, and location xml files. Any time you "Move" a train the operations program will make changes to the train, car, engine, and location databases. These databases must be saved before you shut down JMRI, otherwise you will lose all of the changes that the operations program made to move a train to the next location. Pressing the "Save Builds" button before quitting JMRI allows the operations program to resume exactly at the point where you pressed the "Save Builds" button.

Building Multiple Trains for a Session

Most operating sessions require more than one train to keep your operators busy. The correct way to do this is to build and print all of the trains needed before terminating them. So if you need a dozen trains for a session, you must build twelve trains before you terminate any one train. Terminating a train tells the program that the engines and cars in that particular train have been delivered to their final locations and can be used again when building new trains. So always build all, print all, THEN terminate each train after completing its run! It is okay to build all trains, print all train, and then use the "Save Builds" button and shut down the program. Later you can restart the program and terminate the trains that completed their runs.

The correct time to terminate a train is when the train actually arrives at its destination. Terminating a train before it completes it run means that the operation database believes that the engines and cars have been delivered. It is better to build and print twelve trains and then later find out that only nine trains completed their runs. You would then terminate nine trains, and leave the other three for next time. Or if you wish you could reset any trains that didn't depart from their terminal. Reseting trains really isn't necessary, the trains that didn't run during this session could run the during the next session.

An alternate method is to build, print, and use the "Move" button for each train to track the actual movement of the trains during your session. As long as the trains on your layout match the locations in the program you can build a new train.

Operation Windows

Some of the operation panels can be resized and placed to your liking. Pressing the save button will store the size and location for the following operation panels:

The end of operations help.