My Throttle
I got the idea for this throttle set up from Jimmy over at DIY and Digital Railroad.
In my case, I had the old cell phone (a Samsung Galaxy S8), an old phone mount, and assorted cables. I paid $35 for the volume knob, and $15 for the USB-C splitter. - so for me it was $50 out of pocket.
NOTE: Your phone needs to handle USB devices. Any of the Android phones with USB-C charging ports should be OK, but older than that, might be an issue.
I really like the size and the weight of the knob, it feels really good in the hand. It also has a 'clicky' turn, providing a great feedback when using.
I can hold the volume knob while operating the layout and the phone sites in the holder on the end of the layout. The knob allows me control the speed, and direction of the locomotive (including stop). And since my BOE Line layout is only about 7ft long, the phone is always within reach, so I can reach over and operate the buttons for my sound equipped locomotives.
Engine Driver Switching Layout
The primary reason this whole thing works, is due to Engine Driver App. While it will work "out of the box', I my opinion, there are a few setting changes that need to be made to make this setup really 'sing'. First is using one of the "Vertical Switching" screen layouts. [go to Preferences -> Throttle Screen Layout ] . All the other setting have a slider for speed, and then a separate 'forward' and 'reverse' button. In the switching layout, the slider now serves as both speed and forward/reverse. Center on the slider is "stop", down is reverse while up forward. And the further from center, the faster your locomotive will move.
Using the volume knob, starting from a stop, I just turn the 'volume' up to make the locomotive move forward. The 'louder' I turn the knob, the fast the locomotive will go. Then turning the 'volume' down, the locomotive will slow down, until it comes to a stop. If I then continue to turn the volume down, the locomotive will begin to move in reverse. And the 'quieter' I turn the knob, the faster it will go in reverse. Of course, turning it back up will slow down the reverse speed, until it completely stops. This volume knob also has a push feature, which can be set to "stop". So anytime I want to stop, I can just press down on the button.
Engine Driver in the Vertical Switching Layout
The second thing you should do is map the volume button options to throttle actions. The "push" option is actually set by the hardware to be part of a few different actions, giving this volume knob a total of 6 functions. While a single "push" is considered mute, a long press is considered "play/pause". A push along with a turn is considered next/previous track. I personally find these extra 'push' options to be easy to trigger by accident, and really don't want to do something accidentally while running my trains. So I change the default mappings in Engine Driver to make all the different "push" options to all map to "STOP". For my controls, I map the following:
Volume Up --> Increase speed
Volume Down --> Decrease speed
Mute --> Stop
Next Track --> Stop
Previous Track --> Stop
Play/Pause --> Stop
Function Mapping for Throttle
Go to Preferences, and scroll down to the "Additional Throttle Control Source Preference" and choose Gamepad/USB Preferences
In the Gamepad/USB Preferences page, choose the Gamepad/USB Type and then choose the USB Volume Knob
Once you have set the USB Volume Knob as the type, you will be able to scroll down and see the various mapping options. Choose any of the "volume knob functions" (such as Stop, Play, Mute, etc) to then define the throttle action you want to have applied.
Go to Preferences, and scroll down to the "Additional Throttle Control Source Preference" and choose Gamepad/USB Preferences
In the Gamepad/USB Preferences page, choose the Gamepad/USB Type
Choose the USB Volume Knob
Choose any of the "volume knob functions" to define the matching throttle action.
For reference, here is the 1 page instruction manual for the USB volume knob.