DRV8833 and torque


I have a problem with the DRV8833 driver. I want to use a 3.6v (6Nm torque) screwdriver motor that uses an 18650 battery (3.7v and 2000mAh capacity). With the original plate of the screwdriver I move the mechanism I want to move perfectly, but using the same motor and battery with the DRV8833 I don’t move it (in fact I stop it with my hand).

Measuring with the voltmeter I see that the voltage and the current that reaches the motor are similar in both cases. I’m sorry for my ignorance (I’m new to this) and I understand that it will be the fault of the driver… but what is the reason that it loses so much torque with the DRV8833? What driver would be worth it? I have tried with other drivers (L298N and TB6612) and the same thing happens.


Does the motor move at all in your setup with the DRV8833, or does it move but can be stopped with less torque than you expect? Can you post some pictures of your setup that show all of your connections along with the program you are using to test the driver?

You might also try checking if your motor performs as expected if you just connect it directly to your battery (i.e. remove the motor driver from the system).

- Patrick


Thanks @PatrickM.I will try to give all the information. I put some photos of the original circuit of the screwdriver and mine with some measurements.

This is the original circuit with voltage and current measurement. Impossible to stop the engine by hand.

This is mine with DRV8833 and measurements. I stop it with my hand. In fact (and I really don’t understand this) there are times when it makes a noise but the motor doesn’t work. This happens normally, but when I measure the current by putting the voltmeter in the circuit, it works.

The resistance of the motor stopped and disconnected gives me 1.6 ohm.

The motor installed with the battery only works well and has the original torque (6Nm), the problem is whenever I put a driver like the DRV8833 on it.

I now put the part of the code that establishes the control pins. It is javascript (moddable library) and works perfectly with one and two engines. The signal is BLE from one ESP32 to the other and tested with two smaller motors it works perfectly (turns, backwards, forwards and stop).

The pins that act in this case are 19 and 21. The debug console correctly shows the signal when I activate them. I also measure in the DRV8833 and the signal arrives from both the power supply and the activation of the pins. Likewise in both outputs.

import PWM from "pins/pwm";
import Digital from "pins/digital";

let enaIz = new PWM({ pin: 12 });
let in1Iz = new Digital(14, Digital.Output);
let in2Iz = new Digital(27, Digital.Output);

let enaDr = new PWM({ pin: 18 });
let in3Dr = new PWM({ pin: 19 });
let in4Dr = new PWM({ pin: 21 });

class Motores {
	IzquierdoFrente() {

	IzquierdoAtras() {

	DerechoFrente() {

	DerechoAtras() {

	Paro() {
		// enaIz.write(0);
		// enaDr.write(0);


Please keep in mind that I am new with Pololu products (I bought it thinking it was a quality problem with the driver it had) and there may be something basic missing, but as much as I read the documentation I don’t see the fault and otherwise it works, my real problem is torque loss.

One possible issue is that breadboards are not designed to handle high currents. Can you try connecting wires directly to the headers on your motor driver instead of going through the breadboard to see if that makes a difference?

It also seems your motor is likely quite overpowered for the DRV8833. Our DRV8833 carrier can handle 1.2A per channel continuously without additional cooling, it seems like your motor is drawing around 1A just while free running. It could be drawing many times that amount under load or whenever it starts up from rest. Could you post a datasheet for your motor or a link to where you got it?

- Patrick