Bouncing Signal

I have always had an interest in electronics and its application in improving the realism and reliability of model railways. This interest is well known and it was suggested as a challenge by some modellers in Melbourne that I produce a "bouncing signal" electronically. I accepted the challenge, I must admit, with some trepidation, but as I had been heard to state that it was theoretically possible and shouldn't take much effort (I will be much more careful what I say in future!) I was in no position to refuse.

Interest in "bouncing signals" has been a topic of discussion and controversy here since Roger Howell constructed the mechanical "bouncing signal" described in the Model Railway Journal No 46 (1991). Another article using a different mechanism was described in Model Railway Journal No 67 (1993). Some modellers regard simulating a "bouncing signal" as a bit like "The Quest for the Holy Grail"! It doesn't really exist and even if there were some bounce in semaphore signals nobody would ever notice it. However, Peter England, with his normal energy and determination, decided to search all his videos and compiled an impressive short video including some extremely bouncy signals that anyone couldn't help but notice! What was apparent was that there is great variety in the way signals "bounce" and don't "bounce" as the case may be. On this basis I decided that any mechanism I produced should be capable, with little effort, of producing any of the variety of bounces seen.

I decided that I would choose the simplest and most direct approach to solving the problem by directly driving the signal with a servomotor as used by model aeroplane modellers. These are available quite cheaply either from Brunel Models, Dick Smith or model aeroplane shops. A servomotor typically comes with a number of different accessories that can be attached to the servomotor-driving shaft. These enable it to be attached to rods or other mechanisms as required (see photo 1).

Photo 1: Servo Motor and Accessories.

The drive shaft of the servo is usually capable of moving through 180 degrees of rotation. Now it may be possible to drive the servo with some reasonably complicated circuitry but it would not provide the flexibility to modify the rate of signal arm movement or bounce characteristics. I therefore decided to drive the servo directly using a microcontroller, which is designed to directly interface with a servomotor. This is the BasicStamp produced by Parallax and is widely used in robotics (see www.parallax.com). This microcontroller can be simply connected to a PC via the serial port and programmed using a "Basic" like language, which is not difficult to learn. Once programmed it can be disconnected from the PC until such time that the program needs modifying or replacing.

I now had to build a semaphore signal to test my theories out. Searching through all my kits, parts, and all the other bits and pieces all modellers seem to collect over the years, I came across a Ratio GWR kit of square post signals. Using this kit I constructed a single arm signal and mounted it on a stand made from 4mm thick grey PVC plastic with the servomotor mounted directly underneath it (see photo 2).

Photo 2: Signal and Servo Motor.

With some experimentation, and the use of a model aeroplane pushrod connector, the thin brass rod driving the semaphore arm was connected to the servo as shown in photo 3. A thicker brass sleeve was soldered over the brass rod to enable it to be tightly clamped by the pushrod connector.

Photo 3: Closeup of semaphore actuator connection to servo motor.

Electronically all you need to control a servomotor is a 5V DC power source and a control signal. The control signal is in the form of a "pulse train" as shown in figure 1. If a pulse of 1ms (milliseconds; 1 ms = 1/1000 of a second) width is sent down the signal wire then the servo will rotate clockwise as far as it can go (usually 90 degrees from its centre position). A pulse of 2ms width will cause the servo to move as far anti-clockwise as it can go. A pulse of 1.5ms width will centre the servo (that is move it to the middle of its total range of motion).

Thus to move the servo to a particular position all you have to do is send a pulse of a particular width to the servo. The pulse width required can be determined by experimentation. The BasicStamp microcontroller can easily be programmed to send pulses of a particular width to the servo. So all I needed to do was programme the microcontroller to move the servo in such a way as to mimic the bouncing of a semaphore signal. This I proceeded to do and with some trial and error (and critical assessment by Peter England) I finally achieved an extremely good rendition of the movement of the original.

One of the difficulties in writing the programme was getting the signal to move slowly enough. Servos can move very rapidly and simply telling the servo to move the signal from A to B then to C produced a very rapid, jerky movement. What was required was a smooth and relatively slow movement. After some experimentation this was achieved by slowly stepping the servo from one position to the next to produce a smooth motion that matched the semaphore arm movement seen in Peter's video.

The "bouncing" signal was on display at the BRMA convention in Hobart in October 2001 where it generated considerable interest.

Although microcontrollers are not really cheap (although they are now less than $100) they have the capability of driving 14 bouncing signals directly (using the BasicStamp 2) and with some ingenuity many more. A modeller in Melbourne is planning to drive 50 signals this way!

Microcontrollers provide a way of achieving much more realistic signal movement and sequencing simply and easily with a level of reliability no other method can achieve. They can also be used to facilitate a simple but effective way to interlock signals with points and provide route setting if desired.