Integrating an Small EX-CommandStation with the ProMiniAir Receiver

Hundreds of Model Railroaders have used the ProMiniAir Receiver (PMA Rx), which is highly compatible with Airwire, Stanton Cab, Tam Valley Depot, and Gwire Transmitters. This is a rare “Island of Compatibility” for model railroad battery power and radio control and allows one “Compatible Transmitter” (ProMiniAir, Airwire, Stanton Cab, Tam Valley Depot, and Gwire) to control multiple locomotives and accessories with a “Compatible Receiver” (ProMiniAir, Airwire, Stanton Cab, Tam Valley Depot, and Gwire).

PMA Receivers are sold on eBay (search for “ProMiniAir”) with small (3.6A) and large (13A) amplifiers. The PMA Rx’s small size and selection of amplifiers allows installations in N-scale through G-scale. PMA Transmitters are also available on eBay. These Transmitters wirelessly transmit DCC to “Compatible Receivers” with DCC commands from a) “standard” DCC throttles and controllers or b) a “stand-alone Transmitter” solution that is a full-blown, inexpensive DCC command station that accepts throttle commands from smartphone throttle apps via WiFI or computer app via USB and converts them to DCC output.

However, a Model Railroader sometimes wants to obtain information from the onboard DCC decoder. A drawback of “Compatible Receivers,” such as the ProMiniAir Receiver, is that they are great “listeners” but cannot transmit information about the onboard DCC decoder back to the user. Some recent proprietary Dead Rail Transmitter/Receiver systems, such as Blunami, can send information from the decoder back to the user. However, these systems are NOT interoperable with any other Dead Rail system; they are NOT members of the Island of Compatibility. And they are not well-suited to central control of multiple locomotives.

This post will present a solution based on open-source code and common techniques and tools that thousands of “track-powered” Model Railroaders use that allow “Compatible Receivers” to send decoder information back to the user while maintaining “backward compatibility” with “Compatible Transmitters.” This solution brings techniques our “track-powered” brethren use to Dead Rail.

The Solution

Think about what we are doing in Dead Rail: we are replacing the DCC that is picked up by the locomotive’s DCC decoder through electrical contact with the rails with a “virtual track” (direct wiring to the decoder) that sends DCC from a wireless Receiver and Amplifier. When a “normal” DCC throttle wants to interrogate the decoder, the locomotive is situated on a special “Programming Track” that is electrically isolated from the rest of the track DCC wiring. Then, the DCC controller sends specialized “Service Mode” DCC commands that require the DCC decoder to send back simple “acknowledgment” (ACK) current pulses that the DCC controller senses. Hmm… How can we do this in Dead Rail?

The solution is to add a tiny DCC-ex.com EX-CommanStation (EX-CS for short) onboard the locomotive that will “weave” the logic-level DCC from the ProMiniAir Receiver with any DCC that the EX-CS might generate from other wireless sources and then send the combined logic-level DCC to the amplifier to produce “track-level” DCC! In other words, all we need to do is interpose a tiny DCC command station between the ProMiniAir Receiver and its Amplifier.

Since the EX-CS is a sophisticated, fully functional DCC command station, in addition to “normal” DCC commands it sends to regular tracks, it can also send Service Mode commands on a “Programming Track.” The EX-CS software has the crucial capability of “Joining” DCC from the Regular Track with the Programming Track so that you can “drive on/off” a locomotive to/from the Programming Track for specialized Service Mode queries that the decoder responds to with an “acknowledgment” (ACK) current pulse that is sensed by the DCC command station as a “yes” to its query. A “no” from the decoder in response to a query is the lack of an ACK pulse. The “JOIN” capability of the EX-CS means that once we are finished sending specialized Service Mode DCC over the wires to the decoder, we can then send “normal” DCC to the decoder over the same wires. No specialized circuitry or extra wiring from the amplfier to the decoder is required!

Comparison between a “standard” DCC throttle (top) and the EX-CommandStation (bottom), which can ‘join” standard and programming DCC

The EX-CS was originally designed to accept WiThrottle or DCC-EX commands over a WiFi or USB link and internally generates logic-level DCC that controls an external amplifier or “motor board” to produce high-power, “track level” DCC that the decoder can pick up off the track. We use that capability to control a compact “motor driver” amplifier to do the same thing, only the output from the amplifier is sent directly to the decoder over wires rather than to conducting track.

You might wonder how the EX-CS can “weave in” logic-level DCC from the ProMiniAir Receiver. I modified the EX-CS software some time ago to allow the additional input of an external, logic-level DCC source for the ProMiniAir Transmitter that combined the EX-CS’s internally generated DCC from interpreting high-level WiThrottle or DCC-EX commands with the DCC from an external source such as a standard DCC throttle (passed through a simple “DCC Converter” that converts “track-level” DCC to “logic level” DCC @ 5V and also provides 5V power). This PMA Tx/WCS (Wifi-equipped EX-CommandStation) has been available on eBay for some time. See the figure below for the original PMA Tx design and its modification to use the EX-CS, the PMA Tx/WCS.

Original and New Transmitter connections for PMA Tx/WCS. This technique was reused for the PMA Rx. Power connections are NOT shown.
The actual PMA Tx/WCS is available on eBay.

I reused this capability for the Receiver! In essence, I have moved the EX-CommandStation from a stationary position to a mobile location, traveling with the locomotive. Only the source of the external DCC has changed: from a traditional DCC command station to the output of the ProMiniAir Receiver. The only new Receiver-specific modification was to use the EX-CS’s original capability to sense a current pulse produced by the decoder during Service Mode queries rather than “fake” it as in the PMA Tx/WCS since the PMA Transmitter cannot generate output current pulses.

The original (top) and new (bottom) Dead Rail connections. Power connections are NOT shown.

If you study the Receiver and Transmitter figures above, you can see the modular design of the ProMiniAir Transmitter and Receiver allows easy interchange of components. If we had not separated the ProMiniAir Receiver from the Amplifier (technically, its not an amplifier, but rather an H-bridge driver that accepts logic-level PWM and converts them to higher-voltage and higher-current PWM), which enables us to insert the EX-CS between them, the “PMA Rx/WCS” solution would not have been possible!

Implementation

So much for design; let’s see how the PMA Rx/WCS is realized in hardware for two different amplifiers: a DRV8874 (2.1A continuous) and a Cytron MD13S (13A continous).

Small Amplifier PMA Rx/WCS

The figures and videos below show one implementation of the ProMiniAir Rx with a mini ESP32 that hosts the modified EX-CS’s software and sends combined DCC from the ProMiniAir Receiver and DCC generated from WiFi-connected WiThrottle or DCC-EX clients to a Pololu DRV8874 amplifier that in turn sends track level DCC to a decoder.

The Pololu DRV8874 amplifier is easy to integrate because it provides a current sense voltage output of 1V/1A in response to the total current provided to the decoder, eliminating the need for an additional current sense device. The mini ESP32 requires +5V power supplied by a small voltage converter from here on Amazon. It’s mounted beside the DRV8874 amp on the bottom side of the mini ESP32 PCB.

A ProMiniAir Receiver integrated with a mini ESP32 hosting a modified version of the EX-CommandStation’s software. The EX-CS’s DCC is amplified by a Pololu DRV8874 amplifier, whose DCC is, in turn, sent to a DCC decoder. The current sense output of the DRV8874 generates DCC Service Mode ACK pulses from the DCC decoder that are used to “read” the decoder’s data.
The PMA Rx/WCS underside shows the Pololu DRV8874 amplifier and +5V power converter.
ProMiniAir Rx/WCS’s ESP32 mini backside shows external connections to the EX-CommandStation. “PWR” denotes +5 V power converter connections, “AMP” denotes connections to the Pololu DRV8874 amplifier, and “PMA” denotes connections to the PMA Receiver. “CS” denotes the current sense output from the Pololu DRV8884 amplifier that is used to sense the decoder’s ACK pulse.

The mini ESP32’s dimensions are 1.2″ x 1.6″, permitting installations in an HO-scale boxcar. See the figures below for an example installation.

The PMA Rx/WCS easily fits in an HO scale box car, including an 11.1V Li-Ion battery.
With the battery installed, we can now demonstrate that two wireless sources can provide the DCC output: either a standard ProMiniAir-compatible transmitter, such as the Airwire T5000 transmitter, or a smartphone app that connects to the EX-CommandStation.
Since I didn’t have an HO engine, I mounted all receiver components inside the HO boxcar and then connected the DCC output to a power-hungry MTH Diesel with a PS-3.0 operating in DCC mode. First, control is demonstrated with an Airwire T5000 throttle connecting to the onboard ProMiniAir Receiver and then using the onboard EX-CommandStation connected to an Android smartphone running the EngineDriver app to read the decoder’s DCC address.
Now, the T5000 is turned off, and then the locomotive is controlled by the EngineDriver app “talking” to the onboard EX-CommandStation.

Large Amplifier PMA Rx/WCS

The PMA Tx/WCS can also be integrated with a powerful Cytron MD13S (13A continuous) amplifier for O and G scale. Since the Cytron does not have a current sense output, we integrated an INA169 from Amazon to provide this missing input.

The bottom view of Cytron integration with the PMA Rx/WCS and the current sensor is as follows: Pin 23 is input from the PMA Rx. Pins 18 and 25 are outputs from the EX-CS that control the output of the Cytron amplifier.
Bottom view of the INA169 current sensor. Note that the current sense output (white wire) of the INA169 is input to Pin 34 of the EX-CS to detect decoder ACK pulses.
Bottom view of the INA169 current sensor with a 5V power converter used to power the INA169 and the ESP32 PCB
The Airwire T5000 transmitter communicates with the ProMiniAir Receiver, which sends its DCC to the EX-CS and is “woven” with the EX-CS’s own DCC. The Android running Engine Driver directly communicates with the EX-CS.
The video demonstrates control by the T5000 transmitter communicating with the ProMiniAir Receiver integrated with the EX-CS. Then, the Engine Driver app is used to query the decoder’s DCC address (and any Configuration Variable) in Service Mode. Finally, the T5000 transmitter is turned off, and the Engine Driver app now controls the decoder.

Demonstration of Reading Decoder Information

One of the main reasons for using a PMA Rx/WCS is to extract information from the decoder wirelessly. There are two main avenues for doing so: wireless throttle or smartphone apps or by using a wireless connection from JMRI to the onboard EX-CommandStation and the decoder. We first demonstrate how the Android EngineDriver app can read the decoder, and then we’ll see how to do it with JMRI.

Components used in the demo videos. The battery supplies power to the ProMiniAir Receiver, WiFi-equipped EX-CommandStation, and Pololu DRV8874 motor driver. The Zimo MS950 decoder uses the DCC output of the DRV8874 and then controls the motor and speaker. The PC running JMRI, the Android running EngineDriver, and the T5000 throttle are all wirelessly connected to the ProMiniAir/WiFi-equipped EX-CommandStation (PMA Rx/WCS) for short.
A video of using an Airwire throttle that transmits to the ProMiniAir Receiver that, in turn, sends DCC through the EX-CommandStation to the decoder, all with battery power in a small form factor. Then, the EngineDriver Android app, which is WiFi-connected to the EX-CommandStation, is used to read the decoder’s address and then directly control the decoder’s engine speed and sound.  The computer to the left is connected to the EX-CommandStation via Wifi, where we will demo reading CVs on the decoder wirelessly. 

