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.

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.

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.

Dead-Rail with Smartphone Apps for CVP Airwire, Tam Valley Depot, Gwire, and ProMiniAir Receivers

Typical configuration using smartphone/tablet throttle app with dead-rail

Introduction

Numerous excellent posts (here and here) describe how to use a smartphone to control model railroad locomotives, frequently using a “standard” DCC throttle or “station” as an “intermediary” that interlaces DCC commands from multiple sources and applies the resultant DCC power/signals to tracks that are picked up by one or more locomotives’ wheels electrically connected to a DCC decoder.

After reviewing these posts and understanding how this technique works, it’s a nearly effortless step to replace “DCC on the tracks” with wireless DCC transmissions to multiple locomotives. This “dead-rail” (battery-powered, radio-controlled) technique allows multiple locomotives to be simultaneously controlled from multiple throttles, be they smartphone apps or “standard” DCC throttles.

To be more specific, with minimal effort, it’s possible to use smartphone apps, such as WiThrottle, in conjunction with standard DCC throttles to control multiple dead-rail locomotives equipped with RF receivers from CVP (Airwire), Tam Valley Depot (DRS1 MkIII and MkIV), QSI (GWire), and OscaleDeadRail (ProMiniAir). Using other apps is also feasible, but I will confine this post to my personal experience and give you a specific example of how I accomplished this goal.

What’s Required

Of course, you will need to load a smartphone throttle app such as WiThrottle, and other apps are also for Android and iOS. For communication from the smartphone app to a standard DCC throttle, I selected the Digitrax LNWI WiFi Interface that connects via LocoNet to my Digitrax DCS52. Similar solutions are available for NCE DCC throttles using WiFiTrax and numerous other DCC throttle purveyors.

Finally, a ProMiniAir transmitter (abbreviated PMA Tx), interfaced to the DCS52 Track Right/Left output by a DCC Converter, is used as the dead-rail transmitter. This transmitter is compatible with multiple dead-rail receivers such as CVP Airwire, Tam Valley Depot (Mk III and Mk IV), Gwire, and the ProMiniAir.

The ProMiniAir transmitter is not merely a passive component in converting track-DCC to wireless DCC transmissions. It attempts to add a sufficient number of DCC “Idle” messages to the transmissions to keep CVP Airwire receivers “happy.” Otherwise, CVP Airwire receivers will not likely respond correctly to wirelessly-transmitted DCC. This feature makes the ProMiniAir transmitter unique among similar products that convert track-DCC to wireless DCC transmissions.

Putting it Together

The photo below shows the connections. If you think about it, the only aspect that is different from using track-based DCC and dead-rail is that the Track Right/Left output from the DCS52 throttle is connected to the ProMiniAir wireless transmitter (via the DCC converter that provides the ProMiniAir with 5V power and logic-level DCC) rather than to actual tracks – that’s all!

The connections for simultaneous dead-rail control by a smartphone app and a standard DCC throttle

I will now walk you through the steps I used to create the demonstration below.

Connect the ends of the LocoNet cable to the LNWI and the LocoNet port on the back of the DCS52. Plug the power into the LNWI, and connect the smartphone to the network provided by the LNWI. Then select the WiThrottle app, which has excellent instructions for choosing a locomotive’s address and configuration. In our case, we use the app to select DCC address #5000, a Z-5 with a ProMiniAir receiver connected to a Zimo MX696KS DCC decoder.

You connect to the LNWI’s WiFi server on your smartphone with SSID Dtx1-LnServer_XXXX-7, where XXXX is a unique number for each LNWI unit. Upon opening your WitThrottle app, it usually automatically connects to the LNWI; if manual configuration is necessary, you connect to address 192.168.7.1, Port 12090.

Then we use the DCS52 throttle to select our Cab Forward with a ProMiniAir receiver connected to a LokSound 4 L decoder at DCC address #4292. Once you turn on track power (which sends DCC to the ProMiniAir transmitter instead of the tracks), the DCS52 throttle will start interlacing DCC commands for locomotives #5000 and #4292, sent out wirelessly by the ProMiniAir transmitter. See the photos below that demonstrate this interlacing.

The PMA’s LCD shows the wireless transmission of a DCC packet to locomotive #4292 originally from the DCS52 throttle
The PMA’s LCD shows the reception of a DCC packet from the smartphone app for subsequent wireless transmission to locomotive #5000

Demonstration

Once you power on the locomotives, they listen and respond to DCC commands that match their DCC address, as shown in the video below.

Demonstration of the Z-5 (#5000, left) controlled by the WiThrottle app and the Cab Forward (#4292, right) directed by the DCS52

Conclusion

I hope you will agree that allowing one (or more!) smartphones/tablets and “standard” DCC throttles or control units to control multiple locomotives by wireless is not complex at all, and that’s part of the power and appeal of dead-rail.

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.

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.