Dead-Rail Conversion of the Lionel H-7 2-8-8-2


Warning: This is a very long, detailed post!

I like Lionel steam locomotives because Lionel designed them for simplified servicing, and Lionel’s documentation and parts are easily-available. Also, some of the locomotives, such as the H-7, are nicely detailed and are rich in features such as extensive lighting, smoke, and excellent speakers. Lionel very much “gets” the importance of the user experience.

What I don’t like are Lionel’s high-rail flanges and three-rail operation. The high-rail flanges look awful and will not work well on 2-rail trackage that meets NMRA standards S-3.2 “Scale Track, Standard Scale.” Also, many of the locomotive driver wheels are mounted on a “trapped” axle, requiring removal of the driver wheels from the axle “in situ” with a wheel puller and subsequent remounting in the correct “quarter.”

I have performed three dead-rail conversions of Lionel’s H-7 2-8-8-2 locomotive. This post will be a composite of these three locomotives.

The conversion process consists of the following:

  • Mechanical conversion: modifying or replacing all wheels and coupler replacement.
  • Electronics: All Lionel electronics are removed and replaced with a DCC decoder
  • Dead-rail: Addition of a ProMini Air (PMA) receiver and DCC amplifier, battery, antenna, charging plug, and power/charging switch

Mechanical Conversion


Before proceeding with the locomotive conversion, several “magic screws” must be removed to separate the upper boiler shell from the lower shell and wheel chassis. This step is necessary to provide clear access to the drivers for removal and modification.

Removal also provides access to the locomotive’s electronics for removal and replacement with a DCC decoder and its wiring.

Locomotive shell disassembly #1
Locomotive disassembly #2
Locomotive disassembly #3

Additionally, removing the flexible hose mounting shown below provides clearance to remove the drivers.

Removing the flexible hose mounting provides clearance to remove the drivers

After I gained enough clearance around the drivers, I used a wheel puller to remove those drivers whose axles were “trapped” in the chassis.

Using a wheel puller to separate a driver from its trapped axle. For illustrative purposes only since the brake shoes require removal to prevent mechanical interference, and this particular driver pair can be removed from the frame by removing the retaining plate held in place by two screws.

The locomotive drivers present several issues:

  • Large, ugly flanges
  • Grooved tires with rubber traction tires
  • All drivers are uninsulated. This aspect is important only if you want track-powered 2-rail operation.

Lionel manufactures the locomotive driver center and flange as s single unit with a separate cylindrical tire with no flange.

The photo below shows using an end mill to separate the driver tire from the driver center integrated with the flange. The process was the following:

  • A 3/16″ brass tube was fit in the axle
  • A small brass tube was inserted into the crank-pin hole to prevent wheel rotation while milling
  • Two pieces of brass close to the height serve as height spacers that prevent cutting into the flange
  • The tooling is a 1/16″, two-flute end mill in a Tormach collet
  • Cutting oil was applied
  • The end mill was very carefully translated along the radius, cutting into the cylindrical tire without cutting into the flange
  • After the radial cut was deep enough, I used an “ordinary screwdriver to pop off the tire with an axial twist.
Removing the cylindrical tire with a 1/16″ end mill shows the integrated Lionel driver center and flange
Lionel driver wheel with the tire removed. The 3/16″ brass tube loosely fits the axle center to hold the driver in lathe or milling chucks.

I used two strategies for modifying the Lionel driver wheels:

  • Machine down the large flanges and leave the tire in place with the driver uninsulated. I used this technique when using the locomotive strictly as dead rail.
  • Completely machine off the flange. I use this technique when creating insulated drivers for 2-rail operations using track power.

Machining down the drivers

I used a 3/16″ brass tube as a reasonably close match to the driver’s axle diameter. Because the fit is not tight, a separate small brass tube is inserted in the driver pin that will butt up against the lathe chuck’s jaws when cutting torque is applied. This technique is a bit of a kludge, but I have successfully machined down the flanges of 8 H-7 drivers on two different H-7s with this technique.

Before matching down the large flanges, you must address the grooved tires. The rubber in these tires increases the tire diameter, increasing the chances that the reduced flanges will derail. And these rubber tires are a bad idea since they could cause the locomotive to simply stall rather than slip when pulling heavy loads. Stalling is very bad since it dramatically increases the motor current, potentially causing a decoder shutdown and/or significant heating.

I used J-B Weld 8267 SteelStik Steel Reinforced Epoxy Putty Stick filling the rubber traction rim groove. This material is metal-filled, providing traction and wear resistance.

I applied an excess of putty in the groove, and after curing, I cut the putty excess down to the radius in the lathe. It’s a fool’s errand attempting to shape the putty in the groove. The epoxy sets fairly quickly, so you have a short window of time to work the putty into place.

Machining the epoxy-steel filling to the proper diameter

The photo below shows the finished driver wheel with the Steel Reinforced Epoxy Putty machined to the driver center radius and a machined-down flange with a flange height of 0.036″ and a flange width of 0.040″. As previously, a small diameter rod was inserted into the side rod hole to prevent wheel rotation relative to the axle while machining.

The tire, after machining the flange to 2-Rail standards

Completely Machining OFF the Original Flange

First, I’ll show you how I created a new tire with a small flange. This is a long detailed section, perhaps of interest to only a few of you.

First, the driver’s tire center must be prepared. The idea is to entirely cut off the integral flange to ensure a constant radius from the front to the back of the driver center.

First, you must remove the cylindrical tire. In this case, you can use a cutting wheel to cut a slot through the flange and the tire without cutting into the driver center. Then the tire can be popped off with an axial twist using a standard screwdriver. Care must be taken not to nick the driver’s wheel center.

The slightly undersized brass tube fits somewhat loosely in the crank-pin hole but will prevent slippage in the spindle by butting against the jaws once torque is exerted by the cutting tool on the rim as the spindle rotates.

The tooling and technique to completely machine off the integrated flange