It’s simple to use JMRI with the PMA Rx/WCS. First, set your computer’s wireless connection to the EX-CS’s wireless network, DCCEX_123456, where “123456” is a unique string. The password is PASS_123456. Now, you can activate JMRI’s Decoder Pro application. You must configure the server connection for the DCC-EX protocol, IP address, and port number.

Once connected, JMRI’s Decoder Pro allows you to read and write to the decoder in Service Mode as shown in the two examples below. It can even extract enough decoder information to identify the decoder’s type, which in this case is a Zimo MS950 that we used in the Cytron amplifier demonstrations above.

The WiFi-equipped EX-CommandStation reads the decoder CVs in Service Mode and then transmits them via Wifi to the JMRI application. You can also send CVs to the decoder via this same link. This example is a severe test by reading numerous CV without error.
Another example of reading the CVs wirelessly is, in this case, the Function Map.

It’s actually kind of amazing and addicting to see Decoder Pro extract so much information wirelessly! Of course, the purpose of extracting this information is to subsequently modify the decoder’s settings, which can also be done in Decoder Pro.

Final Thoughts

The primary advantage of the PMA Rx/WCS over the “garden variety” PMA Rx is that you can obtain decoder information using the same tools and techniques employed by thousands of our “track-powered” compatriots. No expensive proprietary receivers or apps are required: just the low-cost PMA Rx/WCS (about $59.99 with the DRV8874 or Cytron MD13S on eBay) and free or inexpensive smartphone apps or free JMRI.

The added advantage of the PMA Rx/WCS is that you can also directly use a smartphone throttle app that is either WiThrottle (all of them) or DCC-EX (some of them) compatible to connect with the onboard EX-CS. This control approach bypasses the PMA Receiver, so you will only have one-on-one control, losing the multiple locomotive control ability afforded by a PMA Tx/CNV (using a standard DCC’s throttle’s track DCC output) or a PMA Tx/WCS, which adds an EX-CommandStation to the PMA Transmitter for smartphone or computer control via WiFi.

The modified EX-CommandStation software is available on this GitHub site—our thanks to the DCC-ex.com team for developing the EX-CS software. I donate 10% of my sales of PMA Tx/WCS and PMA Rx/WCS to the DCC-ex.com project.

The ProMiniAir Rx/WCS will be available on eBay with the DRV8874 and Cytron MD13S amplifier. Customized versions are available by special request at this website or by contacting me on eBay. These devices are “ready-to-run,” and no further assembly is required.

Using a ProtoThrottle for Dead Rail

Introduction

The Iowa Scaled Engineering ProtoThrottle has many ardent users who typically use the throttle to control locomotives with track-powered DCC. This post shows you how to implement using this throttle for Dead Rail (battery power, radio control) with ProMiniAir, Airwire, Tam Valley Depot DRS-1, S-Cab, and Gwire Receivers that can receive commands from ProMiniAir Transmitter integrated with a WiFi-equipped CommandStation (available on eBay by using the “ProMiniAir” search string).

My thanks to Colin Camarillo for the idea.

Implementation

Implementation is straightforward and smooth. You will need the following components:

  • ProtoThrottle: available here.
  • ProtoThrottle Receiver (ProtoThrottle Receiver for ESU CabControl, JMRI WiFi Throttle, and Digitrax LNWI): available here.
  • ProMiniAir Transmitter/WCS (ProMiniAir Receiver integrated with a WiFi-equipped EX-CommandStation): available here.
  • Compatible Receivers are:
    • ProMiniAir
    • Airwire CONVRTR, G-3, and G-4
    • Tam Valley Depot DRS-1
    • S-Cab
    • Gwire

First, power up the ProtoThrottle and set the locomotive’s address, e.g., 1648, along with the illustrated functions. See the ProtoThrottle’s User Manual for detailed operation and configuration details.


The ProtoThrottle has been set to the locomotive’s address with the illustrated functions.

The PrototThrottle Receiver has a config.txt file that is available on a file system once connected to a PC. You edit this file with your favorite text editor, modifying the following entries for operation with a DCCEX system:

ssid = DCCEX_123456
password = PASS_123456
mode = dccex
serverIP = 192.168.4.1
serverPort = 2560

The”123456“is replaced by the actual value shown on the CommandStation’s OLED display. Save the file. Disconnect the USB cable from the PC and plug it into the USB power block.


 Set up the configuration file for the Iowa Scale Engineering Receiver for WiFi Systems for a WiFi-equipped EX-CommandStation. Plug the Receiver’s USB cable into a computer and edit the Receiver’s config.txt file. Note that the settings are for the WiFi-equipped EX-CommandStation.

The photo below shows that the ProtoThrottle Receiver is connected to the EX-CommandStation after the USB power is connected.


The Iowa Scale Engineering Receiver shows connections to the WiFI-equipped EX-CommandStation.

The photo below shows that the EX-CommandStation is successfully sending DCC commands to the ProMiniAir Transmitter (note the “Msg Ad: 1648”) on the small OLED display connected to the ProMiniAir Transmitter).


The WiFi-equipped EX-CommandStation is integrated with a ProMiniAir Transmitter. Note that the PMA’s message address (“Msg Ad: 1648”) matches that sent by the ProtoThrottle.

Demonstration

The video below is a demonstration of the following arrangement: [ProtoThrottle] ===Xbee===> [ProtoThrottle Receiver] ===WiFi===> [WiFi-equipped EX-CommandStation] —wired—> [ProMiniAir Transmitter] ===Airwire Channels===> [ProMiniAir, Airwire, Tam Valley Depot, S-Cab, Gwire Receivers] —wired—> [DCC decoder].


Demonstration video: The O Scale H-8 Allegheny has a ProMiniAir Receiver with a 13A Cytron Amplifier connected to a Zimo MS990K decoder with a Heinz Daeppen Allegheny sound file. The sound from recordings of the actual locomotive is impressive.

Wrap Up

The setup of the ProtoThrottle and its Receiver was simple, and it took just a few seconds to edit the ProtoThrottle’s config.txt file so the ProtoThrottle Receiver could communicate with the WiFi-equipped EX-CommandStation. Communication among all of the components was immediately established when power was applied.

So, there you have it: the ProtoThrottle can be used for Dead Rail control with ProMiniAir, Airwire, Tam Valley Depot DRS-1, S-Cab, and Gwire Receivers by using the ProtoThrottle Receiver in conjunction with a ProMiniAir Transmitter integrated with a WiFi-equipped EX-CommandStation.

An Inexpensive Servo Controller with Dead-Rail Control

OK, you converted your locomotives to dead-rail (battery power, radio control) in part to eliminate the hassle of wiring the tracks and its attendant complications (polarity reversal on loops, etc.). But what about controlling other elements of your layout, including servos that have many uses, such as track switches and semaphores?

This post shows you how to make a low-cost (about $30-$40) servo controller (for up to 10 servos) that can be controlled with the same throttles you use for dead-rail control of your locomotives. The servo controller is based on this excellent Instructable: DCC Accessory Decoder Using Arduino Nano. Please read through this link to familiarize yourself. The significant difference between this post and the Intructable is we will obtain our power through a power plug or USB cable and receive our DCC from a ProMiniAir Receiver. I’ll give you those details below.

Components

What you need:
Arduino Nanohttps://www.amazon.com/dp/B09KGVDXZY?psc=1… (<$7.00ea).
Arduino Nano Servo Breakout Boardhttps://www.amazon.com/dp/B07VQRCC8F?psc=1… (<$2.50ea). You can connect up to 10 servos, each with a different DCC address, if you want.
Servoshttps://www.amazon.com/dp/B07L2SF3R4?psc=1… (<$2.00ea).
Power: A wall-wart 9V DC power supply (~$7.50). You can use a “Type C” USB cable for power (and data/programming connection), which costs about $5.00 for the cable and power converter.
Receiver: A bare ProMiniAir Receiver – no amp is needed. Please contact me for this low-cost item ($14). The PMA Receiver gets +5V/GND power from the breakout board and sends +3.3V Logic DCC received wirelessly to the Arduino Nano (via the breakout board’s Pin 2), which contains the DCC accessory decoder firmware.

Configuration

Physical Configuration: Mate the Arduino Nano into the Arduino Nano Breakout Board. Power is provided by either a 9V power converter that uses wall power or a USB connector that also provides a data link for downloading the firmware and establishing a serial connection for configuration.

The detailed connections from the Breakout Board to the ProMiniAir Receiver and the servos are shown below. The ProMiniAir Receiver connections 1) provide power to the ProMiniAir Receiver and 2) receive +3.3V logic DCC produced by the ProMiniAir Receiver. Up to 10 servos may be connected to the breakout board.

Closeup of connections to the ProMniAir Receiver and the servos.

Firmware and Configuration: Obtain the open-source software from the instructable URL (free). After loading the firmware into the Arduino Nano via the USB connection with the IDE of your choice (I use the Arduino IDE), you use the USB serial connection to configure the servo’s DCC address and motion parameters. This step is described in the Instructable.

As described in the Instructable, configuration is performed using the USB serial link. For the demo, I used the Arduino IDE serial monitor to enter the following commands to configure servos 3 and 4 (the number refer to the pin groups labeled on the breakout board, so the 10th servo is on pin group 12):

s 3 37 40 0 0 \n
s 4 37 40 0 0 \n

These commands are broken down as follows:
s pin-assignment dcc-address swing-degrees invert(0=no) continuous(0=no)

Demo

The photo below shows the components of the demo. The WiThrottle smartphone app communicates with the WiFi-equipped EX-CommandStation (see the inset in the image below) that is integrated with a ProMiniAir Transmitter that wirelessly transmits DCC commands to the ProMiniAir Receiver connected to the Breakout Board. This Transmitter is available on eBay by searching for “ProMiniAir”. Power is provided by a 9VDC power converter using wall power. A USB cable connected to your computer or a USB power conversion plug can be used.

Overview of Servo Controller.

A ProMiniAir Transmitter connected to a standard DCC Throttle, also available on eBay, will, of course, also work. Because the ProMiniAir Receiver is compatible with Airwire throttles, they can also be used to wirelessly control the servos using the “ACCY” (ACCessorY) button.

All DCC throttles and throttle apps can control both locomotives and DCC accessory decoders. The details vary from throttle to throttle, but they ALL can control accessory decoders. Below is the demonstration. Note the “Turnout” has been selected with accessory DCC address 37.

Wrap Up

I hope this post shows you that dead-rail control extends to other components of your model railroad: dead-rail is not just for your locomotives!

Using the ProMiniAir with DCC Accessories

One of the advantages of standards, such as the NMRA’s DCC standard, is that multiple vendors’ products are interoperable. There are dozens of DCC vendors, and they all “play nice” with each other (mostly).

The purpose of this post is to show you that you can use the ProMiniAir Receiver and Transmitter for more than just controlling locomotives – you can use it for dead-rail (wireless) control of any DCC accessory (stationary) decoder for lights, turnouts, etc., simply by connecting a low-cost ProMiniAir Receiver/Amplifier to the DCC inputs of one or more DCC accessory decoders. Generally, DCC accessory decoders are inexpensive, e.g., the NCE Illuminator for lighting ($22.40 for a 3-pack) or the Digitrax DS52 for turnout control ($20.36 for control of 2 turnouts).

