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 ProMini Air 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 ProMini Air 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 ProMini Air firmware we made available on our GitHub site, the ProMini Air transmitter worked pretty well with Airwire receivers! Besides CVP Airwire transmitters, the ProMini Air transmitter is the only currently-manufactured transmitter that works with Airwire receivers.
After this success, we have worked hard to ensure that the ProMini Air 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 ProMini Air transmitter/receiver firmware.
OK, I based our initial success in making the ProMini Air transmitter compatible with CVP Airwire receivers on observing how well the ProMini Air worked with Airwire receivers. Yep, numerous inserted DCC IDLE messages from the ProMini Air 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?
The figure below is what I observed by firing up my original ProMini Air transmitter integrated with a WiFi-equipped EX-CommandStation, and using the iOS WiThrottle app to send throttle commands to a ProMini Air receiver. The figure below shows the “raw” digital output from the ProMini Air receiver’s transceiver.
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.
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 ProMini Air receiver.
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.
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 ProMini Air 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 ProMini Air firmware changes.
Firmware Changes to the ProMini Air Transmitter
Based on this new information, to improve compatibility with Airwire receivers, we have modified the ProMini Air 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 ProMini Air receiver. The ProMini Air 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.
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.
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 ProMini Air 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.
I like Lionel steam locomotives because Lionel designed them for simplified servicing, and Lionel’s documentation and parts are easily-available. Also, some of the locomotives, such as the H-7, are nicely detailed and are rich in features such as extensive lighting, smoke, and excellent speakers. Lionel very much “gets” the importance of the user experience.
What I don’t like are Lionel’s high-rail flanges and three-rail operation. The high-rail flanges look awful and will not work well on 2-rail trackage that meets NMRA standards S-3.2 “Scale Track, Standard Scale.” Also, many of the locomotive driver wheels are mounted on a “trapped” axle, requiring removal of the driver wheels from the axle “in situ” with a wheel puller and subsequent remounting in the correct “quarter.”
I have performed three dead-rail conversions of Lionel’s H-7 2-8-8-2 locomotive. This post will be a composite of these three locomotives.
The conversion process consists of the following:
Mechanical conversion: modifying or replacing all wheels and coupler replacement.
Electronics: All Lionel electronics are removed and replaced with a DCC decoder
Dead-rail: Addition of a ProMini Air (PMA) receiver and DCC amplifier, battery, antenna, charging plug, and power/charging switch
Before proceeding with the locomotive conversion, several “magic screws” must be removed to separate the upper boiler shell from the lower shell and wheel chassis. This step is necessary to provide clear access to the drivers for removal and modification.
Removal also provides access to the locomotive’s electronics for removal and replacement with a DCC decoder and its wiring.
Additionally, removing the flexible hose mounting shown below provides clearance to remove the drivers.
After I gained enough clearance around the drivers, I used a wheel puller to remove those drivers whose axles were “trapped” in the chassis.
The locomotive drivers present several issues:
Large, ugly flanges
Grooved tires with rubber traction tires
All drivers are uninsulated. This aspect is important only if you want track-powered 2-rail operation.
Lionel manufactures the locomotive driver center and flange as s single unit with a separate cylindrical tire with no flange.
The photo below shows using an end mill to separate the driver tire from the driver center integrated with the flange. The process was the following:
A 3/16″ brass tube was fit in the axle
A small brass tube was inserted into the crank-pin hole to prevent wheel rotation while milling
Two pieces of brass close to the height serve as height spacers that prevent cutting into the flange
The tooling is a 1/16″, two-flute end mill in a Tormach collet
Cutting oil was applied
The end mill was very carefully translated along the radius, cutting into the cylindrical tire without cutting into the flange
After the radial cut was deep enough, I used an “ordinary screwdriver to pop off the tire with an axial twist.
I used two strategies for modifying the Lionel driver wheels:
Machine down the large flanges and leave the tire in place with the driver uninsulated. I used this technique when using the locomotive strictly as dead rail.
Completely machine off the flange. I use this technique when creating insulated drivers for 2-rail operations using track power.
Machining down the drivers
I used a 3/16″ brass tube as a reasonably close match to the driver’s axle diameter. Because the fit is not tight, a separate small brass tube is inserted in the driver pin that will butt up against the lathe chuck’s jaws when cutting torque is applied. This technique is a bit of a kludge, but I have successfully machined down the flanges of 8 H-7 drivers on two different H-7s with this technique.
Before matching down the large flanges, you must address the grooved tires. The rubber in these tires increases the tire diameter, increasing the chances that the reduced flanges will derail. And these rubber tires are a bad idea since they could cause the locomotive to simply stall rather than slip when pulling heavy loads. Stalling is very bad since it dramatically increases the motor current, potentially causing a decoder shutdown and/or significant heating.
I used J-B Weld 8267 SteelStik Steel Reinforced Epoxy Putty Stick filling the rubber traction rim groove. This material is metal-filled, providing traction and wear resistance.
I applied an excess of putty in the groove, and after curing, I cut the putty excess down to the radius in the lathe. It’s a fool’s errand attempting to shape the putty in the groove. The epoxy sets fairly quickly, so you have a short window of time to work the putty into place.
The photo below shows the finished driver wheel with the Steel Reinforced Epoxy Putty machined to the driver center radius and a machined-down flange with a flange height of 0.036″ and a flange width of 0.040″. As previously, a small diameter rod was inserted into the side rod hole to prevent wheel rotation relative to the axle while machining.
Completely Machining OFF the Original Flange
First, I’ll show you how I created a new tire with a small flange. This is a long detailed section, perhaps of interest to only a few of you.
First, the driver’s tire center must be prepared. The idea is to entirely cut off the integral flange to ensure a constant radius from the front to the back of the driver center.
First, you must remove the cylindrical tire. In this case, you can use a cutting wheel to cut a slot through the flange and the tire without cutting into the driver center. Then the tire can be popped off with an axial twist using a standard screwdriver. Care must be taken not to nick the driver’s wheel center.
The slightly undersized brass tube fits somewhat loosely in the crank-pin hole but will prevent slippage in the spindle by butting against the jaws once torque is exerted by the cutting tool on the rim as the spindle rotates.
After the wheel center’s rim is machined flat, I use 0.010″ fish paper to insulate the left-side drivers. You can hold the fish paper in place with a touch of CA on the side of the rim opposite where the fish paper ends will join. This allows a shorter run to hold the fish paper tight on the rim while applying CA to the ends.
With our wheel center ready to mount inside a tire, we now create a tire with the proper dimensions. Caveat: My tire machining technique fits my modest matching skills using a small Sherline lathe. This technique is wasteful of metal blanks, but their cost is low. Other more skilled model railroad machinists have more efficient techniques that utilize a larger lathe and specialized tooling.
To help the discussion, the figure below shows the terminology from NMRA Standard S-4.2. The important terms/dimensions are flange width, flange depth, and tread width. Creating a tire within an acceptable range of these dimensions is necessary to ensure that the driver will work on 2-rail trackage defined by NMRA standard S-3.2.
I start with a 1.5″ diameter Ledalloy 12L14 1″ long blank obtained from OnLineMetals.com. This represents a maximum driver size of 72″, which is plenty large for our 57″ plus twice our flange depth of 0.036″ for 2-rail operation (1.1875″+2 x 0.036″=1.2655″).
A 1/2″ hole is drilled into the center of the blank to provide clearance for the boring bar that will hollow out the blank to fit the outer diameter of the driver’s center.
The blank is then placed in the lathe, the face is squared off with an end cut, and then a side cut reduces the blank’s diameter to the final wheel diameter + 0.072″ to account for the additional flange depth (0.036″). For our H-7’s 57″ drivers, this diameter works out to 57/48″=1.1875″ plus twice our flange depth of 2 x 0.032″=0.072 for 2-rail operation: 1.1875″+2 x 0.036″=1.2655″.
Now we make an angled side cut to create the tire surface by tilting the Sherline lathe’s spin axis by 2.5-3.0 degrees. This cut produces a shallow angle across the tire’s tread width. This angle was obtained from NMRA Recommended Practices 25.
A careful series of side cuts are made to reduce the blank to the wheel’s diameter at the base of the flange step with a width of the wheel width (N) of 0.172″ – the flange width of 0.039″ = 0.132″. I use a wheel width slightly smaller than “code 175″ (0.175”, from NMRA Recommended Practices 25) to improve appearance, and maintain operability with 2-rail track standards.
Next, we “straighten out” the lathe and use a boring bar to hollow out the blank’s center to be slightly smaller than the driver’s center diameter. This cut reduces the amount of material removed during the difficult cut-off operation.
Next, the tire is cut off from the rest of the blank at a distance greater than 0.039″ (the flange width) behind the flange step.
The now-separate tire is remounted in the lathe using the flange step as an indexed surface, and a careful series of face cuts are made to reduce the flange width to 0.039″.
A spacer (an old tire cut off the driver) is now inserted to displace the flange from the lathe chuck’s jaws to provide clearance for rounding the edges of the flange with a file.
With the lathe spinning, a file is used to carefully smooth the sharp edges of the flange.
Now, the tire is remounted against the lathe chuck’s jaws, and a series of careful cuts with the boring bar increases the tire’s inner diameter until the driver’s center fits inside the tire. This step is tedious since very small (0.001″) cuts should be used to prevent making the tire’s inner diameter too large! The fit should not be extremely tight since we will apply Loctite to the rim of the driver’s wheel center to lock the tire to the driver’s wheel center.
Loctite 609 is applied to the fish paper, and the driver’s center is inserted into the new tire. While inserting the driver’s center, I take the opportunity to ensure it is pressed into the rim to the proper depth. This depth is a bit of a judgment call based on examining the original mounting depth.
Before the Loctite dries, the driver’s center must be aligned with the tire. I use a simple technique of inserting a 3/16″ metal rod or tube into the driver axle hole and mounting the assembly in the jaws of a milling clamp with a small “v” machined into one side of the jaws, as shown in the photo below. I firmly press the tire rim onto some brass plates placed on top of the jaws, then tighten the jaws to very lightly bind the metal tube and rotate the driver wheel. This rotation action will force the driver’s center into alignment with the tire.
While aligning these components, I take the opportunity to ensure the driver’s center is still pressed into the rim to the proper depth.
Tender Mechanical Modifications
I removed the rather ugly Lionel coupler by cutting off the tender coupler mount and mounting a Kadee coupler directly to the tender. Micro-Mark coupler shims provide the proper coupler mounting height.
I used a Zimo MX696KS DCC decoder from SBS4DCC with the “Standard Gauge Steam Locomotive Alco/Baldwin Mallet 2-8-8-2” sound file DA_R_US_2_8_8_2 V2.zip . Modifications were made to the function mappings and set-up of the smoke unit.
Some of the sound project’s settings are shown in the following screen captures from Zimo’s ZCS software.
My typical 14.8 LiPo battery did not comfortably fit in the back end of the tender, but a rather unusually-shaped 14.8V LiPo batter from MTO fit well: the TRAIN-10 LI-ION.
The tender’s LEDs must have “protection” resistors added since Lionel provided these resistors on electronics boards that were removed for dead-rail conversion
Locomotive Electronics Modifications
The conversion strategy is completely removing all Lionel electronics and replacing them with a Zimo MX696KS DCC decoder, providing excellent sound, lighting, and smoke unit control.
Because the original Lionel electronics provided the protection diodes for the locomotive’s LED marker lights at low voltage, 5K resistors were added in series with the maker lights so that 14.8V power would not burn them out when activated by the Zimo decoder.
The red LED lighting for the firebox presented a bit of a challenge. The photo below shows where I added protection resistors for the two sets of LEDs that flicker independently using the “random” firebox setting for the Zimo decoder’s FO6 and FO8 outputs, as shown on the ZCS configuration menus elsewhere.
For one of the H-7s, I replaced the incandescent cabin light with an LED. See the photo below.
I replaced the original low-current LED front marker lights with “nano” LEDs after I accidentally burned them out.
The Proof in the Pudding
The video below is the “proof in the pudding,” showing off the lights, firebox effects, smoke, and great sound!
A whip antenna is a simple and effective antenna used by many dead-rail receivers, including the ProMini Air. Still, sometimes it’s not feasible to mount the whip antenna directly to the transceiver and get good RF reception. One solution is a U.FL extender cable connected to the U.FL plug on the receiver, and the other end can be “snaked” outside the locomotive or tender shell. The U.FL whip antenna then plugs into the U.FL socket on the distant end of the extender outside the shell for better RF reception.
An extender has some downsides: the U.FL socket is easily broken, requires a fair-sized exit hole, and may be subject to increased RF noise. This post will show you a better solution for some applications.
If you strip off 82mm (North American) or 86 mm (EU) of the outside plastic cover and grounding wrap to expose the inner plastic insulator and the antenna wire, you have over 200mm of grounded connection for “snaking” the antenna connection to a distant location. A small hole using a #56 drill bit (0.0465″) provides sufficient clearance for the grounded lead to exit the shell.
You can bend the grounded lead to the angle you want and cover the exposed antenna section with small-diameter heat shrink tubing to hide the bright antenna wire.
Below is a video of this antenna solution in action.
I hope you find this simple solution valuable in your future dead-rail endeavors!
I have posted several dead-rail conversions of O scale 2-Rail MTH steam locomotives equipped with a PS-3.0 controller capable of operating in DCC mode. These locomotives are convenient for dead-rail conversion because they come fully equipped with good sound, lighting, and smoke effects – all controllable with DCC. However, I have received numerous questions asking for clarification.
So, what’s new in this post?
The goals of this post are to show off a dead-rail conversion with my new, much smaller ProMini Air receiver (1.1″ x 0.8″) coupled to a small DCC amplifier, the DRV8871 (1.0″ x 0.8″), and, to explain the conversion strategy for O scale, PS-3.0-equipped MTH locomotives. I have chosen the PS-3.0-equipped MTH UP 4-12-2 2-Rail locomotive (MTH 22-3641-2) because it has a small, crowded tender, making for a challenging installation of the required dead-rail components: battery, ProMini Air receiver/DCC amplifier, antenna, switches, and charging plug.
Some conversion details, such as power connections, are left out to reduce cluttering the critical points.
The photo below shows what we are up against: a very crowded tender!
The challenge is how/where to locate the dead-rail components.
Since this locomotive is fully configured for lighting, sound, and smoke effects, and all of the control electronics are in the tender, I did not modify the locomotive!
We’ll turn our attention to the tender.
The most challenging aspect of this conversion is battery location. After some fiddling and considering other battery configurations, I decided on a flat 14.8V Tenergy battery, mounted in the tender as in the photo below.
This location required slightly bending the PS-3.0’s heat sink to provide battery clearance.
I also moved the speaker platform forward and removed the plastic speaker enclosure to make room for the battery.
The wiring of the 2Rail/3Rail switch is at the heart of our conversion. Since we will not operate on 3-rail track, we will repurpose the 2Rail/3Rail switch to retain the original 2-rail track-powered operation or use the new battery-powered amplifier output connected to the ProMini Air receiver. See the diagrams below for the original and final wiring for repurposing the 2Rail/3Rail switch
I modified the wiring to the 2Rail/3Rail switch to accommodate DCC inputs from the ProMini Air receiver’s amplifier. The photo below shows the first step: moving the gray wire soldered to the right center post of the 2Rail/3Rail switch to the front right post.
The next step is the hard part: figuring out the re-wiring required. To aid in the discussion, let’s talk about the capabilities of the MTH PS-3.0 controller. This board is designed to pick up signals through the locomotive and tender’s wheels, and, if operating on three-rail track, the center-rail pick-up rollers. To accommodate either 2-rail or 3-rail operation, MTH provides a 2Rail/3Rail switch on the underside of the tender chassis.
Consequently, when you set the switch to “2Rail”, the gray wires, which are electrically connected to the left track, provide input to the “Track Left” of the PS-3.0.
Next, the gray wire directly connecting the “Track Left” input to the PS-3.0 board is separated from the other gray wires and soldered to the right-center post of the 2Rail/3Rail switch. Now, the center-right post provides the “Track Left” input to the PS-3.0 from rail “Track Left” when you set the switch to “2Rail.”
Since we will NOT be operating in 3Rail mode, we can repurpose the 2Rail/3Rail switch’s 3-Rail connections to provide the DCC inputs from the ProMini Air receiver’s DCC amplifier.
I first removed the wiring on both of the 3Rail posts on the switch.
I sealed off this wiring, preserving the connection of the two black wires since they both contribute to “Track Right” from the locomotive or tender wheels.
Then, I soldered two wires with a plug to these “3Rail” switch posts that will connect to the DCC Track Right/Left outputs of the ProMini Air receiver’s DCC amplifier. With this modification, when the switch is set to this position, it connects the PMA amplifier’s DCC output to the PS-3.0. This now completes the conversion of the 2Rail/3Rail switch to a 2Rail/RA (for radio-generated signal) switch. That was the hard part.
The signals originally picked up from the rails come in two “languages” that the PS-3.0 controller understands: DCS and DCC. To accommodate this capability, MTH provides a DCS/DCC switch on the underside of the tender chassis. The DCS commands are a proprietary MTH invention, and for our purposes, do not interest us. DCC is important to us since the ProMini Air receiver is designed to receive wireless DCC commands, which are an NMRA standard.
We can set up the wiring for permanent DCC operation and repurpose the DCS/DCC switch for Battery ON or Battery Charging. When you set the unmodified DCS/DCC switch to “DCS,” the two black wires activate DCS mode, which we no longer need. When you set the DCS/DCC switch to “DCC,” these two wires are not electrically connected, which is what we want permanently.
The first step is to remove these two black wires and close them off to prevent them from shorting together.
Then, three wires are soldered to this switch:
Center posts: Battery +. This post provides battery power that will either supply power to the PMA Rx and DCC amplifier or receive charging power from the charging plug, depending on the switch position.
Back posts: PMA Rx/DCC amp power +.
Front posts: Charging plug +
The right and left posts are soldered to each wire to ensure a low-resistance, high amperage connection. The rest of the power connections are standard and not discussed here.
OK, we’re finished with all wiring modifications; now, let’s turn to adding the antenna and charging plug by first drilling holes on the bottom of the tender’s chassis and mounting the antenna and charging plug (see photo below).
The antenna mount has a wire connection carrying RF output from the antenna to a U.FL connector plugged into the ProMini Air receiver.
The charging plug has a “+” power connection wired to the battery ON/Charging switch. All power “-” connections are on the “-” posts of the charging plug.
Finally, I mounted the ProMini Air receiver and its DCC amplifier over the speaker after removing the plastic speaker cover to provide sufficient battery clearance.
The small size of the ProMini Air receiver and its DCC amplifier make this mounting strategy possible.
The video below shows the “proof in the pudding,” where the locomotive is controlled by the new stand-alone ProMini Air transmitter integrated with a WiFI-equipped EX-CommandStation that receives throttle commands from a smartphone app.
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 ProMini Air transmitter to control your dead-rail locomotive(s) fitted with a variety of receivers such as ProMini Air, Tam Valley Depot DRS1, CVP Airwire, Stanton Cab, QSI Gwire, and NCE. The downside was that you must invest in a WiFi device made for the DCC base station connected to the ProMini Air transmitter. Many folks pushed back on the additional cost and infrastructure to use their smartphone app for dead-rail control using the ProMini Air transmitter.
I searched for a way to provide a low-cost way to use your smartphone in conjunction with the ProMini Air 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 ProMini Air, Tam Valley Depot, CVP Airwire, QSI Gwire, NCE, or Stanton Cab receivers. The cost for the PMA Transmitter/WiFi-equipped EX-CommandStation for smartphone dead-rail control is $70.
The wiThrottle-protocol smartphone apps that will work with this solution include (this list is from DCC-EX):
The important point is that the ProMini Air transmitter, coupled with the WiFi-equipped EX-CommandStation, is a completely self-contained solution for $70. 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 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
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:”
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 +5V logic DCC output is not sent to a “motor shield” to power tracks but instead serves as a direct input to the ProMini Air transmitter for dead-rail control. It’s that simple; the technique was easy to implement and is low-cost (about $25, instead of paying for a WiFi device that connects to a commercial DCC throttle, a total of over $200).
Instructions for Using the ProMini Air Transmitter/WiFi-Equipped EX-CommandStation with a Smartphone
A properly configured ProMini Air Transmitter/WiFi-equipped EX-CommandStation. We provide this.
A locomotive(s) equipped with receivers compatible with the ProMini Air transmitter, such as:
ProMini Air receiver
Tam Valley Depot DRS1 receiver
CVP Airwire receiver: CONVRTR 15/25/60, G-3/4
Stanton Cab receiver
NCE D13DRJ wireless decoder
Plug power into the PMA Tx/WiFi-equipped EX-CommandStation, which turns on the ESP8266 WiFi transceiver to broadcast information for your smartphone to pick up, boots up the EX-CommandStation itself, and powers up the ProMini Air receiver and LCD. You can connect a 9V power to the ProMini Air transmitter/WiFi-equipped EX-Command station for “take it anywhere” capability. The battery adapter can be found here. A 1200 mAh battery, such as the Energizer Lithium, will last about 4 hours. Rechargeable Lithium-ion 600mAh batteries will last about two hours, but a four-pack with a charger will only set you back about $24.
Go to the smartphone’s WiFi settings:
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.
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).
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.
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.
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.
Once connected, go to your throttle app:
When asked for WiFI router configuration, set the IP address to “192.168.4.1” and the port to “2560“.
Once your throttle app connects to the EX-CommandStation, you can select your loco(s), etc.
Turn on your dead-rail locomotives, and control them with your smartphone app!
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 ProMini Air 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 ProMini Air 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.
Programming on the Main (PoM)
OK, these smartphone throttle apps are great, but they have a limitation: they can’t currently send commands in PoM (OPS) 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 ProMini Air 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 some CV changes to your dead-rail locomotive’s DCC decoder using PoM (OPS) mode, too!
You may NEVER change the ProMini Air’s configuration, but you might. How to do this?
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 ProMini Air transmitter (or receiver, for that matter!) or your dead-rail locomotive’s DCC decoder in PoM mode.
So, there you have it, a wireless way to control a WiFi-equipped EX-CommandStation in Programming on the Main (PoM) mode, also known as OPS mode. While we need these apps to send PoM commands to reconfigure the ProMini Air transmitter, you can enter any DCC-EX Command! Have fun!
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
Connect power to the EX-CommandStation. This powers up the WiFi-equipped EX-CommandStation and the ProMini Air transmitter with its LCD.
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.
On your computer, start up a “terminal” session. A terminal session allows you to type in commands.
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.
Your command line will now be waiting 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.
OK! Now let’s change the ProMini Air 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 ProMini Air transmitter’s LCD, you will see the following:
You exit the session by hitting <Control>+C.
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
Connect power to the EX-CommandStation. This powers up the EX-CommandStation and the ProMini Air transmitter with its LCD.
Connect the USB cable to the EX-CommandStation and your computer/laptop.
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 ProMini Air transmitter.
Select the “Connect DCC++ EX” button to activate the USB serial connection to the EX-CommandStation.
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.
Now look at the Debug Console and ensure Debug in “ON.”
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.
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!
Disconnect the USB cable.
Use your smartphone to connect the ProMini Air Tx/WiFi-equipped EX-CommandStation as described above.
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 ProMini Air 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 ProMini Air transmitter!
While I called this approach for using a smartphone app with the ProMini Air transmitter a “compromise solution,” if you think about it, with a more centrally-located ProMini Air 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.
Appendix: Implementation (How I Did It for Do-It-Yourselfers)
An Arduino microprocessor (for us, the Arduino Mega or clone): the “brain” that takes throttle inputs and converts them to +5V DCC signals, usually for a motor shield.
A motor shield or motor driver: converts the microprocessor’s +5V DCC signals (and other controls) to higher-voltage DCC Track Right/Track Left to power and control locomotives equipped with DCC decoders. Because the track may short-circuit or require too much power, the motor shield or motor driver may provide signals, such as current sense, back to the microprocessor that generates commands to protect the motor shield or motor driver from damage.
WiFi (integrated on the microprocessor PCB, an Arduino shield, or discrete receiver jumpered to the microprocessor PCB): receives wiThrottle-protocol commands from smartphones or tablets via WiFi and sends these commands to the microprocessor.
Direct connection to a PC
Free, open-source EX-CommandStation software
We need a WiFi-equipped Arduino MEGA and the EX-CommandStation software for our dead-rail application using a smartphone, but what about that motor shield?
A “motor shield” that amplifies the EX-CommandStation’s +5V digital DCC output for controlling and powering locomotives via the tracks is unnecessary since the ProMini Air transmitter only requires +5V DCC input (along with +5V power, which is available from the EX-CommandStation as well). An added advantage is the “DCC Converter,” which is necessary to convert track DCC from a “traditional” DCC throttle to +5V power, and +5V DCC the PMA transmitter requires is unnecessary. (If you like, we will include the DCC Converter because you may want to use your ProMini Air transmitter with a “traditional” DCC throttle later.) The modular design of the ProMini Air transmitters and receivers makes this solution easy and reduces cost.
Since I needed to modify the source code to accommodate the ProMini Air transmitter integration with the EX-CommandStation, I used this download link. I followed the DCC-EX project installation instructions for the Arduino IDE and only modified the config.h file of the EX-CommandStation software for integration with the ProMini Air transmitter:
// (more before...)
// NOTE: Before connecting these boards and selecting one in this software
// check the quick install guides!!! Some of these boards require a voltage
// generating resistor on the current sense pin of the device. Failure to select
// the correct resistor could damage the sense pin on your Arduino or destroy
// the device.
// DEFINE MOTOR_SHIELD_TYPE BELOW ACCORDING TO THE FOLLOWING TABLE:
// STANDARD_MOTOR_SHIELD : Arduino Motor shield Rev3 based on the L298 with 18V 2A per channel
// POLOLU_MOTOR_SHIELD : Pololu MC33926 Motor Driver (not recommended for prog track)
// FUNDUMOTO_SHIELD : Fundumoto Shield, no current sensing (not recommended, no short protection)
// FIREBOX_MK1 : The Firebox MK1
// FIREBOX_MK1S : The Firebox MK1S
// IBT_2_WITH_ARDUINO : Arduino Motor Shield for PROG and IBT-2 for MAIN
// #define MOTOR_SHIELD_TYPE STANDARD_MOTOR_SHIELD
// This motor shield is for the PMA Tx
#define PMA_TX F("PMA_Tx"), \
new MotorDriver(6, 7, UNUSED_PIN, UNUSED_PIN, UNUSED_PIN, 1.0, 1100, UNUSED_PIN), \
new MotorDriver(5, 4, UNUSED_PIN, UNUSED_PIN, UNUSED_PIN, 1.0, 1100, UNUSED_PIN)
#define MOTOR_SHIELD_TYPE PMA_TX
// (more after...)
The critical part for us is the “7” in the “new MotorDriver” line, which states that the “+” DCC output (+5V logic output between 0 and +5V) is on Pin 7. That’s all we need (along with power) to “feed” the ProMini Air transmitter! I then recompiled the EX-CommandStation software according to the DCC+EX instructions with absolutely no problem.
The connections to the WiFi-equipped EX-CommandStation to the ProMini Air transmitter are straightforward: connect GND and +5V to the power connections on the EX-CommandStation motherboard, and the +5V DCC input to Pin 12 (previously Pin 7) on the motherboard.
You could purchase the components and set up the WiFI-equipped EX-CommandStation yourself. However, since we can do the set-up legwork for you, you can order the WiFi-equipped EX-CommandStation option for the ProMini Air for $40 ($5 is donated to DCC+EX). We include the AC to DC power converter (wall 120V AC to 9V DC) for the EX-CommandStation.
I was inspired to fully develop a wireless DCC transmitter and receiver by two sources: Martin Sant, who runs the BlueRidge Engineering website, and an article by Mark and Vince Buccini titled “Build Your Own Wireless DCC System” that appeared in the April, June, and August 2014 editions of Garden Railways magazine. These back issues are still available.
The Buccinis showed that it was possible to home-build a wireless DCC system. And Martin became a great collaborator who concretely started me with the initial version of the “ProMini Air” wireless DCC transmitter/receiver hardware and the wireless DCC software for the Pro Mini microcontroller board. I am deeply indebted to these people.
Note: Some photos may show older versions of the ProMini Air. Also, previous versions of the ProMini Air receiver and transmitter used 9000/9001 for their DCC address, respectively, which we changed to 9900/9901. Photos and examples may use the now-obsolete addresses.
Update for New Versions of the ProMini Air Transmitter and Reciever
Please see this post on an important update on the ProMini Air transmitter. It is now completely stand-alone; just plug in power and use your cell phone app to control your locomotive.
Both the ProMini Air transmitter and receiver have been significantly reduced in size: 1.1″ x 0.8″, making it possible to mount the ProMini Air receiver and a tiny DCC amplifier in tighter spaces and some HO locomotives.
My goal for offering the ProMini Air receiver/transmitter is to provide those interested in “dead-rail” (radio control, battery power of a model railroad locomotive) inexpensive wireless, DCC compatible transmitters and receivers for radio-control of model railroad locomotives in the US/Canadian 915MHz ISM band – the same band and protocol as used by Tam Valley Depot (TVD), CVP Airwire, NCE/QSI Gwire, and Stanton Cab. Also, you can operate the ProMini Air transmitter and receiver in the European ISM band at 869.85MHz, and we have verified interoperability with Tam Valley Depot European DRS1 transmitters and receivers.
A note about channels: modern CVP Airwire transmitters and receivers can all operate in the Airwire channels designated 0-16 using current Anaren AIR transceiver chips. Older wireless transmitters and receivers from Tam Valley Depot and Stanton Cab used the Linx ES series transmitter or receiver chip that only operated at 916.48MHz with slightly different specialized radio settings from the Airwire channels. I call this channel 17. In most but not all cases, these Channel 17 devices are interoperable with Airwire channel 16 @ 916.36MHz. Also, European versions of these older transmitters and receivers operated on 869.85MHz, and I call this Channel 18. Here’s my unofficial Table of channels and frequencies.
The ProMini Air has some features that may be of interest compared to commercial offerings. See the Comparison Tables below.
Airwire Receiver Compatible?
Power Level Adj
Any DCC Input
TVD DRS1 Transmitter
Ch 17 (or 18(E))
NCE Gwire Cab
ProMini Air Transmitter
Comparison of wireless DCC transmitters
In fairness, the manufacturers of the Airwire T5000, the NCE Gwire Cab, and the S-Cab Throttle hand-held throttles never intended to interface to standard DCC throttles. But, as Tam Valley Depot recognized, it is advantageous to use any device that supplies DCC to the rails and transmit this DCC wirelessly to DCC-compatible receivers.
A notable limitation of the Tam Valley Depot DRS1 transmitter is that it does not provide DCC “IDLE” packets that the Airwire receivers require unless the original DCC throttle does so (most, if not all, do NOT). Also, the Tam Valley Depot DRS1 transmitter can only broadcast on one channel (near Airwire Channel 16, which I have designated Channel 17 @ 916.48MHz).
Shown in the Table below are the comparisons for wireless DCC receivers.
Channel Auto Search
TVD DRS1, MK IV
S-Cab LXR receiver
None or On
Comparison of wireless DCC receivers
The most notable difference among the receivers is “DCC filtering,” i.e., how the receiver behaves when losing a valid RF DCC signal.
When the TVD DRS1 or QSI Gwire receivers lose a valid RF signal, they output random pulses to the decoder. I have discussed the pros and cons of this in another post.
On the other hand, the Airwire CONVRTR outputs constant-level DC when it loses a valid RF signal or doesn’t receive enough DCC “IDLE” packets. Again, as discussed in another post, the DCC decoder may halt the locomotive dead in its tracks when it receives this constant-level DC, which may or may not be what the user wants.
The Airwire CONVRTR performs “DCC filtering” by periodically evaluating whether it’s receiving DCC “IDLE” pulses. So, even if a stream of completely-valid DCC packets are received, but there are few or no “IDLE” packets, the Airwire CONVRTR will become inactive and output constant DC to the decoder.
These characteristics of the Airwire receivers are why Tam Valley DRS1 transmitter will usually NOT work with Airwire CONVRTR receivers because the DRS1 will not insert additional DCC “IDLE” packets! The Tam Valley Depot DRS1 transmitter is a passive participant: if the input DCC throttle doesn’t produce frequent DCC “IDLE” pulses, then the Tam Valley Depot DRS1 will not transmit frequent DCC “IDLE” pulses.
Stanton designed the S-Cab LXR-DCC receiver specifically for the S-Cab Throttle’s intermittent DCC transmissions. Like the Airwire CONVRTR receivers, the LXR outputs a constant DC voltage when a valid RF signal is lost.
Via OPS mode (by default at address 9901), you can reconfigure ProMini Air’s output behavior when a valid RF signal is lost. The first option (CV246 -> 0) selects the output of DCC IDLE messages (which the decoder is “comfortable” with, rather than random pulses that might “confuse” the decoder). The second option (CV246 -> 1) selects the output of constant-level DCC.
This reconfigurability makes the ProMini Air receiver a versatile wireless DCC receiver. The ProMini Air receiver’s RF DCC detection technique is more sophisticated than Airwire’s. The ProMini Air receiver detects how long it’s been since it received ANY valid DCC packet. And, after a preset time interval (which is reconfigurable via OPS mode, changing the CV252 value in 1/4 second multiples), the ProMini Air receiver will output either the DCC “Idle” messages (DCC filtering “off”) or output constant-level DC (DCC filtering “on”). When DCC filtering is “on,” and there is no valid RF signal, the DC level output is reconfigurable via an “OPS” mode setting of CV248 (-> 1 for positive DC, -> 0 for 0V DC) at the ProMini Air’s DCC address.
Once a valid RF signal is received again, the ProMini Air receiver detects this condition. It outputs these valid DCC packets to the “DCC amplifier” that sends “track-level” DCC to the decoder.
Another important feature of wireless DCC receivers is Channel selection and searching.
The TVD DRS1 receiver will “listen” on a fixed Airwire Channel if you set some jumpers. Otherwise, the DRS1 will automatically search the Airwire Channels for a valid RF signal if you do NOT insert the jumpers. This behavior may or may NOT be a good idea if multiple wireless DCC transmitters transmit simultaneously on different Channels. And, changing the Channel selection behavior (fixed channel or auto-scan) requires physical access to the receiver to connect or disconnect jumpers.
On startup, the Airwire CONVRTR “listens” for a valid RF signal on its “startup” channel (which is reconfigurable by accessing a CV using the wireless throttle’s “OPS” mode). If the CONVRTR finds no valid RF signal after a given time, the CONVRTR will switch to Channel 0. This behavior is usually a good idea.
Like the Airwire CONVRTR, on startup, the ProMini Air receiver will “listen” for valid RF on its “startup” Channel (default, 0) stored in EEPROM memory. This startup channel is changeable using the transmitting throttle’s “OPS” mode by setting CV255 to 0 through 18 at the ProMini Air transmitter’s DCC Address (default, 9901). Like the TVD DRS1 receiver, if the ProMini Air does not find a valid RF signal on its startup channel, the ProMini Air receiver will then auto-scan Channels 0(A), 18(E), 17(S), 1(A), 2(A), …, 16(A) (in that order) for valid RF signal (A=Airwire channels, E=European channel @869.85MHz, S=S-Cab Channel @ 916.48MHz). This scan sequence guarantees that a wireless DCC transmitter (if one is available) is selected, but only if the ProMini Air does NOT find a valid RF DCC signal on its startup Channel from another wireless DC transmitter.
If the ProMini Air receiver finds no valid RF DCC signal on any Channel on startup, it will select Channel 0 and wait for a valid RF DCC signal. Also, upon reset, the ProMini Air’s Channel search process will be unchanged: trying the “startup” channel stored in EEPROM memory, then try auto-searching Channels, and if all else fails, wait on Channel 0.
So, in summary, we are offering the ProMini Air DCC transmitter and receiver to provide a low-cost alternative with a set of features not entirely found in commercial offerings.
You are provided with a few additional components when buying a ProMini Air receiver or transmitter. In the case of the ProMini Air transmitter, we include a simple “DCC Converter” PCB that converts DCC output to the track into Ground, 5V power, and 5V logic DCC. These outputs supply the ProMini Air transmitter with power and DCC packets to transmit, so no additional power supply is necessary.
For the ProMini Air receiver, we include a low-cost “DCC amplifier” that converts the ProMini Air receiver’s 5V logic DCC back to DCC. The onboard DCC decoder would, in its typical configuration, pick up from the track (again, discussed in detail below). The ProMini Air receiver can be powered directly from the battery or a small external 5V power supply.
This modularity keeps costs down, allows for easy replacement of components rather than the entire assembly, and enables the use of commodity components less susceptible to supply-chain disruptions.
And, you will need an antenna of your choosing! I love antennas, but your antenna requirements are too diverse to offer a “one size fits all” antenna solution. We provide an FCC/IC-approved Anaren “whip” antenna that connects to the U.FL connector on a 10-pin transceiver daughterboard. This antenna should work well for most transmitter applications and is FCC/IC approved for “intentional radiators.”
For the ProMini Air receiver, some can use the small whip antenna without modification; others will need to run an antenna connecting cable to a small, externally-mounted antenna. We discuss several excellent antenna options below.
The definitive source of information for the ProMini Air transmitter and receiver is available here.
We no longer offer the ProMini Air as a kit.
The ProMini Air Tx and Rx are provided with the firmware already loaded. These instructions are only for advanced users who want to update the firmware.
The source code is available from this GitHub site. Locate the source code in a directory where the Arduino IDE can find it. You should retain the subdirectory structure to access the “project” with the Arduino IDE.
Depending on whether you want a transmitter or receiver, edit libraries/config/config.h to select the “define” for the transmitter or receiver.
For a receiver (Rx), config.h should look like this:
// #define EU_434MHz
/* For World-Wide 2.4GHz ISM band*/
// #define NAEU_2p4GHz
// Set Transmitter or Receiver
/* Uncomment ONLY ONE #define*/
/* For receiver*/
/* For transmitter*/
// #define TRANSMITTER
// Set the default channel for NA/EU 900MHz only!
/* Uncomment ONLY ONE #define*/
/* To set the default to NA channel 0 for 869/915MHz ISM bands only!*/
/* To set the default to EU channel 18 for 869/915MHz ISM bands only!*/
// #define EU_DEFAULT
// Set the transceiver's crystal frequency
/* Uncomment ONLY ONE #define*/
/* For 27MHz transceivers (e.g., Anaren 869/915MHz (CC110L) and Anaren 869MHz (CC1101) radios)*/
// #define TWENTY_SEVEN_MHZ
/* For 26MHz transceiver (almost all other radios, including Anaren 433MHz (CC1101), 915MHz (CC1101), and 2.4GHz (CC2500) radios)*/
If you want a transmitter (Tx), then config.h should be
// #define EU_434MHz
/* For World-Wide 2.4GHz ISM band*/
// #define NAEU_2p4GHz
// Set Transmitter or Receiver
/* Uncomment ONLY ONE #define*/
/* For receiver*/
// #define RECEIVER
/* For transmitter*/
// Set the default channel for NA/EU 900MHz only!
/* Uncomment ONLY ONE #define*/
/* To set the default to NA channel 0 for 869/915MHz ISM bands only!*/
/* To set the default to EU channel 18 for 869/915MHz ISM bands only!*/
// #define EU_DEFAULT
// Set the transceiver's crystal frequency
/* Uncomment ONLY ONE #define*/
/* For 27MHz transceivers (e.g., Anaren 869/915MHz (CC110L) and Anaren 869MHz (CC1101) radios)*/
// #define TWENTY_SEVEN_MHZ
/* For 26MHz transceiver (almost all other radios, including Anaren 433MHz (CC1101), 915MHz (CC1101), and 2.4GHz (CC2500) radios)*/
Two further options are available. The first option selects the crystal frequency of the FCC/EC-approved transceiver: 27MHz (Anaren) or 26MHz (Ebyte). The second option specifies North American or European default use.
After you complete downloading the firmware into the Pro Mini, please do not remove the USB connection from the computer until the “secondary” LED, which indicates attempted communication over the SPI (serial peripheral interface), flashes on (it will not be bright). This step ensures you properly initialize the EEPROM!
You load the firmware into the Pro Mini MCU using an “AVR ISP,” such as the Sparkfun Pocket AVR Programmer or a less-expensive clone. This “ISP” downloading mode will bypass and erase the bootloader to directly load the firmware into the Pro Mini MCU. On boot-up with the bootloader now erased, the Pro Mini MCU will almost instantly supply “5V logic DCC” to the DCC amplifier, which provides the DCC decoder with standard DCC waveforms. There is no “boot-up DC” and no need to set CV29, bit2=0. (I set it anyway.) With this solution, all DCC decoders I’ve tried (ESU, Zimo, MTH) startup without the “boot-up jerk.”
This “ISP” form of loading firmware is not as extensively used by folks using the Arduino IDE, but ISP loading is easily accessible within the Arduino IDE. The overly-brief method of ISP programming steps are the following:
Remove the transceiver daughterboard and the jumper (if inserted).
Connect the USBtinyISP (or other) Programmer (with power switch ON to supply 5V DC to the ProMini Air PCB while programming) to the 6-pin connector on the ProMini Air.
From the Arduino IDE, Select Tools → Programmer → “USBtinyISP” (or whatever ISP programmer you use).
Select the AirMiniSketchTransmitter sketch.
Select Sketch → Upload using a Programmer.
The Arduino IDE will compile the sketch and download the resulting firmware to the Pro Mini via the USBtinyISP, bypassing (and erasing) the bootloader.
Once the ProMini Air receiver or transmitter firmware is installed in the Pro Mini and inserted into the ProMini Air PCB, the ProMini Air is ready for integration!
To complete the integration of the ProMini Air receiver (Rx) or transmitter (Tx), you must establish several connections.
Overview of Connections
See the picture below for an overview of the connections to and from the ProMini Air. Which connections you use depends on whether the ProMini Air will act as a receiver (Rx) or a transmitter (Tx). THERE IS NO PROTECTION AGAINST INCORRECT BATTERY OR EXTERNAL POWER CONNECTIONS!!! You will destroy the ProMini Air immediately if you reverse the GROUND and POSITIVE POWER SUPPLY connection!
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.
The ProMini Air has several connections that provide AVR programmer, I2C display outputs, and 5V logic DCC inputs or outputs. See the photo below.
We will break down these connections for the ProMini Air receiver and transmitter in the following two sections.
Starting with the ProMini Air configured as a receiver (Rx), several options exist for providing power. The first option is to use external battery power and jumper the +5V and +5V (Battery) pins to use the onboard 5V regulator to provide board +5V supply.
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.
The ProMini Air receiver must connect to an external DCC amplifier that converts the 5V logic DCC from the ProMini Air receiver to DCC A/B that a DCC decoder requires. This DCC amplifier uses battery power and the inputs from the ProMini Air receiver to provide the power and DCC messages, coded as a bipolar DCC waveform, to the decoder for both power and DCC messages. These “DCC amplifiers” are usually medium to large amperage amplifiers that accept pulse width modulation (PWM) input to provide precision output control for electric motors. The maximum PWM frequency of these amplifiers is usually high enough (> 20kHz) to reproduce DCC packets accurately.
Depending on the particulars of your installation, the author will provide an appropriate DCC amplifier as part of your PMA Rx purchase.
Some DCC amplifiers have their specialized connector configurations, as shown below, for a GROVE-compliant amplifier.
Integration of the ProMini Air Receiver into a Locomotive
Of course, the real purpose of the ProMini Air receiver is to integrate it into a locomotive for wireless DCC control using an onboard battery as power. An excellent high-power (13A continuous) DCC amplifier may be purchased here, as shown below. This Cytron MD13S amplifier is the one we provide with the ProMini Air receiver unless determined otherwise for size constraints. You can successfully use more expensive high-amperage amplifiers (about $30 US as of 2020) found at Pololu here or here. These amplifiers are smaller (0.8″ x 1.3″) than the Cytron.
Now, let’s turn the ProMini Air used as a transmitter (Tx) of DCC messages from any DCC-compatible throttle.
The photo below shows the connections between an interface board that takes throttle DCC A/B inputs (“track” DCC) and rectifies these inputs to provide Ground and +5V power supply output. This “DCC Converter” PCB also “taps off” the DCC A input and converts it to a 5V logic DCC output suitable for the ProMini Air transmitter. These outputs provide the ProMini Air transmitter with Ground, +5V power, and 5V logic DCC input.
We provide the “DCC Converter” PCB as part of your PMA Tx purchase.
The user can change the ProMini Air transmitter’s Channel (Airwire channels 0-16, S-Cab channel 17, and EU channel 18) and Power Level (0-10) by setting the DCC throttle’s address to that of the ProMini Air transmitter’s (9900 by default). Then, using the throttle’s OPS mode, change the value of a configuration variable (CV255 for Channel: 0-16, and CV254 for Power Level: 0-10), exit OPS mode, and change the throttle back to the locomotive’s DCC address.
Receiver/Transmitter Antenna Connections
For the ProMini Air transmitter, we strongly urge you to use the FCC/IC-approved Anaren “whip” antenna supplied with the transceiver that is surface-mounted to a 10-pin interface daughterboard. This whip antenna/transceiver combination is FCC/IC-approved as an “intentional radiator.” You can purchase antennas for the ProMini Air transmitter online from many sites for experimentation purposes. For fixed installations of the ProMini Air transmitter, we suggest reputable products from Linx, such as their SMA one-half wave antennas with an internal counterpoise. You can find these antennas at Digi-Key, e.g., ANT-916-OC-LG-SMA ($10.55) and ANT-916-CW-HWR-SMA ($12.85). The former antenna has a slightly better gain (2.2dBi versus 1.2dBi) but is somewhat longer (6.76″ versus 4.75″).
For the ProMini Air receiver or the ProMini Air transmitter where a small, remotely-mounted antenna is needed, we again recommend Linx antennas such as the ANT-916-CW-RCS or ANT-916-CW-RAH.
The ProMini Air receiver or transmitter provides diagnostic outputs that are not required for operation but are helpful for troubleshooting or just for fun:
You can monitor the transceiver’s output (in Rx mode) or input (in Tx mode) on the output DIP pins described above.
“I2C” outputs can drive an inexpensive two rows 16 columns I2C LCD.
The ProMini Air software automatically searches for a valid LCD I2C address on boot-up. Please make sure you connect only ONE display to the ProMini Air.
You can also change the ProMini Air’s DCC address using the throttle’s “OPS” mode. For the transmitter, you use the DCC throttle that connects to the ProMini Air transmitter (by default at DCC address 9900 (previously 9000)). For the ProMini Air receiver, you use the wireless DCC throttle transmitting to the ProMini Air receiver (by default at DCC address 9901 (previously 9001)). The EEPROM permanently stores the changed address, but this new address is not operative until you power cycle the ProMini Air.
Configuration and Testing
We default-configured the ProMini Air receiver and transmitter to operate on Airwire Channel 0. This default can be changed by setting the DCC address to 9901(Rx)/9900(Tx) (the default, which can be changed as described in the Users Manual) to access the ProMini Air transmitter and in OPS or Programming-on-the-Main (POM) mode setting CV255 to the desired channel. Valid channels are 0-17 for North American operation or Channel 18 (869.85MHz) for European operation.
Should the ProMini Air receiver fail to detect valid DCC packets on its default channel during startup, it will cycle through all Airwire Channels to find a Channel producing valid DCC packets. If this cycling fails to find a valid Channel, the ProMini Air receiver will change to Channel 0 and wait for a valid RF DCC signal. This channel change is not permanent, and on a restart, ProMini Air will revert to its default channel.
Several other configuration options are available through “OPS” mode programming, as described in the ProMini Air Users Manual.
We strongly urge the user to test the ProMini Air before the final deployment. At the least, an inexpensive I2C LCD can be purchased here or here (and numerous other locations) to gain some insight into the ProMini Air’s state. This display is particularly beneficial when using the ProMini Air as a transmitter.
Examples of Testing (Advanced)
This section is only for the advanced or adventurous. In the examples below, the Yellow waveform is the signal from/to the RF transceiver for Rx/Tx, respectively. The blue waveform is one channel of the resulting DCC (Rx) sent to the decoder or DCC received from the throttle via wireless transmission (Tx).
The photo below shows the ProMini Air operating as a receiver. Of course, an RF transmitter wirelessly sends DCC packets. This transmitter may be a dedicated wireless DCC throttle, such as the Airwire Tx5000. Or, it may be a transmitter that converts standard “track DCC” to wireless DCC, such as the Tam Valley Depot DRS1 transmitter or the ProMini Air used as a transmitter (as discussed in the next section)!
On the LCD, “My Ad: #” is the DCC address of the ProMini Air itself. The “(L)” means “long” address. Displayed on the second line is the Channel number and whether DCC “filtering” is “off” (Filter: 0, as shown) or “on” (Filter: 1).
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.
These two photos show the ProMini Air’s transceiver and DCC amplifier output when valid RF DCC is received and no valid RF DCC is received. DCC filtering is off, so the PMA outputs DCC Idle messages. The Tam Valley Depot and Gwire receivers simply reproduce the random pulses received by the transceiver.
The user can reconfigure the ProMini Air receiver using the throttle’s “OPS” mode. Setting the wireless throttle DCC address to 9901 now shows that the Msg address (“Msg Ad: #”) matches the ProMini Air receiver’s address (“My Add: #”).
Change CV246 to “1” in OPS mode, which will turn “on” the ProMini Air receiver’s DCC filtering.
The display now shows that DCC filtering is “on.”
Exiting OPS mode and changing the throttle to the locomotive’s address now shows an updated “Msg Ad: #” with DCC filtering “on.”
Below is the transceiver’s and DCC amplifier’s DCC output when transmitting valid RF DCC.
If we turn off the wireless transmitter/throttle sending RF DCC, now the transceiver outputs random pulses (yellow). Since filtering is “on,” the ProMini Air receiver firmware detects “bad” waveforms that do not appear to represent a valid DCC packet. The ProMini Air receiver then outputs a constant-level signal that causes the DCC amplifier to output a high level on DCC A (blue) and zero Volts on DCC B (not shown). This behavior is similar the that of the Airwire receivers. However, the detection mechanism for Airwire receivers is simply the lack of a sufficient frequency of DCC “IDLE” packets, not an analysis of the transceiver’s pulse train.
Repeating the process of changing the wireless throttle’s DCC address to 9901, going into “OPS” mode, changing CV246 to “0”, exiting “OPS” mode, and changing back to the locomotive’s DCC address will now set DCC filtering to “off.”
So, when we turn off the wireless DCC throttle/transmitter, the DCC amplifier’s output (blue) again displays the DCC IDLE messages output by the ProMini Air receiver.
We now turn our attention to testing when using the ProMini Air as a transmitter.
The display will alternate between showing the ProMini Air transmitter’s DCC address (“My Ad: #”) and the transmitted DCC packet’s DCC address (“Msg Ad: #”). The transmitting Channel (“Ch: #”) and Power Level (“PL: #”) display on the second line.
Below is an oscilloscope trace of the input DCC from the throttle (blue) and the DCC transmitted by the RF transceiver on the ProMini Air transmitter. Since the wireless DCC must keep the Airwire RF receiver “happy” with numerous DCC “IDLE” packets, the ProMini Air transmitter evaluates the incoming DCC from the throttle. When the throttle outputs frequent, redundant DCC packets, the ProMIni Air transmitter occasionally inserts DCC “IDLE” packets instead of one of the redundant packets. So, the input DCC and the transmitted DCC will not precisely match. Since DCC throttles send many redundant DCC packets, the locomotive will receive sufficient DCC packets to operate correctly.
You can reconfigure the ProMini Air transmitter by setting the throttle’s DCC address to 9900 (which can be changed) and then going into the “OPS” mode to set configuration variables (CV) to new values.
Once we have changed the throttle’s DCC address to 9900, note that the message address (“Msg Ad: #”) now matches the ProMini Air’s address (“My Ad: #”).
For example, while in OPS mode, changing CV246 to “6” will reset the ProMini Air transmitter’s Power Level to 6, as indicated by the display shown below.
After exiting the “OPS” mode, we see that the display reflects the new Power Level (“PL: #”).
Changing the throttle’s DCC address back to the locomotive’s address will sometimes show “Msg Ad: 255(S)”, which means that the ProMini Air transmitter sent out a DCC “IDLE” packet to make the Airwire receiver “happy.”
A display refresh (every 4 seconds) will most likely display the locomotive’s DCC address, 1654. The “(L)” means “long” address.
Conclusion and Further Information
The ProMini Air is an inexpensive and hopefully fun introduction to wireless DCC control of your model railroad locomotive!
Please contact the author on this site to purchase the ProMini Air receiver or transmitter. The cost for the ProMini Air transmitter or receiver (with their additional DCC Converter or DCC amplifier and wiring harness) is only $50.00 + shipping.
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. However, Airwire hand-held transmitters WILL NOT WORK with S-Cab receivers at either Channel 16 or 11. And Airwire receivers WILL NOT WORK with the S-Cab Throttle.
I successfully determined RF settings that allow the ProMini Air transmitter (PMA Tx) to operate with the S-Cab receivers (such as the LXR-DCC). So I have now added an S-Cab compatible Channel 17, and this addition 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 ProMini Air receiver (PMA Rx) with just a tiny wrinkle to establish communication (more about this below).
You should note that the ProMini Air interoperability is with S-Cab products operating at 916.48MHz. Contact the author should you need this interoperability at 918.12MHz.
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 ProMini Air transmitter.
S-Cab Receiver Interoperability with the ProMini Air Transmitter
I used the S-Cab LXR-DCC receiver for interoperability testing with the PMA Tx. See the photo below.
[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 to the LXR-DCC receiver successfully. 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.
There’s not much more to say about using the ProMini Air 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 ProMini Air 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 then back on while sliding the S-Cab’s speed control up and down.
The video below demonstrates that the PMA is successfully receiving 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.
I have updated the ProMini Air 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.
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 that 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 ProMini Air transmitter (PMA Tx) on Airwire Channel 16 (916.37MHz). So, I was optimistic that this decoder would work the PMA Tx.
Using the ProMini Air 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.
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).
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 are easy to observe.
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.
My default DCC amplifier solution is the Cytron 13A DC Motor Driver MD13S, available on Amazon and other sources. The MD13S provides more output (13A continuous) than almost any amplifier available for dead-rail use. However, the Cytron’s size (33mm(W) x 61mm(L) or 1.3″ (W) x 2.4″ (L)) may be an issue for some applications.
In searching for a more miniature DCC amplifier for the ProMini Air (PMA) receiver, I came across the Adafruit DRV8871 DC Motor Driver Breakout Board (1″ (L) x 0.8″ (W) x 0.4″ (H)) with a maximum output of 3.6A: good specs in a small package.
You can obtain this device from the following sources:
However, the DRV8871 cannot be used “out of the box.” Some slight modifications are necessary, as described next.
The DRV8871 must have two opposite-polarity inputs. The PMA’s +5V logic DCC output is input to the DRV8871 on IN1. To provide an inverse input on the DRV8871’s IN2 input, I used a 2N2222 “inverter” to invert the PMA’s +5V logic DCC output. The photos below show how this inverter is constructed and interfaced with the DRV8871.
First, I added a 30K resistor parallel to the board-mounted 30K current-sense resistor to drop the total current sense resistance to 15K, allowing the DRV8871 to produce its maximum current of 3.6A.
Next, I soldered a 1K resistor, RB, to a shortened lead on the transistor Base of a 2N2222 NPN transistor. Then I soldered (see picture below), from bottom to top, the transistor Collector (IN2), resistor RB (IN1), and transistor Emitter (GND) in place with the transistor legs soldered flush with the bottom of the PCB. I passed resistor RB’s free end through the IN1 hole, back out, and soldered it to IN1. I soldered the Bk (PMA GND) to the emitter leg, Ye (PMA +5V logic DCC) is soldered to the resistor RB’s extended lead connected to IN1 and soldered Wh (PMA +5V) to resistor RC (1K), whose opposite end I soldered to the collector’s leg. That’s it for the modifications!
A bottom view shows how RB connects to IN and Ye (PMA +5V logic DCC).
Next, I wrapped the DRV8871 PCB with a large diameter heat shrink applied over the input components. This arrangement provides a compact DCC amplifier capable of delivering 3.6A.
Below is an oscilloscope trace of the input and output of the DCC amplifier. As you can see, the amplified waveform (blue) matches the input waveform (yellow) well.
Below: The amplified Track Right (blue) and Track Left (yellow) output by the DRV8871 demonstrate proper opposite-polarity DCC.
Update 06 Nov 2022: We have now modified the ProMini Air receiver firmware to directly output two opposite-polarity 5V DCC outputs (DCC +/-) to drive the DRV8871 directly. If you receive a PMA Rx/DRV8871 combination, we will set the ProMini Air receiver’s firmware to CV253 to 0 (zero) so that the DCC +/- outputs are opposite polarity.
The Adafruit DRV8871 DC Motor Driver Breakout Board provides the following advantages:
small size: 1″ x 0.8″
reasonable cost: less than $10 US directly from Adafruit
adequate power: 3.6A max
Only a small amount of modification is required to make the DRV8871 usable with the ProMini Air receiver to provide a compact DCC amplifier for dead-rail applications. I hope this offering provides you with more amplifier options!
The modified DRV8871 is available directly from the author, with a modest markup from the unmodified DRV8871’s cost.
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 (ProMini Air). 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.
Finally, a ProMini Air 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 ProMini Air.
The ProMini Air 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 are not likely to respond correctly to wirelessly-transmitted DCC. This feature makes the ProMini Air 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 ProMini Air wireless transmitter (via the DCC converter that provides the ProMini Air with 5V power and logic-level DCC) rather than to actual tracks – that’s all!
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, which is a Z-5 with a ProMini Air 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 ProMini Air receiver connected to a LokSound 4 L decoder at DCC address #4292. Once you turn on track power (which sends DCC to the ProMini Air transmitter instead of the tracks), the DCS52 throttle will start interlacing DCC commands for locomotives #5000 and #4292, sent out wirelessly by the ProMini Air transmitter. See the photos below that demonstrate this interlacing.