After the wheel center’s rim is machined flat, I use 0.010″ fish paper to insulate the left-side drivers. You can hold the fish paper in place with a touch of CA on the side of the rim opposite where the fish paper ends will join. This allows a shorter run to hold the fish paper tight on the rim while applying CA to the ends.

Fish paper applied to the wheel center

With our wheel center ready to mount inside a tire, we now create a tire with the proper dimensions. Caveat: My tire machining technique fits my modest matching skills using a small Sherline lathe. This technique is wasteful of metal blanks, but their cost is low. Other more skilled model railroad machinists have more efficient techniques that utilize a larger lathe and specialized tooling.

To help the discussion, the figure below shows the terminology from NMRA Standard S-4.2. The important terms/dimensions are flange width, flange depth, and tread width. Creating a tire within an acceptable range of these dimensions is necessary to ensure that the driver will work on 2-rail trackage defined by NMRA standard S-3.2.

Wheel dimension definitions (from NMRA Standard S-4.2)

I start with a 1.5″ diameter Ledalloy 12L14 1″ long blank obtained from This represents a maximum driver size of 72″, which is plenty large for our 57″ plus twice our flange depth of 0.036″ for 2-rail operation (1.1875″+2 x 0.036″=1.2655″).

Ledalloy blank

A 1/2″ hole is drilled into the center of the blank to provide clearance for the boring bar that will hollow out the blank to fit the outer diameter of the driver’s center.

A 1/2″ hole is drilled into the blank to provide clearance for the boring bar.

The blank is then placed in the lathe, the face is squared off with an end cut, and then a side cut reduces the blank’s diameter to the final wheel diameter + 0.072″ to account for the additional flange depth (0.036″). For our H-7’s 57″ drivers, this diameter works out to 57/48″=1.1875″ plus twice our flange depth of 2 x 0.032″=0.072 for 2-rail operation: 1.1875″+2 x 0.036″=1.2655″.

The blank after a face cut and side cut to a final diameter equal to the wheel’s final diameter + 2 x the flange depth. Note this picture does not show the center hole that should already be drilled.

Now we make an angled side cut to create the tire surface by tilting the Sherline lathe’s spin axis by 2.5-3.0 degrees. This cut produces a shallow angle across the tire’s tread width. This angle was obtained from NMRA Recommended Practices 25.

The Sherline lathe allows you to create a tilted side cut.

A careful series of side cuts are made to reduce the blank to the wheel’s diameter at the base of the flange step with a width of the wheel width (N) of 0.172″ – the flange width of 0.039″ = 0.132″. I use a wheel width slightly smaller than “code 175″ (0.175”, from NMRA Recommended Practices 25) to improve appearance, and maintain operability with 2-rail track standards.

Angled side cuts reduce the front of the blank to the final wheel diameter and tire width of ~0.132″

Next, we “straighten out” the lathe and use a boring bar to hollow out the blank’s center to be slightly smaller than the driver’s center diameter. This cut reduces the amount of material removed during the difficult cut-off operation.

A boring bar is used to enlarge the blank’s center hole to slightly smaller than the driver’s center wheel outside diameter

Next, the tire is cut off from the rest of the blank at a distance greater than 0.039″ (the flange width) behind the flange step.

The blank is cut off more than 0.039″ inches behind the flange step

The now-separate tire is remounted in the lathe using the flange step as an indexed surface, and a careful series of face cuts are made to reduce the flange width to 0.039″.

The back face of the tire is face cut until the flange width is 0.039″

A spacer (an old tire cut off the driver) is now inserted to displace the flange from the lathe chuck’s jaws to provide clearance for rounding the edges of the flange with a file.

A spacer (an old tire) to provide clearance for rounding the flange’s sharp edges

With the lathe spinning, a file is used to carefully smooth the sharp edges of the flange.

The tire, after rounding the sharp flange edges with a file

Now, the tire is remounted against the lathe chuck’s jaws, and a series of careful cuts with the boring bar increases the tire’s inner diameter until the driver’s center fits inside the tire. This step is tedious since very small (0.001″) cuts should be used to prevent making the tire’s inner diameter too large! The fit should not be extremely tight since we will apply Loctite to the rim of the driver’s wheel center to lock the tire to the driver’s wheel center.

Fitting the driver’s wheel center into the tire. This tire had the insulating fish paper attached to the driver’s wheel center.

Loctite 609 is applied to the fish paper, and the driver’s center is inserted into the new tire. While inserting the driver’s center, I take the opportunity to ensure it is pressed into the rim to the proper depth. This depth is a bit of a judgment call based on examining the original mounting depth.

Before the Loctite dries, the driver’s center must be aligned with the tire. I use a simple technique of inserting a 3/16″ metal rod or tube into the driver axle hole and mounting the assembly in the jaws of a milling clamp with a small “v” machined into one side of the jaws, as shown in the photo below. I firmly press the tire rim onto some brass plates placed on top of the jaws, then tighten the jaws to very lightly bind the metal tube and rotate the driver wheel. This rotation action will force the driver’s center into alignment with the tire.

While aligning these components, I take the opportunity to ensure the driver’s center is still pressed into the rim to the proper depth.

Tender Mechanical Modifications

I removed the rather ugly Lionel coupler by cutting off the tender coupler mount and mounting a Kadee coupler directly to the tender. Micro-Mark coupler shims provide the proper coupler mounting height.

Tender coupler modifications
Tender coupler mount with coupler shims

DCC Additions

I used a Zimo MX696KS DCC decoder from SBS4DCC with the “Standard Gauge Steam Locomotive Alco/Baldwin Mallet 2-8-8-2” sound file DA_R_US_2_8_8_2 . Modifications were made to the function mappings and set-up of the smoke unit.

Some of the sound project’s settings are shown in the following screen captures from Zimo’s ZCS software.