Then you can use one of several transmitter options (that you also use for dead-rail control of your locomotives), including 1) an Airwire transmitter, 2) a WiThrottle smartphone app connecting to a Stand-alone ProMiniAir Transmitter integrated with a WiFi-equipped EX-CommandStation, or 3) any DCC throttle connected to a ProMiniAir Transmitter. All three options are designed to easily set the accessory address and activate the device while simultaneously controlling the locomotive or locomotives.

For DCC accessory decoders, nothing extra is required since the DCC accessories get their power from the DCC output from the ProMiniAir Receiver. Battery power can be used in remote or inconvenient locations. You can also wirelessly configure the accessory decoders, such as the address. No proprietary accessory devices are necessary since dozens of vendors use DCC, a widely-adopted standard that fosters competition and innovation. There is no “vendor lock” wedded to one manufacturer’s “solution.” The videos show how to activate DCC accessory decoders using the ProMiniAir Receiver in conjunction with these Transmitter options. 

An Example

In this example, three NCE Illuminator lighting accessory decoders for connecting LEDs for lighting effects are “daisy-chained” with a DCC connection to the output of an unmodified ProMiniAir Receiver/Amplifier using 14.8V battery power. Their addresses were set to 10 (white light), 20 (red light), and 30 (green light). At the end of the DCC daisy chain is a Digitrax DS52 set to address 30 so that it will activate a Tortoise slow-motion switch machine. So, the throttle selection of an accessory at address 30 will activate both the green light and the switch machine. No additional hardware is required.

Demonstration setup connecting an unmodified ProMiniAir Receiver/Amp to various DCC accessory decoders. Note how multiple DCC accessory decoders can be “daisy-chained” together.

The videos below show wireless control of the locomotive and the DCC accessories with 1) an Airwire transmitter, 2) a standard DCC throttle connected to a ProMiniAir transmitter, or 3) a WiThrottle smartphone app connecting to a low-cost stand-alone ProMiniAir Transmitter integrated with a WiFi-equipped EX-CommandStation.

An Airwire throttle transmitting to a ProMiniAir Rx/Amp connected to accessory decoders while simultaneously transmitting to a dead-rail locomotive with an onboard ProMiniAir Receiver/Amp. Note the activation of the switch motor!
A standard DCC throttle connected to a ProMiniAir Transmitter that transmits to a ProMiniAir Rx/Amp connected to accessory decoders while simultaneously transmitting to a dead-rail locomotive with an onboard ProMiniAir Receiver/Amp. Note the activation of the switch motor!
A WiThrottle smartphone app transmitting to a stand-alone ProMiniAir Transmitter integrated with a WiFi-equipped EX-CommandStaion that transmits to a ProMiniAir Rx/Amp connected to accessory decoders while simultaneously transmitting to a dead-rail locomotive with an onboard ProMiniAir Receiver/Amp. Note the activation of the switch motor!

Additional Information

Each accessory decoder has its method for setting up its DCC address, but this is usually as simple as 1) set the “programming jumper” on the accessory decoder if it has one, 2) turn on DCC power to the ProMiniAir receiver, 3) push a “configuration button” on the accessory decoder (if it uses one), 4) use your throttle to select an accessory, 5) enter the accessory’s address you want the accessory to use, 5) use your throttle to push the button that “throws” (activates) the device, 5) turn off DCC power to the device and disconnect an “activation pin” (if it uses one), and 5) reapply DCC power.

At this point, the DCC accessory “remembers” its address so that you can now use your throttle to select the accessory’s address and push the appropriate button to activate or de-activate the accessory.

Final Thoughts

Well-thought-out standards, such as the NMRA’s DCC standard, are good. I hope you can see that connecting an unmodified ProMiniAir Receiver/Amp to any DCC accessory decoder(s) from numerous vendors is effortless rather than using a limited, proprietary wireless solution for controlling accessories such as turnouts and lights while at the same time controlling your locomotives.

I thank one of my customers, Jeffrey Jackson, for the question that led me to investigate this topic!

Using the Pololu TB9051FTGU and TB67H420FTG Motor Drivers as DCC Amplifiers for Dead-Rail

Based on a Dead Rail Society Facebook post by Rich Steenwyk, I investigated the suitability of using the Pololu TB9051FTG ($11.95, 2.6A continuous, 1″ x 1″) and the Pololu TB67H420FTG ($19.95, 3.4A continuous, 1″ x 1.2″) as a DCC amplifier in conjunction with the ProMiniAir Receiver for Dead-Rail operation. This post investigates their feasibility and shows connection details.

Feasibility and Connections

The Pololu TB9051FTG is 1″ x 1″

The TB9051FTG truth table below shows the proper bipolar operation on highlighted rows. Note the pin values for EN and ENB. Based on this truth table, this device should be capable of delivering bipolar DCC to the decoder.

The TB9051FTG truth table

Connections for the Pololu TB9051FTG are shown below. When connected to a “large” decoder such as the LokSound 5 XL shown here, a current-limiting resistor is required to prevent the TB9051FTG from shutting down. The Negative Temperature Coefficient (NTC) resistor is initially at 1 Ohm, but with increased current demand, it heats up, reducing its resistance and voltage drop to a low value. This solution is superior to a high-wattage constant 1 Ohm resistor CVP recommends for its smaller Airwire CONVRTR receivers.

The ProMiniAir Receiver/TB9051FTG connections

A close-up of the connections for the Pololu TB9051FTG is shown below. Bipolar 3.3V DCC outputs and +5V from the ProMiniAir Receiver are required for proper operation. Note the jumpers that set EN to VCC (High), ENB to GND (Low), and OCC to VCC (High, retry after shutdown).

Close-up of ProMiniAir Receiver/TB9051FTG connections

Example DCC output for the decoder provided by the ProMiniAir Rx/TB9051FTG combination is shown below.

DCC output from the ProMiniAir Rx/TB9051FTG combination

A demo of the Pololu TB9051FTG in dead-rail operation, which will NOT operate with the LokSound 5 XL (5A max) without a current-limiting resistor, is shown below.

Demo of the ProMiniAir Rx/TB9051FTG combination

Now let’s turn to the larger, more expensive TB67H420FTG.

The Pololu TB67H420FTG is 1″ x 1.2″

The TB67H420FTG truth table below shows the proper bipolar operation on highlighted rows. Note the value of PWMx must be High. Based on this truth table, this device should be capable of delivering DCC to a decoder.

The TB67H420FTG truth table

Connections for the Pololu TB67H420FTG are shown below. When connected to a “large” decoder such as a LokSound 5 XL, a current-limiting resistor is NOT required to prevent the TB67H420FTG from shutting down. However, the TB67H420FTG is more expensive and larger than the TB9051FTG.

The ProMiniAir Receiver/TB9051FTG connections

A close-up of the connections for the Pololu TB9051FTG is shown below. As with the TB9051FTG, bipolar 3.3V DCC inputs from the ProMiniAir Receiver are required for proper operation. Note the single jumper connecting VCC (High) to HBMODE that turns on the single-output function. Jumpers between A+/A- and B+/B- deliver the maximum single DCC output of 3.7A. 

Close-up of the ProMiniAir Receiver/TB9051FTG connections

Testing with the TB9051FTG when interfaced with a ProMiniAir Receiver was successful.

Conclusion

Both the Pololu TB9051FTG ($11.95, 2.6A, 1″ x 1″) and TB67H420FTG ($19.95, 3.4A, 1″ x 1.2″) can be configured to deliver full-power DCC to a decoder when used in conjunction with a Dead-Rail receiver such as the ProMiniAir Receiver. They require five connections to the ProMiniAir receiver, including 3.3V or 5 V bipolar DCC outputs. The lower power TB9051FTG does require a current-limiting resistor for some decoders that produce large “in-rush” currents during power on, and the TB9051FTG does not.

The Adafruit DRV8871 amplifier is perhaps a better choice because:

  • Cheaper: $7.50+s&h
  • Comparable output: 3.6A
  • Smaller: 1″ x 0.8″
  • Requires only four connections to the receiver: GND, VPOWER, DCC+, and DCC-

The disadvantage of the Adafruit DRV8871 and the Pololu TB9051FTG is they require a current-limiting resistor for some larger decoders. The Pololu TB67H420FTG does not need this current limiter, but it’s slightly larger and more expensive. You decide!

Integrating the ProMiniAir Receiver with QSI Decoders using Gwire Connections

Users of the QSI Revolution or Titan series of DCC decoders may want to take advantage of these decoders’ built-in Gwire connections for radio control but cannot find the discontinued Gwire receiver. This post describes how you can use the ProMiniAir Receiver as a “drop-in” replacement for the Gwire receiver so that you can control the locomotive with the following radio-control throttles:

  • CVP Airwire throttles such as T5000 and T6000
  • NCE’s discontinued Gwire throttle
  • Our ProMiniAir Transmitter
  • Stanton Cab
  • Tam Valley Depot DRS1 transmitter

Integrating the ProMiniAir Receiver with the QSI decoder’s Gwire capability is easy.

Introduction

I strongly recommend you review Greg Elmassian’s excellent post, “QSI AirWire & GWire cab.” It deals with using the Gwire receiver with various QSI decoders, which have a built-in flat flex cable (FFC) plug initially designed to connect to the discontinued and now hard-to-find Gwire receiver.

The QSI Titan FX-DO decoder is an example of a QSI decoder equipped with a Gwire flat flex cable (FFC) plug.

The ProMiniAir Receiver is highly compatible with the Gwire receiver and is somewhat more flexible with more channels and DCC-based reconfigurability. The ProMiniAir Receiver also has a smaller footprint (1.1″ x 0.76″). The modular design approach of the ProMiniAir makes it feasible to take full advantage of the QSI’s Gwire capability to use the ProMiniAir without an additional amplifier.

Integration of the ProMiniAir Receiver using Gwire Connections

The only additional item required is a Parlex HF05U-03-ND 5-position flat flex cable (FFC, 5 Position, 1.00mm conductor spacing, 3″ length, one side connector on both ends), found at Digi-Key here, that plugs into the QSI Gwire plug. Other brands of 5-position flat flex cables are available, notably from Molex.

The Parlex Flat Flex Cable (FFC) 5Pos 1.00mm, 3″

The ProMiniAir Receiver is easily connected to one end of this cable by soldering 30 gauge wires that match up well with the dimensions of the flat flex cable, as shown below.

The soldered connections join 30 gauge wires to one end of the flat flex cable. Only three connections are required: GND, +5V, and DCC.

The other ends of the 30 gauge wires are soldered to the ProMiniAir Receiver, as shown below.

The three 30 gauge wire connections to the ProMiniAir Receiver. Optional connections to an LCD were soldered in place for diagnostic purposes, and these LCD connections are NOT required for final operation.

No DCC amplifier is required because the QSI decoder creates DC voltage from its onboard rectifier. The QSI Gwire connections provide the +5V/GND needed to power the ProMiniAir Receiver, which sends 3.3V Logic DCC back to the QSI decoder.

The QSI decoder must be configured to accept DCC from the Gwire connection by setting “indexed” CV56.1 to 1. This means first setting CV49 to 1 and then CV56 to 1. See Greg Elmassian’s excellent post for more details. Once the decoder accepts this setting, it will only respond to DCC from the ProMiniAir receiver until the decoder is reset, as Elmassian’s post described.

