Train Simulator Controller: First Master Controller Prototype
Train Simulator has for many years given me an easy, accessible outlet for my love of trains, including operating trains. Its realism leaves something to be desired, and I’m now building my own physical controller for Train Simulator, resembling the dashboard of a Class 80x passenger EMU from the UK. The preceding sections of this blog introduced experimenting with a speedometer and AWS acknowledgment pluinger, experimenting with the starwheel at the heart of a DIY master controller, and delving into what makes a real AWS “sunflower” tick. Assuming I won’t be able to source a proper master controller from an actual manufacturer, I therefore continued down the path of building my very own: expanding my starwheel experiments into a full prototype of a master controller.
The first step was to iterate on the starwheel experiments from a few months previously, including changing the notching arm shape and enlarging the starwheel. I determined that the gear tooth-shaped notches did not enable the roller on the notching wheel to turn freely, which appears to be a key contributor to smooth movement into and out of notches. I eventually decided that these prototypes were simply too small to provide good movement, and determined that I would need to enlarge the starwheel in order to achieve the type of movement I needed from my controller.
I created several different designs for starwheels that would incorporate a deep notch for the “off” position, slightly shallower notches for five power positions, a continuous range of braking positions, and a deep emergency braking position. Each design was limited by the arc that the handle can describe while remaining above the surface of the controller, about 90 degrees. While attempting to make rounded notches that a roller would smoothly traverse, I found that I was still limited by scale, requiring a very small roller with tiny notches compared to the prototype, small enough that the rounded features appeared essentially as straight peaks and valleys.
I hit on the idea of using two parallel starwheels, alternating deep notches in the power positions on the two different starwheels while putting a much shallower notch on the other starwheel, permitting deeper, more positive notching within those five power positions. The starwheels were designed with LEGO-style studs and declivities to allow them to be easily stacked, with additional holes for nuts and bolts to permanently fasten them. A main controller disk shown here beneath the starwheels, into which the controller handle was embedded, has matching declivities into which the starwheels snap.
Here’s how the notches work: as in the prototype, pulling the controller handle towards you increases the throttle power, while pushing it away from you brakes.
To properly test this, I needed to also prototype the remainder of the master controller: a faceplate with a slot through which the controller disk with handle could protrude, holes for a key and reverser switch, and supports for the disk and starwheels. I also designed gears and arms that allow the key and reverser to mechanically interlock with the controller so that it can’t be moved with the key out or the reverser in neural or off (or the reverser thrown with the controller in a position other than “off”). I used standard hardware to assemble this first master controller prototype.
In the below video, I start with the controller in the emergency brake position, proceed through the braking range to off, notch up to full power, return to off, notch up again, and finally add increasing brake and end up back in emergency. You can see the alternating movements of the roller arms in the power positions as they alternately are responsible for positively engaging with a deep notch. This controller taught me a great deal about the effects of different starwheel sizes and geometries on the controller feel, the strength of ABS plastic printed at this infill fraction and piece thickness, and more nuance of how I can create a robust, accurate controller. And of course, these lessons will be incorporated in future prototypes!