Zimo sound file settings, screen #1. The settings on this page set the loco’s long address and turn on the decoder’s acknowledgment of changed CVs.
Zimo sound file settings, screen #2. Note that F4 turns on two function outputs for the firebox effects.
Zimo sound file settings, screen #3. Note the two random flicker outputs and the smoke effects output.
Zimo sound file settings, screen #4. Smoke unit settings for both smoke (heater) and smoke unit fan.
Zimo sound file settings, screen #5. Not all sound functions are shown.

Dead-Rail Conversion

Tender Modifications

My typical 14.8 LiPo battery did not comfortably fit in the back end of the tender, but a rather unusually-shaped 14.8V LiPo batter from MTO fit well: the TRAIN-10 LI-ION.

The 14.8V LiPo TRAIN-10 LI-ION battery.
Tender dead-rail additions. Note the battery, ProMini Air receiver and DCC amplifier, antenna connections, power switch, and charging plug.
Underside view of tender dead-rail components

The tender’s LEDs must have “protection” resistors added since Lionel provided these resistors on electronics boards that were removed for dead-rail conversion

Protection resistors were added for the rear light (“R.L”) and rear marker lights (“RML”)

Locomotive Electronics Modifications

The conversion strategy is completely removing all Lionel electronics and replacing them with a Zimo MX696KS DCC decoder, providing excellent sound, lighting, and smoke unit control.

These original Lionel locomotive electronics were all removed
Locomotive DCC decoder installation

Because the original Lionel electronics provided the protection diodes for the locomotive’s LED marker lights at low voltage, 5K resistors were added in series with the maker lights so that 14.8V power would not burn them out when activated by the Zimo decoder.

The red LED lighting for the firebox presented a bit of a challenge. The photo below shows where I added protection resistors for the two sets of LEDs that flicker independently using the “random” firebox setting for the Zimo decoder’s FO6 and FO8 outputs, as shown on the ZCS configuration menus elsewhere.

Electrical modifications for the firebox LEDs
Heater wiring
Smoke unit, number board, and marker light wiring

For one of the H-7s, I replaced the incandescent cabin light with an LED. See the photo below.

The incandescent cabin light was replaced with an LED to reduce power consumption

I replaced the original low-current LED front marker lights with “nano” LEDs after I accidentally burned them out.

Front marker light replacement

The Proof in the Pudding

The video below is the “proof in the pudding,” showing off the lights, firebox effects, smoke, and great sound!

The “proof in the pudding”

A Simple Way to Extend a Whip Antenna

A whip antenna is a simple and effective antenna used by many dead-rail receivers, including the ProMini Air. Still, sometimes it’s not feasible to mount the whip antenna directly to the transceiver and get good RF reception. One solution is a U.FL extender cable connected to the U.FL plug on the receiver, and the other end can be “snaked” outside the locomotive or tender shell. The U.FL whip antenna then plugs into the U.FL socket on the distant end of the extender outside the shell for better RF reception.

A U.FL extension cable. The U.FL connector on the left plugs into the receiver’s U.FL socket, and the U.FL antenna plugs into the U.FL socket on the right.

An extender has some downsides: the U.FL socket is easily broken, requires a fair-sized exit hole, and may be subject to increased RF noise. This post will show you a better solution for some applications.

A Simple Solution

While browsing RF components on AliExpress, I came across “IPX IPEX U.FL Jack RF Cable 1.13mm Jumper Solder Single-head Adapter Connector” in various lengths.

IPEX U.FL Jack Cable Single-head Adapter

If you strip off 82mm (North American) or 86 mm (EU) of the outside plastic cover and grounding wrap to expose the inner plastic insulator and the antenna wire, you have over 200mm of grounded connection for “snaking” the antenna connection to a distant location. A small hole using a #56 drill bit (0.0465″) provides sufficient clearance for the grounded lead to exit the shell.

The stripped cable exposes the antenna wire with its insulating cover.

You can bend the grounded lead to the angle you want and cover the exposed antenna section with small-diameter heat shrink tubing to hide the bright antenna wire.

The final antenna mount with heat shrink tubing covering the exposed antenna wire

Below is a video of this antenna solution in action.

The final “proof in the pudding” of the antenna concept used on a dead-rail O scale Sunset 3rd Rail (2-Rail) UP 4-6-6-4 Early Challenger. The ProMini Air receiver and DCC amp were installed in the tender and controlled via smartphone using the Locontrol app WiFi-connected to the stand-alone ProMini Air transmitter integrated with a WiFI-equipped EX-Command Station. The dynamo sound is much too loud!


I hope you find this simple solution valuable in your future dead-rail endeavors!

Dead-Rail Conversion of an MTH UP 4-12-2 2-Rail locomotive with the New, Smaller ProMini Air Receiver

I have posted several dead-rail conversions of O scale 2-Rail MTH steam locomotives equipped with a PS-3.0 controller capable of operating in DCC mode. These locomotives are convenient for dead-rail conversion because they come fully equipped with good sound, lighting, and smoke effects – all controllable with DCC. However, I have received numerous questions asking for clarification.

So, what’s new in this post?

The goals of this post are to show off a dead-rail conversion with my new, much smaller ProMini Air receiver (1.1″ x 0.8″) coupled to a small DCC amplifier, the DRV8871 (1.0″ x 0.8″), and, to explain the conversion strategy for O scale, PS-3.0-equipped MTH locomotives. I have chosen the PS-3.0-equipped MTH UP 4-12-2 2-Rail locomotive (MTH 22-3641-2) because it has a small, crowded tender, making for a challenging installation of the required dead-rail components: battery, ProMini Air receiver/DCC amplifier, antenna, switches, and charging plug.

Some conversion details, such as power connections, are left out to reduce cluttering the critical points.


The photo below shows what we are up against: a very crowded tender!

The original, very crowded tender electronics

The challenge is how/where to locate the dead-rail components.

Dead-Rail Conversion

Since this locomotive is fully configured for lighting, sound, and smoke effects, and all of the control electronics are in the tender, I did not modify the locomotive!

We’ll turn our attention to the tender.