My only addition to Elmassian’s information is that a firmware update may be needed before the decoder will “accept” this setting. I could not successfully update CV56.1 on a QSI Tital FX-DO I used for the testing shown in this post until I updated the decoder’s sound file.

Demonstration

The photo below shows the demonstration setup.

Demonstration setup

The Digitrax DCS52 DCC throttle supplies Track Right/Left DCC, which only powers the QSI Titan FX-DO and the ProMiniAir receiver via the Gwire flat flex cable. The Airwire T5000 throttle will then transmit DCC commands received by the ProMiniAir Receiver, sending 3.3V Logic DCC back to the QSI Titan FX-DO that controls sound and the motor. DCC commands from the DCS52 DCC throttle are ignored.

Below is the video demonstration

Demonstration of the ProMiniAir Receiver using the QSI’s Gwire connections. No additional amplifier is required. Note that the decoder is responsive only to the Airwire throttle. The motor displays an observable “jerk” when changing directions.

Wrap-Up

I have just recently started using QSI Titan decoders. They are challenging to find but produce fantastic sounds and are very flexible. The modular design of the ProMiniAir Receiver makes it very simple to take full advantage of the QSI decoder’s Gwire capability. I provide the Gwire-compatible ProMiniAir Receiver (including the cable) for $19.99+S&H on eBay here. Plug the flat flex cable into the QSI decoder’s Gwire connector, program CV56.1=1, and you are ready to go with radio control!

My thanks to Greg Elmassian for his very useful posts.

A Simple AC-to-DC Converter

Sometimes folks want radio control of their locomotives but prefer to use track AC (including DCC) instead of a battery to provide DC power for the radio receiver and amplifier. This post shows how to repurpose the DCC converter PCB customarily provided with the ProMiniAir transmitter to convert track AC to DC power for the ProMiniAir receiver.

DCC Converter Modifications

The original purpose of the “DCC Converter” is to use a DCC throttle’s Track Right/Track Left output and convert it to 5V DCC and 5V power for the ProMiniAir transmitter. See the Figure below.

The original purpose of the “DCC Converter” is to provide 5V power and 5V DCC signals to the ProMiniAir transmitter.

One of the strengths of the modular approach used for the ProMiniAir transmitter and receiver is that you can “repurpose” components. The DCC Converter can be modified to use the AC track input to provide filtered, higher-voltage DC power.

Below is the repurposing idea: add a large capacitor (in series with a 100 Ohm resistor and a 1N4001 diode) across the “+” and “-” terminals of the rectifier and route out the rectifier’s DC output. Smaller onboard capacitors (10uf and 100nf) also filter out higher-frequency noise that large capacitors sometimes do not effectively filter.

One end of a 100 Ohm resistor and the + terminal of a 1N4001 diode are connected in series (and in parallel to each other) to the capacitor’s + terminal. The other end of the 100 Ohm resistor and the – terminal of the diode are connected to the rectifier’s + terminal. The capacitor’s – terminal is directly connected to the rectifier’s – terminal to form the DC ground. My thanks to ScaleSoundSystems.com for the idea of adding a resistor and diode in series with the capacitor.

When the throttle is turned on, the 100 Ohm resistor prevents an “in-rush” short circuit that might cause the throttle to cut off. When charging, the 1N4001 diode is reverse-biased with a large resistance. If AC power is interrupted, current flows out of the capacitor through the low resistance path of a forward-biased 1N4001 diode to maintain DC power output.

How keep-alive works. The resistor regulates charging, and the diode regulates discharging.
A large capacitor (along with a 100 Ohm resistor and a 1N4001 diode) can be added to the DCC Converter to output heavily-filtered DC power.
Connections between the AC-to-DC Converter with a large keep-alive capacitor and the ProMiniAir receiver/amp. The switch is NOT required if a large keep-alive capacitor is not used.

In fact, it is possible to forgo the large capacitor since these onboard capacitors do a pretty good job of “cleaning up” the DC output of the rectifier. This is a good option if space is at a premium.

The filtered DC output can now provide DC power to a ProMiniAir receiver/amp, just as a battery would. If the added capacitor is large enough, it will function as a “keep-alive” capacitor many DCC decoders use to prevent track power interruptions.

An Example

The photo below shows a real-world example of the conversion using a 10000uf “keep-alive” capacitor originally used with a Zimo decoder. The size of the capacitor dominates that of the DCC converter!

A modified DCC Converter using a very large 10000uf “keep-alive” capacitor.
Close-up of the modified DCC Converter

The oscilloscope trace below demonstrates the ability of the modified DCC Converter to produce clean DC power for your ProMiniAir (or other) receiver.

Track AC input and filtered DC power output from a modified DCC Converter with an added large (10000uf) capacitor

Note how “clean” the DC power output is (13.8VDC). Square wave track inputs at 16.8V are a severe test because they produce frequencies at odd multiples of the square wave’s frequency, e.g., at 6KHz, 18KHz, 30KHz, etc. for the example above, but very little of these frequencies “bleed through” to the DC power output.

Simplifying further, we can use the DCC Converter without an added capacitor, relying on the onboard capacitors to filter the rectifier’s “+” and “-” output. This option might be useful if space is at a premium.

Modified DCC Converter with NO capacitor

The DC power output is still clean, but you lose the “keep-alive” that a large capacitor provides.

Track AC input and filtered DC power output from a modified DCC Converter with NO added capacitor

Conclusion

So there you have it – the DCC Converter can be slightly modified to provide filtered DC power and “keep-alive” capability. The modified DCC amplifier with a sizeable keep-alive capacitor costs $10 + shipping. Without the capacitor, the modified DCC Converter is $7 + shipping.

Airwire CONVRTR Compatibility with the ProMiniAir Transmitter/Throttle

As some of you may know from my previous postings or other sources, if you try “raw” transmission of DCC from standard DCC throttles, such as with the Tam Valley Depot DRS1 transmitter, to Airwire receivers, you probably won’t get consistent control – I didn’t. This failure set me on the road to devise the ProMiniAir transmitter that would work with CVP Airwire receivers using DCC generated by standard DCC throttles, including the superb “open-source” WiFi-equipped EX-CommandStation created by the folks at DCC-ex.com. Of course, the ProMiniAir receiver is fully-compatible with Airwire throttles.

My web research and discussions with fellow dead-railers led me to believe you might solve the compatibility problem by providing frequent DCC “Idle” messages. Once the dust settled on the ProMiniAir firmware we made available on our GitHub site, the ProMiniAir transmitter worked pretty well with Airwire receivers! Besides CVP Airwire transmitters, the ProMiniAir transmitter is the only currently-manufactured transmitter that works with Airwire receivers.

After this success, we have worked hard to ensure that the ProMiniAir transmitter (and receiver) are compatible with multiple product lines, including CVP Airwire, Tam Valley Depot DRS1 transmitters and receivers, Gwire transmitters and receivers (available but no longer manufactured), Stanton Cab transmitters and receivers, and the no longer manufactured NCE D13DRJ.

OK, you may ask, what’s the point of this post? Well, I’d like to share some further research on the source of the CVP receiver’s incompatibility and its consequences on updates for the ProMiniAir transmitter/receiver firmware.

Further Investigations

OK, I based our initial success in making the ProMiniAir transmitter compatible with CVP Airwire receivers on observing how well the ProMiniAir worked with Airwire receivers. Yep, numerous inserted DCC IDLE messages from the ProMiniAir transmitter seemed to keep the Airwire receivers reasonably “happy,” responding to throttle speed/direction commands and function activation.

However, sometimes the Airwire receiver seemed a bit slow to respond to function activation… And some customers (who are hopefully still friends) sometimes noted this slow response. Could this be improved?

Still, I hadn’t analyzed what an Airwire throttle was sending in detail, so I purchased a simple logic analyzer from Amazon to look at the actual DCC transmitted by an Airwire throttle. I also needed the “pulseview” software from sigrok.org and a DCC decoder add-on. To properly analyze DCC, I modified the add-on and will make it available on our GitHub site.

The figure below is what I observed by firing up my original ProMiniAir transmitter integrated with a WiFi-equipped EX-CommandStation, and using the iOS WiThrottle app to send throttle commands to a ProMiniAir receiver. The figure below shows the “raw” digital output from the ProMiniAir receiver’s transceiver.

The raw DCC data received by a ProMiniAir receiver from a ProMiniAir transmitter integrated with a WiFi-equipped EX-CommandStation

The waveform is what you would expect. A “one” end packet bit from the previous DCC packet and then a series of 15 “one” preamble bits followed by a “zero” packet start bit that signals to the decoder that a DCC command is coming. I observed no significant or consistent DCC “errors” in the collected data.

Here’s what the S 9.2 NMRA DCC Standard states about the preamble:

The preamble to a packet consists of a sequence of “1” bits. A digital decoder must not accept as a valid, any preamble that has less then 10 complete one bits, or require for proper reception of a packet with more than 12 complete one bits. A command station must send a minimum of 14 full preamble bits.

The data below is what I observed by firing up an Airwire T5000 transmitter and looking at the “raw” digital output pin from the transceiver (radio) on the ProMiniAir receiver.

The raw DCC data received by a ProMiniAir receiver from an Airwire T5000 throttle

Well, well. Now we see an NMRA-permissible (see line 121 of NMRA Standard S 9.2) but non-DCC transition pair, called a “cutout,” with a 1/2 “one” and 1/2 “zero” pair after a valid “one” end packet bit and before a very long (30 “one” bits) preamble. If you try to send shorter preambles, say 15 “one” bits, the Airwire receiver will NOT work consistently despite the NMRA standard stating that a decoder must not require more than 12 complete “one” bits in the preamble. So, the Airwire receiver is placing a non-standard requirement for a “long” preamble of “one” bits before it will operate consistently.

Timing of a 1/2 “one” and 1/2 “zero” cutout

While reviewing the DCC sent from an Airwire throttle, there were NOT an unusual number of DCC “Idle” messages sent by the Airwire transmitter. But, by sending tons of short (3 bytes) DCC “Idle” messages, the ProMiniAir transmitter was sending just enough “one” bits to keep the Airwire receiver functional. I am not privy to the details of Airwire’s receiver firmware, so my success was based purely on empirical observation without underlying “insider” knowledge.

So what? With this knowledge, I felt it essential to make some ProMiniAir firmware changes.

Firmware Changes to the ProMiniAir Transmitter

Based on this new information, to improve compatibility with Airwire receivers, we have modified the ProMiniAir transmitter’s firmware to ensure a 1/2 “one” followed by a 1/2 “zero” cutout comes after the end packet “one” bit, and before at least 30 “one” bits are in the preamble. This change is NOT harmful to other wireless receivers, including the ProMiniAir receiver. The ProMiniAir transmitter and receiver still insert DCC “Idle” messages when possible to keep decoders “happy” while waiting for valid DCC messages from the throttle.

Along with these firmware changes, which will be made available on our GitHub site, you can set the number of “one” bits in the preamble by going into OPS mode at address 9900 (transmitter) or 9901 (receiver) by setting the value of CV242. If you set the value of CV242 to 0, the firmware sets the number of preamble bits to a “reasonable” value of 16 (receiver) or the number of preamble bits the throttle sent (transmitter). If you set CV242 to less than 12, it will be reset to 12 to ensure decoders are “satisfied” with the number of preamble “one” bits.

