A Smaller DCC Amplifier: The AdaFruit DRV8871

Introduction

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

Modifications

Update 04 Jan 2023: These modifications are no longer necessary with updated versions of the ProMiniAir receiver. There are now 4 connections between the ProMiniAir receiver and the DRV8871:

  • PMA Rx V- <-> DRV8871 GND
  • PMA Rx V+ <-> DRV8871 VM
  • PMA DCC- <-> DRV8871 IN1
  • PMA DCC+ <-> DRV8871 IN2

The PMA receiver (default DCC address 9901) CV253 = 0, turn OFF locked-antiphase) via OPS mode.


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!

Modifications to create opposite polarity inputs

A bottom view shows how RB connects to IN and Ye (PMA +5V logic DCC).

Bottom view of modifications

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. 

The product in use

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.

Comparison of the ProMiniAir receiver’s input (yellow) to the DRV8871’s and the DRV8871’s DCC Track Right output (blue) to the DCC decoder

Below: The amplified Track Right (blue) and Track Left (yellow) output by the DRV8871 demonstrate proper opposite-polarity DCC.

The DRV8871’s Track Right (blue) and Track Left (yellow) outputs demonstrate proper opposite-polarity, full voltage DCC delivered to the DCC decoder.

Update 06 Nov 2022: We have now modified the ProMiniAir 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 ProMiniAir receiver’s firmware to CV253 to 0 (zero) so that the DCC +/- outputs are opposite polarity.

The ProMin Air receiver now directly outputs opposite-polarity 5V DCC outputs (DCC +/-) for the DRV8871 (CV253 = 0)

Conclusion

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