This free Android application connects to a WiThrottle Server. Supported servers include JMRI, DCC-EX, MRC Prodigy WiFi, Digitrax LnWi, and WifiTrax (for NCE). Once connected, you can control your locomotives and your entire model railroad. Speed, direction, and up to 29 DCC functions are supported for one to six locomotives or consists. You can create and edit consists (software-defined). You can also control layout power, turnouts, routes, and access JMRI web panels and windows.


Engine Driver version 2.32.151 includes:

  • More improvements to In-Phone Loco Sounds
  • Option for haptic feedback on button presses
  • Option to select a local image for roster locos
  • Option to use a normal keyboard (bluetooth or USB) as a gamepad type
  • Option to link F1&F2 to the IPLS Bell and Horn
  • Option for Server Description on the Action bar
  • Several additional TTS options
  • Volume buttons, for speed control, work on most screens
  • Loco images now cached locally
  • Web maintains state when navigating
  • Hide the status and navigation bars on Lock&Dim screen.
  • Reset gamepads on start
  • Many fixes


Under Preferences, you can turn off the "stop on release" feature if desired, and you can set a Maximum value and Maximum change% for the throttle sliders. If the throttle slider is too small for your fingers, increase the size in Preferences. You can also set the initial web page for the full-size web panel, and enable the smaller web view on the throttle screen. There are also settings to help maximize the use of your device's smaller screen by hiding items not relevant to you.


On your device, make sure you are connected to the WiThrottle server network.

Start the Engine Driver app and wait for your server's address to show up in "Discovered Servers".

Click on the discovered address, or you can enter the address and port of your WiThrottle server directly. (Using the values shown on the WiThrottle window.)
NOTE: see [here] for wifi connection issues.

On the throttle screen, click on the "Select" loco button for each loco.


Prerequisites (for JMRI):

Verify your Android device can connect to your network via WiFi and obtain an IP address.
Make sure you are running one of the latest versions of JMRI (3.8 works, 4.20+ works much better) on your PC, connected to your layout. Start up JMRI and verify you can use JMRI's included "Throttle" window to control a loco on your layout.

Start the WiThrottle function of JMRI, located in DecoderPro under Tools, Throttles.  It is also highly recommended that you start the JMRI Web Server function (Tools, Start JMRI Web Server). Both of these should be added to Preferences, Start Up as well.

Prerequisites (for MRC Wifi):

Connect the MRC WiFi module, and verify your device can connect to its network and obtain an IP address.
Note for MRC users: David Fuller has provided some additional setup information [here].

Prerequisites (for Digitrax LnWi):

Connect the Digitrax LnWi, and verify your device can connect to its network and obtain an IP address.

Privacy Policy

Engine Driver does not collect or use any private information from the user.

The device's "Android ID" is used internal to the app as a key when storing Preferences. The last 4 digits of this ID are used to create the default "Throttle Name", "Engine Driver nnnn".

The READ_PHONE_STATE permission is only used locally to your phone to (optionally) stop your locos while you are using the phone.

The ACCESS_FINE_LOCATION permission is required by Google for the app to read the WiFi SSID.