The most challenging aspect of this conversion is battery location. After some fiddling and considering other battery configurations, I decided on a flat 14.8V Tenergy battery, mounted in the tender as in the photo below.

Battery location using a 14.8V Tenergy battery

This location required slightly bending the PS-3.0’s heat sink to provide battery clearance.

I also moved the speaker platform forward and removed the plastic speaker enclosure to make room for the battery.

I moved the speaker platform forward to provide room for the battery

The wiring of the 2Rail/3Rail switch is at the heart of our conversion. Since we will not operate on 3-rail track, we will repurpose the 2Rail/3Rail switch to retain the original 2-rail track-powered operation or use the new battery-powered amplifier output connected to the ProMini Air receiver. See the diagrams below for the original and final wiring for repurposing the 2Rail/3Rail switch

The original switch wiring for 2-rail operation. The right 2RAIL post is not connected!
The original switch wiring for 3-rail operation. All wheels become “Track Left” and the center-rail pick-up rollers become “Track Right.”
The final switch wiring for 2-rail operation. Track-based “Track Left” and “Track Right” are fully retained.
The final switch wiring for radio-control operation. Now the outputs from the ProMini Air receiver’s DCC amplifier supply “Track Right” and “Track Left” to the PS-3.0.

I modified the wiring to the 2Rail/3Rail switch to accommodate DCC inputs from the ProMini Air receiver’s amplifier. The photo below shows the first step: moving the gray wire soldered to the right center post of the 2Rail/3Rail switch to the front right post.

The next step is the hard part: figuring out the re-wiring required. To aid in the discussion, let’s talk about the capabilities of the MTH PS-3.0 controller. This board is designed to pick up signals through the locomotive and tender’s wheels, and, if operating on three-rail track, the center-rail pick-up rollers. To accommodate either 2-rail or 3-rail operation, MTH provides a 2Rail/3Rail switch on the underside of the tender chassis.

Consequently, when you set the switch to “2Rail”, the gray wires, which are electrically connected to the left track, provide input to the “Track Left” of the PS-3.0.

Next, the gray wire directly connecting the “Track Left” input to the PS-3.0 board is separated from the other gray wires and soldered to the right-center post of the 2Rail/3Rail switch. Now, the center-right post provides the “Track Left” input to the PS-3.0 from rail “Track Left” when you set the switch to “2Rail.”

Moving the gray wires and creating a single Track Left input to the PS-3.0
The Track Right (red)/Left (gray) connections to the 2Rail/3Rail switch to the PS-3.0 board

Since we will NOT be operating in 3Rail mode, we can repurpose the 2Rail/3Rail switch’s 3-Rail connections to provide the DCC inputs from the ProMini Air receiver’s DCC amplifier.

I first removed the wiring on both of the 3Rail posts on the switch.

Removal of the 3-Rail wiring connections to the 2Rail/3Rail switch. After removal from the switch post, the two black wires MUST be connected together to ensure that rail-based “Track Right” is supplied.

I sealed off this wiring, preserving the connection of the two black wires since they both contribute to “Track Right” from the locomotive or tender wheels.

Sealing off the 3-Rail wiring

Then, I soldered two wires with a plug to these “3Rail” switch posts that will connect to the DCC Track Right/Left outputs of the ProMini Air receiver’s DCC amplifier. With this modification, when the switch is set to this position, it connects the PMA amplifier’s DCC output to the PS-3.0. This now completes the conversion of the 2Rail/3Rail switch to a 2Rail/RA (for radio-generated signal) switch. That was the hard part.

Wiring for DCC inputs from the ProMini Air receiver’s DCC amplifier so that the “3Rail” switch setting now becomes the selection for “Radio Control DCC.”

The signals originally picked up from the rails come in two “languages” that the PS-3.0 controller understands: DCS and DCC. To accommodate this capability, MTH provides a DCS/DCC switch on the underside of the tender chassis. The DCS commands are a proprietary MTH invention, and for our purposes, do not interest us. DCC is important to us since the ProMini Air receiver is designed to receive wireless DCC commands, which are an NMRA standard.

We can set up the wiring for permanent DCC operation and repurpose the DCS/DCC switch for Battery ON or Battery Charging. When you set the unmodified DCS/DCC switch to “DCS,” the two black wires activate DCS mode, which we no longer need. When you set the DCS/DCC switch to “DCC,” these two wires are not electrically connected, which is what we want permanently.

The first step is to remove these two black wires and close them off to prevent them from shorting together.

Removal and insulation of the DCS wires for repurposing the DCS/DCC switch as a Battery ON/Charging switch.

Then, three wires are soldered to this switch:

  1. Center posts: Battery +. This post provides battery power that will either supply power to the PMA Rx and DCC amplifier or receive charging power from the charging plug, depending on the switch position.
  2. Back posts: PMA Rx/DCC amp power +.
  3. Front posts: Charging plug +
Final connections for the switches

The right and left posts are soldered to each wire to ensure a low-resistance, high amperage connection. The rest of the power connections are standard and not discussed here.

OK, we’re finished with all wiring modifications; now, let’s turn to adding the antenna and charging plug by first drilling holes on the bottom of the tender’s chassis and mounting the antenna and charging plug (see photo below).

Antenna and charging plug mounts, and repurposed switches

The antenna mount has a wire connection carrying RF output from the antenna to a U.FL connector plugged into the ProMini Air receiver.

The charging plug has a “+” power connection wired to the battery ON/Charging switch. All power “-” connections are on the “-” posts of the charging plug.

Finally, I mounted the ProMini Air receiver and its DCC amplifier over the speaker after removing the plastic speaker cover to provide sufficient battery clearance.

Mounting of the small ProMini Air receiver and DCC amplifier

The small size of the ProMini Air receiver and its DCC amplifier make this mounting strategy possible.


The video below shows the “proof in the pudding,” where the locomotive is controlled by the new stand-alone ProMini Air transmitter integrated with a WiFI-equipped EX-CommandStation that receives throttle commands from a smartphone app.

