Sunday, October 25, 2015

How I trigger MyLocoSound effects with a Deltang Rx65 receiver

Having previously constructed a Manning Wardle 0-6-0 locomotive using a Piko motor block (see How I constructed a Manning Wardle 0-6-0T loco), I decided it was about time I provided her with sound. As with three of my locos, I invested in a MyLocoSound steam soundcard.  The more recent Universal card is not only adjusted using an infra red remote control rather than using onboard preset potentiometers, it includes sound effects in addition to the conventional steam whistle. These effects include a guard's whistle, a bell (or short steam whistle), the sound of a safety valve blowing off and an air pump. The effects can be triggered by the remote control or through a receiver and transmitter with the requisite number of spare channels.

Having recently constructed a Deltang Tx20 transmitter (see How I constructed a Deltang Tx20 transmitter kit) which includes two push-buttons to operate Channels 2 and 4, I decided it was worth investigating whether I could use these, together with the bind button and direction switches, to trigger the additional sound effects on the soundcard.

What I wanted was:
  • To sound the whistle when the bind button was pressed (Ch5 low)
  • To start and stop the safety valve effect when button 1 was pressed (Ch2 low)
  • To sound the guard's whistle when button 2 was pressed (Ch4 low)
  • To sound the bell when the direction switch was flicked left (Ch3 high)
  • To start and stop the air pump when the direction switch was flicked right (Ch3 low)
A quick consultation of the chart showing the Rx65b's features on the Deltang website .......
Source: http://deltang.co.uk/rx65b-22-v611.htm
 ...... revealed that:
  • Pad 3 gives an output of 0v when Ch2 goes low (ie the button on the Tx is pressed)
  • Pad 4 gives an output of 0v when Ch4 is energised (ie the other button on the Tx is pressed)
  • Pad 6 gives an output of 3.5v when Ch3 goes low (ie the direction switch on the Tx is flicked down)
  • Pad 7 gives an output of 3.5v when Ch3 goes high (ie the direction switch is flicked up)
The only problem was that the inputs on the MyLocoSound card are triggered when they are connected to 0v (ie to 'ground' or the negative lead from the battery). This meant that the outputs from Pads 3 and 4 would be fine for triggering the card's inputs, but the outputs from pads 6 and 7 were the inverse of what was needed.

I could have reprogrammed the pads to give 0v outputs (see How to program Deltang receivers - pending), but decided that I would experiment with another way of achieving the same outcome, as I would be posting my findings on this blog and I know many people are daunted by the prospect of programming. Fortunately, I discovered that the output could be inverted using a simple transistor circuit:
Source: http://dlb.sa.edu.au/rehsmoodle/file.php/282/kpsec.freeuk.com/trancirc.htm
After consulting David T at Deltang, who advised me that the circuit would be fine and that I could use the voltage from the input terminal of the soundcard (which is around 5v) provided the 1k resistor was connected between the transistor circuit and the soundcard. He also suggested that all connections between the Rx65 and the soundcard should be protected from the risk of excess current by connecting a 1k resistor between the outputs from the pads and the terminals of the soundcard.
As there were only three components required, I decided to solder them together directly ......

.... and then shroud all the connections in heatshrink sleeving.

The leads from the 10k resistors (on the base leads of the transistors) were then soldered to the pads 6 and 7 of the Rx65, and the emitter leads of the transistors were soldered to two of the negative pads on the Rx65.

The rx with its attached transistors were then shrouded in an additional layer of heatshrink sleeving for added protection.

Flying leads from the 1k resistors (on the collector leads of the transistors) were then connected to the relevant screw terminals on the soundcard. 

With everything connected, the loco and card were ready for testing. And then the loco was reassembled and ready for test running.

With most aspects of garden railway modelling, there are often many solutions to any given problem. I could have reprogrammed any of the pads on the Rx65 to provide the 0v required, I could have connected a switcher unit to the servo output from pad 10 or I could have even used a completely separate receiver for controlling the soundcard, as I have done on another of my locos (see How I used Deltang receivers to trigger sounds on a Technobots soundcard). There are probably many other solutions, but we all tend to stick with the areas of knowledge with which we feel most comfortable, and as long as it works .....


3 comments:

MickF said...

I like this solution. I'm currently investigating using Arduino RF-Nano (clever marriage of RL24L01 with a Nano on one PCB) to control the Mylocosound card. I've built the transmitter using the RF-Nano and have 6 switches for the sound. Using a detent pot for the speed control and the switch it has for forward/reverse. Happy days! Keep up the good work on your fantastic railway! regards Mick Fowler

GE Rik said...

Thanks Mick
Your setup sounds promising. I'd be interested to hear how you get on.

Rik

Cobalt said...

Some good info here - thanks very much.

I have a setup similar to MickF - in that I am using an Arduino nano to trigger the Mylocosound card, but I am using the Arduino servo library to read channels from a RC receiver and turn those into logic outputs (2 per channel).

I found the Deltang Rx wiring diagram on myMocosound's website first (http://www.mylocosound.com/mylocosound_014.htm) so have used 4K7 resistors and it seems to work just fine.