Author: Lionel Jeanson
Description: Throttle documentation for JMRI project
Keywords: JMRI decoderpro dcc nmra throttle throttlepro

# How to build a throttle oriented JMRI interface

For this how to we assume you're an already experienced user of JMRI.
Particularly we assume that your JMRI layout connection is already working and that you're already able to open a Throttle Window and control a locomotive.
Further more we assume that your Roster database already exists, all most of these Throttles features are tightly linked to the Roster DB and need it to work correctly.

## 1) Prepare your rosters entry

First step is to fill in the Media and Functions labels panes in DecoderPro.
Once this is done and all functions label are defined for your rosters, you want to make sure that the options to hide the undefined function buttons and the one to use roster image as a background for a throttle window are enabled.

## 2) Design your throttle panes

At this step, when you open a throttle and select a roster (or enter an address that match a roster (there is a preference setting to enable that look back)), the background image should be there, and the function butons should reflect what you entered in DecoderPro.
Now what you can do, is set up the Throttle Window the way you like it, particularly its size, and then for each roster set the Function and Control Panel position and size as you like ( I personally choose to close the Address Panel, you can still reopen it through the View menu, and I don't need it most of the time, the save throttle menu entry will also save the closed (or iconified) status of inner windows).

## 3) Customize with Jynstruments

You can also add some specific Jynstruments to your Throttle Windows, actually you can mix Function Labels in the Function Pane for Functions that are not used that often, and Jynstruments for the most used one, or some more complex functionalities where only a Jython script can do it.
When you're satisfied with step 3) and 4 ) for a specific roster, you want to hit the Save menu entry in the Throttle Window File menu in order to save the current Throttle configuration, next time a throttle is acquired for that Roster entry, this backup file will be automatically loaded and the Throttle Window updated.

## 4) Design your throttles layout

Next step is to set up the gloabl screen layout, with maybe several Throttle Windows, the Throttle List Window (accessible from the Throttle Window toolbar) and finally hit the Save throttle layout (or Save as default throttle layout) in the JMRI Throttles Tools menu entry.

## 5) Get more control with Jynstruments

Using Jysntruments it is also possible to set up an external controller for a Throttle Window. (at the moment USB Joypad or Nintendo Wiimote, but more classic Jython scripts exist for USB Raildriver device and ...)

## 6) Finally adding a quick start button to the JMRI main window

And finally, using the Launchers Jynstruments that can be dropped at the bottom of the JMRI main Window you can add some fast launchers for specific JMRI applications, particularly loading the default throttle layout button.
Note: It is not possible to save customizations of steps 5) and 6) at the moment.