Dealing with Decoder “Boot-up Jerk” Behavior when Using the ProMini Air Receiver


I have the benefit of some beta great testers for the ProMini Air receiver, and one of them has reported an issue that I’d like to show you how to address.

The problem is this: when you first power up the locomotive (and the onboard ProMini Air receiver and its DCC amplifier), sometimes the locomotive briefly “jerks” before “settling down” with standard control by wireless DCC commands. Uh oh.

The Cause of the “Boot-up Jerk”

The ProMini Air receiver uses a Pro Mini Microcontroller Unit (MCU) with “bootloader” firmware. Now, bootloaders are useful because they allow you to download the firmware with a simple and inexpensive “FTDI” break-out board that connects between your computer (via USB) and the ProMini MCU (via its 6-pin connector on one end of the board). You use the FTDI board as described in my previous post to very simply download firmware updates using the Arduino IDE.

As useful as boot loaders are, they have downsides: they consume memory (not a problem for us here), and they consume time on boot, which IS a problem for us. The latest versions of the software/firmware for the ProMini Air receiver have reduced the boot-up time significantly from previous versions. Still, you just cannot get around the time consumed by the bootloader during boot-up.

The boot-up process does not take long: less than two seconds, but during that time delay, the Pro Mini MCU is sending out a zero control voltage to the DCC amplifier. Well, what does the DCC amplifier do with this zero input voltage? Plenty. The DCC amplifier’s job is to convert 5V “logic-level” DCC to DCC Track Right/Track Left, each with an opposite “polarity” from the other. With a “low” input from the Pro Mini MCU, the DCC amplifier outputs a “high” voltage on one track output and a “low” voltage on the other.

Once the DCC amplifier sends this brief but steady high/low pair of voltages to the DCC decoder, this is where the fun begins. DCC waveforms are a sequence of pairs of high/low or low/high pulses with a total duration of about 116 microseconds to encode a DCC “1” and about 200 (or more) microseconds to encode a DCC “0”. I’ll resist the temptation to discuss DCC waveforms and how they make up a DCC “packet” that is a complete command to the decoder. Suffice it to say, the output from the DCC amplifier does NOT look like a DCC waveform for the brief period of time while the ProMini Air boots up!

For some configuration settings, the DCC decoder will interpret the “boot-up DC” from the ProMini Air receiver/DCC amplifier as a command to proceed while the DCC decoder is waiting for DCC packets to show up that will tell it how to behave – thus, the “boot-up jerk.” This temporary “DC command to proceed” doesn’t last long, but it’s undesirable behavior.

The Solution(s)

I will provide two solutions to the “boot-up jerk.” The first involves setting decoder Configuration Variables, and the second involves reloading the Pro Mini MCU firmware is a special way.

Solution #1

DCC decoders are familiar with what to do with inputs that “look” like DC inputs, and how they respond is controlled by how you configure the DCC decoder.

First, we’ll talk about what DCC decoders might do with brief DC inputs, and then we’ll talk about how to change the configuration. Some DCC jargon will be unavoidable.

The user controls the configuration of the DCC decoder by “programming” the values of configuration variables (CV) persistently stored in the decoder. You may “program” the decoder in several ways, but perhaps the simplest is called “Programming on the Main” (PoM) that virtually all DCC decoders will accept. In this mode, you can stop the locomotive (you’re not required to do so, but I do), and then place the DCC throttle into “PoM” mode. You then select a CV number (a value that is usually between 1 and 512 or so), and then you enter the value (always a number between 0 and 255) that goes into the CV’s “slot.”

One of the essential Configuration Variables for a DCC decoder is CV29. Inside CV29’s value (which is only one byte, or a sequence of eight ones and zeroes, in size) are several vital settings such as using a short or long address (bit 5 = 0 (short) or 1 (long)). Our interest is in bit 2 of CV29. If CV29, bit2=1, then the decoder will accept “analog” input as a power source, which causes the “boot-up jerk” problem because CV29, bit2=1 tells the decoder it’s OK to act on non-DCC inputs; e.g., DC input.

If, however, you set CV29, bit2 to 0, then the decoder ignores many forms of “non-DCC” input, including the “boot-up DC” we’ve been discussing. I say “many,” but not “all,” because users sometimes set CV27 bits for fancy “braking” schemes, where the locomotive will stop or continue if it senses the discontinuance of DCC waveforms and senses DC on either the left or right rail. These CV27 options, however, are supposed to come into play after DCC has been received for some time and then receives DC (“DCC before DC”), which is NOT the circumstances we are trying to handle of “DC before DCC.”

So, that’s Solution #1: set bit2 of CV29 to 0 (CV29=binary 00xxxx0xx where x might be 1 or 0 depending on the desired configuration controlled by CV29). You should exercise great care should when changing the value of CV29. You can cause the addressing scheme to switch from long address to short or vice versa by changing CV29, bit5, in which case the decoder will no longer respond to the previous address! Please be careful! Regardless of what else you are doing, if you are using a long address, MAKE SURE THE VALUE OF CV29 is EQUAL TO OR BIGGER THAN 32 (32=binary 00100000) AND LESS THAN OR EQUAL to 63 (63=binary 00111111)!!! If you are using a short address, MAKE SURE THE VALUE of CV29 is LESS THAN OR EQUAL to 31 (31 = binary 00011111)!!! We are dealing with multi-function decoders, so bits 6 and 7 are not relevant to us, and you should set both bits to 0.

Some of the user interfaces for programming decoders, such as ESU and Zimo, can set CV29, bit 2 for you but couch the change in various ways, with options such as turn on/off responding to “Analog DC” and “Digital DC” (whatever that difference means). For instance, when you turn off the responding to “Analog DC” and “Digital DC” using ESU’s LokProgrammer, the software sets CV29, bit2 to 0, and sets CV50 to 0. Taking a careful look at your decoder’s user manuals may help set other CV’s that might be involved. Usually, however, only setting CV29, bit2=0 takes care of the problem.

Just for fun, here is what the NMRA Standard S-9.2.2 says about CV29:

Configuration Variable 29 Configurations Supported

Bit 0 = Locomotive Direction: “0” = normal, “1” = reversed. This bit controls the locomotive’s forward and backward direction in digital mode only. Directional sensitive functions, such as headlights (FL and FR), will also be reversed so that they line up with the locomotive’s new forward direction. See S-9.1.1 for more information.

Bit 1 = FL location: “0” = bit 4 in Speed and Direction instructions control FL, “1” = bit 4 in function group one instruction controls FL. See S-9.2.1 for more information.

Bit 2 = Power Source Conversion: “0” = NMRA Digital Only, “1” = Power Source Conversion Enabled, See CV#12 for more information,

Bit 3 = Bi-Directional Communications: “0” = Bi-Directional Communications disabled, “1” = Bi-Directional Communications enabled. See S-9.3.2 for more information.

Bit 4 = Speed Table: “0” = speed table set by configuration variables #2,#5, and #6, “1” = Speed Table set by configuration variables #66-#95

Bit 5 = “0” = one byte addressing, “1” = two byte addressing (also known as extended addressing), See S 9.2.1 for more information.

Bit 6 = Reserved for future use.