Demonstration video using WiThrottle app connected to PMA transmitter integrated with a WiFi-equipped EX-CommandStation that transmits to the onboard ProMini Air receiver.

Information Update on the ProMini Air Receiver and Transmitter


Typical application. In some cases, such as the Airwire transmitters, the throttle and transmitter are combined. Also, the receiver and amplifier may be integrated, such as for Airwire and Tam Valley Depot receivers. The ProMini Air transmitter and receiver require a “DCC Converter” or “DCC Amplifier” provided as part of the purchase.

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 Buccinis showed that it was possible to home-build a wireless DCC system. And Martin became a great collaborator who concretely started me 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.

Note: Some photos may show older versions of the ProMini Air. Also, previous versions of the ProMini Air receiver and transmitter used 9000/9001 for their DCC address, respectively, which we changed to 9900/9901. Photos and examples may use the now-obsolete addresses.

Update for New Versions of the ProMini Air Transmitter and Reciever

Please see this post on an important update on the ProMini Air transmitter. It is now completely stand-alone; just plug in power and use your cell phone app to control your locomotive.

The new completely stand-alone ProMini Air transmitter. Just plug in power and use your smartphone app to connect to the WiFI-equipped EX-CommandStation and then control your dead-rail locomotive

Both the ProMini Air transmitter and receiver have been significantly reduced in size: 1.1″ x 0.8″, making it possible to mount the ProMini Air receiver and a tiny DCC amplifier in tighter spaces and some HO locomotives.

The new ProMini Air receiver and small amplifier (3.6A)

Feature Comparisons

My goal for offering the ProMini Air receiver/transmitter is to provide those interested in “dead-rail” (radio control, battery power of a model railroad locomotive) inexpensive 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 used by Tam Valley Depot (TVD), CVP Airwire, NCE/QSI Gwire, and Stanton Cab. Also, you can operate the ProMini Air transmitter and receiver in the European ISM band at 869.85MHz, and we have verified interoperability with Tam Valley Depot European DRS1 transmitters and receivers.

A note about channels: modern CVP Airwire transmitters and receivers can all operate in the Airwire channels designated 0-16 using current Anaren AIR transceiver chips. Older wireless transmitters and receivers from Tam Valley Depot and Stanton Cab used the Linx ES series transmitter or receiver chip that only operated at 916.48MHz with slightly different specialized radio settings from the Airwire channels. I call this channel 17. In most but not all cases, these Channel 17 devices are interoperable with Airwire channel 16 @ 916.36MHz. Also, European versions of these older transmitters and receivers operated on 869.85MHz, and I call this Channel 18. Here’s my unofficial Table of channels and frequencies.

ChannelFrequency (MHz)Comments
10 (A)923.12
11 (B)918.12 S-Cab alternative frequency
12 (C)916.87
13 (D)913.62
14 (E)910.87
15 (F)904.87
16 (na)916.37 TVD interoperability w/ Ch. 17
17916.48S-Cab and older Tx/Rx
18869.85European operation
Unofficial channel designations

The “ProMini Air” receiver is compatible with the Tam Valley DRS1 transmitter (Channel 16 or 17), both the CVP AirWire T5000 and T1300 wireless throttles (Channels 0-16), the no longer manufactured NCE GWire CAB (Channels 0-7), and the Stanton Cab Throttle (Channel 17).

The ProMini Air transmitter is compatible with the Tam Valley Depot DRS1 receiver (Channels 0-17, Channel 18(E)), the CVP Airwire CONVRTR receivers (Channels 0-16), the QSI Gwire Receiver (Channels 0-7), the Stanton Cab LXR-DCC receiver (Channel 17), and the NCE D13DRJ wireless decoder (Channel 16 or 17). Of course, the ProMini Air transmitters and receivers are compatible!

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

NameAirwire Receiver
Level Adj
NoCh 17
(or 18(E))
NCE Gwire CabYes0-7YesNo
S-Cab ThrottleNo17NoNo
Air Transmitter
Yes0-17, 18(E)YesYes
Comparison of wireless DCC transmitters

In fairness, the manufacturers of the Airwire T5000, the NCE Gwire Cab, and the S-Cab Throttle hand-held throttles 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 (most, if not all, do NOT). Also, the Tam Valley Depot DRS1 transmitter can only broadcast on one channel (near Airwire Channel 16, which I have designated Channel 17 @ 916.48MHz).

Shown in the Table below are the comparisons for wireless DCC receivers.

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

The most notable difference among the receivers is “DCC filtering,” i.e., how the receiver behaves when losing a valid RF DCC signal.

When the TVD DRS1 or QSI Gwire receivers lose a valid RF signal, they output random pulses to the decoder. 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 a valid RF signal or 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 periodically evaluating whether it’s receiving DCC “IDLE” pulses. So, even if a stream of completely-valid DCC packets are received, but there are few or no “IDLE” packets, the Airwire CONVRTR will become inactive and output constant DC to the decoder.

These characteristics of the Airwire receivers are why 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.

Stanton designed the S-Cab LXR-DCC receiver specifically for the S-Cab Throttle’s intermittent DCC transmissions. Like the Airwire CONVRTR receivers, the LXR outputs a constant DC voltage when a valid RF signal is lost.

Via OPS mode (by default at address 9901), you can reconfigure ProMini Air’s output behavior when a valid RF signal is lost. The first option (CV246 -> 0) selects the output of DCC IDLE messages (which the decoder is “comfortable” with, rather than random pulses that might “confuse” the decoder). The second option (CV246 -> 1) selects the output of constant-level DCC.

This reconfigurability makes the ProMini Air receiver a versatile wireless DCC receiver. The ProMini Air receiver’s RF DCC detection technique is 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 the CV252 value in 1/4 second multiples), the ProMini Air receiver will output either the DCC “Idle” messages (DCC filtering “off”) or output constant-level DC (DCC filtering “on”). When DCC filtering is “on,” and there is no valid RF signal, the DC level output is reconfigurable via an “OPS” mode setting of CV248 (-> 1 for positive DC, -> 0 for 0V DC) at the ProMini Air’s DCC address.