You can also change the duration of the cutout’s second 1/2 transition with CV240. By default, a CV240 value of 27 makes the second 1/2 transition a “zero” with a duration of 116us. If you do NOT want a cutout inserted, you can set the CV240 value to 141, which will make the duration equal to that of the cutout’s leading 1/2 “one” (58us), resulting in an output 1/2 “one” and 1/2 “one” pair, simply increasing the number of preamble “one” bits by one.

Example CV240 values to control cutout duration

So, how well do these modifications work for Airwire receivers? It isn’t easy to quantify, but the Airwire receiver’s red data LED remains “on” more consistently with less “flicker,” and the receiver’s DCC output to the decoder contains “cutouts” (with a duration of about five preamble “one” bits) just before the preamble. These characteristics are now very similar to those from an actual Airwire throttle. See the comparison figures below. It’s difficult for me to test the more practical aspects of these improvements, but the decoders continue to operate as I would expect, perhaps with somewhat less time delay. Other users may be able to test under more stressful conditions.

CONVRTR DCC output to the decoder from an Airwire transmitter. The cutout duration does NOT matter to the decoder.
CONVRTR DCC output to the decoder from a PMA transmitter with updated firmware. The cutout duration does NOT matter to the decoder.

Conclusion

We now have a better idea why Airwire receivers do not work well with output from a typical, NMRA-conformant DCC throttle sent wirelessly and how to better cope with Airwire receivers’ unique DCC requirements by sending very long DCC preambles, preceded by a 1/2 “one” and 1/2 “zero” cutout.

Raw empiricism often leads you to workable, pragmatic solutions, but a little “looking under the hood” for the “how” and “why” almost always pays dividends. If you own a ProMiniAir transmitter and are not satisfied with its performance with Airwire receivers, don’t hesitate to contact me about how I can provide you with an update to see if your performance will improve.

A Low-Cost WiFi-Equipped DCC Base Station for the ProMiniAir Transmitter

The new, stand-alone ProMiniAir transmitter integrated with a WiFi-equipped EX-CommandStation

Many model railroaders enjoy using a hand-held throttle or smartphone app that connects to a centralized DCC command station that sends DCC over the tracks to decoder-equipped locomotives, and some “dead-railers” enjoy a similar experience using specialized hand-held transmitters such as the CVP Airwire or Stanton Cab throttles. These dead-rail throttles are expensive and sometimes hard to find due to supply chain problems. Other hand-held dead-rail throttles only support their proprietary receivers and “vendor-lock” users because they have no interoperability with other dead-rail vendors 🙁

On another page, I showed how easy it was to use a smartphone equipped with a “wiThrottle-compliant” app in conjunction with the ProMiniAir transmitter to control your dead-rail locomotive(s) fitted with a variety of receivers such as ProMiniAir, Tam Valley Depot DRS1, CVP Airwire, Stanton Cab, QSI Gwire, and NCE. The downside was that you must invest in a WiFi device for the DCC base station connected to the ProMiniAir transmitter. Many folks pushed back on the additional cost and infrastructure to use their smartphone app for dead-rail control using the ProMiniAir transmitter.

I searched for a way to provide a low-cost way to use your smartphone in conjunction with the ProMiniAir transmitter, and this post shows the low-cost solution that I offer for sale.

The solution: I came across a low-cost way to create a small DCC base station equipped with WiFi at a very active group, DCC-EX, and I will describe how I configured this base station to use a smartphone to control dead-rail locomotives equipped with ProMiniAir, Tam Valley Depot, CVP Airwire, QSI Gwire, NCE, or Stanton Cab receivers.

The wiThrottle-protocol smartphone apps that will work with this solution include (this list is from DCC-EX):

The critical point is that the ProMiniAir transmitter, coupled with the WiFi-equipped EX-CommandStation, is an entirely self-contained solution for $49.99 on eBay (search on eBay with “ProMiniAir” to find this device). All you need to do is apply power and then connect with a smartphone throttle app for mobile control of dead-rail.

If you don’t want to go through the details of the solution, you can jump to the Instructions below.

The Solution

The DCC-EX team has developed an open-source, low-cost DCC controller EX-CommandStation. Here is the DCC-EX team’s description (reprinted from here):


An EX-CommandStation is a simple but powerful, DCC Command Station that you can assemble yourself and which is made using widely available Arduino boards. It supports much of the NMRA Digital Command Control (DCC) standards, including

  • Simultaneous control of multiple locomotives and their functions
  • Control of accessory/function decoders
  • Programming Track
  • Programming on Main Track

It includes advanced features such as:

  • wiThrottle Server implementation,
  • General purpose inputs and outputs (I/O) for extensibility, and
  • JMRI integration

The primary intention of the EX-CommandStation is to receive commands from multiple throttles and send out DCC on tracks. These throttles can be “wired” or “wireless:”

  • USB
  • WiFi
  • Ethernet
  • Bluetooth
  • JMRI

With the WiFi-equipped EX-CommandStation, you can use a wiThrottle-protocol smartphone app that connects to the EX-CommandStation via WiFi. Then the EX-CommandStation’s +3.3V logic DCC output is not sent to a “motor shield” to power tracks but instead serves as a direct input to the ProMiniAir transmitter for dead-rail control. It’s that simple; the technique was easy to implement and is low-cost ($49.99 on eBay, instead of paying for a WiFi device that connects to a commercial DCC throttle, a total of over $200).

Instructions for Using the ProMiniAir Transmitter/WiFi-Equipped EX-CommandStation with a Smartphone

What you need:

  1. A smartphone loaded with the wiThrottle-compliant app. See the list above.
  2. A properly configured ProMiniAir Transmitter/WiFi-equipped EX-CommandStation. We provide this.
  3. A locomotive(s) equipped with receivers compatible with the ProMiniAir transmitter, such as:
    • ProMiniAir receiver
    • Tam Valley Depot DRS1 receiver
    • CVP Airwire receiver: CONVRTR 15/25/60, G-3/4
    • Gwire receiver
    • Stanton Cab receiver
    • NCE D13DRJ wireless decoder

Steps:

  1. Plug the USB power into the PMA Tx/WiFi-equipped EX-CommandStation, which turns on the ESP32 WiFi transceiver to broadcast information for your smartphone to pick up, boots up the EX-CommandStation itself, and powers up the ProMiniAir receiver and the OLED displays. You can connect a USB battery pack to the ProMiniAir transmitter/WiFi-equipped EX-Command station for “take it anywhere” capability.
  2. Go to the smartphone’s WiFi settings:
    1. If you have a home router, turn off auto-join, which prevents your smartphone from jumping to your home router rather than the DCC-EX WiFi router.
    2. Select the EX-CommandStation’s WiFi router. The router’s name is “DCCEX_123456,” where “123456” is a unique series of numbers and letters (the “MAC address” of the WiFi transceiver).
    3. When asked for a password, enter “PASS_123456”, where “123456” is the exact string of numbers and letters in the router’s name. You will probably need to enter the password only once since your smartphone will probably remember the password.
    4. The “fiddle factor:” Sometimes, the smartphone will complain it cannot connect to the DCCEX router or that the password is incorrect. Ignore this complaint (assuming you entered the password correctly) and try connecting again. The smartphone will often successfully connect once you select the DCCEX router again.
    5. You might want to turn on the auto-join option for this router so that your smartphone will automatically try to connect once the WiFi-equipped EX-CommandStation is powered up.
  3. Once connected, go to your throttle app:
    1. When asked for WiFI router configuration, set the IP address to “192.168.4.1” and the port to “2560“.
    2. Once your throttle app connects to the EX-CommandStation, you can select your loco(s), etc.
  4. Turn on your dead-rail locomotives, and control them with your smartphone app!
  5. Once finished with the throttle app, you can go back to settings and re-select the auto-join option for your home router.

So here is the “proof of principle” demo. The photo below shows the prototype solution: a low-cost EX-CommandStation with integrated WiFi connected to a ProMiniAir transmitter. The video shows the iOS “Locontrol” app connected to the PMA Tx/EX-CommandStation with WiFi to control a dead-rail locomotive equipped with a ProMiniAir receiver and a DCC decoder that controls loco speed and direction, lighting, sound, and smoke. The Locontrol app is excellent because you can record video while controlling the locomotive.

The solution is a low-cost EX-CommandStation with integrated WiFi connected to a ProMiniAir transmitter. Up to five smartphones with WiFi throttle apps send commands to the WiFi receiver connected to the centralized command station, generating DCC output that the ProMiniAir transmitter sends to onboard locomotive receivers. NOTE: In current versions, Pin 18 instead of Pin 7 is the +5V DCC data connection to the PMA transmitter.
Detailed connections
Video of using the iOS Locontrol app with the PMA Tx/EX-CommandStation with WiFi to control a dead-rail locomotive equipped with a PMA receiver and DCC decoder

Programming on the Main (PoM) or Service Mode

OK, these smartphone throttle apps are great, but they have a limitation: they can’t currently send commands in PoM (OPS) mode or Service Mode to change the value of configuration variables “CV” in a decoder. This capability is necessary when you need to change the configuration of the ProMiniAir transmitter (whose default DCC address is 9900), such as the wireless channel (CV255 = 0-18) or power level (CV254=1-10). Of course, you might also need to make CV changes to your dead-rail locomotive’s DCC decoder using PoM (OPS) mode, too!

See the DCC-ex.com site for a full list of DCC-EX commands that you can send to the EX-CommandStation and ultimately to the dead-rail locomotives or DCC accessories.

You may NEVER change the ProMiniAir’s configuration, but you might. How to do this?

Solution #1

Both iOS and Android have apps that come to the rescue: TCP/IP to Serial Terminal and Serial WiFi Terminal. The apps provide a wireless connection to the EX-CommandStation to reconfigure the ProMiniAir transmitter (or receiver, for that matter!) or your dead-rail locomotive’s DCC decoder in PoM mode.

Since I own an iPhone, I’ll show you what to do using TCP/IP to Serial Terminal.

What you need:

Steps:

  1. Ensure your smartphone is connected to the EX-CommandStations’s WiFi network!
  2. Select the app and enter the IP address and port number, and then connect:
  3. Test using the status command, entering <s> (case sensitive):
  4. See the response:
  5. Enter the command to change the value of CV 255 at address 9900 to a value of 5 by entering <w 9900 255 5> (case sensitive):
  6. Verify that the ProMiniAir transmitter Channel, which is at DCC address 9900, has changed to 5:

The steps for using the Android app Serial WiFi Terminal should be similar.

Service Mode setting of CVs is also possible. The Service Mode command for changing the CV number CVnum to a value CVval is <W CVnum CVval>. The “W” must be uppercase. Changing the DCC address is even simpler: <W new_address>. Care must be used, since PoM commands will be used by all “listening” receivers, regardless of their DCC address!

So, there you have it, a wireless way to control a WiFi-equipped EX-CommandStation in Programming on the Main (PoM) mode (OPS mode) and Service Mode. While we need these apps to send PoM commands to reconfigure the ProMiniAir transmitter, you can enter any DCC-EX Command! Have fun!

Solution #2

If you have a Windows, macOS, or Linux computer or laptop, you can interact with the WiFi-equipped EX-Command station, including reconfiguring the ProMin Air transmitter. The technique is based on the “curl” program.

What you need:

  • A Windows, macOS, or Linux computer or laptop.
  • A WiFI-equipped EX-CommandStation

