Showing posts with label Deltang. Show all posts
Showing posts with label Deltang. Show all posts

Sunday, May 31, 2026

How I reprogrammed a Micron MR603 receiver

Recently, I needed to reprogram a Micron MR603 receiver so it could be used to trigger all the sound effects on a Micron Mini Sound module (MSND01). As this module uses the same firmware as MyLocoSound modules, this reprogramming would also be appropriate for these.

 The sound module has seven functions triggered by inputs on seven pads (or screw terminals):

  • F1 - Whistle
  • F2 - Bell 
  • F3 - "All aboard" (or guard's whistle)
  • F4 - Safety valve
  • F5 - Brake pump 
  • F6 - Injector / Coal shovelling
  • F7 - Chuff cam
 The receiver was going to be used with a Micron Tx22X transmitter .....

.... which has two two-way switches and two push-buttons for triggering outputs from the receiver, ....
  • S1 A - sends Channel 3 high
  • S1 B - sends Channel 3 low
  • S2 - sends Channel 4 low
  • S3 C - sends Channel 7 high
  • S4 D - sends Channel 7 low
  • Bind button - sends Channel 5 low

 .... thus allowing all six of the additional sounds on the Micron or MyLocoSound modules to be triggered.

The Micron MR603 has ten output pads which, as delivered, provide the following outputs:

  • P1 - Front light / LED2
  • P2 - Rear light
  • P3 - 0v - 3.3v when Channel 3 is low
  • P4 - 0v - 3.3v when Channel 3 is high
  • P5 - 0v - 3.3v when Channel 5 is low
  • P6 - 3.3v - 0v when Channel 5 is low
  • A - Front light
  • B - Rear light
  • C - 0v - 3.3v when Channel 5 is low
  • D - 0v - Toggle 3.3v/0v when Channel 5 is low

The Micron Mini sound card inputs (and the MyLocoSound inputs) are trigged when they are connected to 0v and so, to make use of all the features, I needed to change some of the outputs from the pads to give 0v when the channels used by the buttons and switches on the Tx22X went high or low.

So, I decided to reprogram the receiver's output pads as follows:

  • P1 - Unchanged (i.e. Front light)
  • P2 - Unchanged (i.e. Rear light - not used)
  • P3 - 0v when Channel 3 is low (i.e. when S1 A is clicked on the Tx)
  • P4 - 0v when Channel 3 is high (i.e. when S1 B is clicked on the Tx)
  • P5 - 0v when Channel 4 is low (i.e. when S2 on the Tx is pressed)
  • P6 - Unchanged (i.e. 0v when Channel 5 is low (i.e. the bind button is pressed on the Tx))
  • A - Unchanged (i.e. Front light - not used)
  • B - Unchanged (i.e. Rear light - not used)
  • C - 0v when Channel 7 is low (i.e. when S3 C is clicked on the Tx)
  • D - 0v when Channel 7 is high (i.e. when S3 D is clicked on the Tx)

 

 Working out the reprogramming code sequence

To determine the code needed to make these changes, the programming chart for the MR603 receiver on the Micron website was consulted.

This is probably the part of the process which most people find confusing, so I will try to describe how it works as clearly as I can.

 Let's take the changes needed for P3 as an example. The pad needs to be reprogrammed so that it provides a 0v output when the receiver detects that Channel 3 has gone low.

So, working our way across the section of the table shown above:

  • The first value we need to note down is 3 which tells the receiver we want to reprogram an on/off feature
  • Moving to the next column, we need to tell the receiver we want to reprogram pad 3. So 3 is our next value to be noted.
  • Moving to the third column, we want the output from the pad to be momentary - i.e. we only want the output to happen while the button or switch on the transmitters is being pressed or clicked. As soon as the button is released the output from the pad will revert to whatever it was doing when the receiver was switched on. So, our next value is 1.
  • The fourth column, specifies the Channel we will be using. In this case it is Channel 3 and so 3 is the next value to be noted.
  • The final column specifies what sort of output we want dependent on the state of the selected Channel. We want the output to start high (on) but switch to low (off) when the Channel goes low. So, we want this value to be 4 (i.e. When Channel 3 goes low, turn off the pad (i.e. it has 0v output))

So, the reprogramming code we need for this change is - 3, 3, 1, 3, 4

 Let's skip to the last output in our list, Pad D. This needs to provide a 0v output when Channel 7 goes high.

  • Again, our first value is 3, indicating we want to reprogram an on/off setting
  • This time we want to reprogram Pad D - so we note down our next value as 10
  • Again, we want the output to be momentary, and so our third value is 1
  • We are using Channel 7, so our next value will be 7
  • And finally, as we want a 0v output when Channel 7 goes high, the value we need is 6
 The coding for this change is therefore: 3, 10, 1, 7, 6 
 
So, on this basis, the codes needed for each of the pads which need to be reprogrammed are:

  • P3 - 3, 3, 1, 3, 4 (for 0v when Channel 3 is low) 
  • P4 - 3, 4, 1, 3, 6 (for 0v when Channel 3 is high)
  • P5 - 3, 5, 1, 4, 4 (for 0v when Channel 4 is low)
  • C - 3, 9, 1, 7, 4 (for 0v when Channel 7 is low)
  • D - 3, 10, 1, 7, 6 (for 0v when Channel 7 is high)
  •  

    Putting the receiver into programming mode 

    To actually make these changes, we firstly need to make sure the MR603 receiver has been bound to a transmitter which has a reversing switch (i.e. which can give a high and low output on Channel 3). In the Micron range, this would include:

    To put the receiver into reprogramming mode, the transmitter and receiver must be switched on. After a few seconds, the morse code for SOS (dot, dot, dot, dash, dash, dash, dot, dot, dot) has to be tapped out on the bind button. The dots must be less than a second in duration and the dashes more than a second but less than five seconds. The pauses between dots and dashes must be less than 5 seconds.

    When the receiver has entered programming mode, its LED will flash once every second (referred to as 1-flash)

     

     Reprogramming

    We can now start the reprogramming process.

    Taking our first set of values needed to reprogram Pad 3 (i.e. 3, 3, 1, 3, 4), we need to change that initial 1-flash to a 3-flash (i.e. three one second flashes, followed by a pause). To increment the number of flashes, the reversing switch on the transmitter need to be moved to the "reverse" or "down" position and then returned to the mid-position. Clicking it once will increase the flash-count by one. Clicking it again will increase the flash-count by another one. Thus, the LED should now be flashing three times before a pause. This is the value we need for the first code in our list (i.e. telling the receiver that we want to reprogram an on/off setting). To tell the receiver to "accept" that value, we move the reversing switch to "forward" or "up".

    The LED will now start flashing once per second. We need to it flash three times, so we increment the number of flashes twice (by clicking the reverse switch twice in the "reverse" or "down" direction). Once it has reached 3-flash (three flashes then pausing), we "accept" this by clicking the reverse switch "forward" or "up". This tells the receiver we want to reprogram Pad 3.

    LED should now flash 1-flash again (because Pad 3 is already set for momentary on/off). So we just click the reverse switch forward or up to accept this value.

    The LED should now start flashing 3-flash, as P3 is already set to respond to Channel 3. So click the reverse switch to forward or up to accept this.

    Finally, the LED should now start flashing 1-flash as the default for P3 is to give a 3.3v output (i.e. go high) when Channel 3 goes low. We need to change this to start high and go low when Ch3 goes low, so we need to change this value to 4-flash by incrementing the flashes by three reverse or down clicks and then accepting the 4-flash by clicking forward or up.

    If you accidentally increment the number of flashes by too many, then keep incrementing until the LED reverts to 1-flash, then increment to the desired value.

     After entering the final value in our list, the LED should stop flashing and revert to solidly on.

    To program another pad, we need to re-enter programming mode with the SOS morse code sequence on the bind button.

    All that might sound a bit daunting but, once you've done it a couple of times, it is really easy - albeit slightly tedious.

    Here's proof that all that effort is worthwhile.

     

    Deltang or RC Trains transmitters

    Deltang or RC Trains receivers with reversing switches can also be used to reprogram Micron receivers provided they will bind with the receiver. Some of the very early Deltang receivers are unable to bind with Micron receivers and will need their transmitter boards replacing to enable them to do so. This is a job which can be done by Andy at Micron or by Phil at RC Trains. Alternative, if you are handy with a soldering-iron, it is a relatively straightforward job you can do yourself, once you have purchased the Micron transmitter module.
     

     

    Tuesday, March 19, 2024

    How I enhanced a basic Houston Gate Loco Works loco


     I am always on the look-out for a bargain, so when a Houston Gate Loco Works (HGLW) loco came up for sale on eBay for the princely sum of £25GBP, I snapped it up.

    One of the things I like about HGLW locos is they come with a form of 4-wheel drive as standard, provided by a simple pulley system (See How I constructed a diesel loco from a HGLW kit). They also have a good quality brass worm-wheel, which tends to give them fairly reliable and smooth running characteristics.

    As you can see, this loco was provided with a decent amount of ballast in the form of car balance weights.

     

     The Electrics

    The loco was powered by two non-rechargeable AA cells and controlled with a DPDT centre-off toggle switch wired-up as a reversing switch.

    The reversing switch was mounted in the cab.

    This arrangement allowed the loco to travel back and forth at a fairly realistic speed but, of course, to tie the loco in with the rest of my fleet, I wanted it to be radio-controlled. 

     After stripping out the existing electrical circuitry,..........

    ....... I created a wiring loom using a Deltang Rx65c, which I happened to have as a spare. My looms are fairly bog-standard, though this used two 14500 (AA sized) li-ion cells rather than my usual three 18650 li-ion cells. The cells were connected to a 3 way JST socket for balance charging and a 2S BMS protection board. Thence via a single-pole double-throw switch to a 2.5mm DC socket and to the Deltang Rx65c receiver/controller. The Rx65c is then connected to the motor, as shown below:

    Click the image to enlarge

    The hole in the loco's dashboard in which the original DPDT switch was enlarged to take the DC charge socket, and another 4.5m diameter hole was drilled on the opposite side of the dashboard for the SPDT switch.

    The 14500 cells were slotted into the cavity in which the original AA cells were located and the BMS board and Deltang receiver were nestled on top - all insulated with shrink-wrap tubing.


    The loco was given a brief test-run to check all was working correctly before tackling the body-work.

     

    The bodywork

    At first, I thought I would just round the edges of the bonnet, add a few extra details and then repaint it .....


    .... however, after looking online for a suitable prototype on which to base the conversion, I realised the bodywork more closely resembled an electric steeple-cab loco .....

    ...... than a self-propelled diesel. The only centre-cab narrow gauge diesel locos I could find had substantially taller bonnets. In the end, I opted for using this loco of German origin to provide me with inspiration.

    To allow room for the arched bonnets at each end, I had to hack away at the existing bonnets. A few strokes of the razor saw and some tidying-up with a Stanley knife did the trick!

    Using the dimensions of what remained of the bonnets as a guide, I designed and drew the parts needed for the new bonnets in TinkerCad


    The beauty of TinkerCad is that, as it's designed for kids to use, it's really easy to gain mastery over it. I've found other 3D CAD packages to be a lot more fiddly and frustrating to use. The limitation of TinkerCad is that it doesn't have as many bells and whistles as the more sophisticated packages, but I've found it is more than adequate for this sort of work.

    At this point, I noticed that the cab on the prototype loco isn't actually central - the front bonnet is longer than then rear. Should I ignore that and press ahead, or see if I could move the cab further back on the running plate?

    I decided that, with some judicious hacking, I would be able to move the cab back by 15mm. The first job was to cut a 15mm slot in the sides of the rear bonnet.

    After a fair bit of manoeuvring accompanied by an equal amount of cursing, I managed to separate the cab from the running plate. All credit to the designers of the kit - there were quite a few mounting lugs which needed to be sliced-through.


    The cab was then placed in its new position and glued into place with thick viscosity superglue (I use Everbuild as provided by ToolStation).



    The parts needed were printed out ......

    .... and, at last, work could commence on the reconstruction. 

    The window frames were first attached.


     Then the access doors were glued into place on the sides of the bonnets.



     And these were then glued into place on the running plate.



    As you can see, I applied filler to various gaps and also where my butchering had resulted in a few uneven surfaces. In addition, I masked off the cab with masking tape in preparation for its trip to the paint shop.

     

    Painting and finishing

    The body was then given a couple of coats of Halford's plastic filler primer from a rattle can.


    Unfortunately, as can sometimes happen, the primer reacted badly with the original paint on the cab.....



    .... which required a fair bit of additional filling and rubbing-down.

    Incidentally, for sanding small areas of paintwork such as these, I use cheap emery boards from our local pound shop. They can be easily trimmed to fit into narrow spaces, and the board backing gives a smoother finish than emery or sandpaper alone would provide.

    The loco body was then given another couple of coats of primer.




    The finish was better, but there were still some minor blemishes and pockmarks which needed filling and rubbing-down further. Once this had been done, it was given another couple of coats of primer before being rubbed down again and a couple of coats of Halford's Rover Brooklands Green, the livery of my loco fleet.

    Once the paint had dried and hardened off, name and number plates drawn in TinkerCAD and 3D printed on my resin printer were added, after they had been painted with red and gold acrylics.

    Incidentally, up until now, all my steam locos have been named after local villages and my diesel locos after the Tollemache family and my own family members. However, I have now run out of family members and so this loco is named after a good friend - who came with me on my expedition to India where, amongst other things, we travelled on the Shimla and Darjeeling Railways.

    New handrails were formed from 1.5mm diameter brass rod and inserted into the holes occupied by the previous handrails.

    Before the roof was glued into place, resin cast details were added to the cab dashboard and a 3D printed driver was added (minus his legs which were carefully excised).

    A cheap soundcard (from AliExpress) was wired-in.


     The soundcard required a servo input and so this was connected to P8 of the Deltang Rx65c

    However, as you can see (or rather hear) from this video, the engine note does not rise and fall in relation to the motor speed as it should. 


    This is a problem which I have encountered before with the Deltang Rx65 servo output (see Installing a Technobots programmable diesel soundcard with Deltang receivers ). I tried reprogramming one of the pads on an early Deltang compatible Micron MR603 to provide a servo output, but it failed. After mentioning this on the gardenrails.org forum, Andy at Micron contacted me and supplied me with a replacement receiver free of charge. Now, that's what I call service!

    The output on the new MR603 was programmed for servo, and I'm pleased to report the loco and soundcard now perform slightly better. The engine note does rise slightly more than it did with the Deltang Rx65c but, because the top speed of the loco is reached with only a 1/3 twist of the speed knob, the servo signal doesn't rise very much.

    An exhaust pipe (TinkerCadded and 3D printed) was duly painted and weathered and attached.
     
    [Awaiting photo]
     
    A headlamp from Cambrian Models was primed and painted ...... 
     

     
    ..... and fitted-out with a 3mm flat headed LED - shrouded with heatshrink to prevent light leakage.
     

     

    The LED was connected to P1 of the MR603 via a 1k resistor to provide forward lighting. 

    I will probably add a few more refinements and various bits of gubbins to the loco, but for now I am happy with the result.