Once a valid RF signal is received again, the ProMini Air receiver detects this condition. It outputs these valid DCC packets to the “DCC amplifier” that sends “track-level” DCC to the decoder.

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

The TVD DRS1 receiver will “listen” on a fixed Airwire Channel if you set some jumpers. Otherwise, the DRS1 will automatically search the Airwire Channels for a valid RF signal if you do NOT insert the jumpers. This behavior may or may NOT be a good idea if multiple wireless DCC transmitters transmit 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 0 through 18 at the ProMini Air transmitter’s DCC Address (default, 9901). Like the TVD 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(A), 18(E), 17(S), 1(A), 2(A), …, 16(A) (in that order) for valid RF signal (A=Airwire channels, E=European channel @869.85MHz, S=S-Cab Channel @ 916.48MHz). 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 the ProMini Air receiver finds no valid RF DCC signal on any Channel on startup, it 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: trying the “startup” channel stored in EEPROM memory, then try auto-searching Channels, and if all else fails, wait on Channel 0.

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

You are provided with a few additional components when buying a ProMini Air receiver or transmitter. In the case of the ProMini Air transmitter, we include a simple “DCC Converter” PCB that converts DCC output to the track into Ground, 5V power, and 5V logic DCC. These outputs supply the ProMini Air transmitter with power and DCC packets to transmit, so no additional power supply is necessary.

For the ProMini Air receiver, we include a low-cost “DCC amplifier” that converts the ProMini Air receiver’s 5V logic DCC back to DCC. The onboard DCC decoder would, in its typical configuration, pick up from the track (again, discussed in detail below). The ProMini Air receiver can be powered directly from the battery or a small external 5V power supply.

This modularity keeps costs down, allows for easy replacement of components rather than the entire assembly, and enables the use of commodity components less susceptible to supply-chain disruptions.

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 that connects to the U.FL connector on a 10-pin transceiver daughterboard. This antenna 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 without modification; others will need to run an antenna connecting cable to a small, externally-mounted antenna. We discuss several excellent antenna options below.


The definitive source of information for the ProMini Air transmitter and receiver is available here.

Kit Assembly

We no longer offer the ProMini Air as a kit.

Firmware Installation

The ProMini Air Tx and Rx are provided with the firmware already loaded. These instructions are only for advanced users who want to update the firmware.

The source code is available from this GitHub site. Locate the source code in a directory where the Arduino IDE can find it. You should retain the subdirectory structure to access the “project” with the Arduino IDE.

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 this:

// #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 18 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)*/


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

// #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 18 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)*/


Two further options are available. The first option selects the crystal frequency of the FCC/EC-approved transceiver: 27MHz (Anaren) or 26MHz (Ebyte). The second option specifies North American or European default use.

After you complete downloading the firmware into the Pro Mini, 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 step ensures you properly initialize the EEPROM!

You 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 provides the DCC decoder with standard DCC waveforms. There is no “boot-up DC” and no need to set CV29, bit2=0. (I set it anyway.) With this solution, all DCC decoders I’ve tried (ESU, Zimo, MTH) startup 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. Remove the transceiver daughterboard and the jumper (if inserted).
  2. Connect the USBtinyISP (or other) Programmer (with power switch ON to supply 5V DC to the ProMini Air PCB while programming) to the 6-pin connector on the ProMini Air.
  3. From the Arduino IDE, Select Tools → Programmer → “USBtinyISP” (or whatever ISP programmer you use).
  4. Select the AirMiniSketchTransmitter sketch.
  5. Select Sketch → Upload using a Programmer.
  6. The Arduino IDE will 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 you use 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!!! You will destroy the ProMini Air immediately if you reverse the GROUND and POSITIVE POWER SUPPLY connection!

Data and power connections for PMA Rx
Data and power connections for PMA Tx

The Anaren and Ebyte transceiver daughterboards have a versatile
U.FL plug for antenna connections. You can plug in either the
Anaren whip antenna we provide or a U.FL-to-SMA or U.FL-to-RP-SMA
cable that screws into 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, serving as signals to an oscilloscope for
waveform review. See the figure below for details
on these connections.

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

The ProMini Air has several connections that provide AVR programmer, I2C display outputs, and 5V logic DCC inputs or outputs. See the photo below.

ProMini Air connections for AVR programmer, 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 following two sections.

Receiver Connections

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

ProMini Air power connection options (for Rx only, the Tx receives power from the DCC Converter).

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 (older PMA version, but the connections are the same for newer versions)
Close-up of ProMini Air receiver power connections to an external +5V power supply (older PMA version, but the connections are the same for newer versions)

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.

Depending on the particulars of your installation, the author will provide an appropriate DCC amplifier as part of your PMA Rx purchase.

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 high-power (13A continuous) DCC amplifier may be purchased here, as shown below. This Cytron MD13S amplifier is the one we provide with the ProMini Air receiver unless determined otherwise for size constraints. You can successfully use more expensive high-amperage amplifiers (about $30 US as of 2020) found at Pololu here or here. These amplifiers are smaller (0.8″ x 1.3″) than the Cytron.

ProMini Air receiver integration with battery power, DCC amplifier, and antenna (older PMA version, but the connections are the same for newer versions)
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 suitable for the ProMini Air transmitter. These outputs provide the ProMini Air transmitter with Ground, +5V power, and 5V logic DCC input.

We provide the “DCC Converter” PCB as part of your PMA Tx purchase.

Photo of 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 does NOT connect to a battery and does NOT use the jumper connecting +5V to +5V (Battery)!
Close-up of ProMini Air transmitter connections to the “DCC Converter” PCB. The jumper connecting +5V to +5V (Battery) is NOT used! (older PMA version, but the connections are the same for newer versions)

