Two things to settle before you solder · 04 of 11

Which pad is OUT1

On both motor terminals the upper pad is OUT1. That single fact decides whether two motors wired identically drive a chassis forward or spin it on the spot, and the board prints it on both faces.

The same pad order on both terminals

With the component side up and the header at the bottom, Motor A is the terminal on the left edge and Motor B the one on the right. On both, the upper pad is OUT1 and the lower pad is OUT2. AIN1 drives AOUT1, BIN1 drives BOUT1.

That consistency is what causes the problem. Wire two motors the same way, red to the upper pad on each, and they receive the same drive and turn the same way, which on opposite sides of a chassis is a spin rather than a drive.

The upper pad is OUT1 on both terminals
both wired the same
How the two motors are wired
Command sent
forward, both channels
Motor A
CW
Motor B
CW
Identical wiring gives identical rotation. On opposite sides of a chassis that is a spin, not a drive. Nothing is wrong with the board and nothing is wrong with the code.

Fix it in copper, not in code

Swap the two leads on one motor. That is the entire fix, and it is the one that stays true when somebody else picks up the project. With screw blocks fitted it is two screws.

The alternative is a negated channel in software, which works and then misleads every later reader of that file. It also breaks the moment the chassis is rewired by someone who assumed the two channels behaved alike.

Reading it with the blocks on

The top's AOUT1 and BOUT1 are under the screw blocks once they are fitted. The back is not.

The back of the DRV8833 board. On the left edge a pair of motor pads labelled B, with a 1 beside the upper pad and a 2 beside the lower. On the right edge a pair labelled A, also with 1 above 2. VM and GND are printed beside the power pads at the top, and SLP MUST BE HIGH TO ENABLE IC runs across the bottom above the header pads.
From the back, A is on the right and B on the left, because the board is turned over. On both, 1 is the upper pad and 1 is OUT1.

The pads go through the board, so the hole beside a 1 on the back is the hole marked AOUT1 or BOUT1 on the front. Turn the board over whenever you need to check, with the blocks on or off.

When it does not work

Both wheels turn the same way

That is the expected result of wiring both motors the same way, because both terminals put OUT1 on the upper pad. Swap the two leads on one motor. Nothing is wrong with the board and nothing is wrong with the code.

Fixing it in software feels easier

It is, once. It is a sign flip that whoever reads the code next has to hold in their head on every line that touches channel B, and it stops being true the day somebody rewires the chassis. Swap the wires.

The terminal blocks are on and I cannot see the labels

Turn the board over. The back prints 1 above 2 beside each motor's pads, and 1 is OUT1. It is mirrored from the back, so A is on the right, but the 1 and the 2 are beside the same holes the leads go into.

Where this goes next

One supply pin, a window with two edges, and a nominal 12 V battery pack that is already outside it before you plug anything in.

The only supply

Edit this page — content/books/drv8833/which-pad-is-out1.mdx

Community

Questions about this product

See what other owners have asked, and read their solutions.

Ask a question ↗

DRV8833 Dual Motor Driver

Loading discussions…

Discuss this article

Ask about this page. The answer stays here, on the page it belongs to, for whoever hits the same wall next.

Browse Modules and blocks on the forum