Part

Motor driver, L9110S

Two tiny bridges on one supply. Each output follows its input, and no coast: equal inputs brake.

See every part
  • 10 pins
  • In 5 projects
Drawn live by the editor's own code, at the size you see it.
At a glance

The Motor driver, L9110S in brief

What it is, and where it sits on the bench.

The L9110S module is the cheapest motor driver there is and the one in the Pico kits and the small two-wheel robot kits. It is a small blue board with two L9110S chips, one per motor, and each chip is two push-pull outputs, one per input, which together make an H bridge. There is no enable pin and no separate motor supply: VCC runs the chips and the motors, from 2.2 V to 6.5 V. The Mokxi model follows the UMW datasheet. Each output follows its own input, so one high and one low turns the motor one way, the opposite pair the other way, and equal inputs brake, because the chip has no coast. A low input is at most 0.25 of VCC and a high at least 0.7 of it, the inputs have no pull-downs, and the bridges drop about 1 ohm a side. With a battery on VCC the motor’s current really comes out of the pack. The 800 mA rating and the flyback diodes are not modeled.

Family
Outputs
Pins
10
Pins

10 pins

Named as the editor names them, so a wire lands where you expect it.

Pin
What it does
BIA
Motor B's two inputs, printed B-IA and B-IB on the board.
BIB
Motor B's two inputs, printed B-IA and B-IB on the board.
GND
Ground.
VCC
Supply for the chips and the motors, 2.2 V to 6.5 V.
AIA
Motor A's two inputs, printed A-IA and A-IB.
AIB
Motor A's two inputs, printed A-IA and A-IB.
OB1
Motor B.
OB2
Motor B.
OA1
Motor A.
OA2
Motor A.
How to use it

How to use the L9110S (HG7881) motor driver

The project uses no board at all, so the truth table is plain. A four-AA pack, 6.4 V fresh, is joined to VCC and GND. Two slide switches each connect one input, AIA or AIB, between the pack’s minus and plus. A motor sits across OA1 and OA2. Up on A-IA and down on A-IB turns it one way, the reverse the other way.

Equal inputs, both up or both down, brake the motor hard. There is no coast on this chip, which surprises people used to the L298N. For speed, put analogWrite on one input and hold the other low, and the motor is driven and braked in turn. In reverse, the PWM input is inverted because the other output is now high.

Two limits catch most builders. The chip is rated to 6.5 V and 8 V absolute maximum, and past that the outputs are dead in the model, though listings often say 12 V. And a high must be at least 0.7 of VCC, so on a 6 V supply a 3.3 V board’s HIGH is not a high. An unwired input draws almost nothing and the model leaves that output off rather than guess.

Part pin
Board pin
VCC
Pack plus (2.2 V to 6.5 V)
GND
Pack minus
AIA
Switch 1, between pack minus and plus
AIB
Switch 2, between pack minus and plus
OA1, OA2
The two motor leads

A 3.3 V board such as an ESP32 or a Pico drives it only if VCC is about 4.7 V or less. Above that, the 0.7 of VCC threshold is more than 3.3 V.

L9110 motor by hand: two switches and a motorlive0.000 s 0.00x
Hold the button
This is the simulator itself, running here. Click anything to open it in the editor.
Forward and reverse with PWM on one input
const int A_IA = 5;   // PWM
const int A_IB = 4;

void forward(int speed) {
  digitalWrite(A_IB, LOW);
  analogWrite(A_IA, speed);
}

void reverse(int speed) {
  digitalWrite(A_IB, HIGH);
  analogWrite(A_IA, 255 - speed);   // inverted: the other output is high
}
Common errors

Common Motor driver, L9110S errors and fixes

What goes wrong
The fix
Both inputs low and the motor stops dead instead of coasting.
The L9110S has no coast. Equal inputs brake. To let a motor spin down, remove its supply, or choose a driver with an enable pin.
The motor never turns on a 3.3 V board.
A high must be at least 0.7 of VCC. On a 6 V pack that is 4.2 V, so 3.3 V is not a high. Lower VCC to about 4.7 V or less, or add a level shifter.
The module is run from 9 V or 12 V because a listing said so.
The chip’s own sheet says 2.2 V to 6.5 V operating and 8 V absolute maximum. Past that the model’s outputs are dead. Use a 4-AA pack at most, or a driver rated for the voltage.
Speed control does not work in reverse as it did forward.
In reverse the other output is held high, so the PWM duty is inverted. Send 255 minus the speed, as the reverse() function does.
Questions

Questions and answers

What is the L9110S truth table?

High-low turns the motor one way, low-high the other, and equal inputs brake. There is no coast state, and no enable pin.

What voltage does an L9110S module run on?

2.2 V to 6.5 V, with 8 V absolute maximum, from the chip’s datasheet. The same pin feeds the chips and the motors.

How much voltage does the L9110S lose?

About 0.19 V at 100 mA across the two transistors in a motor’s path, about 1 ohm a side. The bridge is not lossless, so the motor gets a little less than the pack gives.

Is it the same as an L298N?

No. It is smaller and cheaper, has no enable pins, no heat sink and no regulator, and handles about 800 mA a channel against 2 A. The 800 mA rating is not modeled here.

How it is modeled

What is true about the Motor driver, L9110S, here

In its help article’s own words: what the simulation gets right, and where it stops.

Modeled

From the UMW L9110S datasheet:

The logic table, both brakes included.

Input thresholds. A low is at most 0.25 of VCC and a high at least 0.7 of it. On a 6 V supply that is 4.2 V, so a 3.3 V board's HIGH is not a high and the motor never turns. Between the two thresholds the sheet promises nothing; the model keeps the input's last state.

No pull-downs. The inputs draw 0.1 µA, so an unwired input is not a direction. Its output is left off rather than guessed.

Saturation. 0.19 V at 100 mA across the two transistors in a motor's path: about 1 ohm a side.

The supply. 2.2 V to 6.5 V operating and 8 V absolute maximum; past that the outputs are dead. Module listings often say 12 V; the chip's sheet does not.

Where the current comes from. With a battery on VCC the bridges are part of the analog solve, so the motor's current comes out of the pack and it sags.

Not modeled

The 800 mA continuous rating, the 500 mW package limit, and the flyback diodes.

From L9110S motor driver, in full.

Projects

See the Motor driver, L9110S in a project

5 built-in projects use it. Each opens in the editor, already wired.

Boards

The boards it is shown on

This board has a built-in project with the Motor driver, L9110S in it.

Wire up the Motor driver, L9110S

Open the editor and push it into the breadboard. It is free, and it runs on your own machine.