Steps:

  1. Connect the EX-CommandStation’s USB cable+USB converter to power. This powers up the WiFi-equipped EX-CommandStation and the ProMiniAir transmitter with its LCD.
  2. On your computer, select the DCCEX_123456 wireless router and, if asked, enter the password PASS_123456, where “123456” is a unique string representing the MAC address of the ESP8266 WiFi transceiver integrated with the EX-CommandStation.
  3. On your computer, start up a “terminal” session. A terminal session allows you to type in commands.
  4. Enter the following command curl telnet://192.168.4.1:2560. This opens a simple telnet-protocol connection between the computer and the WiFi-equipped EX-CommandStation at address 192.168.4.1 port 2560, the default EX-CommandStation address and port.
  5. Your command line will now wait for you to enter the text transmitted to the EX-CommandStation! As a test, type in <s> and press RETURN, and you should see a response such as
    <p0>
    <iDCC-EX V-4.0.0 / MEGA / PMA_Tx G-a26d988>

    If using curl on Windows, you may need to press RETURN then ^Z (CONTROL+z) and then RETURN again to “flush” out the response from the EX-CommandStation.
  6. OK! Now let’s change the ProMiniAir transmitter’s channel to “5” by using a PoM (OPS) command (DCC Address: 9900, CV#: 255, CV value: 5): type in <w 9900 255 5> and press ENTER. You will not see a response (sigh), but if you look at the ProMiniAir transmitter’s LCD, you will see the following:
  7. You exit the session by hitting < control>+C.

Pretty simple!

Solution #3

This solution is NOT all wireless but demonstrates how to use the Web-based WebThrottle-EX to control the EX-CommandStation.

What you need:

  • A computer or laptop
  • A WiFi-equipped EX-CommandStation
  • The USB cable that came with your EX-CommandStation

Steps:

  1. Connect the USB cable from the EX-CommandStation to your computer/laptop. This connection provides power and a data link to the PC.
  2. On your computer or laptop’s Chrome web browser, navigate this link: https://dcc-ex.github.io/WebThrottle-EX. An excellent throttle application will start, and the DCC-EX team has excellent instructions for using this application. We will concentrate on our narrow goal: getting OPS mode instructions to the ProMiniAir transmitter.
  3. Select the “Connect DCC++ EX” button to activate the USB serial connection to the EX-CommandStation.
  4. You will see a pull-down menu of USB ports. Select the serial port you think is correct, and if it is, the log window at the bottom will cheer your success. If not, try another USB port from the pull-down list.
  5. Now look at the Debug Console and ensure Debug in “ON.”
  6. In the “Direct Command” entry, type in a “direct” command. In our example, we want to send an OPS mode command (“w” for write) to DCC address 9900 (the PMA transmitter) to change CV 255 (channel selection) to the value of 3 (the channel we want to transmit on): w 9900 255 3.
  7. Press “Send,” and you should see the log window indicating the send. You should also see the PMA Tx’s LCD show a changed value, now with a new channel!
  8. Disconnect the USB cable.
  9. Use your smartphone to connect the ProMiniAir Tx/WiFi-equipped EX-CommandStation as described above.
  10. Have fun controlling the locomotive(s)!

Of course, if you maintain the USB cable connection, you can play with the WebThrottle-EX to control the dead-rail locomotive! The DCC+EX website has excellent instructions for using WebThrottle-EX. The traditional locomotive control capability and the powerful direct control capability are valuable and fun.

An important point: These instructions are ONLY for reconfiguring the ProMiniAir transmitter or changing the CVs in your DCC decoder. Under regular smartphone throttle app use, you do NOT need to connect anything other than the power to the WiFi-equipped EX-CommandStation to activate the ProMiniAir transmitter!

Final Thoughts

While I called this approach for using a smartphone app with the ProMiniAir transmitter a “compromise solution,” if you think about it, with a more centrally-located ProMiniAir transmitter coupled to a small, inexpensive WiFi-equipped DCC base station, you achieve good layout coverage because the base station is acting as an optimally-located “repeater,” potentially reaching more of the layout than your smartphone app. This approach is a valuable “division of labor:” the smartphone gives you the mobility to enjoy different vantages, and the central transmitter covers the layout optimally. So, maybe this approach is better than a “compromise solution,” after all.

Advantage of an optimally-located central transmitter versus a local transmitter.

Information Update on the ProMini Air Receiver and Transmitter

Introduction

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 ProMiniAir 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 “ProMiniAir” 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 ProMiniAir. Also, previous versions of the ProMiniAir 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 ProMiniAir Transmitter and Reciever

Please see this post on an important update on the ProMiniAir 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 ProMiniAir transmitter. Just plug in power, use your smartphone app to connect to the WiFI-equipped EX-CommandStation, and control your dead-rail locomotive.

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

The new ProMiniAir receiver and small amplifier (3.6A)

Feature Comparisons

My goal for offering the ProMiniAir 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 ProMiniAir 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; I call this Channel 18. Here’s my unofficial Table of channels and frequencies.

ChannelFrequency (MHz)Comments
0921.37
919.87 
2915.37 
3912.37 
4909.37 
5907.87 
6906.37 
7903.37 
8926.12
9924.62
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 “ProMiniAir” 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 ProMiniAir 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 ProMiniAir transmitters and receivers are compatible!

The ProMiniAir has some features that may be more interesting than commercial offerings. See the Comparison Tables below.

NameAirwire Receiver
Compatible?
ChannelsPower
Level Adj
Any DCC
Input
TVD DRS1
Transmitter
NoCh 17
(or 18(E))
NoYes
Airwire
T5000
Yes0-16YesNo
NCE Gwire CabYes0-7YesNo
S-Cab ThrottleNo17NoNo
ProMini
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 with 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.

NameChannelsDCC
Filtering?
Channel Auto
Search
TVD DRS1,
MK IV
0-17, 18(E)NoneYes
Airwire
CONVRTR
0-16Always
On
Yes (Limited)
QSI
Gwire
0-7NoneNo
S-Cab LXR
receiver
17NoneNo
ProMini
Air
0-17, 18(E)None or
On
Yes
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 is 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 ProMiniAir’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 ProMiniAir receiver a versatile wireless DCC receiver. The ProMiniAir receiver’s RF DCC detection technique is more sophisticated than Airwire’s. The ProMiniAir 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 ProMiniAir 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 ProMiniAir’s DCC address.

Once a valid RF signal is received again, the ProMiniAir 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.

IF YOU SET SOME JUMPERS, the TVD DRS1 receiver will “listen” on a fixed Airwire Channel. 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 ProMiniAir 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 ProMiniAir transmitter’s DCC Address (default, 9901). Like the TVD DRS1 receiver, if the ProMiniAir does not find a valid RF signal on its startup channel, the ProMiniAir 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 ProMiniAir does NOT find a valid RF DCC signal on its startup Channel from another wireless DC transmitter.

Once “locked on” to a Channel. The ProMiniAir Receiver will continue to “listen” on this Channel, even if the transmitter is turned off or the signal is lost. This allows the ProMiniAir Receiver to pick up signals on the “locked on” Channel once the transmitter is turned back on or the signal is re-established.

If the ProMiniAir 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 ProMiniAir’s Channel search process will be unchanged: it will try 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 ProMiniAir DCC transmitter and receiver to provide a low-cost alternative with features not entirely found in commercial offerings.

You are provided with a few additional components when buying a ProMiniAir receiver or transmitter. In the case of the ProMiniAir 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 ProMiniAir transmitter with power and DCC packets to transmit, so no additional power supply is necessary.

For the ProMiniAir receiver, we include a low-cost “DCC amplifier” that converts the ProMiniAir receiver’s 5V logic DCC back to DCC. In its typical configuration, the onboard DCC decoder would pick up from the track (again, discussed in detail below). The ProMiniAir 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.

ProMiniAir transmitter connections
Standalone ProMiniAir transmitter connections
ProMiniAir receiver connections for a DRV8871 (3.6) amplifier
ProMiniAir Receiver connections for a Cytron MD13S (13A) amplifier

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 ProMiniAir 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.

Documentation

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

Kit Assembly

We no longer offer the ProMiniAir as a kit.

Firmware Installation

The ProMiniAir 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

If 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
#endif

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


...

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*/
#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
#endif

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

...

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” or 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 is 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 ProMiniAir PCB while programming) to the 6-pin connector on the ProMiniAir.
  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 ProMiniAir receiver or transmitter firmware is installed in the Pro Mini and inserted into the ProMiniAir PCB, the ProMiniAir is ready for integration!

Integration

You must establish several connections to complete the ProMiniAir receiver (Rx) integration or transmitter (Tx).

Overview of Connections

See the picture below for an overview of the connections to and from the ProMiniAir. Which connections you use depends on whether the ProMiniAir 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 ProMiniAir 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.

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

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

ProMiniAir connections for AVR programmer, I2C display output, and 5V logic DCC input or output

We will break down these connections for the ProMiniAir receiver and transmitter in the following two sections.

Receiver Connections

Several options exist for providing power, starting with the ProMiniAir configured as a receiver (Rx). 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.

ProMiniAir 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.

ProMiniAir receiver powered by an external +5V power supply (older PMA version, but the connections are the same for newer versions)
Close-up of ProMiniAir receiver power connections to an external +5V power supply (older PMA version, but the connections are the same for newer versions)

The ProMiniAir receiver must connect to an external DCC amplifier that converts the 5V logic DCC from the ProMiniAir receiver to DCC A/B that a DCC decoder requires. This DCC amplifier uses battery power and the inputs from the ProMiniAir 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 ProMiniAir receiver

As shown below, some DCC amplifiers have specialized connector configurations for a GROVE-compliant amplifier.

Example of another DCC amplifier’s connections to the ProMiniAir receiver

Integration of the ProMiniAir Receiver into a Locomotive

Of course, the real purpose of the ProMiniAir 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. Unless determined otherwise for size constraints, this Cytron MD13S amplifier is the one we provide with the ProMiniAir receiver. 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.

ProMiniAir 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

Let’s turn the ProMiniAir 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 ProMiniAir transmitter. These outputs provide the ProMiniAir 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 ProMiniAir receiver connections to a “DCC Converter” PCB that supplies the ProMiniAir transmitter with Ground, +5V power, and 5V logic DCC. The ProMiniAir transmitter does NOT connect to a battery or use the jumper connecting +5V to +5V (Battery)!
Close-up of ProMiniAir 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 ProMiniAir 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 ProMiniAir 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 ProMiniAir transmitter, we strongly urge you to use the FCC/IC-approved Anaren “whip” antenna supplied with the surface-mounted transceiver 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 ProMiniAir transmitter online from many sites for experimentation purposes. For fixed installations of the ProMiniAir 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 a better gain than the ANT-916-CW-HWR-SMA at the expense of being 42% longer.

For the ProMiniAir receiver or the ProMiniAir 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 ProMiniAir 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.
ProMiniAir receiver/transmitter connections to an I2C LCD (older PMA version, but the connections are the same for newer versions)
Close-up of ProMiniAir receiver/transmitter connections to an I2C LCD (older PMA version, but the connections are the same for newer versions)

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

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

Configuration and Testing

We default-configured the ProMiniAir 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 ProMiniAir 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 ProMiniAir 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 ProMiniAir receiver will change to Channel 0 and wait for a valid RF DCC signal. This channel change is not permanent, and on a restart, ProMiniAir will revert to its default channel.