Bit 7 = Accessory Decoder: “0” = Multifunction Decoder, “1” = Accessory Decoder (see CV #541 for a description of assignments for bits 0-6)

*Note If the decoder does not support a feature contained in this table, it shall not allow the corresponding bit to be set improperly (i.e. the bit should always contain its default value).

I hope you’re happy I interpreted the standard a bit for you.

With Solution #1, all DCC decoders I’ve tried (ESU, Zimo, MTH) start-up without the “boot-up jerk,” even though the brief “boot-up DC” is present.

Solution #2

So what’s solution #2? Reload the firmware into the Pro Mini MCU using an “AVR ISP,” such as the Sparkfun Pocket AVR Programmer or a less-expensive clone. This “ISP” downloading mode will bypass and erase the bootloader to directly load the firmware into the Pro Mini MCU. On boot-up with the bootloader now erased, the Pro Mini MCU will almost instantly supply “5V logic DCC” to the DCC amplifier, which in turn, provides the DCC decoder with standard DCC waveforms. There is no “boot-up DC” to speak of and no need to set CV29, bit2=0. (I set it anyway.) With Solution #2, all DCC decoders I’ve tried (ESU, Zimo, MTH) start-up without the “boot-up jerk.”

This “ISP” form of loading firmware is not as extensively used by folks using the Arduino IDE, but ISP loading is easily accessible within the Arduino IDE. The overly-brief method of ISP programming steps are the following:

1. Connect the USBtinyISP Programmer to the following six Pro Mini pins: GND, RST, VCC, SCK (pin 13), MISO (pin 12), and MOSI (pin 11). Be sure the “power the target” switch is set so that the USBtinyISP will supply power to the Pro Mini MCU. I have developed a very simple Pro Mini ISP Programming Board that I will make available at a nominal cost (<$3.00+shipping). This board has a pair of pins for optional GND/VCC power input because some ISP programming boards, unlike the USBtinyISP, do NOT provide +5V DC power.

Pro Mini MCU connections to a USBtinyISP for loading firmware without a bootloader.
Pinout for USBtinyISP programmer.
USBtinyISP connections to the Pro Mini MCU using a programming board available from the author.

2. From the Arduino IDE, Select Tools → Programmer → “USBtinyISP”

3. Select the AirMiniSketchTransmitter sketch.

4. Select Sketch → Upload using a Programmer.
The Arduino IDE will then compile the sketch and download the resulting firmware to the Pro Mini via the USBtinyISP, bypassing (and erasing) the bootloader. 


So there you have it: a “start-up jerk” problem caused by the bootloader time delays of the ProMini Air receiver’s MCU and two solutions that I know to work for at least several brands of DCC decoders: ESU, Zimo, and MTH. Other brands should work with either solution as well.

What’s my choice? Go with Solution #1 if you can. Setting the CV’s is pretty straightforward. Downloading firmware is more challenging but more “guaranteed” to work. We try to make everyone happy.

In the future, if you obtain the ProMini Air kits from either BlueRidge Engineering or by contacting me, you will be given the option of whether we provide a Pro Mini MCU with the bootloader or not.

Thanks for stopping by!

Dead-Rail Range Improvement with a Wireless Repeater

A simple repeater using two ProMini Airs. A ProMini Air receiver picks up DCC transmissions on a channel in the 433MHz ISM band, and its 5V logic level DCC/GND output is directly connected to an 869/915MHz ProMini Air transmitter’s DCC/GND input. The 869/915MHz ProMini Air’s wireless DCC transmissions are picked up by DCC receivers onboard a locomotive.
A DCC repeater in action. The transmissions from the repeater’s ProMini Air 869/915MHz transmitter are picked up by the ProMini Air receiver located in the tender of the Cab Forward. The Base Station’s 433MHz ProMini Air transmitter sends wireless DCC to the repeater’s 433MHz ProMini Air receiver that is directly connected by wire to the repeater’s 869/915MHz ProMini Air transmitter.

The Range Performance Problem in Dead-Rail

An often-heard complaint in Dead-Rail is wireless range performance. The regulatory limits on transmitting power in the unlicensed “ISM” (Industrial, Scientific, and Medical) bands used for Dead-Rail applications force dead-rail transmitters to emit at low power, usually in the few milliwatts range. By contrast, licensed amateur radios can transmit at tens of watts!

Many radio-control applications work well with low-power transmitters because of either short transmission range or unobstructed line-of-sight between the transmitter and receiver. However, we often do not have these luxuries in our Dead-Rail applications, where we have huge layouts and line-of-sight obstructions.

OK, enough of the problem. Let’s get to a reasonably simple solution: a repeater.

Making a Simple Dead-Rail Repeater

There are many ways to make a repeater. I’ll discuss a very simple (simple-minded?) repeater design that is easy for us to implement in Dead-Rail using ProMini Air transmitters and receivers that I have described in a previous post.

The idea for my design of a Dead-Rail repeater is straightforward: receive transmissions from an often-weak signal at one RF frequency and retransmit this signal at full power at another RF frequency to prevent interference with the reception of the weak signal at the received RF frequency. So, right off the bat, you see that you need a wireless receiver operating at one RF frequency, a wireless transmitter operating at a different RF frequency, and a wired connection between the two to send 5V logic-level DCC from the receiver to the transmitter.

Repeater Base Station

Before we get to the actual repeater, let’s discuss a tiny variation in the transmitter “base station” that will give us a better transmission range than typical Dead-Rail transmitters that operate in the 869/915MHz ISM bands. The idea is to initially transmit in the 433MHz ISM band, which is legal in many parts of the world, especially in Europe. Contrary to popular perceptions, it is legal to transmit in North America in the 433MHz band if the transmitted power is low enough.

Why bother with a 433MHz base station? You certainly get better obstacle performance at 433MHz than you do at higher frequencies, and you may get better direct line-of-sight performance as well. The downside to using the 433MHz ISM band is longer antennas are needed, roughly twice as long as in the 869/915MHz ISM bands. The longer length makes it impractical to mount a 433MHz antenna for a mobile receiver onboard a locomotive. For fixed transmit and receiver installations, the longer antenna is far less inconvenient.

The photo below shows the “base station,” which converts the track DCC from a standard DCC throttle to wireless DCC transmitted in the 433MHz (433.05MHz to 434.79MHz) ISM band. The design is almost identical to the ProMini Air transmitter described in my previous post. The only differences are the Anaren radio module (with its approved antenna) designed to operate at 433MHz rather than 869/915MHz and a tiny bit of specialized transceiver initialization data in the software. That’s it for the base station!

Transmitter “Base Station.” A standard DCC throttle provides track DCC to a “DCC Converter” that converts the track DCC to “5V DCC” and 5V power/ground for the ProMini Air transmitter, which in turn, transmits wireless DCC on a channel in the 433MHz ISM band.
A base station operating the the US 916MHz band transmitting on Airwire channel 15

The Repeater

The photo at the very top of the page shows the repeater that you place at some distance from the “Base Station.” The repeater consists of a ProMini Air receiver that is identical in design to the ProMini Air receiver described in my previous post. The only difference is the Anaren 433MHz radio module instead of the 869/915MHz radio module (you cannot easily tell the difference between the two because they have the same pinouts and form factor), and a tiny bit of transceiver initialization data in the software.

You directly connect the receiver’s 5V DCC/GND to a ProMini Air transmitter’s 5V DCC/GND inputs. The transmitter outputs wireless DCC transmissions on channels in 869/915MHz ISM band that are picked up by mobile 869/915MHz receivers on-board the locomotives. As described in my previous post, compatibility with CVP Airwire, Tam Valley Depot, GWire, and ProMini Air receivers is assured.

Close-up of pin connections
Pin connections showing the wired connection between the 433MHz ProMini Air receiver and the 869/915MHz ProMini Air transmitter.
Alternative repeater power connections. A battery-powered voltage regulator set to +5V powers the 433MHz receiver. The 3-wire connection from the 433MHz receiver provides ground (Blk), +5V (Red), and 5V logic DCC (White) to the 869/915MHz transmitter.
A repeater operating in the US 916MHz band: the receiver operates on Airwire channel 15, and the transmitter operates on Airwire channel 0 (zero).
The “surrogate locomotive” with a receiver operating in the US 916MHz band on Airwire channel 0 (zero).

As a further option for the repeater, you can connect a second ProMini Air transmitter to the repeater’s ProMini Air receiver to wirelessly re-transmit DCC at a different frequency (channel) in the 433MHz band to other repeaters whose receiver is “listening” on the same 433MHz channel.

Some Possibly-Important Details

Below are possibly-important details.


My previous post discusses how to compile the ProMini Air software (found at this GitHub site) and download the resulting “firmware” to the ProMini Air’s Pro Mini MCU (micro-controller unit). The software the ProMini Air uses to operate at 433MHz is the same software that you use for the ProMini Air receivers and transmitters operating in the 869/915MHz ISM bands. All that changes is the selection of the 433MHz band and the correct crystal frequency (26MHz for the Anaren radio module) in the config.h file. See the relevant part of the config.h file below, and note the “#define EU_434MHz” (operate in the 433MHz band), “#undef TRANSMIT” (compile for a receiver), and “#undef TWENTY_SEVEN_MHZ” (the crystal frequency is NOT 27MHz).

// Set band of operation
/* Use ONLY ONE #define*/
/* For 896/915MHz EU/NA ISM bands*/
// #define NAEU_900MHz
/* For EU-only 434MHz ISM band*/
#define EU_434MHz
/* For World-Wide 2.4GHz ISM band*/
// #define NAEU_2p4GHz

// Set Transmitter or Receiver
/* Uncomment ONLY ONE #define*/
/* For receiver*/
#define RECEIVER
/* For transmitter*/
// #define TRANSMITTER

// Set the default channel for NA/EU 900MHz only!
#if defined(NAEU_900MHz)
/* Uncomment ONLY ONE #define*/
/* To set the default to NA channel  0 for 869/915MHz ISM bands only!*/
#define NA_DEFAULT
/* To set the default to EU channel 17 for 869/915MHz ISM bands only!*/
// #define EU_DEFAULT

// Set the transceiver's crystal frequency
/* Uncomment ONLY ONE #define*/
/* For 27MHz transceivers (e.g., Anaren 869/915MHz (CC110L) and Anaren 869MHz (CC1101) radios)*/
/* For 26MHz transceiver (almost all other radios, including Anaren 433MHz (CC1101), 915MHz (CC1101), and 2.4GHz (CC2500) radios)*/


We use a transceiver daughterboard with a surface-mounted Anaren “chip” designed to operate on multiple channels in the 433MHz ISM band instead of 896/915MHz ISM bands. The two chips have different discrete surface mount components optimized for the respective ISM band. Transceiver daughterboard offerings that claim operation at 433MHz and 869/915MHz are not credible – you cannot use the same discrete components for multiple ISM bands. Your range performance will be inferior if you use these offerings. And, these offerings are NOT usually FCC/IC/ETSI approved as “intentional transmitters.” The transceiver daughterboard with the Anaren radio module we recommend is available from Blueridge Engineering, or you can contact me directly.

Repeater connections

The best way to supply power to the two (or three) ProMini Air receiver/transmitter(s) is battery power or a voltage converter using a battery power source. The ProMini Air transmitter/receiver can accept direct B+/B- battery power connections, usually 14.8V LiPo batteries, or 5V/GND inputs from a voltage converter. Power connections are described in my previous post on the ProMini Air. I strongly recommend using the 5V/GND power inputs from a voltage converter (they are inexpensive) to prevent overtaxing a small 5V power converter onboard the ProMini Air.

All that remains to do is connect the 433MHz ProMini Air receiver’s GND/DCC output directly to the 869/915MHz ProMini Air transmitter’s GND/DCC input. The GND and DCC Input/Output connection are the same pins on both ProMini Airs. The 3 pin row for the connections from left to right is marked GND/+5V/DCC I/O (T/R). You can see the connecting wires in the photo at the top of the page. DO NOT connect the 5V pin in the 3-pin row between the two ProMini Airs UNLESS you are supplying a 5V/GND supply to one of the ProMini Airs via the two-pin row marked left to right as GND/5V.

Repeater power and data connections using battery connections
Repeater power and data connections using a +5V/GND voltage converter

Changing Configuration

The ProMini Air transmitter/receiver’s DCC address is by default 9000/9001, respectively. My previous post describes how to reconfigure the ProMini Air using the DCC throttle’s “OPS” mode by sending changes to the Configuration Variables’ values. Important CVs are CV255 to set transmission power level (0-10) and CV254 to set channel #. The 433MHz ProMini Air has eight channels (0-7) that can be used, and channel 0 (434.00MHz) is the default.

When you have multiple ProMini Air transmitters and receivers “listening,” beware that sending OPS mode commands to either 9000 or 9001 will change the CV values on all listening ProMini Airs that have one of these default addresses. Global changes are probably NOT what you had in mind and will disable any “two-step” repeaters if they retransmit to other repeaters since the repeater’s 433MHz transmitter must transmit on a different channel from the repeater’s 433MHz receiver.

You have two strategies for preventing inadvertent reconfiguration using OPS mode: change the ProMini Air’s DCC address as discussed here, or turn off all ProMini Airs you don’t want to reconfigure. Giving a unique DCC address to each ProMini Air is probably the safest strategy! Of course, you can “play” useful games by giving “groups” of ProMini Airs the same DCC address so that they are all reconfigured at the same time, but other “groups” at a different DCC address will ignore these commands.


With a simple repeater that requires no new hardware or software, I hope you will agree it is simple to extend the range of wireless DCC! Perhaps these ideas will inspire you to develop an even better range extension technique.


Assembling the ProMini Air Receiver/Transmitter


Typical application. In some cases, such as the Airwire transmitters, the throttle and transmitter are combined. Also, the receiver and amplifier may be combined, such as for Airwire and Tam Valley Depot receivers. The ProMini Air transmitter and receiver will require, respectively, an inexpensive, easily-obtained (or made) “DCC Converter” or “DCC Amplifier.”

I was inspired to fully develop a wireless DCC transmitter and receiver by two sources: Martin Sant, who runs the BlueRidge Engineering website, and an article by Mark and Vince Buccini titled “Build Your Own Wireless DCC System” that appeared in the April, June, and August 2014 editions of Garden Railways magazine. These back issues are still available.

The Buccini’s showed that it was possible to home-build a wireless DCC system at all. And Martin became a great collaborator who got me concretely started with the initial version of the “ProMini Air” wireless DCC transmitter/receiver hardware and the wireless DCC software for the Pro Mini microcontroller board. I am deeply indebted to these people.

Disclaimer: I have a close association with Blueridge Engineering, and I have worked with Blueridge to make the ProMini Air transmitter/receiver available as a kit. I am a hobbyist providing a hobbyist’s kit. I have meager experience designing PCB’s and providing kits, and it will have less “polish” than commercial “kit” offerings.

Note: Some photographs may show a prototype transceiver (a red PCB), but we recommend using the Anaren “daughterboard” that comprises the very small, FCC/IC-approved Anaren transceiver PCB that is surface-mounted to a PCB with a 10-pin interface for easy mounting to the ProMini Air PCB.

You can mount other, less expensive transceiver daughterboards to the ProMini Air PCB using the 10-pin interface. However, most of these transceiver daughterboards are not FCC/IC-approved as an “intentional transmitter.” In many cases, the manufacturers have NOT optimized these transceiver daughterboards to operate in the US/Canadian 915MHz ISM band (or the European 868-870MHz ISM band), resulting in reduced range performance.

Feature Comparisons

Our goal for offering the ProMini Air receiver/transmitter is to allow those interested in “dead-rail” (radio control, battery power of a model railroad locomotive) an inexpensive way to build wireless, DCC compatible transmitters and receivers for radio-control of model railroad locomotives in the US/Canadian 915MHz ISM band – the same band and protocol as the Tam Valley Depot and CVP Airwire transmitters and receivers (and the QSI Gwire receiver). Also, you can operate the ProMini Air transmitter and receiver in the European ISM band at 869.850MHz, and we have verified interoperability with Tam Valley Depot European DRS1 transmitters and receivers.

The “ProMini Air” receiver is compatible with the Tam Valley DRS1 transmitter, both the CVP AirWire T5000 and T1300 wireless throttles, and the no longer manufactured NCE GWire CAB. The ProMini Air transmitter is compatible with the Tam Valley Depot DRS1 receiver, the CVP Airwire CONVRTR receivers, and the QSI Gwire Receiver. Of course, the ProMini Air transmitters and receivers are compatible with each other!

The ProMini Air has some features that may be of interest when compared to commercial offerings. See the Comparison Tables below.

NameAirwire Receiver
Level Adj
Ch 16 (or 17(E))
Air Transmitter
Yes0-16, 17(E)YesYes
Comparison of wireless DCC transmitters

In fairness, the Airwire T5000 wireless throttle was never intended to interface to standard DCC throttles. But, as Tam Valley Depot recognized, it is advantageous to use any device that supplies DCC to the rails and transmit this DCC wirelessly to DCC-compatible receivers. A notable limitation of the Tam Valley Depot DRS1 transmitter is that it does not provide DCC “IDLE” packets that the Airwire receivers require unless the original DCC throttle does so (which most, if not all, do NOT). Also, the Tam Valley Depot DRS1 transmitter can only broadcast on one Channel (near Airwire Channel 16).

The comparisons for wireless DCC receivers are shown in the Comparison Table below.

Channel Auto
DRS10-16, 17(E)NoneYes
Yes (Limited)
0-16, 17(E)None or
Comparison of wireless DCC receivers

Perhaps the most important difference among the receivers is “DCC filtering,” i.e., how does the receiver behave when valid RF DCC signal is lost.

When the Tam Valley DRS1 or QSI Gwire lose valid RF signal, they output random pulses. I have discussed the pros and cons of this in another post.

On the other hand, the Airwire CONVRTR outputs constant-level DC when it loses valid RF signal, or more correctly, when it doesn’t receive enough DCC “IDLE” packets. Again, as discussed in another post, the DCC decoder may halt the locomotive dead in its tracks when it receives this constant-level DC, which may or may not be what the user wants.

The Airwire CONVRTR performs “DCC filtering” by evaluating whether it’s receiving DCC “IDLE” pulses periodically. So, even if a stream of completely-valid DCC packets are received, but there are few or no “IDLE” packets, then the Airwire CONVRTR will become inactive and output constant DC to the decoder.

This is why the Tam Valley DRS1 transmitter will usually NOT work with Airwire CONVRTR receivers because the DRS1 will not insert additional DCC “IDLE” packets! The Tam Valley Depot DRS1 transmitter is a passive participant: if the input DCC throttle doesn’t produce frequent DCC “IDLE” pulses, then the Tam Valley Depot DRS1 will not transmit frequent DCC “IDLE” pulses.

The ProMini Air receiver, via OPS mode reconfiguration (by default at DCC address 9001), can select either option – output random pulses or output constant-level DCC when valid RF signal is lost. This reconfigurability makes the ProMini Air receiver the most versatile of the wireless DCC receivers. The ProMini Air receiver’s valid RF detection is somewhat more sophisticated than Airwire’s. The ProMini Air receiver detects how long it’s been since it received ANY valid DCC packet. And, after a preset time interval (which is reconfigurable via OPS mode changing of a CV), the ProMini Air receiver will output either the random pulses it’s receiving (DCC filtering “off”) or output constant-level DC (DCC filtering “on”). The DC level that is output when DCC filtering is “on,” and there is no valid RF signal is also reconfigurable via an “OPS” mode setting of a CV at the ProMini Air’s DCC address.

Once valid RF signal is received again, the ProMini Air receiver detects this condition and outputs these valid DCC packets to the “DCC amplifier” that in turn sends “track-level” DCC to the decoder as discussed below.

Another important feature of wireless DCC receivers is Channel selection and searching.

The Tam Valley Depot DRS1 receiver will “listen” on a fixed Airwire Channel if you set some hardware jumpers. Otherwise, the DRS1 will automatically search all of the Airwire Channels for a valid RF signal if you do NOT set the jumpers. This behavior may or may NOT be a good idea if multiple wireless DCC transmitters are transmitting simultaneously on different Channels. And, changing the Channel selection behavior (fixed Channel or auto-scan) requires physical access to the receiver to connect or disconnect jumpers.

On startup, the Airwire CONVRTR “listens” for a valid RF signal on its “startup” Channel (which is reconfigurable by accessing a CV using the wireless throttle’s “OPS” mode). If the CONVRTR finds no valid RF signal after a given time, the CONVRTR will switch to Channel 0. This behavior is usually a good idea.

Like the Airwire CONVRTR, on startup, the ProMini Air receiver will “listen” for valid RF on its “startup” Channel (default, 0) stored in EEPROM memory. This startup Channel is changeable using the transmitting throttle’s “OPS” mode by setting CV255 to a value of 0 through 16 at the ProMini Air transmitter’s DCC Address (default, 9001). Like the Tam Valley Depot DRS1 receiver, if the ProMini Air does not find a valid RF signal on its startup Channel, the ProMini Air receiver will then auto-scan Channels 0, 16, 17(E), 1, 2, …, 15 (in that order) for valid RF signal. This scan sequence guarantees that a wireless DCC transmitter (if one is available) is selected, but only if the ProMini Air does NOT find a valid RF DCC signal on its startup Channel from another wireless DC transmitter.

If no valid RF DCC signal is found at all on any Channel on startup, the ProMini Air receiver will select Channel 0 and wait for a valid RF DCC signal. Also, upon reset, the ProMini Air’s Channel search process will be unchanged: try the “startup” Channel stored in EEPROM memory, then try auto-searching Channels, and if all else fails, just wait on Channel 0.

So, in summary, we are offering the ProMini Air DCC transmitter and receiver kit to provide a low-cost alternative with a set of features not completely found in commercial offerings.

The downside (or flexibility) to our offering is that you need a few additional items. In the case of the ProMini Air transmitter, you need a simple “DCC Converter” PCB (available very inexpensively from Blueridge and is discussed in detail below) that converts DCC output to the track into Ground, 5V power, and 5V logic DCC. These outputs provide the ProMini Air transmitter with power and DCC packets to transmit. For the ProMini Air receiver, you will need a low-cost “DCC amplifier” that converts the ProMini Air receiver’s 5V logic DCC back to DCC that the onboard DCC decoder would in its customary configuration pick up from the track (again, discussed in detail below). The ProMini Air receiver can be powered either directly from the battery or a small external 5V power supply.

ProMini Air transmitter connections
ProMini Air receiver connections

And, you will need an antenna of your choosing! I love antennas, but your antenna requirements are too diverse to offer a “one size fits all” antenna solution. We provide an FCC/IC-approved Anaren “whip” antenna with the Anaren transceiver that is surface-mounted to a 10-pin interface daughterboard. This Anaren antenna-transceiver combination should work well for most transmitter applications and is FCC/IC approved for “intentional radiators.” For the ProMini Air receiver, some can use the small whip antenna directly mounted to the transceiver onboard the ProMini Air receiver; others will need to run an antenna connecting cable to a small, externally-mounted antenna.

We discuss several nice antenna options below.

Hang with me…

Skill Requirements

The ProMini Air receiver/transmitter (Rx/Tx) kit is easy to assemble, requiring only the soldering in place of some pin rows, battery terminal (for the receiver option), and a Pro Mini PCB (not to be confused with the ProMini Air PCB) that are provided with the kit. The potential kit-builder should also be somewhat familiar with downloading firmware into micro-controller boards (an Arduino or clone Pro Mini in our case) using the Arduino IDE.

Kit Contents

ProMini Air kit contents

Note: We may include some of the “male” and “female” pin row connectors with the kit that may differ from the photos or descriptions here. Which pin rows go where is easy to determine since the transceiver daughtercard mounts with dual 5-position pin rows and the Pro Mini PCB mounts with two 12-position pin rows and a one two-position pin row, regardless of whether you use round or square pin rows.

The ProMini Air PCB, as you receive it, has the difficult-to-solder and easily-confused components already installed: the transceiver daughterboard, the surface-mount resistors and MOSFETs, and the 5V and 3.3V regulators. The transceiver has a U.FL antenna connector that interfaces to the provided Anaren whip antenna. If a remote antenna is required, U.FL to SMA or RP-SMA antenna cables are widely available.

Shown below is a close-up of the round pin headers. Compared to standard square-pin headers, round pin headers reduce the overall height of the assembled ProMini Air PCB when the Pro Mini PCB is mounted.

Round pin connectors

Kit Assembly

Step 1: Solder the 6-position DIP pins into the Pro Mini PCB as shown below. You can carefully bend the pins inward over the Pro Mini PCB to prevent clearance interference with other components on the assembled ProMini Air PCB. The angle of the bent pins should allow for the insertion of the USB connector that we discuss later.

Installation of 6-position pin-header on the Pro Mini

Step 2: Install the supplied the two 5-position male pin rows into the transceiver daughterboard. The Anaren PCB is surface-mount, so we mount it on a dual 5-position pin row interface PCB for ease of soldering and interface. The kit provides two female rows of 5-position pin rows that you can solder to the ProMini Air PCB that allows easy insertion/removal of the transceiver daughterboard with its corresponding dual rows of male pins. Or, you can directly solder the male pins to the ProMini Air PCB for a strong, but permanent mount.

The Anaren daughterboard that comprises an Anaren transceiver PCB surface-mounted on a PCB with a 10-pin interface for convenient mounting to the ProMini Air PCB. Note: the appearance of this board may be slightly different from the kit.
Anaren PCB daughterboard with two 5-position male pin rows soldered in place.

Step 3: Install the standard DIP pins and battery terminal on the ProMini Air PCB, as shown below. If you are using the ProMini Air as a transmitter, you can omit the battery terminal installation because the “DCC Converter” PCB will supply GND and +5V power as well as 5V logic DCC on the column of 3 pins adjacent to the 4-pin I2C display interface at the lower right of the ProMini Air PCB shown below.

DIP pin and battery terminal installation on the ProMini Air PCB. Note this photo also shows the round pins that connect to the Pro Mini PCB.

Step 4: Solder the round DIP pins to the Pro Mini PCB and the ProMini Air PCB. The male rows will be mounted underneath and soldered on the top of the Pro Mini PCB, and the female rows will be mounted to the top and soldered underneath the ProMini Air PCB.

The technique I use is to insert, but do not solder, the round DIP pins onto the Pro Mini PCB, as shown below (12-position left, 12-position right, and two-position P4/P5). I then overlay the ProMini Air PCB on top of this temporary assembly, aligning the round pins with the corresponding mount holes in the ProMini Air PCB. Be sure that the extra, unused holes in the ProMini Air PCB align with the Pro Mini PCB’s USB pins!!!

Holding all of this temporary assembly together, solder the pins to the bottom of the ProMini Air PCB and then carefully turn the assembly over and solder the round pins to the top of the Pro Mini PCB. I use this technique to provide accurate alignment when the Pro Mini PCB removed and then re-inserted into the ProMini Air PCB.

Of course, you may have a better or more comfortable technique for soldering pin rows into place!

Temporary insertion of round DIP pin rows into Pro Mini PCB for accurate alignment

Below is the final mating of the Pro Mini PCB to the ProMini Air PCB with the Pro Mini PCB soldered to the male round pin rows. Once you solder the round pin rows to the Pro Mini PCB “in situ,” the Pro Mini PCB can be carefully lifted off the ProMini Air PCB, along with its male rows of round pins, for firmware loading.

Final installation of Pro Mini into the ProMini Air PCB. Note that the USB connection pins overlay the unused holes in the ProMini Air PCB.

That’s it for hardware assembly!

Firmware Installation

The ProMini Air can be configured as either a receiver (Rx) or transmitter (Tx) by loading firmware into the Pro Mini using a “USB Breakout Module” (available here or here) that inserts into the USB DIP pins as shown below. Since the Pro Mini PCB operates at +5V, please ensure that you use a 5V USB Breakout Module, NOT one that supplies 3.3V! Note the alignment of GND and DTR on the Pro Mini and the USB Breakout Module. Some clones of the Pro Mini have the USB pin-out reversed, so you will need to turn over the USB Breakout Module before insertion!

Pin-out alignment between Pro Mini and USB Breakout Module
Insertion of the USB Breakout Module into the Pro Mini USB pins

Once you connect the USB Breakout Module to a PC via a USB cable, the Arduino IDE can be used to download the ProMini Air’s compiled firmware. In the Arduino IDE, to set the correct microcontroller board, select: Tools > Board > Arduino Pro or Pro Mini. To set the correct chip, select: Tools > Processor > ATmega328P (5V, 16 MHz). To set the correct port, select: Tools > Port > the_correct_USB_serial_port, which you will need to figure out. I use the “AVRISP mkII” Programmer (Tools > Programmer > AVRISP mkII) because it was the default selected by the IDE.

Important Note: Since the ProMini Air’s firmware makes extensive use of the EEPROM, before installing the ProMini Air transmitter or receiver firmware, we strongly advise that you completely clear the Pro Mini’s EEPROM. Use the Arduino IDE and selecting File > Examples > Examples for Arduino Pro or Pro Mini > EEPROM > eeprom_clear program. Once eeprom_clear has been compiled and downloaded to the Pro Mini, there will be a short delay, and then one of the Pro Mini’s diagnostic LED’s will turn on continuously. Then, compile and install the ProMini Air firmware as described below.

The source code is available from this GitHub site. The source code should be placed in a directory where the Arduino IDE can find it. The subdirectory structure should be maintained so that the Arduino IDE can properly access the “project.”

How to download the GitHub zip file that will maintain the directory structure

Depending on whether you want a transmitter or receiver, edit libraries/config/config.h to select the “define” for the transmitter or receiver.

For a receiver (Rx), config.h should look like:

//    vvv User Entry Area Below vvv

// Set band of operation
/* Use ONLY ONE #define*/
/* For 896/915MHz EU/NA ISM bands*/
#define NAEU_900MHz
/* For EU-only 434MHz ISM band*/
// #define EU_434MHz
/* For World-Wide 2.4GHz ISM band*/
// #define NAEU_2p4GHz

// Set Transmitter or Receiver
/* Uncomment ONLY ONE #define*/
/* For receiver*/
#define RECEIVER
/* For transmitter*/
// #define TRANSMITTER

// Set the default channel for NA/EU 900MHz only!
#if defined(NAEU_900MHz)
/* Uncomment ONLY ONE #define*/
/* To set the default to NA channel  0 for 869/915MHz ISM bands only!*/
#define NA_DEFAULT
/* To set the default to EU channel 17 for 869/915MHz ISM bands only!*/
// #define EU_DEFAULT

// Set the transceiver's crystal frequency
/* Uncomment ONLY ONE #define*/
/* For 27MHz transceivers (e.g., Anaren 869/915MHz (CC110L) and Anaren 869MHz (CC1101) radios)*/
/* For 26MHz transceiver (almost all other radios, including Anaren 433MHz (CC1101), 915MHz (CC1101), and 2.4GHz (CC2500) radios)*/
// #define TWENTY_SIX_MHZ

//    ^^^ User Entry Area Above ^^^


If you want a transmitter (Tx), then config.h should be

//    vvv User Entry Area Below vvv

// Set band of operation
/* Use ONLY ONE #define*/
/* For 896/915MHz EU/NA ISM bands*/
#define NAEU_900MHz
/* For EU-only 434MHz ISM band*/
// #define EU_434MHz
/* For World-Wide 2.4GHz ISM band*/
// #define NAEU_2p4GHz

// Set Transmitter or Receiver
/* Uncomment ONLY ONE #define*/
/* For receiver*/
// #define RECEIVER
/* For transmitter*/

// Set the default channel for NA/EU 900MHz only!
#if defined(NAEU_900MHz)
/* Uncomment ONLY ONE #define*/
/* To set the default to NA channel  0 for 869/915MHz ISM bands only!*/
#define NA_DEFAULT
/* To set the default to EU channel 17 for 869/915MHz ISM bands only!*/
// #define EU_DEFAULT

// Set the transceiver's crystal frequency
/* Uncomment ONLY ONE #define*/
/* For 27MHz transceivers (e.g., Anaren 869/915MHz (CC110L) and Anaren 869MHz (CC1101) radios)*/
/* For 26MHz transceiver (almost all other radios, including Anaren 433MHz (CC1101), 915MHz (CC1101), and 2.4GHz (CC2500) radios)*/
// #define TWENTY_SIX_MHZ


//    ^^^ User Entry Area Above ^^^


Note that two additional options are available for using transceivers that operate with 27MHz (such as the FCC/IC/CE-approved Anaren transceivers) or 26MHz transceivers and whether the operation is for North American or European operation (the latter of which only operates at 869.850MHz).

After downloading the firmware into the Pro Mini completes, please do not remove the USB connection from the computer until the “secondary” LED, which indicates attempted communication over the SPI (serial peripheral interface), flashes on (it will not be bright). This will ensure that the initial round of writes to the blank EEPROM was completed!

Alternatively, you can load the firmware into the Pro Mini MCU using an “AVR ISP,” such as the Sparkfun Pocket AVR Programmer or a less-expensive clone. This “ISP” downloading mode will bypass and erase the bootloader to directly load the firmware into the Pro Mini MCU. On boot-up with the bootloader now erased, the Pro Mini MCU will almost instantly supply “5V logic DCC” to the DCC amplifier, which in turn, provides the DCC decoder with standard DCC waveforms. There is no “boot-up DC” to speak of and no need to set CV29, bit2=0. (I set it anyway.) With this solution, all DCC decoders I’ve tried (ESU, Zimo, MTH) start-up without the “boot-up jerk.”

This “ISP” form of loading firmware is not as extensively used by folks using the Arduino IDE, but ISP loading is easily accessible within the Arduino IDE. The overly-brief method of ISP programming steps are the following:

1. Connect the USBtinyISP Programmer to the following six Pro Mini pins: GND, RST, VCC, SCK (pin 13), MISO (pin 12), and MOSI (pin 11). Be sure the “power the target” switch is set so that the USBtinyISP will supply power to the Pro Mini MCU. I have developed a very simple Pro Mini ISP Programming Board that I will make available at a nominal cost (<$3.00+shipping). This board has a pair of pins for optional GND/VCC power input because some ISP programming boards, unlike the USBtinyISP, do NOT provide +5V DC power.

Pro Mini MCU connections to a USBtinyISP for loading firmware without a bootloader.
Pinout for USBtinyISP programmer.
USBtinyISP connections to the Pro Mini MCU using a programming board available from the author.

2. From the Arduino IDE, Select Tools → Programmer → “USBtinyISP”

3. Select the AirMiniSketchTransmitter sketch.

4. Select Sketch → Upload using a Programmer.
The Arduino IDE will then compile the sketch and download the resulting firmware to the Pro Mini via the USBtinyISP, bypassing (and erasing) the bootloader. 

Once the ProMini Air receiver or transmitter firmware is installed in the Pro Mini and inserted into the ProMini Air PCB, the ProMini Air is ready for integration!


To complete the integration of the ProMini Air receiver (Rx) or transmitter (Tx), you must establish several connections.

Overview of Connections

See the picture below for an overview of the connections to and from the ProMini Air. Which connections used depends on whether the ProMini Air will act as a receiver (Rx) or a transmitter (Tx). THERE IS NO PROTECTION AGAINST INCORRECT BATTERY OR EXTERNAL POWER CONNECTIONS!!! The ProMini Air will be destroyed immediately if the GROUND and POSITIVE POWER SUPPLY are reversed!

Data and power connections

The U.FL connector on the Anaran transceiver may be directly connected to the provided Anaren whip antenna, or you can connect a U.FL to SMA or RP-SMA cable the ProMini Air to a remotely-mounted antenna. Also, a two-pin output provides Ground and the DCC input to (Tx) or output from (Rx) the RF transceiver board as signals to an oscilloscope for waveform review.

ProMini Air antenna connector (female RP SMA) and transceiver DCC input/output

The ProMini Air has several connections that provide power, I2C display outputs, and 5V logic DCC inputs or outputs.

ProMini Air connections for power, I2C display output, and 5V logic DCC input or output

We will break down these connections for the ProMini Air receiver and transmitter in the next two sections.

Receiver Connections

Starting with the ProMini Air configured as a receiver (Rx), there are several options for providing power. The first option is to use external battery power and jumper the +5V and +5V (Battery) pins together to use the on-board 5V regulator to provide board +5V supply.

ProMini Air receiver battery-powered option

Since you may not like the heat generated by the onboard 5V regulator when you supply power with external battery power and install the jumper, as an alternative, you may use an external +5V power supply, as shown below where the external power supply provides Ground and +5V. Of course, you do NOT install the jumper.

ProMini Air receiver powered by an external +5V power supply
Close-up of ProMini Air receiver power connections to an external +5V power supply

The ProMini Air receiver must connect to an external DCC amplifier that converts the 5V logic DCC from the ProMini Air receiver to DCC A/B that a DCC decoder requires. This DCC amplifier uses battery power and the inputs from the ProMini Air receiver to provide the power and DCC messages, coded as a bipolar DCC waveform, to the decoder for both power and DCC messages. These “DCC amplifiers” are usually medium to large amperage amplifiers that accept pulse width modulation (PWM) input to provide precision output control for electric motors. The maximum PWM frequency of these amplifiers is usually high enough (> 20kHz) to reproduce DCC packets accurately.

ProMini Air receiver connections to a DCC amplifier. Note: the ProMini Air receiver does not have its power connections in the photo above.
Close-up of ProMini Air receiver output to the DCC amplifier
Close-up of the inputs to the DCC amplifier from the ProMini Air receiver

Some DCC amplifiers have their specialized connector configurations, as shown below, for a GROVE-compliant amplifier.

Example of another DCC amplifier’s connections to the ProMini Air receiver

Integration of the ProMini Air Receiver into a Locomotive

Of course, the real purpose of the ProMini Air receiver is to integrate it into a locomotive for wireless DCC control using an onboard battery as power. An excellent, reasonably-priced (about $14 US as of 2020), high-power (13A continuous) DCC amplifier may be purchased here as shown below. Considerably smaller (0.8″ x 1.3″), but more expensive high-amperage amplifiers (about $30 US as of 2020) that have been used with success can be found at Pololu here or here.

ProMini Air receiver integration with battery power, DCC amplifier, and antenna
Example Installation

Transmitter Connections

Now, let’s turn the ProMini Air used as a transmitter (Tx) of DCC messages from any DCC compatible throttle.

The photo below shows the connections between an interface board that takes throttle DCC A/B inputs (“track” DCC) and rectifies these inputs to provide Ground and +5V power supply output. This “DCC Converter” PCB also “taps off” the DCC A input and converts it to a 5V logic DCC output that is suitable for the ProMini Air transmitter. These outputs provide to the ProMini Air transmitter as shown below with Ground, +5V power, and 5V logic DCC input. The “DCC Converter” PCB is available from Blueridge Engineering, or the user can make this uncomplicated board based on the schematic shown below. Note: the ProMini Air transmitter IS NOT connected to a battery since it receives its power from the “DCC Converter” PCB.

ProMini Air receiver connections to a “DCC Converter” PCB that supplies the ProMini Air transmitter with Ground, +5V power, and 5V logic DCC. The ProMini Air transmitter is NOT connected to a battery! The jumper connecting +5V to +5V (Battery) is NOT used!
Close-up of ProMini Air transmitter connections to the “DCC Converter” PCB. The jumper connecting +5V to +5V (Battery) is NOT used!

Below is a schematic of the straightforward circuit that takes throttle DCC input and converts it to Ground, +5V power, and 5V logic DCC for the ProMini Air receiver.

Schematic for the “DCC Converter” PCB that converts throttle DCC A/B into Ground, +5V, and 5V logic DCC for the ProMini Air transmitter. This circuit uses a 2W10 rectifier (from here), an L7805 5V regulator (from here), and two high-speed switching 1N4148 diodes (from here).

The user can change the ProMini Air transmitter’s Channel (Airwire channels 0-16) and Power Level (0-10) by setting the DCC throttle’s address to that of the ProMini Air transmitter’s (9000 by default). Then, using the throttle’s OPS mode, change the value of a configuration variable (CV255 for Channel: 0-16, and CV254 for Power Level: 0-10), exiting OPS mode, and changing the throttle back to the locomotive’s DCC address.

Receiver/Transmitter Antenna Connections

For the ProMini Air transmitter, we strongly urge you to use the FCC/IC-approved Anaren “whip” antenna supplied with the Anaren transceiver that is surface-mounted to a 10-pin interface daughterboard. This Anaren whip antenna/transceiver combination is the FCC/IC-approved as an “intentional radiator.” For experimentation purposes, antennas for the ProMini Air transmitter can be purchased on-line from many sites. For fixed installations of the ProMini Air transmitter, we suggest the reputable products from Linx such as their SMA one-half wave antennas with an internal counterpoise. You can find these antennas at Digi-Key, e.g., ANT-916-OC-LG-SMA ($10.55) and ANT-916-CW-HWR-SMA ($12.85). The former antenna has a slightly better gain (2.2dBi versus 1.2dBi) but is somewhat longer (6.76” versus 4.75”).

Linx half-wave antennas. The ANT-916-OC-LG-SMA has better gain than the ANT-916-CW-HWR-SMA at the expense of being 42% longer.

For the ProMini Air receiver or the ProMini Air transmitter where a small, remotely-mounted antenna is needed, we again recommend Linx antennas such as the ANT-916-CW-RCS or ANT-916-CW-RAH.

The ANT-916-CW-RCS is an excellent choice for a small antenna with 3.3 dBi gain. It is available from Digi-Key or Mouser. Note the male RP SMA connector.
The ANT-916-CW-RAH is another excellent choice for a small antenna (2.2 dBi) available from Digi-Key or Mouser. The connector shown here is a male RP SMA, but male SMA connectors are available from Digi-Key and Mouser as well.


Diagnostic Outputs

The ProMini Air receiver or transmitter provides diagnostic outputs that are not required for operation, but are useful for troubleshooting or just for fun:

  • The transceiver’s output (in Rx mode) or input (in Tx mode) can be monitored on the output DIP pins that are described above.
  • “I2C” outputs that can drive an inexpensive 2 row, 16 column I2C LCD display.
The 2-pin connector provides Ground and the RF transceiver’s transmitted or received DCC signals. These signals can be monitored by an oscilloscope.
ProMini Air receiver/transmitter connections to an I2C LCD display
Close-up of ProMini Air receiver/transmitter connections to an I2C LCD display

The ProMini Air software now automatically searches for a valid LCD I2C address. Please make sure only ONE display is connected to the ProMini Air.

You can also change this address by going into the “OPS” mode to reset either the ProMini Air transmitter or receiver. For the transmitter, you use the DCC throttle that connects to the ProMini Air transmitter (by default at DCC address 9000). For the ProMini Air receiver, you use the wireless DCC throttle transmitting to the ProMini Air receiver (by default at DCC address 9001). In both cases, you set CV243 to the appropriate I2C LCD address. The EEPROM permanently stores the changed address, but this new address is not operative until you power cycle the ProMini Air.

Configuration and Testing

By default, the ProMini Air receiver and transmitter are configured to operate on Airwire Channel 0. This default can be changed by setting the DCC address to 9001(Rx)/9000(Tx) (the default, which can be changed as described in the Users Manual) to access the ProMini Air transmitter, and in OPS or Programming-on-the-Main (POM) mode setting CV255 to the desired channel. Valid channels are 0-16 for North Americal Operation or Channel 17 (869.85MHz) for European operation.

Should the ProMini Air receiver fail to detect valid DCC packets on its default Channel during startup, it will cycle through all Airwire Channels to find a Channel producing valid DCC packets. If this cycling fails to find a valid Channel, the ProMini Air receiver will change to Channel 0 and wait for a valid RF DCC signal. This change of Channel is not permanent, and on a restart, the ProMini Air will revert to its default channel.

There are several other configuration options available through “OPS” mode programming, as described in the ProMini Air Users Manual.

We strongly urge the user to test the ProMini Air before the final deployment. At the least, an inexpensive I2C LCD display can be purchased here or here (and numerous other locations) to gain some insight into the ProMini Air’s state. This display is especially valuable when using the ProMini Air as a transmitter.

Examples of Testing

In the examples below, the Yellow waveform is the signal from/to the RF transceiver for Rx/Tx, respectively, and the blue waveform is one channel of the resulting DCC (Rx) sent to the decoder or DCC received from the throttle via wireless transmission (Tx).

Receiver Testing

The photo below shows the ProMini Air operating as a receiver. Of course, an RF transmitter wirelessly sends DCC packets. This transmitter may be a dedicated wireless DCC throttle, such as the Airwire Tx5000. Or, it may be a transmitter that converts standard “track DCC” to wireless DCC such as the Tam Valley Depot DRS1 transmitter or the ProMini Air used as a transmitter (as discussed in the next section)!

On the LCD, “My Ad: #” is the DCC address of the ProMini Air itself. The “(L)” means “long” address. Displayed on the second line is the Channel number and whether DCC “filtering” is “off” (Filter: 0, as shown) or “on” (Filter: 1).

Example of output from a ProMini Air receiver. The yellow signal on the oscilloscope is from the T/R DCC output pin on the ProMini Air receiver (the green PCB on the left with the red RF transceiver PCB mounted on the left end). The blue trace is the DCC signal produced by the DCC amplifier (the PCB on the right with the blue power/DCC out terminal) from inputs from the ProMini Air.

The photo below shows the oscilloscope waveforms when there is no valid RF DCC signal. With filtering off (Filter: 0), the DCC sent to the decoder reproduces the random pulses generated by the receiver.

The ProMini Air receiver’s outputs when no valid RF DCC is found. The yellow signal is the RF receiver’s DCC, and the blue signal is one of the DCC outputs from the DCC amplifier that provides input to the onboard DCC decoder.

These two photos show the ProMini Air’s transceiver and DCC amplifier output when valid RF DCC is received and when no valid RF DCC is received. DCC filtering is off, so the DCC amplifier’s output reproduces the transceiver’s DCC in both cases.

Valid RF DCC received. The decoder DCC mirrors (blue) the receiver’s DCC (yellow).
No valid RF DCC. The random pulses produced by the RF receiver are reproduced by the decoder DCC when DCC filtering is off (Filter: 0).

The user can reconfigure the ProMini Air receiver using the throttle’s “OPS” mode. Setting the wireless throttle DCC address to 9001 now shows that the Msg address (“Msg Ad: #”) matches the ProMini Air receiver’s address (“My Add: #”).

Set DCC filtering “on” by selecting the ProMini Air’s address (9001 in this case). Note that the MSG address now matches the ProMini Air’s address.

In OPS mode, change CV246 to “1”, which will turn “on” the ProMini Air receiver’s DCC filtering.

In “OPS mode” setting CV246 to “1.” The display will indicate that CV246 has been changed.

The display now shows that DCC filtering is “on.”

In “OPS mode” setting CV246 to “1.” The display will indicate that CV246 has been changed.

Exiting OPS mode and changing the throttle to the locomotive’s address, now shows an updated “Msg Ad: #” with DCC filtering “on.”

Then change the address back to the locomotive’s. The display now shows DCC filtering is “on.”

Here is the transceiver’s and DCC amplifier’s DCC output since we are transmitting valid RF DCC.

Again, the receiver and decoder DCC when a valid RF DCC signal is received.

If we turn off the wireless transmitter/throttle sending RF DCC, now the transceiver outputs random pulses (yellow). Since filtering is “on,” the ProMini Air receiver firmware detects “bad” waveforms that do not appear to represent a valid DCC packet. The ProMini Air receiver then outputs a constant-level signal that causes the DCC amplifier to output a high level on DCC A (blue), and zero on DCC B (not shown). This behavior is similar the that of the Airwire receivers. However, the detection mechanism for Airwire receivers is simply the lack of a sufficient frequency of DCC “IDLE” packets, not an analysis of the transceiver’s pulse train.

The waveforms when there is no valid RF DCC signal. With filtering on (Filter: 1), DCC A sent to the decoder is positive and DCC B is zero. This is assuming that CV248 is set to “1”. If CV248 is set to zero, then DCC A is zero and DCC B is positive.

Repeating the process of changing the wireless throttle’s DCC address to 9001, going into “OPS” mode, changing CV246 to “0”, exiting “OPS” mode, and changing back to the locomotive’s DCC address will now set DCC filtering to “off.”

You can repeat the process of selecting the ProMini Air’s address and in OPS mode set CV246=0 to turn the filtering back off, and then set the address back to the locomotive’s.
Changing the address back to the locomotive’s now indicates that the DCC filtering is off (Filter: 0).

So, now when we turn off the wireless DCC throttle/transmitter, the DCC amplifier’s output (blue) will reproduce the random pulses output by the RF transceiver (yellow).

Now, when no valid RF DCC is received, the decoder DCC reproduces the random pulses generated by the RF receiver.

Transmitter Testing

We now turn our attention to testing when the ProMini Air is used as a transmitter.

With exactly the same ProMini Air, the Pro Mini was re-flashed with the transmitter firmware. The “DCC Converter” PCB (the PCB on the right) converts any throttle’s DCC to Ground, +5V power, and 5V logic DCC for input to the ProMini Air transmitter (the PCB on the left).

The display will alternate between showing the ProMini Air transmitter’s DCC address (“My Ad: #”) and the transmitted DCC packet’s DCC address (“Msg Ad: #”). The transmitting Channel (“Ch: #”) and Power Level (“PL: #”) display on the second line.

Note the ProMini Air transmitter’s ID.
The throttle’s address is alternately displayed with the ProMini Air’s address. The Channel number and Power Level are indicated.

Below is an oscilloscope trace of the input DCC from the throttle (blue) and the DCC transmitted by the RF transceiver on the ProMini Air transmitter. Since the wireless DCC must keep Airwire RF receiver’s “happy” with numerous DCC “IDLE” packets, the ProMini Air transmitter evaluates the incoming DCC from the throttle. When the throttle outputs frequent, redundant DCC packets, the ProMIni Air transmitter occasionally inserts DCC “IDLE” packets instead of one of the redundant packets. So, the input DCC and the transmitted DCC will not precisely match. Since DCC throttles send many redundant DCC packets, the locomotive will receive sufficient DCC packets to operate correctly.

The DCC sent out (yellow) will not exactly match the throttle DCC because of slight timing delays and the occasional insertion of DCC “IDLE” messages that are required to keep Airwire receivers “happy.”
A shorter time scale of the previous photo

The ProMini Air transmitter can be reconfigured by setting the throttle’s DCC address to 9000 (which can be changed) and then going into the “OPS” mode to set configuration variables (CV) to new values.

Setting the throttle’s address to 9000 allows the throttle to reconfigure the ProMini Air in OPS mode.

Once we have changed the throttle’s DCC address to 9000, note that the message address (“Msg Ad: #”) now matches the ProMini Air’s address (“My Ad: #”).

The display now indicates that the message address matches the ProMini Air’s.

For example, while in OPS mode, changing CV246 to “6”, will reset the ProMini Air transmitter’s Power Level to 6, as indicated by the display shown below.

In OPS mode, setting CV254 to 0-10 changes the output power level, as indicated here.

After exiting the “OPS” mode, we see that the display reflects the new Power Level (“PL: #”).

The Power Level is now 6.
Note that Msg and My Address are the same.

Changing the throttle’s DCC address back to the locomotive’s address will sometimes show “Msg Ad: 255(S)”, which means that the ProMini Air transmitter sent out a DCC “IDLE” packet to make Airwire receiver’s “happy.”

Changing the throttle’s address back to the locomotive’s allows the ProMini Air to insert occasional DCC “Idle” messages, indicated by a message address of 255. The IDLE message keeps Airwire receivers “happy.”

A display refresh (every 4 seconds) will most likely display the locomotive’s DCC address, which is 1654. The “(L)” means “long” address.

The display will alternately show the locomotive address and the ProMini Air’s address.

Conclusion and Further Information

The ProMini Air is an inexpensive and hopefully fun introduction to wireless DCC control of your model railroad locomotive!

Please see this Blueridge Engineering site for further information on the purchase and assembly of ProMini Air kits. The prices will range from $40 to $50 that includes a DCC amplifier for the receiver and a DCC converter for the transmitter.


Dead-Rail Transmitter/Receiver Options and Installation

Numerous wireless RF transmitter/receiver (Tx/Rx) options for locomotive control are available both in the US and abroad. My discussion is confined to wireless RF transmitter/receiver options that are DCC compatible, which means that the transmitter sends “logic-level” DCC packets, and the receiver converts the “logic-level” DCC packets back to “bipolar” DCC packets, as would be transmitted on tracks, that an onboard DCC decoder can “understand.”

Schematic of representative application

Why am I limiting my discussion? Because DCC is a standard, and if you don’t go with solutions that have standards behind them, then you are likely to suffer “vendor lock” where a single vendor holds you “hostage” with “their” solution. Perhaps that attitude is a bit overblown, but vendors with proprietary solutions tend to lag in innovation for lack of competition, and what happens if the vendor goes out of business?

I know that the NMRA DCC standards have some problems including the following issues: pending issues under consideration for years; vendors ignoring some parts of the standards; some vagueness in places; and lack of standards for wireless. The DCC standard is imperfect, but it’s miles better than no standard at all. Plus, the DCC decoder market is competitive and feature-rich – you can almost assuredly find a DCC decoder that will satisfy your needs.

As a further limitation of this post, I will mostly confine my discussion on DCC-compatible wireless Tx/Rx options to the 902-928 MHz ISM (Industrial, Scientific, and Medical) band because this is where I have direct experience. There is significant and exciting activity in the DCC-compatible 2.4 GHz ISM band (using Bluetooth technology) band as well (see BlueRailDCC), but I have no personal experience with this band. Another advantage of the 902-928 MHz ISM band is that there is some interoperability between transmitters and receivers, although there is currently no firm standard behind this interoperability.

DCC-compatible Tx/Rx options are a very large topic that I cannot fully cover in this blog. These options are well-covered in the following links:

  • Dead Rail Society: This should always be your first stop when looking at topics related to dead-rail. This site is the epicenter of dead-rail. In particular, this page discusses vendors for dead-rail Tx/Rx.
  • Facebook Dead Rail page: This social media page is a valuable source for the latest announcements and discussions for dead-rail, including Tx/Rx options.


Below is my personal experience with 902-928 MHz ISM DCC-compatible receivers.

General Comments

How each of these DCC compatible wireless receivers handles loss of valid RF signal from the transmitter is discussed here.

CVP Airwire

A CVP Airwire CONVRTR-60X wireless DCC-compatible RF receiver mounted to the side of the tender hull using Velcro. The U.FL antenna cable was later connected. The DCC “A/B” output of the CONVTR-60X connects to the “Track Right/Left” inputs of a wiring harness for a LokSound L V4.0 DCC decoder (not yet inserted) on the opposite side of the tender hull.

The company CVP manufactures and supports its Airwire series of products that include hand-held wireless DCC-compliant throttles (such as the T5000 and T1300) and receivers, such as the CONVRTR series that seamlessly connects to DCC decoders onboard the locomotive. As a general comment, CVP provides excellent, detailed installation and operation documentation, and that’s in part why they are dominant in some segments of wireless model railroad control. The CONVRTR receiver has some sophisticated features, such as setting its Airwire RF channel purely in software, that are described in its User Guide.

However, the CONVRTR interacts with the Airwire wireless throttles in ways that make it difficult to impossible​ to transmit just “garden variety” DCC wirelessly to the CONVRTR for proper operation. The Airwire throttles transmit numerous DCC “Idle” packets as a “keep-alive” message for the CONVRTR. A red LED on the CONVRTR board indicates received signal quality and flickers least when receiving a large number of DCC Idle packets. The brightness of the LED indicates the received RF power. Typical DCC throttles are not designed with these “keep-alive” concerns in mind, and do not output DCC Idle packets often enough to keep the CONVRTR “happy.”

Other than the CVP Airwire transmitters (the T5000 and T1300), the only currently-available (the no longer manufactured NCE GWire Cab was also Airwire-compatible) RF transmitter that I am aware of that is capable of communicating with the Airwire CONVRTR is the ProMini Air, whose open-source software (at GitHub AirMiniTransmitter) intercepts “garden variety” DCC from the throttle and interleaves a sufficient number of DCC Idle packets to communicate correctly with the CONVRTR. This “keep-alive” requirement for the Airwire CONVRTR is challenging to produce, so sometimes a reset of the DCC throttle ​or the ProMini Air is required to initially send enough DCC Idle packets to initiate communication with the CONVRTR.

Like the Gwire receiver below, the Airwire CONVRTR “X” versions have a ​U.FL connector for connecting a shielded antenna cable from the receiver to an externally-mounted antenna. An internal antenna option is available as well for CONVRTR mountings that are not surrounded by metal.

QSI Solutions Gwire

Gwire U.FL connector. If using the U.FL connector, detach the wire antenna.

The Gwire receiver operates on Airwire RF channels 0-7 ​that the user must select from a dial on the device itself. A nice feature of this receiver is an onboard U.FL connector (see Figure  above) that allows the user to connect a shielded antenna cable from the receiver to an externally-mounted antenna – useful when the antenna needs to be on the exterior of a metal locomotive or tender shell. See Blueridge Engineering’s website for details on how to interface the Gwire to any onboard DCC decoder. The Gwire presents no difficulties for wireless 902-914 MHz ISM band DCC-compatible transmitters, and you can find it on eBay at relatively low ($20 US or less) prices.

Tam Valley Depot DRS1, MkIII

Tam Valley Depot DRS1, MKIII in an open-cavity install. Note the built-in long wire antenna.

The Tam Valley Depot DRS1, MkIII receiver operates only on Airwire RF channel 16 (actually 916.49 MHz, which is close enough to Airwire channel 16 at 916.37 MHz) and makes a suitable wireless DCC receiver. This receiver has a long, single-wire antenna that provides efficient RF reception (see the figure above). However, you must place this wire outside any metal shell, which may be inconvenient in some mounting applications. The DRS1, MkIII, presents no difficulties for the 902-914 MHz ISM DCC-compatible transmitters as long as they transmit near 916.49 MHz. The DRS1, MkIV described in the next section supersedes this receiver.

Tam Valley Depot DRS1, MkIV

The recently-released Tam Valley Depot DRS1, MkIV receiver. Note the internal antenna on the right side of the board.

The Tam Valley Depot DRS1, MkIV receiver is a significant upgrade from the DRS1, MkIII, and operates at the original Tam Valley 916.49 MHz frequency, Airwire Channels 0-16, and at 869.85 MHz (for European operation). The DRS1, MkIV presents no difficulties for the 902-928 MHz ISM DCC-compatible transmitters and is an interesting choice because it changes channels automatically until it finds a sufficient RF signal carrying DCC packets. See the figure above for the version that employs an internal antenna that is useful when the receiver is not mounted inside a metal shell.

The DRS1, MkIV with a U.FL antenna connector (and a heatsink update) is now available (see picture below), making it very useful for connecting to external antennas outside of metal shells. This version of the DRS1 makes it highly competitive in capability and quality with the Airwire CONVTR. Perhaps a future version will provide DC output to the onboard DCC decoder when no valid RF signals carrying DCC packets are available, making it possible to program the DCC decoder’s behavior when there is no DCC signal available.

Tam Valley Depot DRS1, MkIV receiver with U.FL connector.

Blueridge Engineering ProMini Air Receiver

ProMini Air receiver/transmitter

The inexpensive ProMini Air receiver kit presents no issues when used with 902-928 MHz ISM DCC-compatible transmitters. It operates on Airwire RF channels 0–16 and requires a separate, low-cost amplifier (e.g., the Cytron MD13S) to convert the ProMini Air’s unipolar 5V DCC to bipolar DCC that provides sufficient power to the decoder. See the Blueridge Engineering web page for details on how to build the kit and properly connect the ProMini Air to the amplifier that is in turn connected to the onboard DCC decoder.

The ProMini Air’s open-source software is available for download at the GitHub site AirMiniTransmitter.


So far as I’m aware, there are four 902-928 MHz ISM DCC-compatible transmitters: the CVP Airwire T5000 and T1300, the Tam Valley Depot DRS1 transmitter, and the Blueridge Engineering ProMini Air transmitter.

CVP Airwire Transmitters

The CVP Airwire T5000 and T1300 transmitters are excellent choices for operating with 902-928 MHz ISM DCC-compatible receivers, all of which will properly-communicate with these two transmitters. When I am testing wireless receivers, the T5000 is my “go-to” because, in addition to serving as a DCC-compatible throttle, it can program onboard DCC decoders, via the wireless receiver, in either “OPS” (or Programing-on-the-Main, PoM) or “Service” mode. While the T1300 cannot program the onboard DCC decoders, it serves as a typical DCC throttle.

Of course, the Airwire transmitters send sufficient DCC “Idle” packets to keep the Airwire CONVRTR receivers “happy.”

Tam Valley Depot DRS1 Transmitter

The Tam Valley Depot DRS1 transmitter uses DCC packets produced by any DCC throttle or command station that outputs “bipolar” DCC to tracks. The DRS1 transmitter converts the “bipolar” DCC to “logic-level” DCC and transmits it at only 916.49 MHz, which is close enough to Airwire Channel 16 at 916.36 MHz to be received. This frequency limitation means that only the Tam Valley Depot DRS1, MkIII, and MKIV, and the Blueridge ProMini Air receivers can operate with this transmitter if they are receiving on 916.48 MHz or Airwire Channel 16.

While the Airwire CONVRTR can operate on Airwire Channel 16, the DRS1 transmitter is not designed to transmit sufficient “Idle” DCC packets to keep the CONVRTR “happy” since it passively sends along only the DCC packets it receives from the DCC throttle or command station.

Blueridge Engineering ProMini Air Transmitter

The ProMini Air transmitter with optional LCD. The antenna in the picture was replaced with a high-quality 1/2-wave antenna Linx ANT-916-OC-LG-SMA antenna from either Mouser or Digi-Key for improved transmission.

Blueridge Engineering provides the ProMiniAir transmitter/receiver kit that uses open-source software at the Github AirMiniTransmitter site. Like the DRS1 transmitter, it is designed to take inputs from any DCC throttle or command station’s “bipolar” DCC output to tracks (via a simple, low-cost optocoupler provided by Blueridge Engineering) and transmit the “logic-level” DCC on Airwire channels 0-16.

The ProMini Air transmitter inserts a sufficient number of DCC “Idle” packets into the original throttle-produced DCC to keep the Airwire CONVRTR “happy.” This keep-alive capability coupled with transmission on Airwire channels 0-16 ensures that the ProMini Air transmitter is capable of communicating with any of the 902-928 MHz ISM DCC-compatible receivers discussed in this blog.

This transmitter’s settings, like channel number and output power, can be controlled by the DCC throttle or command station in the “OPS” mode by setting the throttle address to that of the ProMini Air, which is 9000 by default. An optional LDC display can be attached to the ProMini Air transmitter for status display. More configuration information is available at the GitHub AirMiniTransmitter site.

Full disclosure here: I am one of the contributors to the AirMiniTransmitter open-source software, and I am heavily-involved with Blueridge Engineering with the design of the ProMini Air transmitter/receiver board.

Dead-Rail Conversion of an MTH 2-8-8-8-2 Virginian Triplex


This post describes my most difficult dead-rail conversion to date: an MTH O scale 2-8-8-8-2 Virginian Triplex (MTH product number 20-3101-1) that I purchased on eBay circa September 2019. Previously, I converted a Sunset 3rd Rail Allegheny with an MTH Proto-Sound 3.0 board to dead-rail, but the Triplex was my first complete dead-rail conversion of an MTH locomotive to 2-rail operation, which included lathe turning high-profile wheels to approximate an NMRA RP-25 flange profile (also see NMRA standard S-4.2) so that the locomotive would operate reliably on track meeting NMRA standard S-3.2.

Box details
Locomotive side view
Tender side view

The inside view of the tender below demonstrates a significant challenge: space is very tight with the Proto-Sound board and the large speaker consuming a large part of the tender’s internal volume where we need to install additional dead-rail components: DCC-compatible RF receiver; 14.8V LiPo battery; and switch, charging, and antenna wiring.

Inside view of the tender: Note the battery cradle, the space-consuming speaker, and the end-of-tender smoke unit.

The strategy starts to emerge:

  1. Replace the Proto-Sound 2.0 (PS2.0) board with a PS3.0 board that can operate in DCC mode.
  2. Remove the original rechargeable battery and its cradle and locate the 14.8V LiPo battery pack there.
  3. Remove the large speaker and replace it with a smaller 4-ohm speaker so that we can make room for the 14.8V LiPo battery pack and the Airwire CONVRTR-60X DCC-compatible RF receiver that operates in the 902-928 MHz ISM band on Airwire channels 0-16.
  4. Lathe down the high-rail wheel flanges to approximate an NMRA “RP-25” profile for 2-rail, dead-rail operation.

An advantage of this strategy is retaining almost all of the control the PS2.0/PS3.0 provides, including directional head/tail lamp, marker lights, cabin lights, flickering firebox, sound, and fan-driven smoke units.

Proto-Sound 3.0 Conversion

The first step of the dead-rail conversion was easy: replacing the Proto-Sound 2.0 board with a Proto-Sound 3.0 (PS3.0) board from Ray’s Electric Trainworks. As I have mentioned in other posts, working with Ray Manley is a great pleasure. I sent my PS2.0 board as a trade-in to Ray, and he took care of the rest, providing me with a fully-functional PS3.0 board, complete with DCC capability.

The heatsink for the PS3.0 board necessitated drilling and tapping a new mount hole with spacer, as shown in the figure below.

New Proto-Sound 3.0 heatsink mount with a spacer.

The following photos show the original electrical power inputs to the PS2.0 board and their modified connections for the replacement PS3.0 board.

Original power connections to the Proto-Sound 2.0 board.

As you can see below, the AC power from the center rail pick-up (hot) and the outside rails (ground) were disconnected – we will be getting our power from a 14.8V LiPo battery pack in the tender. In this case, there is no Constant Voltage Unit, so no Battery +(14.8V)/Battery -(Ground) connections are required.

Locomotive power connection modifications. There is no Constant Voltage Unit in this locomotive, so the B+/B- wires indicated above are NOT used.

The AC power connections in the tender are also disconnected, and the power inputs to the PS3.0 connect to the switched battery power. The Battery +(14.8V)/Battery -(Ground) connection on the wiring harness was NOT required.

Tender power connection modifications. There is no need for B+/B- power supply to the locomotive.
Power input modifications for the PS3.0 board. The DCC A/B input power comes from the connection to the Airwire CONVRTR-60X DCC-compatible RF receiver.
Final wiring connections

Locomotive Electrical Modifications

There were two aspects to the electrical modifications in the locomotive:

  1. Headlamp replacement
  2. Electrical power supply

The original headlamp was a power-hungry incandescent bulb. An LED with a polarity-independent plug from Evan Designs was used to eliminate the need to determine the polarity of the original headlamp wiring.

Headlamp LED replacement details

The power-related modifications consisted of removing the center-rail pick-ups, which is very easy on MTH locomotives and disconnecting any wiring to the center-rail pick-up (hot) and the outside rails (ground).

The original center-rail pick-ups. The “Center-Rail Pick-up” is disconnected.
The center-rail connection underneath the motor is disconnected

Battery Installation

Battery installation was very challenging since the only practical placement location was the original rechargeable battery and its cradle mounting beside the PS2.0 board. A special-order 2x2x1 14.8V, 2600mAh (38.48 Wh, 5A rate,  LxWxT: 133 mm x 40 mm x 25 mm) LiPo battery purchased from provides the one cell-diameter thickness required to fit the battery pack between the PS3.0 board and the tender hull.

Original rechargeable battery and cradle location. The speaker volume control potentiometer was moved to accommodate the more extended 14.8 V LiPo replacement battery pack.
Volume control potentiometer. It was moved from its original location, and UV glue provides stress relief to prevent breakage of the very fine wires.
Final location of the volume control potentiometer. UV glue holds the potentiomenter in place.
Final battery location. Velcro attaches the battery to the side of the PS3.0 board.

Mechanical Modifications

In MTH steam locomotives, the wheel axles insert into a solid cast chassis frame, so the driver wheels must be pulled off the axle before machining the high profile wheels to approximate an RP-25 profile that is compatible with two-rail, dead-rail operation.

The driver wheels must be pulled off the axle for machining after removal of the side-rods. The axle and wheel are scribed to maintain proper “quartering.”
A wheel puller to separate the driver wheel from the axle.
Comparison of lathe-cut and unmodified high-profile wheels. The high-profile flanges were lathe-cut to approximate an RP-25 profile for 2-rail, dead-rail operation.

Tender Mechanical Modifications

The tender’s mechanical modifications involve adding a Kadee 740 coupler and accommodating additional dead-rail electronics.

Coupler Modifications

The original coupler pivot, rather than using a frame-fixed mounting, was used to mount a Kadee 740 coupler. This strategy ensured that tight curves would not bind the coupler.

The original coupler assembly

A Kadee 740 coupler was mounted on the original coupler pivot, as shown in the Figure below. The brass screw heads were ground down to provide clearance with the tender frame.

Modified coupler assembly for a Kadee 740 coupler

Additional Dead-Rail Electronics

The added dead-rail electronics include the charging plug, the ON/OFF/Charging plug, a smaller speaker, and the antenna mount.

Charging plug (left) and ON/OFF/Charge switch (right) mounting
Antenna mounting location. The antenna is a  Linx ANT-916-CW-RCS discussed in this blog.

The original speaker was far too large to provide clearance for the additional battery, DCC-compatible RF receiver, and other electrical components needed for the dead-rail installation. So a 16mm x 35mm speaker was placed in the bottom of the original speaker’s cavity, and UV glue holds the speaker in place.

The original speaker. It is far too large to accommodate the additional dead-rail components: battery, DCC-compatible RF receiver, ON/OFF/Charging switch and charging plug.
Candidate speaker. The actual 16mm x 35mm speaker was even smaller and mounted into the bottom of the original speaker cavity.

Final Demonstration

With the locomotive reassembled, it’s time to test it out! If your locomotive has a smoke unit(s), always ensure sufficient smoke fluid is loaded. Even if you don’t intentionally turn on the smoke unit – sometimes it’s unexpectedly activated.

Initial demonstration

Dealing with Loss of RF Signal in Dead-Rail for Onboard DCC Decoders

Note: This post deals with details of various brands of DCC-compatible, wireless RF receivers operating in the 902-928 MHz “ISM” band that connect to onboard DCC decoders. Some aspects of the discussion may apply to other RF bands as well.

Typical application. In some cases, such as the Airwire transmitters, the throttle and transmitter are combined. Also, the receiver and amplifier may combined, such as for Airwire and Tam Valley Depot receivers.

The designers of various DCC-compatible RF receivers have a couple of strategies for what output to provide to the onboard DCC decoders when a valid RF signal is lost:

  1. Output the random pulses that the RF receiver naturally outputs when a valid RF signal is lost. This option will cause most DCC decoders to maintain direction and speed while the DCC decoder “sifts” the random pulses searching for valid DCC packets.
  2. Output a fixed, positive Direct Current (DC) voltage to one of the DCC decoder’s “Track” inputs and a zero voltage DC the other “Track” input when either a) RF signal is lost, or b) when the RF transmitter does not send sufficiently-frequent “keep-alive” DCC packets. The latter is true for the Airwire CONVRTR. How the DCC decoder responds to these DC “Track” inputs depends upon DCC decoder configuration and, unfortunately, DCC decoder manufacturer discretion.

There are several NMRA-specified Configuration Variables (CV’s) that affect how DCC decoders handle the loss of valid DCC packets and are important to understand when the DCC decoder is connected to the DCC output of DCC-compatible RF transmitters because the RF receivers may lose or receive corrupted RF signal from the dead-rail RF transmitter.

The NMRA standard S-9.2.4, section C “Occurrence of Error Conditions” states “Multi Function Digital Decoder shall have a Packet Update time-out value.” Further down on line 60 the standard states “A value of 0 disables the time-out (i.e., the user has chosen not to have a time-out)”. This part of the NMRA standard is not universally-implemented by manufacturers, and it affects how decoders will respond to the loss of RF transmission of DCC packets. To implement this requirement, the NMRA standard S-9.2.2 has defined the recommended (R), but not mandatory (M), CV11, Packet Time-Out Value. A value of CV11=0 is defined to turn off the time-out, but CV11 is frequently not implemented.

However, another CV that is often implemented addresses some aspects of loss of DCC. The optional (O) CV27, Decoder Automatic Stopping Configuration, is under re-evaluation by NMRA, but the NMRA has taken no definite action some time. Here is what the NMRA standard S-9.2.2 currently (as of 2019) states about CV27: 

Configuration Variable 27 Decoder Automatic Stopping Configuration
Used to configure which actions will cause the decoder to automatically stop.

Bit 0 = Enable/Disable Auto Stop in the presence of an asymmetrical DCC signal which is more positive on the right rail.
“0” = Disabled “1” = Enabled

Bit 1 = Enable/Disable Auto Stop in the presence of an asymmetrical DCC signal which is more positive on the left rail.
“0” = Disabled “1” = Enabled

Bit 2 = Enable/Disable Auto Stop in the presence of an Signal Controlled Influence cutout signal.
“0” = Disabled “1” = Enabled

Bit 3 = Reserved for Future Use.

Bit 4 = Enable/Disable Auto Stop in the presence of reverse polarity DC.
“0” = Disabled “1” = Enabled

Bit 5 = Enable/Disable Auto Stop in the presence forward polarity DC.
“0” = Disabled “1” = Enabled

Bits 6-7 = Reserved for future use.

Since DCC decoder manufacturers frequently do implement CV27, what electrical output the DCC-compatible RF receiver provides to the DCC decoder upon loss of a valid RF signal will influence how the DCC decoder responds. We will break this down for various brands of DCC-compatible RF receivers in the 902-928 MHz ISM band in the following subsections.

Note that some DCC decoders will not honor CV27=0; i.e., all auto-stopping features disabled. For example, with CV27 set to 0, the Zimo MX-696, and probably other Zimo DCC decoders as well, will continue speed and forward direction if positive DC level is input to the “Right Track” DCC input, and a zero DC level is input to the “Left Track” DCC input. Under these “track voltage” conditions, the locomotive will stop if originally moving backward. Some (but not all) DCC-compatible RF receivers, such as the Airwire CONVRTR, provide these DC inputs, if a valid RF signal is lost, but only if connected correctly.

The “correct” connection relates to how the user connects the DCC output from the RF receiver to the “Track Right” and “Track Left” inputs of the DCC decoder. Under normal circumstances, when there is a valid RF signal, which way the DCC decoder connects to the RF receiver does not matter. Under the exceptional case of DC-only output by the RF receiver, if it loses a valid RF signal, which way the DCC decoder connects to the RF transmitter does matter. The user will likely want the locomotive to continue forward with the loss of a valid RF signal, so some experimentation is required to determine which of the RF transmitter DCC outputs should connect to which of the DCC decoder’s “Track” inputs to achieve the desired behavior.

Example DCC waveform output from a DCC-compatible RF receiver when there is a valid RF signal
Example random pulse output from a DCC-compatible RF receiver when there is no valid RF signal. Note the waveform’s superficial similarity to valid DCC output.

As a further complication, the user should probably turn off the decoder’s “analog” mode of operation by setting Bit 2 of CV29 to 0 to force the decoder to use “NMRA Digital Only” control of ”Power Source Conversion” (see the NMRA standard here). If Bit 2 of CV29 is set to 1, and again we emphasize the user should probably not activate this feature, then “Power Source Conversion Enabled” and then CV12 determines the power source; the most common of which is CV12=1, “Analog Power Conversion.”

Airwire CONVRTR Series

CVP Airwire CONVRTR-60X tender installation. The CONVRTR operates on Airwire channels 0-16. Note that the U.FL antenna lead was later connected to the CONVRTR. The LokSound L V4.0 DCC decoder mounting harness can be seen mounted on the tender wall opposite the CONVRTR, and its Track Left/Right inputs are connected to the CONVRTR-60X’s DCC A/B outputs.

When the CVP Airwire CONVRTR loses a valid RF signal or receives insufficiently-frequent DCC Idle packets, it detects these conditions and outputs a fixed DC voltage to the decoder. Consequently, the user should set CV27 according to the description above.

While it may seem that the user would want the locomotive to stop if its RF receiver loses a valid RF signal, consider what might happen in tunnels or locations remote to the DCC RF transmitter. Getting stuck under these circumstances if a valid RF signal is lost is probably not what the user wants, so we strongly suggest that the user set CV27=0.

The user is cautioned, however, that some DCC decoders, such as the new ESU LokSound 5 L DCC, do not honor the CV27=0 setting unless the “polarity” of the “Track Right/Left” is connected “correctly” to the CONVRTR’s “A/B” output. Experimentation may be required to determine the correct connection, but my experience is: CONVRTR A <–> Decoder Track Right & CONVRTR B <–> Decoder Track Left

QSI Solutions Gwire and Tam Valley Depot DRS1 Series

The QSI Solutions GWire operates on Airwire Channels 0-7. If the U.FL plug (at the upper-left corner of the Linx Transceiver chip) connects to an externally-mounted antenna, the antenna wire at the upper-left corner of the GWire board should be cut off at board level, or better yet, unsoldered.
The Tam Valley Depot DRS1, MKIII, operates on Airwire Channel 16
The Tam Valley Depot DRS1, MkIV, operates on Airwire Channels 0-16 (as well as other frequencies). Note the internal antenna on the right-hand side of the board.

The QSI Solutions Gwire and Tam Valley Depot DRS1, MkIII and MkIV DCC-compatible RF receivers will output random pulses to the onboard DCC decoder when a valid RF signal is lost, so setting CV27 is probably of no use. On the “plus” side, most DCC decoders will maintain locomotive direction and speed in the presence of these random pulses since the DCC decoder is actively sorting through these pulses for valid DCC packets, which is usually the behavior the user wants.

A Blueridge Engineering webpage describes how to easily modify the GWire for use as an RF receiver for any onboard DCC decoder.

Blueridge Engineering ProMini Air Receiver

Blueridge Engineering ProMini Air receiver operates on Airwire channels 0-16. The ProMini Air can also be configured to operate as a DCC-compatible transmitter that wirelessly transmits DCC from any DCC source on Airwire channels 0-16.

The Blueridge Engineering ProMini Air receiver has a default long address of 9001. Like the ProMini Air transmitter, the ProMini Air receiver’s channel can be reset in “OPS Mode” by setting CV255 to a value in the range of 0–16. The ProMini Air receiver has the following options when a valid RF signal is lost:

  • Output random pulses to the onboard DCC decoder: The user can set the ProMini Air receiver to output the random pulses when it loses a valid RF signal by setting CV246 to 0 in “OPS mode” at the ProMini Air’s address. In this case, setting CV27 for the onboard DCC decoder is not relevant, because the random pulses from the ProMini Air receiver will cause the onboard DCC decoder to maintain speed and direction of the locomotive while it is “sifting” through the random pulses for valid DCC packets.
  • Output either fixed positive or negative voltage DC to the onboard DCC decoder: In this case, setting CV27 for the onboard DCC decoder at its address is relevant. The user can set the ProMini Air receiver to output fixed DC voltage when it loses a valid RF signal by setting CV246 to 1 in “OPS mode” at the ProMini Air’s address. A positive DC voltage is output by setting the ProMini Air receiver’s CV248 to 1 in “OPS mode” at the ProMini Air’s address, or a negative DC voltage is output by setting CV248 to 0. If the user does not want the locomotive to stop with the loss of a valid RF signal, then set CV27=0 for the onboard DCC decoder at its address. Of course, setting CV27 to other values (see above) in the DCC decoder will determine how the DCC decoder responds to the fixed DC voltage that the ProMini Air outputs to the onboard DCC decoder upon loss of a valid RF signal.


It’s an unfortunate fact of life that we can lose a valid RF signal from our DCC-compatible transmitter. However, with a little study of DCC decoder documentation, and possibly a bit of experimentation, gracefully coping is definitely possible.

Retro-Fitting Smoke Units with Thermistors and Set-up for LokSound Decoders

This is a slight modification of a post I made titled: O Gauge Forum Post on Smoke Units

It is possible to modify a non-ESU smoke unit so that it connects to the LokSound L or XL decoders just as an ESU smoke unit does by connecting the smoke unit to the specialized ESU smoke unit terminals: HTR+/-, MOT+/-, and TMP+/-. This capability allows you to take direct advantage of all the LokSound capabilities provided for ESU smoke units. The missing component in some smoke units is a Negative Temperature Coefficient (NTC) thermistor.

What started me down this road was a “deadrail” conversion of a Sunset 3rd Rail Big Boy (3-rail, “Late Version”) originally outfitted with TMCC and a nice Lionel smoke unit with dual output (photo below).

Dual stack, fan-driven smoke unit for retro-fit.

I wanted to retain this beauty and use a LokSound L V4.0 decoder that is controlled by an Airwire CONVRTR-60. THOR73’s posts on the O Gauge Form inspired me to work through using this smoke unit with the LokSound L V4.0 decoder. I thought that if I could figure out how the ESU smoke units created their “temperature” inputs to the LokSound decoder, then I could retrofit the Lionel smoke unit so that it would be “input compatible” with an ESU smoke unit. This retrofit turned out to be simple.

I reverse-engineered an ESU 54678 smoke unit by measuring the resistance between the heater resistor leads (HTR+/-): ~23 ohms; motor leads (MOT+/-): ~16 ohms; and thermistor leads (TMP+/-): ~100K ohm at room temperature. Each of these components is electrically-isolated from the others. When powered by a 14.8V LiPo battery, the LokSound L V4.0 decoder I had on hand produced the following results on the ESU Profi board using the LokProgrammer (with ground measured at the Profi board’s ground terminal):

Terminal Smoke off Smoke on (Throttle=10)
HTR+ (not connected to heater resistor*) 13.4V 13.2V
HTR- Open Switched open/ground @500Hz ~30% duty-cycle PWM
Fan+ 0V Pulsed <= 5V (difficult to determine with low Frequency chuffs)
Fan- 0V 0V
TMP+ 5.1V 5.1V
TMP- 1.3V 3.7V
* Battery+ (14.8V) connected to heater resistor + input

Cut-away of a 54678 ESU smoke unit showing the thermistor

The difference in TMP- between unheated and heated conditions suggests, but does not prove, that the thermistor’s decrease in resistance with increased temperature is manifested by a voltage increase at TMP- as part of a voltage divider where the thermistor is in series with a fixed resistor resident in the decoder, possibly with a low-side voltage offset:

Probably thermistor circuit

Guesses: RFIXED~1.5K based on probe measurements and derived @ 25C Voffset~1.24

So right off the bat, the ESU smoke unit’s heater resistance (23 ohms) is similar to Lionel’s (27 ohms), and both smoke units use 5V fan motors. The Lionel was missing only the thermistor. Lower resistance smoke units (around 8 ohms) might be problematic to convert unless retrofitted with a heater resistor in the 20-ohm neighborhood or use an externally-supplied, lower HTR+ voltage. The heater and fan motor similarity between the ESU and Lionel smoke units seemed to make this particular Lionel smoke unit an excellent surrogate candidate.

Thermistors with 100K ohm resistance at 25 Celsius are commonly-available, usually with a “B” parameter of around 3900 Kelvin. You can Google what this parameter means (simplified Steinhart-Hart Equation: R(T in Kelvin)=R@TRef*(exp(B/T-B/TRef)) ). While I was not able to verify that the ESU smoke unit used precisely this type of thermistor, testing described later supports this selection.

The photo below is the Lionel 27 ohm smoke unit PCB, part #610-PCB1-045, Rev C (Lionel replacement part #691PCB1045), that was retrofitted with an “axial,” glass-coated 100K NTC thermistor with a B of 3892 Kelvin. (Well, it’s actually a Lionel replacement PCB since I cut some traces retrofitting on the original PCB that I regret doing. Interestingly, the original PCB did not have the mangled lettering of the replacement PCB that some like some have noted.)

The 3-pin power plug on the PCB can be used to power the heater resistor since the outputs from the rectifier/5V converter on the PCB do not connect to anything after removing the fan motor plug. The ground on the PCB MUST be isolated from the heater unit metal case since the PCB’s “ground” wire will be connected to the LokSound L’s HTR- terminal that regulates the heating resistor’s current path to the electrical ground! Electrical measurements revealed good electrical isolation of the metal case from the heating element.

Lionel fan-driven smoke unit with a 100K thermistor added.

I drilled two holes in the smoke unit’s PCB board, and the thermistor was inserted and soldered to two-wire leads that connect to the LokSound L’s TMP+/- terminals. I used high melting-point solder because conventional solder might melt at the high operating temperatures of the heater resistor and thermistor (max around 250 Celsius according to documentation for the ESU smoke unit).

The two heater wires from the three-pin PCB plug connect to the LokSound L’s HTR+/- terminals. (Pins 1 and 3 are shorted together on the PCB and connect to one side of the heater resistor. Pin 2 is ground and connects to the other side of the heater resistor.)

The motor wires directly connect to the MOT+/- terminals. Out of sheer luck, when the red motor lead from the smoke unit is connected to MOT+, and it’s black lead to MOT-, the fan motor spins in the “correct” direction.

As others have suggested, I also replaced the original 27 ohm ceramic resistor with a Lionel 27 ohm replacement #6008141055.

Once you connect the smoke unit’s six outputs to the LokSound L’s ESU smoke unit terminals, some modifications are needed in the ESU sound files and decoder set-up, since they did not originally activate the ESU smoke unit. First, follow THOR73’s directions regarding the connection between sound and smoke chuffing under the “Smoke unit” menu. Note especially that the smoke unit’s automatic power-off time should be reset since the default is 0 seconds. I don’t know if 0 means never turn off, but a non-zero setting seemed like a good idea to me.

LokSound change decoder settings menu

What differs from THOR73’s discussion is the sound-file set-up for an ESU smoke unit. Editing the sound files reveals that most “nodes” have an option to set the “ESU Smoke Unit” parameters. Frequently these settings are turned off, but there are some useful “presets” you can select and experiment with.  An especially interesting preset is the “preheating” preset that is available in the stopped state.

Mute State:

LokSound Stop state settings.

Here are the other states I modified, but I am by no means expert or knowledgeable about these settings. Usually, I chose a “Preset” and then selected the “Steam Chuff” checkbox, which preserves the parameters of the preset (unless you change them), but turns off the Preset name.

Stop State:

LokSound Mute state settings

DCX State:

LokSound DCX state settings

Coast State:

After editing these sound nodes, the next step is to set an “F#” to turn the smoke unit on/off on the “Function mappings” menu. The “logical” outputs column provides an “ESU Smoke Unit” selection, so I selected F23 as the ESU Smoke Unit on/off toggle.

TESTING WARNING: The ESU 53900 Profi Decoder Tester does not appear able to provide adequate power to either an actual ESU Smoke Unit or surrogates described here! In deployed operation, the LokSound L is perfectly capable of delivering sufficient power, but the Profi board is, in my experience (or inexperience), NOT able to do so. I initially thought the culprit was the puny AC to DC converter provided to power the Profi board. But, the power connection to a very hefty 14.8V LiPo battery did not solve the problem. The workaround uses either THOR73’s high-side MOSFET switch mentioned in this thread or the low-side MOSFET switch described in the same topic thread. Either way, you will need to take power (about +14V DC) from the source providing power to the Profi board and use the Profi board’s HTR- output to control the MOSFET switch. In turn, this switch controls the smoke unit’s heater. If using THOR73’s high-side FET switch, then you connect the smoke heater as he describes. If you use the low-side FET switch I presented, the smoke unit’s HTR- output connects to the switch control input, and the switch’s ground connects to the power ground. 

Reiterating, YOU ONLY NEED THIS SPECIALIZED MOSFET SWITCH FOR TESTING WITH THE Profi BOARD! In actual operation, the LokSound L adequately powers an ESU smoke unit by direct connection to the decoder’s ESU smoke unit terminals, as is the modified smoke unit described here. 

Here’s the “proof in the pudding” video:

Surrogate smoke unit in action

Please forgive the disassembled state. I haven’t finished the dead rail conversion, but this video does demonstrate battery power with the LokSound L V4.0 controlled by an Airwire CONVRTR-60 wireless receiver.

Follow up

To be pretty linear, my guesses on RFIXED and Voffset are 1.5K and 1.24V. The 1.5K came from an “off” measurement of resistance between decoder GROUND and TMP-, which is fraught with potential for error.

These values will give you the following approximate curves where the left axis is the voltage at TMP-, and the right axis is the estimated thermistor resistance.


Example thermistor T versus V and T versus R curves

Common Aspects of 3-Rail to Dead-Rail Conversion of O Scale Steam Locomotives


After doing about eight or so O scale 3-rail to dead-rail conversions for steam locomotives, some similar features pop out that I will discuss in this blog. As with my other O Scale Dead Rail blogs, I will try to stick mostly to my own experience.

A note of caution: O scale steam locomotives are expensive, and some, to me, are works of art. Consider very carefully whether you have the patience and skill required to make locomotive conversions. I got into O scale dead-rail conversions to teach myself patience, a few skills, and respect for these beautiful models. Give yourself plenty of time to make these kinds of conversions – being in a hurry is a prescription for trouble – I know because I sometimes got in a hurry. Just don’t.

There are some good tutorials on locomotive repair and disassembly. I recommend this one as a good place to start.

General Considerations

Good grief, what do “general considerations” mean? Well, it’s the general aspects that guide the conversion process for both the locomotive and the tender.

First, most, but not all, of my O scale 3-rail to dead-rail conversion experience is with Sunset 3rd rail steam locomotives: Big Boys, Cab Forwards, Challengers, and Alleghenys, so first off you see that I’m an articulated locomotive fan. Articulated locomotives (AL) can be challenging to dis-assemble, and, especially, re-assemble. Heck, they are tricky to handle correctly especially since the front driver chassis must in some way “float” to navigate modest-radius curves.

In general, even though 3-rail locomotives pick up AC from the track, the locomotive motors are almost always DC motors, where a connector from the tender supplies the DC power via a connector from the tender. Usually (always in my experience), the two outside rails are electrically connected to the locomotive chassis, and the AC power from the center roller pickups completes the power loop, fully isolated from the locomotive chassis.

This outside/center AC power inputs are typically supplied to the tender from the locomotive via the same connector to provides DC power from the tender back to the locomotive motor. So right off the bat, you have some bad news and some good news:

  • Bad news: We will need to eliminate the physical and electrical connections to the center-rail AC picked up by the center pickup shoes from the locomotive to the tender because we’re not using rail power in dead-rail. This will be accomplished by removing the center rail pickup shoes and, just to be on the safe side, eliminating all of the center-rail AC wiring. In theory, once the pickup shoes are removed, all center-rail AC wiring is isolated electrically, but I don’t take any chances, and I just remove all of the center-rail AC wiring.
  • The good news about the bad news: We can re-purpose the center-rail AC power plug connection between the locomotive and tender (originally sending center-rail AC power from the locomotive to the tender), and instead we send Switched Battery+ from the tender to the locomotive to provide power to the Constant Voltage Unit that distributes power to components such as smoke units, marker lights, and sometimes the headlamp.
  • Good news: The locomotive’s chassis “ground,” which is electrically connected to the outside rails via the locomotive wheels, does not require electrical connection modification – all we’re going to do is ensure that chassis ground is connected to the tender’s Battery- (Ground) through the original locomotive-to-tender plug. The Battery- (Ground), as the name implies, is also connected to the tender chassis ground.
  • Good news: It’s easy to get the DC power from the tender to the locomotive’s motor(s) through the original locomotive-to-tender plug without modifications to the locomotive motor’s electrical connections.
Figure 1: Typical locomotive/tender connector pin-out for Samhongsa (Sunset 3rd Rail, Williams) locomotives

Another unique aspect to 3-rail locomotives is the reversing board in the tender that converts the AC power coming from the locomotive to a correctly polarized DC voltage for forward/reverse motion depending on the pattern of interruption of AC to the locomotive. I am not an expert on reversing units – I am in the business of removing them for dead-rail operation. If the locomotive has sound, the sound electronics/card is usually highly integrated (meaning not DCC-compliant) with the reversing unit. So, we must provide a DCC-compliant replacement sound card of full DCC decoder with sound since the radio-controlled receiver boards “speak” DCC in most cases. Removal of the original sound electronics is a shame because it may have some unique/interesting audio we’d like to reuse. If I ever figure out how to reuse the sound from these original sound units, that will, of course, be another blog. My initial attempts to obtain legacy (remember these cards are sometimes over fifteen years old) circuit interface information from OEM sound card manufacturers such as QSI Industries have not been fruitful, even though they were friendly.

Locomotive Conversion

All of the 3-rail O scale steam locomotives I have converted to dead-rail had the following aspects of conversion that I discuss in the next three sections: center pickup removal, lighting modifications, and various electrical modifications. Three-rail locomotives are somewhat more challenging than 2-rail to convert because of the unique aspects of power pickup using the third, center rail.

Center Pickup Removal

Removal of the center pickups involves both the rollers themselves and the electrical connections to them. I remove the locomotive pickup rollers because we will usually operate the locomotive on two rails, even though they are unpowered. I suppose you could leave the rollers in place, but this would restrict dead-rail operation to dead 3-rail track. In summary, I think removing the rollers gives you more operating flexibility for dead-rail operation.

See the Figure below for an example of how to remove the undercarriage baseplate so that you can remove the rollers.

Figure 2: Center pickup roller removal

Unfortunately, the undercarriage baseplate requires removal to get at the center pickup roller mounting screw. This plate is usually held in place by six to eight retention screws, but even when you remove them, you have several issues:

  • Often you cannot remove the plate without catching the brake shoes on the drivers. You can solve this problem by removing the brake shoes from one side and sliding the base plate sideways to free to brake shoes on the other side. The wiring underneath the plate connecting to the pickup rollers does not have sufficient slack to allow lifting the cover. You have two options: carefully slip a wire cutting tool in the narrow space between the freed baseplate and the rest of the chassis, or remove the entire wheel chassis from the boiler section and cut the wires from above. See the Figure below. You still need to remove the baseplate to unscrew the center pickup rollers because you cannot get to them even with the wheel chassis separated from the boiler section.
Figure 3: Center pickup roller wiring modifications. The Constant Voltage Unit is part of an MTH Proto-Sound 3 dead-rail conversion for a Sunset 3rd Rail Allegheny.

Once you free the baseplate from the rest of the chassis, then it’s a snap to unscrew the roller from the baseplate and to cut/remove any connecting wiring. Usually, I also remove the insulator pad screwed into the baseplate.

Once all of this is done, then, of course, you remount the baseplate and any temporarily-removed brake shoes.

Note: Care is required to remove and replace the baseplate. The spring-loaded driver bearings are held in place by the baseplate, imparting significant spring force on the baseplate, which will bend the baseplate unless you uniformly ease in and out the retaining screws. Slight bending is OK but significant, local kinks are bad. Also, these bearings can easily pop out of place, so inspection is required to ensure the bearings are properly seated before tightening down the baseplate.

Lighting Modifications

Steam locomotive lighting includes some or all of the following:

  • Headlamp
  • Marker lights
  • Cabin lights

We’ll discuss each of these in turn


The headlamp is special because we usually want to control its on/off automatically as the locomotive changes direction and possibly according to “Rule 17” which dims the headlamp and tail lamp according to whether the locomotive is stationary (dim) or moving (full brightness).

In my experience with Samhongsa locomotives (Sunset 3rd Rail and Williams), the headlamp is powered by one of two means:

  1. A separate, small rectifying board. It is powered by AC from the center rail and AC from the outside rails and turns on/off power to the headlamp as the locomotive moves forward/backward. This technique is typical of older Williams locomotives.
  2. An output on the Constant Voltage Unit. In this case, you cut the power from the CVU to the headlamp, and you supply power to the headlamp with a two-wire connector, as described in the previous case. Of course, you should directly trace the wires to the headlamp before you cut any wires. This arrangement is typical of Sunset 3rd Rail locomotives. See the Figure below. When I first started these conversions, I was super-conservative and electrically isolated the CVU from the chassis, and I made a direct, wired connection to the Battery- (ground), as shown in the Figure below. But, using chassis ground, which will be electrically connected to the tender’s Battery- (ground) through the loco to tender plug has worked out OK.
Figure 4b: Modifications to the headlamp electrical connections for Sunset 3rd Rail locomotives. The replacement of chassis ground by the directly wired connection to Battery- (ground) is unnecessary. See Figure 4a for more details on how the CVU is connected.

Marker Lights

Marker lights are almost always LED’s whose power is supplied by the Constant Voltage Unit. No modification of the wiring from the CVU to the marker light LEDs is necessary since once you supply power to the CVU, then it will in turn properly supply the marker light LEDs.

Smoke Units

As with the marker lights, once you supply power to the CVU, then the CVU is designed to supply the proper power to the smoke units. A switch is always mounted on either the locomotive or the tender to turn on/off the smoke unit. No smoke wiring modifications are required.

All of the smoke units controlled by CVU’s in my experience are Seuthe smoke units, typically requiring 6V DC. They have the disadvantage that they do not “chuff” in coordination with steam locomotives’ piston action. Replacement of these venerable, but unrealistic smoke units with smoke units that contain a “fan” that propels the smoke in synchronization with the sound chuffs from Lionel, ESU, or MTH is a big topic that will be covered in another blog.

An ESU 54678 fan-driven smoke unit that is appropriately-sized for O scale and is designed to work in tandem with ESU LokSound decoders such as the LokSound L.
An ESU 54678 smoke unit with additional brass tubing to be installed in a Williams UP Challenger
A preliminary position install of an ESU 54678 smoke unit in a Williams UP Challenger to determine if the ESU LockSound L V4.0 decoder would fit behind the smoke unit. This smoke unit has two connections each for the heater, fan motor, and thermistor. The thermistor provides a temperature measurement of the heater to the LokSound L’s sensing circuitry that will carefully control the temperature.
Detail of the Williams UP Challenger smoke stack with smoke unit tubing. The original Seuthe smoke units were cut to retain only the funnel that was fit over the smoke unit’s brass tubing. Care is taken to ensure the smoke fluid is inserted directly into the brass tubing.
A Lionel 610-8057-200 fan-driven smoke unit I have used for O scale installations.

The smoke unit pictured below is very similar to the Lionel 610-8057-200 smoke unit pictured above. It was retro-fitted with a 100K thermistor to emulate the ESU smoke unit inputs for a LokSound L V4.0 decoder.

A smoke unit almost identical to the Lionel 610-8057-200 with modifications. All of the original electrical components have been removed and a connecting trace was cut to isolate the Heater Resistor +/- from the Fan Motor +/-. Liquid tape was applied to the smoke funnel lip to enhance mounting friction and improve sealing. A 100K thermistor was installed adjacent to the 27 ohm heating element to emulate the ESU smoke unit inputs to a LokSound L V4.0 decoder.
A smoke unit almost identical to the Lionel 610-8057-200 unit installed in a Sunset 3rd Rail Allegheny with a custom brass mounting bracket.
An MTH AA-0000070 fan-driven smoke unit that is well-sized for O scale.
The MTH AA-0000070 smoke unit pictured above with custom brass brackets for mounting in a Sunset 3rd Rail AC-6 Cab Forward. The small size of this smoke unit is well-suited to the tight fit afforded by this locomotive. This smoke unit has no thermistor, so it easily interfaced to the Zimo MX-969KS decoder installed behind the smoke unit. This decoder is ideal for O scale installs because of its narrow form factor.
A Zimo MS696KS DCC decoder and screw-terminal board. The decoder’s slim design and well-documented connections for fan-driven smoke units makes it a good choice for O scale installs. “Ventilator” (which turns on/off 5V to the motor) and Ground are used to turn on/off the smoke unit’s fan, and +Power and any of the Zimo’s “FA” connections, which are software-controlled switches to open/close a connection to ground, controls turning off/on the smoke unit’s heating element.

A final note of caution on smoke units: When using smoke units with metal cases, it’s crucial to ensure that the heater element (resistor), fan motor, and thermistor (if there is one) are completely electrically isolated from the metal casing that will be in firm contact with locomotive ground. You should verify this with an ohmmeter. If you don’t check each lead to verify there is no short to the smoke unit case, you will be sorry. I have forgotten twice (I learn slowly sometimes) to check for electrical isolation of these components from the smoke unit case, and I poured amps from a battery in the tender to the locomotive along a direct path from Battery + to Battery – (ground), melting lots of wiring along the way. This error will cost you hours of work and possibly dozens to hundreds of dollars in damaged electronics.

Original Equipment Manufacturers (OEM’s) often made a point of ensuring good ground contact to some of the smoke unit components – we don’t want this. We want the decoder (or the RF receiver if its handling smoke unit control) to handle how these components are electrically-routed to ground! Yes, these components all need power which we frequently supply from a common source, but it’s the route to ground that we want to carefully control.

As a side note, pay careful attention to the voltage requirements of the smoke unit components. Different voltages almost always supply the heating element and motor! I have never seen a smoke unit motor that didn’t require 5 Volts. I have inadvertently killed one of these cute little motors by accidentally supplying it with 14.8V.

The heating element’s voltage depends very much on its resistance (they vary from 6 ohms to 28 ohms) and interaction with the electronics that control it, such as a DCC decoder or an Airwire RF receiver such as the G3. You need to carefully understand the specs of the heating element and the device that will control it. Spend some time reading. As a general rule, you tend to stay out of trouble with higher resistance heating elements because for a fixed supply voltage, the power produced by the heating element is inversely proportional to the resistance (remember: Power = (V*V)/R, where power is in Watts, V is in Volts, and R is in Ohms).

Even if you are within the proper voltage supply range for a smoke unit, you can still burn them up under certain circumstances. Pay heed to the dark warnings that you should always run your smoke unit loaded with the proper amount of smoke fluid. As the fluid evaporates, it cools the heating element – no fluid and the heating element and the specialized batting that wicks the smoke fluid into contact with the heating element will get hotter. Often, it’s the wick that gets scorched with too high temperatures or no smoke fluid, and this scorching damages the wicking action.

Example of a fan-driven smoke unit’s wick (in the left chamber)

That’s why some smoke unit manufacturers, such as ESU, use thermistors to measure the heating element’s temperature and send this information to the decoder so that it, in turn, can adjust the voltage to the heating element to prevent burn-up. So far as I know, only ESU DCC decoders have thermistor inputs for this smoke unit feedback control. I have reverse-engineered an ESU smoke unit and found that it uses a 100K thermistor that can be easily purchased and retro-fitted into other smoke units if you intend to use the smoke unit with ESU decoders. High-melting point solder must be used when adding a thermistor. Lacking that decoder feedback control of the smoke unit’s heater, I have devised a compact temperature feedback control, but that’s for another blog…

Lionel fan-driven smoke unit with a thermistor retro-fit for use with a LokSound L V4.0 DCC decoder. High melting point (HMP) solder should be used when soldering thermistors or replacement resistors on smoke units. (Note the munged “Lionel” name on the board. It’s a genuine Lionel board, but I doubt it was “MadoinUOA”.)

Electrical Modifications

Constant Voltage Unit

We have already discussed the Constant Voltage Unit (CVU) a bit under the section dealing with headlamp modifications. Some locomotives have a Constant Voltage Unit (CVU) that converts AC power from the outside rails/chassis (ground) via the locomotive wheels and center-rail AC via the center pickup shoes, respectively, to a constant voltage for components such as smoke units, LED marker lights, and cabin lights. The CVU usually consists of a rectifier to convert AC to DC, a capacitor to “smooth” the DC, and a voltage regulator to maintain the output DC at a constant voltage, frequently six volts as required for Seuthe smoke units used by Samhongsa-manufactured locomotives (Sunset 3rd Rail and Williams locomotives).

I have encountered three types of CVU’s:

  1. MTH Proto-Sound 2/3 versions that power maker light LED’s and incandescent cabin lights (see my blog on dead-rail conversion of a Proto-Sound 3.0 locomotive).
  2. Sunset 3rd Rail CVU’s that are usually mounted at the front of the boiler and power Seuthe smoke units and marker light LED’s.
  3. Williams CVU’s that are similar to Sunset 3rd Rail CVU’s, but do not control the headlamp, and instead use a separate Headlamp Direction Board.
Figure 5a: Proto-Sound 3.o Constant Voltage Unit in a Sunset 3rd Rail Allegheny converted to dead-rail. “Switched Battery B-” is also ground.
Figure 5b: Typical Sunset 3rd Rail Constant Voltage Unit with dead-rail modifications. See Figure 4a for details on how the CVU is connected to power.
Figure 5c: Typical Williams Constant Voltage Unit with dead-rail modifications. See Figure 4a for more details.

Important Constant Voltage Unit Control Options: In the figures and discussion above, I modified the Constant Voltage Unit power supply to connect to Switched Battery+ and Battery- (ground) from the tender. These connections will always turn on the devices supplied by the CVU (although the locomotive-mounted smoke switch will turn on/off the smoke unit) when you switch on the battery in the tender. To allow the receiver to control the CVU-connected devices actively, you can replace the Switched Battery+ input to the tender-to-locomotive connector with a relay, controlled by the receiver, that turns on/off Battery+ to the CVU. See the Figure below for an example. You mount this relay in the tender, not the locomotive!

Figure 6: Tender relay control of Switched Battery+ supplied to the locomotive CVU. The relay is “normally-open”.

In this example, a 215H-1CH-FC12VDC relay, with a 1N4002RLG protection diode in parallel across the input control (these parts are available from by cutting and pasting the above part #’s into their search), will connect/disconnect Switched Battery+ to the locomotive’s CVU according to whether the Airwire G3’s RM1-8 output is on (shorted) or off (open-circuit). Unpowered (i.e., RM1-8 is off), the relay is “normally open”, so no power reaches the CVU from the relay. When the relay activated (i.e,, when the RM1-8 is on), the relay closes to supply Switched Battery+ to the CVU. Setting up the on/off logic for the Airwire G3’s RM1-8 output by remote control is described here, recognizing there are slight differences between the device part numbers and wiring hook-up described in the link and those presented here. It’s kind of neat to hear the mechanical relay quietly click closed and open…

Of course, there are numerous other techniques for implementing a high-amperage switch that is controlled by the receiver or DCC decoder. This particular example is called a “high-side” switch that connects/disconnects battery power to the device, as contrasted with a “low-side switch” where the device’s connection to ground is controlled by the switch.

Locomotive to Tender Connector

Tender Conversion

Good news: tender conversion is usually much easier and less diverse than the modifications needed for dead-rail conversion of locomotives.

Reverser Unit Removal

Sadly, the sophisticated electronics contained in the tender must be removed almost totally, including the reverser unit. These electronics are not to be confused with a possible MTH PS-2 or PS-3 controller that you probably want to keep as described in another of my blogs.

Reverser-sound electronics from a Sunset 3rd Rail UP Big Boy tender.

As I have mentioned in other blogs, it’s a shame that you cannot reuse some of the electronics containing the sound data, but I have not discovered a way to do this. (I still have hope of someday figuring it out, so I have kept and labeled all of the electronics I have removed – you should, too.)

I strongly urge you to take pictures of the tender assembly and its electronics before removal or modification of any components – you might be glad you did. Document everything with a picture – that’s what cell phone cameras are for!

The board removal process first consists of carefully disconnecting any wiring to the boards (with pictures and notes!). Usually, plugs provide these connections, but occasionally, clipping off the wiring becomes necessary. I would suggest that you leave enough wire connected to the board to facilitate a new wiring connection just in case you reuse or sell the boards.

Wire removal may entail plug removal and wire cutting.

Some of the wiring such as to tender lights and connections to the locomotive need to be carefully preserved.

After wire removal, then the boards can usually be separated from the tender by removing mounting screws or two-sided tape.

Board removal for a Sunset 3rd Rail Cab Forward tender.
Care must be taken to separate the battery from the double-sided tape and then remove the tape from the tender.

Battery Addition

As I have mentioned in other posts, I mount the batteries for O scale steam locomotives in the tender. For 14.8V operation, I use 4 LiPo cells in series (the so-called “4S1P” configuration). Regardless of how you ultimately arrange the individual 3.7V LiPo cells relative to each other, you can’t get around the fundamental size limitations imposed by a single LiPo cell on O scale: the cell’s length. Generally, O scale tenders are not wide enough or tall enough internally to provide sufficient clearance for even a single LiPo cell aligned along the width or height of the tender. So, this almost always means orienting the cells’ lengthwise in the tender in some fashion.

Even knowing this constraint, fitting a 4S1P battery pack into the tender  sometimes requires a bit of ingenuity/trial-and-error. There are no hard-and-fast rules here, so I will provide a series of figures showing how I’ve “done it.”

Some suggestions:

  • Use thin Velcro tape to mount the battery to the tender frame, usually on the chassis and not the tender hull. I mount the “hooks” side of the Velcro to the frame, and the “loops” side to the battery – I suppose this is an aesthetic choice, but I believe consistency is good: so my rule is all Velcro on the frame are “hooks,” and all things that are mounted using Velcro “loops.” See picture below for the kind of Velcro I use.
Thin, industrial strength Velcro useful mounting items inside the tender and locomotive.
  • Use three position, ON-OFF-ON switches when connecting the battery “+” side (the battery “-” should be well-connected to “ground”, which should include the tender and locomotive frames):
    1. ON: power supply for all items on the tender and locomotive
    2. OFF: “neutral” that completely disconnects the battery to prevent slow discharge when not in use
    3. ON: recharging jack
    • Use high-quality switches and recharging jacks. Cheap ones available on Amazon are generally foreign-made junk. Spend two or three dollars apiece and purchase them from reputable electronics distributors such as Mouser and Digi-Key. I have been sorry when I used cheap hardware.
    Example battery, switch, and charging plug mounting where this is plenty of room. Note the shielded antenna connection from the chassis to the Airwire receiver mounted on the side of the tender hull. Velcro is used to attach various electrical components, including Wago connectors that supply Battery + and Battery – (ground) to other electrical components.

    An example (on a Sunset 3rd Rail Cab Forward) where the battery must be mounted to the tender hull since the battery pack is just slightly too wide for the tender hull opening without scrubbing.

     Antenna Mounting

    Placing an antenna and external electrical connections is never an ideal process: compromises must be made that try to minimize the impact on aesthetics and maximize RF reception and accessibility.

    While far from ideal, I frequently place the antenna in the dark reaches under the tender chassis. The RF engineers are going to jump all over me for doing so because there’s a lot of metal in a nearby plane parallel to the antenna axis – the location “works,” but the reception range takes a hit. The Figure below is a typical example of mounting for the antenna, an electrical switch, and a charging plug.

    Example (in a Cab Forward) of antenna, power switch, and charging plug location on the bottom of the tender. The fit is tight!

    Sometimes, when the tender has a coal load, the antenna can be hidden underneath a “coal cloth” on the top of the tender. This strategy sometimes improves reception when there is an opening beneath the coal load where you can place the antenna. Frequently the original coal “load” is either mounted with screws (if you look carefully) or is easily pried off with the mounting board. See Figure below.

    Example of coal “load” removal on a KTM Big Boy. Underneath is a cavity that is suitable for mounting an antenna

    At the risk of offending some purists, sometimes an opening can be cut in the tender hull where the coal load goes to afford both better antenna placement and internal access to the electronics in the tender. The opening will be covered over by the coal cloth. See the Figure below for an example of this strategy.

    Example (Sunset 3rd Rail Big Boy) of an opening cut in the tender hull to provide antenna placement and electronics access. Note the “coal cloth”, which is non-metallic, over the opening to provide low-loss RF reception.
    Top view of the flexible “coal cloth” placed over the opening cut in the tender hull for antenna placement and electronics access.
    The coal cloth in the previous figure has been removed to reveal the open-cavity antenna installation in a Williams UP Challenger. The antenna is connected to a Tam Valley DRS-1, Mark III, RF receiver that operates on Airwire Channel 16. The nearly half-wave antenna provides better range performance compared to tender undercarriage installations shown in this blog.

    Antennas themselves involve some compromise because they must be short to fit within the confines of our locomotive or tender or in the area about them. Very generally speaking, shorter antennas are less efficient than longer ones. Most dead-rail transmitter/receivers operate (in the US) in the band ranging from 902 MHz to 928 MHz, which is one of the so-called “ISM” (Industrial, Scientific, and Medical) bands that does not require strict licensing to use. This frequency converts to wavelength in vacuum is about 33cm, which at even “quarter-wave” makes for an antenna of roughly 8.25 cm or about 3.2 in unless, for instance, you reduce the length by making the embedded antenna wire helical.

    Compact, high-quality, quarter-wave 915 MHz ISM antennas are manufactured by reputable vendors such as Linx Technologies in convenient right-angle form-factors with RP-SMA connectors (see Figure below) and are available at Mouser or Digi-Key. Again, my suggestion is not to purchase cheap antennas of unknown quality: when range performance is poor it will be very difficult to know what to blame. Just don’t worry about the antenna and buy quality: it’s only going to cost you seven to 11 dollars US.

    A Linx ANT-916-CW-RCS antenna. It’s about 2.1 inches long. This antenna uses a helical internal antenna wire to reduce its length.

    Receiver Addition

    Because this topic is not unique to 3-rail, please see this post for a discussion of Transmitter/Receiver Addition.

    Lighting Modifications

    Three-rail locomotives have a variety of means for providing two aspects of lighting: constant output with changes in track voltage, and whether to turn on or off with direction or independent of direction, especially since AC operation makes it more challenging to determine direction.

    We have already talked a bit about the role of constant voltage units (CVU’s) for lights in the locomotive, and tenders often have colored marker lights and almost always have a white tail light. AC voltage from the rails usually powers these lights, so almost all of the electrical “infrastructure” used to supply AC lighting power must be replaced for battery-powered DC operation.

    These lights are often older incandescent bulbs that are more power-hungry than LED’s. Since dead-rail conversion involves the use of DC battery power around 14.8V or so, LED’s with the proper form factor and protection resistor to replace these incandescent bulbs are easy to find for colored marker lights or the rear light. The figures below are an example of LED installation in marker lights and tail lights.

    Details of marker light and rear light LED installation. Note that there are two rear lights using the heavier wiring. UV curing “glue” is used to hold the wiring and LED’s in place. This type of glue provides reasonable holding ability but can be easily removed if necessary. It has the added benefit that it will not harden until UV light is applied, giving the user plenty of time to carefully position the wiring and glue.
    Sunset 3rd Rail Big Boy LED marker light and rear light conversion (there are two rear lights in this case). Note the use of “canopy glue” to hold the LED in place and provide a “window”. When the canopy glue cures, it will be transparent. The LED lead wires were later painted black to reduce their visibility.

    If the original marker or tail lights are LED’s, then retaining most the wiring supplying power is desirable. The wiring to the LED’s must be cut somewhere to convert to battery-powered operation, but look carefully for the protection resistor in series with one of the power leads to the LED, and do NOT cut the wiring between this resistor and the LED. As a side note, if you connect power directly to an LED without a protection resistor in series with the LED: if the power supply “forward biases” the LED, you will burn it out with too much current – a brief, tiny nova will ensue. Frequently, the protection resistor is near a plug, making it a convenience to retain this plug.

    For 14.8V operation, the LED’s I have used require protection resistors ranging from 470 ohms to 1.2 Kohm. The specific value is dependent on the LED: smaller LED’s generally tolerate smaller maximum currents, so larger protection resistances are required.

    LED’s produce light only if you apply a positive voltage to its “anode” relative to its “cathode.” It’s the electrical equivalent of a stop-valve. In essence, current flows easily through a diode in only one direction, so even in the original wiring, either a positive DC or positive rectified AC voltage supplies the LED anodes.

    Ensure that the original DC or rectified AC voltages are reasonably close to replacement battery voltage so that you do not need to modify the resistance of the protection resistor. Make sure that the replacement power connects with the same polarity as the original power supplied to the LED. If powered “backward” for very long, damage to the LED may result. Brief reverse biasing with the protection resistor in series with the LED to test for the proper polarity is not harmful, just don’t apply it for long. The 14.8V batteries I use are generally not vastly different from the original voltages supplied to the LED’s, so increasing the protection resistance is usually not necessary.

    After connecting the LED to battery power, if the LED seems too bright, by all means, add a resistor in series with the LED and the original resistor to reduce the current through the LED. A higher-than-necessary value for the total series resistance will not cause problems, and frequently LED’s are just too darn bright using the “proper” value for the protection resistor.

    Mechanical Modifications

    Caution: This topic is somewhat controversial. Some may not like the suggestions under this topic. Please try to remember that the discussion is only offering possibilities, not hard-and-fast rules.

    The most important mechanical modifications to 3-rail locomotives deal with the “high-rail” flanges on all of the wheels. If you intend to use high-rail trackage, then the discussion below is probably irrelevant.

    However, if you, like me, dislike the very non-prototypical appearance of the high rail trackage and the large wheel flanges that go along with this kind of trackage, or if you want to operate on 2-rail track that conforms to the “Scale Track, Standard Scale” NMRA Standard S-3.2, then the high-rail flange profile requires modification to better match “Scale Wheels” in NMRA Standard S-4.2 and “Wheel Contour” NMRA Recommended Practice RP-25.

    There are no doubt numerous strategies for replacing the high-rail flanges, and I’m sure I haven’t thought of them all. The two approaches I will discuss are wheel replacement or flange profile modification.

    A final note of caution before describing details: Please determine how you will use your dead-rail locomotive. If you will be using the locomotive strictly on un-powered rails, as I do, then proper wheel insulation is not an issue.

    However, if you intend to run your locomotive on powered trackage, then proper wheel insulation may be required. If the powered trackage is 3-rail, then insulation is not an issue since the wheels are by design uninsulated. However, if the trackage is powered 2-rail, then proper wheel insulation is required. Operating 3-rail locomotives on powered 2-rail requires wheel insulation, which is a major hassle, especially when dealing with locomotive drivers.

    The powered 2-rail standard is that the locomotive frame is electrically-connected to the right rail, so all of the locomotive’s left wheels must be insulated; and the tender’s frame is electrically-connected to the left rail, so all of the tender’s right wheels must be insulated.

    My suggestion: don’t operate dead-rail O scale locomotives on powered trackage at all, but most notably not powered 2-rail trackage. But, this may not be an option for you, so you must address proper wheel insulation for powered 2-rail operation, and you must ensure the locomotive and tender frame do NOT share a common ground. Otherwise, a short across the two rails will occur.

    Wheel Replacement

    Wheel replacement may involve completely replacing the high-profile wheel with an RP-25 conformant wheel, or, in the case of steam locomotive drives, replacement of the outer rim or “tire.” We will discuss each in turn.

    Complete wheel replacement is a very feasible option for leading/trailing locomotive trucks and tender wheels. Specialty vendors such as Northwest Short Line (NWSL) and Precision Scale offer numerous sizes and styles of RP-25 compatible wheels and axles. I will warn you that navigation of these companies’ offerings is either fun or tedious, depending on your level of desperation and patience. While looking for what you need, remember that this is supposed to be a fun hobby.

    The knottiest problem with wheel replacement is dealing with the axles. You can completely replace the wheel axles along with the wheel replacement, or you can bore out the replacement wheels’ inner diameter to match the original axle’s diameter.

    For instance, NWSL almost entirely offers both replacement wheels with an inner diameter of 1/8″ for O scale and axles that match this diameter. High-profile wheel axles are almost always a larger diameter. If you can find a 1/8″ axle that matches the length and end-style of the original axle, by all means, go with this option.

    Unfortunately, you may not always find a suitable axle. If you are handy with a lathe, then making a new 1/8″ diameter axle that matches the original axle’s length and end-style will be a fun project. If machining is not your forte, then you might try boring out the replacement wheel to match the original axle’s diameter.

    I will warn you, however, that boring and mounting the replacement wheel on the original axle is somewhat challenging, and requires the right tools, technique, and skill.

    As a final note on wheel replacement, ensure that if you intend to operate your locomotive on powered 2-rail trackage (which I don’t recommend), then proper wheel insulation is required. The vendors above offer insulation options along with replacement wheels and axles.

    Flange Profile Modification

    The NMRA Recommended Practice RP-25 and NMRA Standard S-4.2 help define the wheel flange profile that will operate reliably on two-rail trackage meeting the NMRA Standard S-3.2. These wheel profile and trackage standards are more prototypical-looking than high-profile flanges and track, and RP-25 profile wheels will work on high-profile rail if it’s well laid, but high-profile wheels will not operate reliably on NMRA Standard S-3.2 compliant turn-outs.

    RP-25 compliant replacement steam locomotive drivers are generally not available, so modification of the original drivers is usually required.

    In some cases, it is possible to remove the driver center from the “tire.” Then an RP-25 compliant tire is machined and press-fit onto the driver center. Some modelers, such as Joe Foehrkolb and Glenn Guerra excel at this process, but I don’t, so my alternative is to machine the tire while still integrated with the center driver until its flange profile approximates the flange depth (approx 0.036″) and flange width (0.039″) dimensions of an RP-25 profile.

    The following photos demonstrate my process. Of note is that the most critical dimension to “get right” is the flange depth, which means reducing the flange diameter with a series of small “side-cuts” (parallel to the lathe spin axis) on a lathe until the flange diameter is about 0.072″ larger than the “tire” diameter. Then a series of small face-cuts (radial to the lathe spin axis) reduces the flange width until it is approximately 0.039″. However, this dimension is less critical than the flange diameter, so the flange width should not be reduced by so much that it leaves a sharp flange edge.

    Step 1: removal of the side-rods
    Step 2: removal of the driver axle coves
    Step 2: Sometimes you must use a specialized “wheel puller” to pull the drivers off the axle that is mounted inside a solid, bored chassis
    Step 3: Machining the drivers: The tail-stock holds the axle steady and square. A series of small side-cuts (parallel to the lathe spin axis) with a right-handed cutting tool decreases the flange diameter until it is approximately 0.072″ greater than the driver diameter to create a flange depth of approximately 0.036″. Then a series of small face-cuts (radial to the lathe spin axis) with a left-handed tool reduces the flange thickness to approximately 0.039″. This dimension is less critical than diameter reduction, so residual flange appearance is an important concern.
    Final driver: the flange depth is approximately 0.036″ and its width is approximately 0.039″.
    Example of high-profile flange reduction for both the drivers and truck wheels.

    General Battery Issues


    One of the most vexing challenges for me when doing dead-rail conversions on O scale steam locomotives is what battery to select. As nearly as I can determine, lithium polymer (LiPo, see LiPo Wikipedia) batteries are the almost-universal choice among dead-railers. So, the choice of battery technology was not much in question for me, but the battery voltage and size is still a choice to be made. I’ll deal with each of these in turn.

    Battery Configurations

    I’m not sure how I fell into the 14.8V “camp” for LiPo batteries on O scale dead-rail conversions. Maybe it’s because CVP pushes them for their Airwire products (CVP Airwire). I think CVP has valid admonitions about using higher voltages in regards to radio control range performance and cooler operation (see for instance CVP G3 Decoder User Guide, page 12). And, and almost all of the O scale operating modes (2 rail DC, three rail AC, TMCC, DCS) seem to have 24V or so maximum operating voltage, which is getting close to damage threshold for some radio receivers such as the CVP Airwire receivers. So, would 11.1V (3 LiPi cells in series, “3S” as discussed later) work? Probably just fine in most cases. The plus for 14.8V LiPo is that vendors offer a variety of battery physical and power configurations at 14.8V, which I’ll address next.

    There is probably a good deal of lore and religion surrounding the specifics of which brand and configuration of LiPo battery to choose for dead-rail. I’m going to try to stick with what I have tried, not what might theoretically be “better” or “worse.”

    Let me start with the less controversial part of my decision process: configuration. LiPo batteries come in a large variety of sizes and configurations (see for instance this site), but in my personal experience with dead-rail, the LiPo’s seem to have a single cell size roughly that of an AA cell with 3.7V output with a charge capacity of around 2000 to 2600 mAh. The individual cells are connected to achieve a total output voltage of about 14.8V (four connected in series, thus the term “4S”), but what varies is the total charge capacity and its ugly handmaiden – physical size.

    This is the bear: We want large charge capacity for longer running times, but we in O scale must fit the batteries in often-tight spaces (at least compared to G scale) such as tenders where we also put radio control receiver boards, sound cards, speakers, etc. Of course, HO scale has even more severe volume constraints, but with approximately one-sixth the mass the locomotives must pull.

    Personal experience here: I tried to fit an eight-cell (two rows of four vertically-stacked cells, 2.6″ x 2.8″ x 1.4″, 6000mAh, CVP BATT2) configuration into several O scale tenders, and that battery pack just flat-out would not fit. Even though this configuration was only one cell high, O scale tenders are just not tall enough to fit even one cell oriented vertically – the cells must lie sideways to fit. This cell-length limitation is important to remember for O scale. You might find space in diesel locomotives, but not steam locomotive tenders. These limitations were a big disappointment for me since I wanted to cram a large storage capacity battery pack in the tender and run “forever” (forever being at least four hours).

    Sigh… Backing off in size, I have found that 2x2x1 LiPo battery packs will fit in O scale tenders with the individual battery cells running along the length of the tender. See the Figure below (pardon the body parts). You can see that this configuration also comfortably fits the width limitations of O scale tenders.

    Figure 1: 2x2x1, 14.8V battery configuration that fits. For reference, the CVP G3X receiver board between the battery and speaker is approximately 4″ long.

    A note of caution: you cannot stack too much on top of this configuration before you lose vertical clearance inside the tender. For instance, I thought this was going to work:

    Figure 2: This didn’t fit!

    Stacking the receiver board on top of the battery would be a useful space-saving strategy, but this configuration would not clear vertically in all tenders I tried (Big Boys, Cab Forwards, Challengers, and Alleghenies). The receiver board manufacturers would probably dislike my mounting electronics on top of batteries, even with sufficient clearance.

    Battery suppliers

    My experience is confined to three battery suppliers of 2x2x1 LiPo battery packs: CVP, Tenergy, and “HJE.” All come with a Protection Circuit Module (PCM) that provides:

    • Overcharge, over-discharge protection
    • Overcurrent protection
    • Short-circuit protection
    • Voltage- and current-balance
    • Temperature protection


    Recent experience

    Example of a 1x2x2, 4S1P (4 Series, 1 Parallel) battery configuration (from on a dead-rail install of a PS3.0-equipped (w/ DCC operation) MTH Virginian Triplex. This battery configuration reduced the thickness sufficiently to fit alongside the PS3.0 board where the original PS2.0 battery pack was mounted. The PS3.0 replacement board was obtained from Ray’s Electric Trainworks.

    More creative 14.8V battery configurations are possible that include one battery-diameter thickness solutions such 1x2x2 ( with dimensions of 131 x 36 x 23mm (LxWxT), so it’s approximately one battery-diameter thickness, two battery-diameters wide, and two battery lengths long (~5.2″). See the picture above for an example of using this thin configuration in a very tight mounting configuration on an MTH Virginian Triplex with a PS-3.0 board operating in DCC mode. See this blog for more details.

    Dead-Rail Conversion of a Sunset 3rd Rail Allegheny 2-6-6-6 Locomotive with MTH Proto-Sound 3


    Don’t jump to conclusions; MTH did NOT manufacture the C&O 2-6-6-6 Allegheny with MTH Proto-Sound 2.0 (PS2.0) I found on eBay. Instead, it’s a brass locomotive produced by Sunset 3rd Rail (Figure 1) and converted to PS2.0 (see MTH PS2.0 Upgrade Manual). See Figure 2. The retrofit replaced the original tender QSI-OEM Digital Soundboards, the wiring harnesses for the tender and locomotive, and the Suethe smoke units and their voltage regulator board in the locomotive.

    Figure 1: Sunset 3rd Rail C&O Allegheny box info

    Figure 2: Original tender Proto-Sound 2.0 electronics and harness wiring

    It was a well-done conversion, so I was very reluctant to tear out the tender PS2.0 control board, and the wiring harnesses in the tender and locomotive. The PS2.0 conversion used an MTH smoke unit that has both fan speed and smoke intensity controls.

    Figure 3: MTH Smoke Unit with funnel

    The CVP Airwire receiver boards I typically use for dead-rail conversion don’t have this level of smoke unit control. And, the PS2.0 board used a speed encoder on the locomotive motor’s flywheel to synchronize the PS2.0 board’s sound. See Figure 5 for the speed encoder reader and flywheel strip and 5b for additional electrical connections.

    Figure 4: Original Constant Voltage Unit wiring with dead-rail modifications indicated

    Figure 5: Speed encoder, flywheel strip, and electrical connections for the Constant Voltage Unit.

    Figure 5b: Locomotive harness wiring after modifications connecting the Constant Voltage Source to Battery +/- and replacing incandescent bulbs with LED’s

    All of these built-in features were pretty nice, but I still wanted a dead-rail conversion.

    Hmm… Looking around, I found out that Proto-Sound 3.0 (PS3.0) had DCC/DCS control options and the wiring harnesses are the same for PS2.0 and PS3.0 boards (see for instance MTH PS3.0 Upgrade Manual). Things are looking up. Then I found a great site, Ray’s Electric Trainworks, that provides PS3.0 replacement boards and great support.

    My thought was this: if I can upgrade the locomotive to PS3.0, then I can take the following steps. Jumper the PS3.0 board to DCC operation, disconnect the original rail power/communication wiring, and re-connect the rail power/communication wiring to the DCC outputs of a CVP Airwire CONVRTR-60X receiver (CONVRTR Users Guide). Easy, right? Not so fast.

    Ray at Ray’s Electric Trainworks was a great help: he steered me to the right PS3.0 card that I needed for the tender, and he loaded the Allegheny sound file for me. Otherwise, I would need a bunch of DCS infrastructure to load the sound file. And, he gave me a rebate for the old PS2.0 card! Great guy.

    OK, I have the PS3.0 card from Ray. The PS3.0 card came mounted in its plastic carriage that is screw-mounts on the tender chassis through pre-existing holes. The heatsink orients a bit differently between the PS2.0 and PS3.0 – no big deal – I just needed to drill a hole in the tender chassis in a slightly different place. The PS3.0 doesn’t use a Ni-MH battery, so out it went. That was a good thing, too, since I needed the real-estate for the replacement LiPO battery that would supply power to the control boards, lights, smoke unit, and the locomotive.

    Locomotive Modifications

    Here is a diagram of the locomotive wiring harness from the MTH PS3.0 Upgrade Manual with my annotations.

    Figure 6: Locomotive PS3.0 wiring harness with modifications indicated

    Since I wouldn’t be sending track power to the tender, I cut the Ground Lead and Pickup Roller Leads wires. I re-purposed them by connecting these harness wires to the Constant Voltage Unit, which is a heat-shrink blob whose input leads were cut from their original chassis connections (see Figure 5 again).

    While I was at it, to reduce power consumption, I removed the incandescent cabin and headlight bulbs, and I replaced them with Yeloglo LED’s (see Yeloglo description) whose + input was in series with the Yeloglo’s 470-ohm resistor for 10-16 Volt operation. Yeloglo LED’s have an excellent yellowish output reminiscent of incandescent light.

    Tender Modifications

    The diagram below shows the tender’s wiring harness with my modifications.

    Figure 7: Tender PS3.0 wiring harness with modifications indicated

    Continuity testing revealed that the locomotive Roller Pickup Leads and the Ground Lead connected to Pin 1 and 3 of the 7-pin connector, respectively.

    Note that BOTH locomotive and tender Ground Leads (both are black) that are input to the PS3.0 on pins 3 and 4 of the 7-pin connector, respectively, MUST BE DISCONNECTED FROM THE LOCO/TENDER FRAMES AND CONNECTED to the “B” DCC output of the CONVRTR. This pair of connections was the trick. I initially connected ONLY the Ground Lead coming from the locomotive (pin 3 of the 7-pin connector) to the CONVRTR, and it did NOT work! I don’t know if only connecting pin 4 of the 7-pin connector would work – I didn’t try it.

    Similarly, I disconnected the red wire that is input to the PS3.0 on pin 1 of the 7-pin connector (which originally connected to the locomotive Roller Pickup Leads) from the plug bundle that connects the tender to the locomotive, and I connected it to the “A” output of the CONVRTR.

    The “harness side” of the two cut wires originally going to the Pickup Roller Leads (red) and Ground Lead (black) on the locomotive, were connected to switched Battery + and Battery – (ground), respectively, to provide power to the locomotive’s Constant Power Unit.

    Note: “Switched B+” means battery power coming from the Battery’s + terminal that is turned on or off with a switch (you want to be able to turn off the power!). “Battery – (ground)” means the connection to the Battery’s negative terminal that is usually grounded to the tender chassis by a battery charging plug.

    A picture is worth a thousand words, so studying Figures 6 and 7 will give you the story of what wiring cuts and re-connections that are needed to convert a Proto-Sound 3.0 steam locomotive to dead-rail.

    Other Dead-Rail Conversion Details

    Of course, there are other aspects to the dead-rail conversion that are required. These aspects include the addition of battery power and CONVRTR connections and removal of center-rail pick-ups and electrical connections that are part of a typical 3-rail to dead-rail conversion for an O scale steam locomotive. These conversion aspects are discussed in another blog.


    In summary, if you have a locomotive with the PS3.0 installed, conversion to battery-powered DCC operation and radio control (dead-rail) is straightforward once you know the few wiring cuts and re-connections you need to make. The DCC operations for this particular locomotive can be found in the MTH document “Premier 2-6-6-6 Allegheny Steam Engine .” What you preserve with the PS3.0 is good DCC functionality, the original sound, and coordinated smoke – and that’s a pretty nice combination.

    What is Dead-Rail?

    At its most basic, “dead-rail” is battery power and radio control of the model railroad locomotive. Some folks don’t like the “dead-rail” term and call it “battery-powered and radio controlled” (BPRC). I understand and am somewhat sympathetic with the dislike, but for convenience and practicality (“dead-rail” is arguably more specific than “BPRC”), I will stick with the term “dead-rail.” Those two features – battery power and radio control – lured me in. Googling “dead-rail” will provide you with lots of excellent sites that explain “dead-rail” in detail, and they will provide you with additional resources. The starting site for me was, created by the Dead Rail Society of San Diego. They have the trademark on “Dead Rail” that they allow others to use freely (courtesy dictates that you let them know). This site packs a lot of useful information such as suppliers, how-to articles, videos, photos, and links. Go there and learn.

    Welcome to O Scale Dead Rail

    Welcome. There are more than a few excellent “dead-rail” sites around (the most notable is, but I have dedicated this blog to the application of dead-rail to O scale. Yep, it’s a narrow topic that came about in my search for information and guidance when I started converting beautiful brass O scale steam locomotives to battery power and radio control.

    I love O scale because it provides excellent detail (at least for my aging eyes!) at a reasonable size. I recently “got back into the hobby,” but I was daunted by two significant problems, the first of which is specific to O scale:

    1. 2-rail versus 3-rail: I hated that I would have to choose whether to be in the “2-rail” or “3-rail” camp. There are lots of beautiful locomotives available that operate in one or the other configuration. I wasn’t willing to choose between 2-rail and 3-rail just because of the way a locomotive receives power and communication, and either choice led to the second big problem: wiring.
    2. Wiring: I have visited some beautiful club layouts, and what struck me was the amount, complexity, and cost of installation for the delivery of power and control to locomotives. Since I had no investment in either 2-rail or 3-rail operation, I had the freedom to choose how to power and control locomotives.

    The solution to both of these problems for me was dead-rail. It might not be for you, but the recent advances in batteries and radio control, greatly fostered by the market strength of related hobbies, was the “dream come true” for powering and controlling O scale locomotives.

    But my choice to use dead-rail for O scale led to some challenges:

    1. Size: Believe it or not, my biggest hurdle adding dead-rail to O scale was finding and using space available for adding batteries, radio-control receivers, antennas, and DCC decoders (sound-only and general purpose). Many of the battery and radio-control receiver products were designed for Garden (G) scale since the G scale problems of outside use over long distances pretty naturally leads to a desire for battery power and radio control. G scale is fantastic for providing lots of space to add things like batteries, RC receivers, and antennas, but O scale offers considerably less volume and real estate than G scale for these dead-rail components.
    2. Existing features: At the least, O scale locomotives operate as either 2-rail or 3-rail, and both categories require slightly different dead-rail conversion strategies. Also, many of these locomotives have existing lighting, and smoke- and sound-generation features that need integration with dead-rail and radio control. Some O scale locomotives have DCC controllers, and fortunately, it’s not difficult to convert them to dead-rail operation.

    I learn best by specific examples, and that’s what I will be offering on this blog: my personal experience. I am relatively new to the hobby, and some of my inexperience will probably show. No doubt you the reader will have plenty to say about the topics I cover. Folks have lots of valuable and solid experience, insight, and opinions on this topic. I hope I don’t step on any toes, but my apologies ahead of time if I unintentionally do so. Thanks.

    Update 09 Oct 2019: I have become aware of a Facebook group O Gauge Battery Trains that might be of interest to O scale dead-railers.