No speed control (only max) with MC33926


Got weird problem with MC33926. I have soldered it as a shield for Arduino Uno (and double checked the soldering few times). I have a bench power supply (set to 12VDC) connected to motor power (GND & VIN) and a two computer fan motors (2 pin wire) connected to M1 (M1A & M1B).

Here my Arduino program (Pololu example simplified)

#include "DualMC33926MotorShield.h"
DualMC33926MotorShield md;
void setup()
  Serial.println("Dual MC33926 Motor Shield");
void loop()
    Serial.print("M1 current: ");

The motor run nicely with md.setM1Speed(400) but anything below 390 makes motor to stall down. I have tried the fan motors directly from bench power supply and it can run from 3.3 volts all the way to it’s max 12volts.

If I put volt meter to M1 output I can see that the output voltage changes from zero to 12V depending on md.setM1Speed. For example md.setM1Speed (150) gives M1 output 4.5Volts but motor does not rotate. At this setting the bench amp meter shows 0.03A and MC33926 shows 0 Amps.

The Arduino is Genuino and speed controller is brand new. What I am missing here? Seems that voltage is there but current is missing if I lower the speed setting from max.

Must be something trivial that I overlook or faulty MC?

Thank for all help

Hello, Tapio.

It could be that your computer fan motors have additional logic on them that does not work well with the output of the MC33926 driver. Also, by default, the H-bridge on this shield is configured for drive-brake operation, which might also be contributing to why it is not working well to control your computer fan motors. In general, it would probably be more appropriate to use a single MOSFET to control computer fan motors like the ones you are using.


Thanks for quick reply Jonathan,

The stuff that you wrote make sense, just wish I have known this before I purchased this 40usd controller from local shop yesterday since is seems to be useless for my project now. I think they are not going to accept it back since it has soldered to uno shield. Dang,