Several other configuration options are available through “OPS” mode programming, as described in the ProMiniAir Users Manual.

We strongly urge the user to test the ProMiniAir before the final deployment. At the least, an inexpensive I2C LCD can be purchased here or here (and numerous other locations) to gain insight into the ProMiniAir’s state. This display is particularly beneficial when using the ProMiniAir 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 ProMiniAir 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 ProMiniAir used as a transmitter (as discussed in the next section)!

On the LCD, “My Ad: #” is the DCC address of the ProMiniAir 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 ProMiniAir receiver. The yellow signal on the oscilloscope is from the T/R DCC output pin on the ProMiniAir 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 ProMiniAir.

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 ProMiniAir 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 ProMiniAir’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. When DCC filtering is off, the PMA injects DCC IDLE messages (Filter: 0).
No valid RF DCC. The random pulses produced by the RF receiver are reproduced by the output DCC, and this is what Gwire and Tam Valley Depot receivers produce.

The user can reconfigure the ProMiniAir 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 ProMiniAir receiver’s address (“My Add: #”).

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

Change CV246 to “1” in OPS mode, which will turn “on” the ProMiniAir 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 ProMiniAir receiver firmware detects “bad” waveforms that do not appear to represent a valid DCC packet. The ProMiniAir 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, 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 switching back to the locomotive’s DCC address will now set DCC filtering to “off.”

You can repeat selecting the ProMiniAir’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 ProMiniAir receiver.

When no valid RF DCC is received, the ProMiniAir receiver injects DCC IDLE messages amplified by the DCC amplifier and sent to the decoder.

Transmitter Testing

We now focus on testing when using the ProMiniAir as a transmitter.

With the same ProMiniAir, 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 ProMiniAir transmitter (the PCB on the left).

The display will alternate between showing the ProMiniAir 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 ProMiniAir transmitter’s ID.
The LCD alternately displays the throttle’s address and the ProMiniAir’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 ProMiniAir transmitter. Since the wireless DCC must keep the Airwire RF receiver “happy” with numerous DCC “IDLE” packets, the ProMiniAir 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 ProMiniAir 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 ProMiniAir in OPS mode.

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

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

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

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 ProMiniAir 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 ProMiniAir 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 ProMiniAir’s address.

Conclusion and Further Information

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

Please get in touch with the author on this site to purchase the ProMiniAir receiver or transmitter. The ProMiniAir transmitter or receiver (with their additional DCC Converter or DCC amplifier and wiring harness) is only $39.99 + shipping. You can also purchase my offerings on eBay by searching for “ProMiniAir.”

 

The ProMiniAir Transmitter and Receiver are now Compatible with Stanton Cab (S-Cab)

Introduction

The Stanton Cab (or S-Cab) is a series of dead-rail transmitters and receivers developed and sold by dead-rail pioneer Neil Stanton, Ph.D. S-Cab products are available at this site.

Stanton offers a hand-held transmitter, the S-Cab Throttle, specifically designed to transmit to S-Cab RF receivers. These receivers include the S-CAB Radio Receiver (LXR-DCC) and Loco Receivers for HO, On3, On30, and some S-scale installations. Also, Stanton will provide an S-Cab receiver coupled with decoders for larger scales. The available options are discussed on the S-Cab website here.

The S-Cab Throttle and receivers operate at 916.48MHz or 918.12MHz (single frequency only!). The former frequency is close to Airwire Channel 16 (916.36MHz), and the latter is the same frequency as Airwire Channel 11. The S-Cab Throttle and receivers replaced their older-generation Linx transmitter/receivers chips and now employ CMOSTEK CMT2119A/CMT2218B transmitter/receiver chips.

However, Airwire hand-held transmitters WILL NOT WORK with recent S-Cab receivers using the CMOSTEK CMT2218B receiver on Channel 16. And Airwire receivers WILL NOT WORK with the recent S-Cab Throttle using the CMOSTEK CMT2119A transmitter on Channel 16. Previous generation S-Cab transmitters and receivers using Linx transmitter/receiver chips are reported to work with Airwire.

I successfully determined RF settings that allow the ProMiniAir transmitter (PMA Tx) to operate with these recent S-Cab receivers (such as the LXR-DCC). So I have added an S-Cab compatible Channel 17, which required moving the European Channel 17 to Channel 18.

The specialized RF settings for Channel 17 also allow the S-Cab Throttle to transmit to the ProMiniAir receiver (PMA Rx) with just a tiny wrinkle to establish communication (more below).

Update 02 Mar 2024: Interoperability at 918.12MHz (Airwire Channel 11) S-Cab interoperatibility with Airwire and ProMiniAir has been verified!

General Discussion

Stanton designed his products to operate with intermittent transmissions from the S-Cab Throttle to the S-Cab receivers. This practice is at variance with other transmitters such as Airwire hand-held throttles, the Tam Valley Depot DRS1 transmitter, the NCE Gwire Cab, and the ProMiniAir transmitter.

S-Cab Receiver Interoperability with the ProMiniAir Transmitter

I used the S-Cab LXR-DCC receiver for interoperability testing with the PMA Tx. See the photo below.

The S-Cab LXR-DCC receiver

[Warning: Technical, you can skip this paragraph.] Since the LXR-DCC would NOT operate on Airwire Channel 16 (916.36MHz), I devised more specialized RF settings that allow the PMA Tx to transmit successfully to the LXR-DCC receiver. The new “S-Cab Channel 17” transmits at 916.48MHz with a reduced “deviation” frequency FDEV of 25kHz instead of the Airwire channels’ value of 50kHz. Shifting the RF transmission from the “center frequency” FC (916.48MHz in our case) by FDEV indicates a logic transition. Thus a series of pulse transitions are generated by the timing of transmitter frequency shifts: FC -> FC+FDEV -> FC -> FC+FDEV -> … This encoding technique is called Frequency Shift Keying (FSK).

The photo below shows the DCC transmissions from the PMA Tx on Channel 17 and the DCC output from the LXR-DCC. The waveforms clearly show that the PMA Tx successfully transmits to the LXR-DCC.

Demonstration that the ProMiniAir transmitter (yellow waveform) successfully transmits to the LXR-DCC receiver (blue waveform) on Channel 17. Note the very slight time delay of the LXR-DCC’s waveform.

There’s not much more to say about using the ProMiniAir transmitter with S-Cab receivers: set the PMA Tx to channel 17!

As a parenthetical note, Channel 17 will also work with the older Tam Valley Depot (TVD) Mk III receiver/amp and the NCE D13DJR wireless decoder. Both use the now-discontinued Linx ES Series receiver operating at 916.48MHz. Unlike the S-Cab LXR-DCC, they will also work on Airwire Channel 16.

S-Cab Throttle Interoperability with the ProMiniAir Receiver

So now, let’s turn to operating the S-Cab Throttle with the PMA Rx. Since the S-Cab Throttle transmits at 916.48MHz, the PMA Rx must use its automatic “channel search” capability to “find” the intermittent transmissions at 916.48MHz with an FSK deviation frequency of 25kHz.

The S-Cab Throttle’s intermittent transmissions are where the “wrinkle” occurs. The PMA Rx’s channel search after power on quickly searches for transmissions in the following channel sequence: 0(A), 18(E), 17 (S-Cab), 1(A), 2(A), 3(A), …, 16(A), where (A) mean Airwire channel, (E) means European ISM frequency 869.85MHz, and (S-Cab) means for S-Cab at 916.48MHz.

Since the S-Cab Throttle’s transmissions are intermittent, if the operator does nothing, the S-Cab Throttle might not be transmitting in the short time window when the PMA Rx is looking for transmissions on Channel 17. So, to force the S-Cab Throttle into nearly continuous transmissions, slide the speed control up and down continuously for several seconds while the PMA Tx is powering up to guarantee the PMA Tx has transmissions on Channel 17. If the PMA Tx does not “sync up” with the S-Cab Throttle, try again by turning the PMA Tx off and back on while sliding the S-Cab’s speed control up and down.

The video below demonstrates that the PMA successfully receives S-Cab transmission since the DCC address displayed by the PMA Rx matches the S-Cab’s loco address (4) and the PMA Rx auto-selected Channel 17.

Video demonstration of syncing the S-Cab Throttle with the ProMiniAir receiver. Note the following: 1) sliding the speed control back and forth at PMA Tx power-on, 2) the PMA Rx’s finding transmissions on Channel 17, 3) the PMA Rx displays the correct loco address (4) with a valid DCC command, and 5) with no action (and transmissions) from the S-Cab Throttle, the PMA Rx outputs a DCC idle.

Conclusion

I have updated the ProMiniAir transmitter and receiver firmware with a new Channel 17 to allow interoperability with the S-Cab throttle and S-Cab receivers. This new channel will also work with the Tam Valley Depot Mk III receiver and NCE D13DJS wireless decoder, although Airwire Channel 16 will also work with them. To make “room” for this new channel, the European channel (at 869.85MHz) has been moved to Channel 18.

Using the NCE D13DRJ Wireless Decoder with the ProMiniAir Transmitter

Introduction

The NCE D13DRJ, now, sadly, discontinued, is a dead-rail DCC decoder that originally touted compatibility with the Stanton Cab. You can find the decoder’s documentation here. The following is a description from NCE’s website (some of the information may not be accurate):

Dimensions: 1.30 x 0.640 x .285 inches – 33 x 17 x 7.5mm

Direct Radio Wireless DCC decoder operating at 916.50 MHZ [916.48MHz]

Features of this decoder: Built-in radio compatible with the S-Cab by Stanton Wireless, Equipped with NMRA 9 pin DCC ‘Quick Plug’ Torque Compensation for ultra smooth low-speed performance. Motor rating 1.3 Amp continuous, 2 Amp peak (stall). All four function outputs have lighting effects generators. Select from 15 different lighting effects. Full support for LED lighting.

The D13DRJ is designed to be used with Stanton Wireless A.K.A. S-Cab since he uses the exact same wireless chip and frequency we use 916.50 [916.48MHz] MHZ. Tam Valley claimed that even though the receiver they use is 916.37, it would work fine. We had to find someone with a CVP T5000 for compatibility testing. Originally we relied on CVP’s claim of compatibility but have found that it is not true. [This statement is not entirely correct. See comments below.] We have changed our website and documentation to reflect this.

Examination of the NCE D13DRJ revealed it uses the same receiver chip (the Linx RXM-916-ES operating at 916.48MHz) as the older Tam Valley Depot Mk III receiver, which I previously verified works with the ProMiniAir transmitter (PMA Tx) on Airwire Channel 16 (916.37MHz). So, I was optimistic that this decoder would work the PMA Tx.

NCE D13DRJ with Linx RMX-916-ES transceiver operating at 916.48MHz

Using the ProMiniAir Transmitter to Control the NCE D13DRJ

The photo below shows the PMA Tx connected to a Digitrax DCS52 controlling locomotive #4291. I set the PMA Tx to transmit on Channel 16 by placing the DCS52 in ops mode at address 9900 and then changing CV255 to 16. After exiting ops mode, I set the loco address back to 4291. 

The ProMiniAir transmitter connected to the Digitrax DCS52 set at DCC address 4291