The user can change the ProMini Air transmitter’s Channel (Airwire channels 0-16, S-Cab channel 17, and EU channel 18) and Power Level (0-10) by setting the DCC throttle’s address to that of the ProMini Air transmitter’s (9900 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), exit OPS mode, and change 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 transceiver that is surface-mounted to a 10-pin interface daughterboard. This whip antenna/transceiver combination is FCC/IC-approved as an “intentional radiator.” You can purchase antennas for the ProMini Air transmitter online from many sites for experimentation purposes. For fixed installations of the ProMini Air transmitter, we suggest 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 a 3.3 dBi gain. It is available from Digi-Key or Mouser, and 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 also available from Digi-Key and Mouser.


Diagnostic Outputs

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

  • You can monitor the transceiver’s output (in Rx mode) or input (in Tx mode) on the output DIP pins described above.
  • “I2C” outputs can drive an inexpensive two rows 16 columns I2C LCD.
The 2-pin connector provides Ground and the RF transceiver’s transmitted or received DCC signals. An oscilloscope can monitor these signals.
ProMini Air receiver/transmitter connections to an I2C LCD (older PMA version, but the connections are the same for newer versions)
Close-up of ProMini Air receiver/transmitter connections to an I2C LCD (older PMA version, but the connections are the same for newer versions)

The ProMini Air software automatically searches for a valid LCD I2C address on boot-up. Please make sure you connect only ONE display to the ProMini Air.

You can also change the ProMini Air’s DCC address using the throttle’s “OPS” mode. For the transmitter, you use the DCC throttle that connects to the ProMini Air transmitter (by default at DCC address 9900 (previously 9000)). For the ProMini Air receiver, you use the wireless DCC throttle transmitting to the ProMini Air receiver (by default at DCC address 9901 (previously 9001)). The EEPROM permanently stores the changed address, but this new address is not operative until you power cycle the ProMini Air.

Configuration and Testing

