The DMC-1 – An Inexpensive Controller for Small DC Motors

Mark A Andrews, Basic Author
About a year ago, I decided to build a robotic platform to perform some experimentation with various robot guidance systems. My objective was to get the platform up and running with a minimum of fuss. To do this I decided to use as many off-the-shelf components as possible.

For my microcontroller, I decided upon the Parallax BS2. I already had one lying around, so the cost was moot. I’m not against other controllers and should my experimentation prove fruitful, the resulting project will undoubtedly need a larger, more capable controller.

My mobile platform was a recycled remote control vehicle liberated from Radio Shack many years ago. This platform has track drive with each track driven independently by a separate DC motor. As this is a small platform, I could comfortably keep my power requirements to around 2 amps max at 9 volts. Keeping this in mind, I first decided to build a couple of H-Bridge circuits out of discrete components. I certainly have what I needed in my junk box to do so. However, my objective was to use off-the-shelf components. I reconsidered and decided to find an affordable, pre-built alternative.

The Basic Stamp has quite a few usable I/O lines, but I really wanted to keep as many free as possible for my guidance experiments. I decided that the best course was to find an intelligent controller which I could command serially. I searched the usual sources, but I couldn’t find one I thought was reasonably priced. I always buy in minimums of two. That way, just in case I destroy one, I have a spare. The minimum price I found from the usual sources was $30, so two were going to cost $60 – too much!

DMC2W-241x166[slider title=”DMC-1 Specs” nstyle=”text-align:left; font-weight:normal”]

  • Support dual interface: standard 100Kbps I2C and Serial TTL
  • 2400, 4800, 9600, 19200 Serial Interface Baud Rate controlled via software
  • 2 DC motor control
  • Motor supply voltage: 2.5 – 15 V
  • Motor current: 1.2A (3A peak) each
  • Logic supply voltage: 3 – 5 V
  • PWM resolution: 8 bit
  • PWM frequency: 20 KHz
  • Up to 20 controllers may be connected to I2C or Serial bus
  • Small form factor: 1.35″ x 0.65″ (34mm x 17mm)

That’s when I turned to eBay. Lo and behold, my search was successful. I found the DMC-1 Serial Dual Motor Controller.

The DMC-1 is a dual motor controller from IMS,LLC that can be controlled with standard 5V TTL signals at 2400 – 19200 baud or by I2C protocol. Each controller can handle 1.2A per motor continuous (3A peak) at 2.5 – 15V. The best part is the price: $12.95 each!.

When I received my controller, I was shocked at the size. This thing is small! So small that I was worried it wouldn’t be able to withstand a continuous current of 2.6 A (two motors).

First, I read the documentation. The DMC-1 has nine connection pins. A positive and negative connection for each of the two motors consumes 4 pins.  SCL and SDA pins for communicating with the controller using serial TTL or I2C accounts for two. One pin for 5V logic supply, one pin for the 2.5 – 15V motor supply and one pin for ground rounds out the complement of nine.

Connecting the DMC-1 to my BS2 and the motors on my platform was a piece of cake. Plugging in the controller to my breadboard, I used the regulated 5V supply from my BS2 protoboard to supply the logic. I connected the positive and negative leads from the motors to the appropriate rows on my breadboard. I used a 9.6V RC battery to supply the motors. I selected two pins from my BS2 to communicate with the DMC-1 and connected a common ground for the controller and motor supply. Now I was ready to communicate with the controller.

Although the manual is more than adequate, IMS, LLC supplies a sample BS2 control program to get you started. I fired up the Basic Stamp editor, loaded the program, made a few adjustments on pin assignments, compiled the program, downloaded it to the stamp and it worked!

Of course, I had to tweak the code for my application, but it was easy to do and the controller worked flawlessly. Earlier I said I was worried that the controller might need a heat sink. I am happy to report that during my use, the controller doesn’t even get warm, so I think this was an unnecessary concern.


The DMC-1 is a well made, inexpensive, flexible dual motor controller for small platforms. If you are in need of just such a controller, I recommend you check it out. It will certainly take more time to build an H-bridge from your junk box and you won’t have the flexibility of a serial controller. I haven’t had the opportunity to test the I2C capability, but plan to do so in the not to distant future. When I do, I’ll post about my experience.


About Mark Andrews

Software Engineer, Geek, Family Man
This entry was posted in Robotics and tagged , . Bookmark the permalink.