Simultaneously, the Digitrax LNWI, connected to the Digitrax DCS52 via Loconet, receives commands from the iPhone WiThrottle app controlling locomotive #3 (the default address for the NCE D13DRJ).

The PMA transmitter is sending commands to the DCS D13DRJ on DCC address 3

Below is a demonstration that the NCE D13DRJ receives commands from the PMA Tx using DCC commands from the iPhone’s WiThrottle. While it’s difficult to discern the motor’s turning, the accelerations/decelerations when changing direction is easy to observe.

The iPhone WiThrottle app sends DCC commands to the Digitrax DCS52, which in turn transmits DCC commands to the DCS D13DRJ via the ProMiniAir transmitter on Airwire Channel 16

Conclusion

The PMA Tx is demonstrably capable of controlling the NCE D13DRJ. While NCE has discontinued the manufacture of this decoder, it is frequently available on eBay and is an excellent dead-rail decoder option for smaller scales.

PostScript: A Note about Airwire Compatibility

The CVP Airwire T5000 transmitter (and presumably all other CVP Airwire transmitters) partially works with the NCE D13DRJ on Airwire Channel 16: speed and direction control work reliably, but the function keys do not operate consistently. The cause for this behavior is unknown; I have never encountered this kind of incompatibility before.

Dead-Rail Range Improvement with a Wireless Repeater

A simple repeater using two ProMiniAirs. A ProMiniAir 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 ProMiniAir transmitter’s DCC/GND input. The 869/915MHz ProMiniAir’s wireless DCC transmissions are picked up by DCC receivers onboard a locomotive.
A DCC repeater in action. The transmissions from the repeater’s ProMiniAir 869/915MHz transmitter are picked up by the ProMiniAir receiver located in the tender of the Cab Forward. The Base Station’s 433MHz ProMiniAir transmitter sends wireless DCC to the repeater’s 433MHz ProMiniAir receiver, which is directly connected by wire to the repeater’s 869/915MHz ProMiniAir 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, with 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 ProMiniAir 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 re-transmit 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 perception, 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 at higher frequencies, and you may also get better direct line-of-sight performance. 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. The longer antenna is far less inconvenient for fixed transmit and receiver installations.

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 ProMiniAir 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 ProMiniAir transmitter, which in turn, transmits wireless DCC on a channel in the 433MHz ISM band.
A base station operating in the US 916MHz band transmitting on Airwire channel 15

The Repeater

The photo at the top of the page shows the repeater you place some distance from the “Base Station.” The repeater consists of a ProMiniAir receiver that is identical in design to the ProMiniAir receiver described in my previous post. The only difference is the Anaren 433MHz radio module instead of the 869/915MHz radio module (you cannot quickly 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 ProMiniAir transmitter’s 5V DCC/GND inputs. The transmitter outputs wireless DCC transmissions on channels in the 869/915MHz ISM band picked up by mobile 869/915MHz receivers onboard the locomotives. As described in my previous post, compatibility with CVP Airwire, Tam Valley Depot, GWire, and ProMiniAir receivers is assured.

Close-up of pin connections
Pin connections show the wired connection between the 433MHz ProMiniAir receiver and the 869/915MHz ProMiniAir 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 operates 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 ProMiniAir transmitter to the repeater’s ProMiniAir 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.

Software

My previous post discusses how to compile the ProMiniAir software (found on this GitHub site) and download the resulting “firmware” to the ProMiniAir’s Pro Mini MCU (micro-controller unit). The software the ProMiniAir uses to operate at 433MHz is the same software that you use for the ProMiniAir 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
#endif

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

Hardware

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) ProMiniAir receiver/transmitter(s) is battery power or a voltage converter using a battery power source. The ProMiniAir 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 ProMiniAir. I strongly recommend using the 5V/GND power inputs from a voltage converter (inexpensive) to prevent overtaxing a small 5V power converter onboard the ProMiniAir.

All that remains to do is connect the 433MHz ProMiniAir receiver’s GND/DCC output directly to the 869/915MHz ProMiniAir transmitter’s GND/DCC input. The GND and DCC Input/Output connection are the same pins on both ProMiniAirs. The three-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 ProMiniAirs UNLESS you are supplying a 5V/GND supply to one of the ProMiniAirs 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 ProMiniAir transmitter/receiver’s DCC address is, by default, 9000/9001, respectively. My previous post describes how to reconfigure the ProMiniAir 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 select channel #. The 433MHz ProMiniAir has eight channels (0-7) that can be used, and channel 0 (434.00MHz) is the default.

When you have multiple ProMiniAir transmitters and receivers “listening,” beware that sending OPS mode commands to either 9000 or 9001 will change the CV values on all listening ProMiniAirs 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 re-transmit 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 ProMiniAir’s DCC address as discussed here, or turn off all ProMiniAirs you don’t want to reconfigure. Giving a unique DCC address to each ProMiniAir is probably the safest strategy! Of course, you can “play” useful games by giving “groups” of ProMiniAirs 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.

Wrap-Up

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 ProMiniAir Receiver/Transmitter

This page is obsolete. Please see this page.

 

Dead-Rail Transmitter/Receiver Options and Installation

Numerous wireless RF transmitter/receiver (Tx/Rx) options for locomotive control are available 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. 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 far better than no standard. 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) as well (see BlueRailDCC), but I have no personal experience with this band. Another advantage of the 902-928 MHz ISM band is some interoperability between transmitters and receivers, although there is currently no firm standard behind this interoperability.

DCC-compatible Tx/Rx options are a vast 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.

Receivers

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

General Comments

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

CVP Airwire

A CVP Airwire CONVRTR-60X wireless DCC-compatible RF receiver is mounted to the tender hull’s side 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, including hand-held wireless DCC-compliant throttles (such as the T5000 and T1300) and receivers, such as the CONVRTR series that seamlessly connect to DCC decoders onboard the locomotive. As a general comment, CVP provides excellent, detailed installation and operation documentation, partly because 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, 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 many DCC Idle packets, and 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 ProMiniAir, 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 ProMiniAir 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 also available 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 the 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, placing this wire outside any metal shell would be best, 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. It 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 external antennas outside 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 no DCC signal is available.

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

OScaleDeadRail ProMiniAir Receiver

ProMiniAir receiver/transmitter

The inexpensive ProMiniAir receiver presents no issues when used with 902-928 MHz ISM DCC-compatible transmitters. It operates on Airwire RF channels 0–16. It requires a separate, low-cost amplifier (e.g., the Cytron MD13S) to convert the ProMiniAir’s unipolar 5V DCC to bipolar DCC that provides sufficient power to the decoder.

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

Transmitters

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 OScaleDeadRail ProMiniAir transmitter.

CVP Airwire Transmitters

The CVP Airwire T5000 and T1300 transmitters are excellent choices for operating with 902-928 MHz ISM DCC-compatible receivers, 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 OScaleDeadRail ProMiniAir 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.

OScaleDeadRail ProMiniAir Transmitter

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

OScaleDeadRail provides the ProMiniAir transmitter/receiver 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 OScaleDeadRail) and transmit the “logic-level” DCC on Airwire channels 0-16.

The ProMiniAir 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 the transmission on Airwire channels 0-16, ensures that the ProMiniAir transmitter can communicate 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 ProMiniAir, which is 9000 by default. An optional LDC display can be attached to the ProMiniAir transmitter for status display. More configuration information is available at the GitHub AirMiniTransmitter site.

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

Introduction

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. Still, 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 prominent 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 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 the 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 a 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 Tenergy.com 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 the removal of the side rods. The axle and wheel are scribed to maintain proper “quartering.”
A wheel puller separates 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 test run

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.

OScaleDeadRail ProMiniAir Receiver

OScaleDeadRail ProMiniAir receiver operates on Airwire channels 0-16. The ProMiniAir 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 OScaleDeadRail ProMiniAir receiver has a default long address of 9001. Like the ProMiniAir transmitter, the ProMiniAir receiver’s channel can be reset in “OPS Mode” by setting CV255 to a value in the range of 0–16. The ProMiniAir 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 ProMiniAir receiver to output the random pulses when it loses a valid RF signal by setting CV246 to 0 in “OPS mode” at the ProMiniAir’s address. In this case, setting CV27 for the onboard DCC decoder is irrelevant because the random pulses from the ProMiniAir receiver will cause the onboard DCC decoder to maintain the 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 ProMiniAir receiver to output fixed DC voltage when it loses a valid RF signal by setting CV246 to 1 in “OPS mode” at the ProMiniAir’s address. A positive DC voltage is output by setting the ProMiniAir receiver’s CV248 to 1 in “OPS mode” at the ProMiniAir’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 ProMiniAir outputs to the onboard DCC decoder upon loss of a valid RF signal.

Wrap-Up

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 titled: O Gauge Forum Post on Smoke Units.

It is possible to modify a non-ESU smoke unit to connect 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 “dead rail” 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 retrofit.

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 made 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 could not verify that the ESU smoke unit used precisely this type of thermistor, the 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 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 have noted.)

The 3-pin power plug on the PCB can power the heater resistor since the outputs from the rectifier/5V converter 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 its black lead to MOT-, the fan motor spins in the “correct” direction.

As others have suggested, I 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 setup 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. 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 turning off, but a non-zero setting seemed like a good idea.

LokSound change decoder settings menu

What differs from THOR73’s discussion is the sound file setup for an ESU smoke unit. Editing the sound files reveals that most “nodes” have the 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 available in the stopped state.

Mute State:

LokSound Stop state settings.

Here are the other states I modified, but I am no 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 to provide adequate power to an actual ESU Smoke Unit or surrogates described here! In deployed operation, the LokSound L is perfectly capable of delivering sufficient power, but in my experience (or inexperience), the Profi board is 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. Using THOR73’s high-side FET switch, 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 error.

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

BUT THE VALUES of Rfixed AND Voffset ARE ONLY ENGINEERING JUDGEMENT GUESSES!

Example thermistor T versus V and T versus R curves

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

Introduction

Please 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.

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

 

Allegheny_PS-2_Tender_Board
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 with fan speed and smoke intensity controls.

Allegheny_MTH_Smoke_Unit
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

 

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

 

Allegheny_PS-3_Locomotive_Wago_Connections
Figure 5b: Locomotive harness wiring after modifications connecting the Constant Voltage Source to Battery +/- and replacing incandescent bulbs with LEDs

These built-in features were excellent, but I still wanted a dead-rail conversion.

Hmm… Looking around, I discovered 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 I needed for the tender and 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 to supply power to the control boards, lights, smoke unit, and locomotive.

Locomotive Modifications

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

Allegheny_PS-3_Locomotive_Wiring_Harness_Diagram
Figure 6: Locomotive PS3.0 wiring harness with modifications indicated

Since I wouldn’t send 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, a heat-shrink blob whose input leads were cut from their original chassis connections (see Figure 5 again).

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

Tender Modifications

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

Allegheny_PS-3_Tender_Wiring_Harness_Diagram
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 from the locomotive (pin 3 of the 7-pin connector) to the CONVRTR, which 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 initially connected to the locomotive Roller Pickup Leads) from the plug bundle that connects the tender to the locomotive. 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 tell you what wiring cuts and re-connections are needed to convert a Proto-Sound 3.0 steam locomotive to dead-rail.

Other Dead-Rail Conversion Details

Of course, other aspects of the dead-rail conversion are required. These aspects include adding battery power and CONVRTR connections and removing 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.

Wrap-Up

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.