We default-configured the ProMini Air receiver and transmitter to operate on Airwire Channel 0. This default can be changed by setting the DCC address to 9901(Rx)/9900(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-17 for North American operation or Channel 18 (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 channel change is not permanent, and on a restart, ProMini Air will revert to its default channel.

Several other configuration options are 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 can be purchased here or here (and numerous other locations) to gain some insight into the ProMini Air’s state. This display is particularly beneficial when using the ProMini Air as a transmitter.

Examples of Testing (Advanced)

This section is only for the advanced or adventurous. In the examples below, the Yellow waveform is the signal from/to the RF transceiver for Rx/Tx, respectively. 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 with 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 receiving no valid RF DCC. 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 no valid RF DCC is received. DCC filtering is off, so the PMA outputs DCC Idle messages. The Tam Valley Depot and Gwire receivers simply reproduce the random pulses received by the transceiver.

Valid RF DCC received. The decoder DCC mirrors (blue) the receiver’s DCC (yellow).
No valid RF DCC. The PMA injects DCC IDLE messages when DCC filtering is off (Filter: 0).
No valid RF DCC. The random pulses produced by the RF receiver are reproduced by the output DCC. This is what Gwire and Tam Valley Depot receivers produce.

The user can reconfigure the ProMini Air receiver using the throttle’s “OPS” mode. Setting the wireless throttle DCC address to 9901 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 (9901 in this case). Note that the MSG address now matches ProMini Air’s address.

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

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

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

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

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 address. The display now shows DCC filtering is “on.”

Below is the transceiver’s and DCC amplifier’s DCC output when 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 Volts 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 no valid RF DCC signal is received. With filtering on (Filter: 1), DCC A sent to the decoder is positive, and DCC B is zero, assuming that you set CV248 to “1”. If you set CV248 to zero, then DCC A is zero, and DCC B is positive.

Repeating the process of changing the wireless throttle’s DCC address to 9901, 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 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 address indicates that the DCC filtering is off (Filter: 0).

So, when we turn off the wireless DCC throttle/transmitter, the DCC amplifier’s output (blue) again displays the DCC IDLE messages output by the ProMini Air receiver.

Now, when no valid RF DCC is received, the ProMini Air receiver injects DCC IDLE messages amplified by the DCC amplifier and sent to the decoder.

Transmitter Testing

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

With 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 LCD alternately displays the throttle’s address and the ProMini Air’s address and shows the Channel number and Power Level.

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 the Airwire RF receiver “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 precisely 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 than the previous photo

You can reconfigure the ProMini Air transmitter by setting the throttle’s DCC address to 9900 (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 9900 allows the throttle to reconfigure the ProMini Air in OPS mode.

Once we have changed the throttle’s DCC address to 9900, 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 ProMini Air’s address.

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 the Airwire receiver “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, 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 contact the author on this site to purchase the ProMini Air receiver or transmitter. The cost for the ProMini Air transmitter or receiver (with their additional DCC Converter or DCC amplifier and wiring harness) is only $50.00 + shipping.


Dead-Rail Conversion of an O Scale MTH 2-Rail SP AC-6 Cab Forward, 4-8-8-2 (MTH 22-3709-2)


I purchased this beauty on eBay (from Australia!) circa September 2021 because it had scale profile wheels that allowed 2-rail DCC operation with a PS3 board. My past experiences converting O Scale 2-rail MTH locomotives are happy ones, and this conversion was no exception. This time, I decided to add a little wrinkle by retaining track-based 2-rail DCC operation, and I’ll show you how I accomplished this.

MTH AC-6 Cab Forward details

Conversion Process for Track or Radio Controlled DCC Operation

The entire conversion centered around the tender – the locomotive was entirely untouched.

I mentioned in the Introduction that I wanted to retain the 2-rail track-powered operation, so after removing the tender shell (which is very easy: remove four screws, and you’re in!) I concentrated on the 2RAIL/3RAIL switch shown diagrammatically and pictorially below:

                        TOP VIEW OF SWITCH
  Center loco roller (Br) ->|    |<- (Bk) Rt tender wheels
          PS3 (Tk R) (Re) <-|    |<- (Gy) Lt tender wheels/tender frame/loco Lt wheels -> (Gy) PS3 (Tk L)
    Rt tender wheels (Bk) ->|    |<- NC

2RAIL/3RAIL switch top view inside the tender (original installation)
2RAIL/3RAIL switch top view inside the tender (initial installation)
2RAIL/3RAIL switch bottom view underneath the tender. Note: I changed the “3RAIL” to “RA” (for radio control).

Depending on switch position, the “two-position” switch electrically connects the center row of terminals to either the top (3RAIL) or bottom (2RAIL) row of terminals. The two columns of the switch are electrically isolated; i.e., each terminal in a row electrically isolates from the other.

From this “switchology,” it’s apparent that the “track left” comes from several locations on the center-right terminal, and one wire goes from this terminal to the PS 3 board. The “trick” is to move the several “track left” wires to the bottom-right switch terminal where “NC” was and leave the one grey wire leading from the center-right terminal to the PS3 board in place. Then, disconnect the wires on the top posts (originally for 3RAIL operation) and attach the DCC Track Right/Left outputs from the DCC amplifier that is in turn connected to the ProMini Air receiver that collects RF DCC. Voila!

                        TOP VIEW OF SWITCH
          		      RA (for radio control)
       Radio Control Tk R ->|    |<- Radio Control Tk L
          PS3 (Tk R) (Re) <-|    |-> (Gy) PS3 (Tk L)
    Rt tender wheels (Bk) ->|    |<- (Gy) Lt tender wheels/tender frame/loco Lt wheels

Dead-Rail Components Installation

The original tender electronics installation

Several Battery-Powered/Radio Controlled (BPRC or “Dead-Rail”) components required addition: an antenna, a power switch, a charging plug, a 14.8V battery, the ProMini Air receiver, and a DCC amplifier. From the picture above, you can see that the prominent speaker takes up a lot of real estate that we need for our Dead-Rail components. Sadly, the speaker had to go, replaced by a smaller speaker that I mounted in place with 2-sided tape.

The Tenergy 4S1P 14.8V battery has an extended, thin profile that makes the tight fit in the tender. The ProMini Air receiver and the Cytron MD13S DCC amplifier fit nicely on the forward sides of the tender interior.

Tender Dead-Rail installation

Antenna installation was easy, requiring drilling a small hole through the bottom of the tender. The ANT-916-CW-RCS is an excellent choice for a small 915 MHz antenna with 3.3 dBi gain. It is available from Digi-Key or Mouser. 

ANT-916-CW-RCS Antenna installation on the bottom of the tender

I installed the charging plug in an empty hatch opening (with a bit of filing of the original opening) on the top of the tender and repurposed the “DCC/DCS” switch as the Dead-Rail “on/charging” switch.

Charging plug and Dead-Rail on/off switch on the top of the tender
Repurposed switch for Dead-Rail on/charge


Conversion of the O Scale MTH AC-6 Cab Forward was rewarding and straightforward. See the video below for the “proof in the pudding.”

Demonstration of Dead-Rail operation. Note the slight flickering of the lights is an artifact of the video sampling process.

Dead-Rail Conversion of a Sunset 3rd Rail (3-Rail) 2-6-6-6 Allegheny


This Sunset 3rd Rail (3-Rail) 2-6-6-6 Allegheny was purchased on eBay in March 2021.

Box information

While perusing the Zimo sound projects, I found the only Allegheny sound file that I’m aware of by Heinz Daeppen. I was very excited to try it out!

Dead Rail Conversion Outline

The dead rail conversion involved the following steps, most of which have been described in other posts:

  • Removal of center-rail pick-ups
  • Cutting down the 3-rail flanges on the locomotive drivers and all locomotive and tender wheels to approximate 2-rail flange profiles
  • Fan-driven smoke unit installation
  • Replacement of all lighting with LEDs: front/rear lights, marker lights, cabin light, and firebox glow
  • Zimo MX696KS DCC decoder installation in the locomotive with a Zimo coded Allegheny sound project from Heinz Daeppen (detailed information can be found here).
  • Dead rail components installation in the tender: battery, power switch, charger plug, antenna, ProMini Air wireless receiver, and DCC amplifier

Sound Project Additions

I made the following additions to Daeppen’s superb sound project:

  • F3: Turn on/off maker lights
  • F4: Turn on/off firebox light (a red LED with a random pulsing)
  • F5: Turn on/off the cabin light
  • F6: Turn on/off the fan-driven smoke unit

Photo Gallery of the Dead Rail Installation

Cut down flanges on front drivers
Cut down flanges on rear drivers
Cut down flanges on trailing truck
Cut down flanges on leading truck
Cut down flanges on the tender’s trailing truck
Cut down flanges on the tender’s leading truck. The Hall sensor was NOT used for synchronizing the steam chuffs.
Smoke unit and mount side view. The smoke unit is a Lionel 6108057200.
Smoke unit and mount front view
Smoke unit and mount top view
Smoke unit and mount bottom view as installed
Smoke unit and mount front view as installed. The bottom brace was later narrowed to fit in the slot formed by the thick brass mounting plate.
Kadee coupler mount side view
Dead rail components tender installation bottom view: antenna, power switch, and charging plug
Dead rail components tender installation top view: antenna connector, power switch, and charging plug
Dead rail components tender full installation top view. Note the ProMini Air receiver on the upper left of the tender shell and the DCC amplifier on the lower left of the tender shell.
Dead rail components locomotive full installation. Note the plastic cover over the transmission belt to prevent wiring from tangling with the drivetrain. A Zimo MX696KS DCC decoder with a coded Allegheny Sound file from Heinz Daeppen was installed.


As the photos above attest, this dead rail conversion was not too difficult, fostered by the large size of the locomotive and tender.

Demo. The coded Zimo Allegheny sound project from Heinz Daeppen is outstanding! See this information on the project.

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