
Engine Driver¶
Engine Driver (ED) is an Android App that uses the WiThrottle Protocol or the DCC-EX Native Commands to connect directly to the EX-CommandStation via WiFi. It can also connect to the JMRI WiThrottle Server via WiFi using the WiThrottle Protocol.
If you wish to connect Engine Driver directly to EX-CommandStation, you need to add a WiFi option to your EX-CommandStation.
If you wish to connect Engine Driver to JMRI, you need to start the WiThrottle Server and (optionally 1) the Web Server in JMRI on the computer running JMRI. The JMRI computer must be connected to the EX-CommandStation using a USB cable.
Platforms¶
![]()
-
You can Get 'Engine Driver Throttle' from the Google Play Store
or -
Visit the Engine Driver Website: https://enginedriver.mstevetodd.com/ for more information.
Extensive help is available at the Engine Driver Home site.
Standard Features (all WiThrottle servers)¶
- Control one to six locomotives or consists
- Speed and direction control
- Up to 29 DCC functions
- Create and edit consists (software-defined)
- Control layout power, turnouts, routes, and access JMRI web panels and windows
- 'Discover Server' Detect, Select & Connect to WiFi enabled Command Stations
- 'Roster Server' download Engine ID's & function keys from the Command Station
- 'Virtual Engine Sounds' {Bell, Horn, Short Horn, Mute} for motor only decoders, on first two throttles
- Able to use inexpensive Bluetooth gamepads for tactile control
- Multiple theme, colours and throttle layout options
EX-CommandStation Specific or Advantageous Features¶
- DCC-EX EXRAIL Automation {Handoff}, Route {Set} and EXRAIL Command function buttons
- Able to select local images for roster locos
- New 'Request Loco ID' & 'Drive Away' feature from a Program track onto Mainline track with EX-CommandStation
EX-CommandStation Specific Features - when using the DCC-EX Native Protocol¶
- Read and write DCC addresses on the Programming Track
- Read and write CVs of decoders on the Programming Track
- Write CVs of decoders on the Main Track
- Issue Native commands to the EX-CommandStation
- TrackManager control - able to change the type and state of each Track/Channel (e.g DCC and DC)
See the Engine Driver - Features when using the Native Protocol page for more information.
Screenshots¶

Operation¶
See https://enginedriver.mstevetodd.com/operation/getting_started.html
and https://enginedriver.mstevetodd.com/videos/index.html
Using a Bluetooth Gamepad Controller¶
Here is one of a number of Bluetooth controllers that provides extra function buttons and you can hold by placing your finger in the ring and using the buttons and DPAD.

Examples: Walmart : AliExpress
Notes From Steve:
I set speedsteps to 10, change amount to 1, repeat delay to 9999, horizontal switching layout, throttle web view.
I acquire loco/consist using my phone, then dim & lock and put phone in my holster.
Then I can "bump" the joystick up and down 3,2,1,0,-1,-2,-3, easily keeping track of the current "notch". 1 is coupling speed, 2 is switching/yard speed, 3 is mainline.
If I'm at home, I put the Conductor view in the web and I have my work for each location.

More information is available on the Engine Driver site.
Adding a Physical Dial (Knob)¶
It is possible to easily add a rotary dial (knob) to Engine Driver. see Adding a Physical Dial/Knob to Engine Driver for more information.
Recording a log file in Engine Driver¶
If you are having difficulties with Engine Driver connecting to an EX-CommandStation it is very helpful if you can provide the support team with a log file of when the problem occurs.
To record a log file in Engine Driver:
- Start Engine Driver
- From the menu, select
View Log - Click :guilabel:
Start recording to a file - Click :guilabel:
Close - Attempt whatever is causing the problem a few times
- Exit ED
- Connect a USB cable to your phone and PC
- Allow access if the phone asks.
- In some versions of Android you may also need to change the connection type on the phone from 'charging' to 'file transfer'
- Open a file manager and find the connected phone
- Browse down to the folder
...\Internal shared storage\Android\data\jmri.enginedriver\files - Find the most resent file that looks like
logcatxxxxxxxxxxxxx.txte.g. logcat1699833098998.txt - Attach that file to a message here in discord using the paperclip button on the toolbar above the message content
-
The JMRI Web server is required if you want to show the Loco images in Engine Driver from JMRI. ↩