SKU: Model-V-v1.0 | L293DD Dual H-Bridge DC Motor Driver with Servo Ports
The OSOYOO Model V Motor Driver Module is a compact dual H-bridge board built around the L293DD quad half-H bridge IC. It drives two DC motors independently — controlling both speed and direction — making it ideal for wheeled robots and smart vehicle projects.
Electrically it is fully compatible with the popular L298N driver: same ENA / IN1–IN4 / ENB control interface, same H-bridge truth table, and an onboard 5 V regulator. The key improvement is that all motor and power connections use keyed JST-style connectors (K1–K4, CN1–CN2) that physically prevent reverse-polarity wiring errors.
Two dedicated servo signal pins (S, S) on the multipurpose header let you attach a pan-tilt bracket or steering servos without extra hardware. The board is compatible with Arduino Uno / Nano / Mega, ESP32, and Raspberry Pi (via level shifter).

Table of Contents
The Model V is built for robotics, smart vehicle, and automation education projects:
| Application | Description |
|---|---|
| 2WD / 4WD Robot Car | Independent left/right motor control for forward, reverse, and tank-style turning. Pair with an ultrasonic sensor for obstacle avoidance. |
| Line-Following Robot | IR sensors detect the track; PWM adjusts Motor A / Motor B speed in real time to correct heading. |
| Maze-Solving Robot | Wall-distance sensors combined with differential-drive control allow autonomous maze navigation. |
| Remote-Controlled Car | Receive commands over Bluetooth (HC-05), Wi-Fi (ESP32), or IR remote and map them to motor speed and direction. |
| Mecanum / Omni Wheel Platform | Use two Model V boards for four independent wheel motors to achieve holonomic (all-direction) motion. |
| Pan-Tilt Camera / Sensor Arm | Drive chassis motors while using the on-board servo ports to simultaneously control a camera bracket or ultrasonic sweep arm. |
| DIY Conveyor / Sorting System | Control two conveyor belts or feeder mechanisms with independent speed and direction. |
| STEM / Classroom Robotics | L298N-compatible logic, clear silkscreen labels, and keyed connectors reduce student wiring errors — ideal for educational settings. |
analogWrite() to ENA / ENB for smooth variable-speed control (0–100%).| Parameter | Value | Notes |
|---|---|---|
| Motor Driver IC | L293DD | Quad half-H bridge, SOIC-20 |
| Motor Channels | 2 (Motor A, Motor B) | Full independent H-bridge per channel |
| Servo Ports | 2 | Signal pins on multipurpose header |
| Input Voltage (VIN) | 7 V – 12 V DC | Recommended range for onboard regulator |
| Max Motor Voltage | 36 V (L293DD rated) | Remove Motor PWR jumper; supply 5 V logic separately if >12 V |
| Logic Supply Voltage | 5 V (onboard) / 3.3 V–5 V (ext.) | Onboard regulator active when jumper is ON |
| Output Current (continuous) | 600 mA per channel | Per L293DD datasheet |
| Output Current (peak) | 1.2 A per channel | Short bursts; ensure adequate ventilation |
| Control Interface | TTL (3.3 V / 5 V) | ENA, IN1, IN2, IN3, IN4, ENB |
| Max PWM Frequency | 25 kHz | L293DD switching limit |
| Onboard Regulator Output | 5 V, ≤ 1 A | For logic and servo power |
| Motor Connectors | 4 × 2-pin keyed JST (K1–K4) | Prevents reverse connection |
| Power Input Connectors | 2 × keyed JST (CN1, CN2) | Polarized VIN & GND |
| Protection | ESD (L293DD) + flyback diodes D1–D8 | — |
| Operating Temperature | 0 °C – 70 °C | — |
| PCB Dimensions | approx. 64 × 56 mm | See Mechanical Information |
| Weight | approx. 20 g | Without cables |
The diagram below and the table identify the major components on the Model V board.

Fig. 1 — OSOYOO Model V PCB top view (component reference)
| Label | Component | Description |
|---|---|---|
| U2 | L293DD Motor Driver IC | Core driver chip. Quad half-H bridge forming two full H-bridges for Motor A and Motor B. 600 mA continuous / 1.2 A peak per channel; built-in ESD protection. |
| U1 | 5 V Voltage Regulator | D-PAK linear regulator converting 7–12 V motor supply to stable 5 V for on-board logic, the header 5V pin, and servo power. Active only when the Motor PWR jumper is installed. |
| K1, K2 | Motor A Output Connectors | Left side — two keyed JST connectors corresponding to OUT1 and OUT2. Motor A’s two wires connect to K1 and K2. Keyed housing prevents reverse insertion. |
| K3, K4 | Motor B Output Connectors | Right side — two keyed JST connectors corresponding to OUT3 and OUT4. Motor B’s two wires connect to K3 and K4. |
| CN1, CN2 | Power Input Connectors | Keyed JST connectors for motor power supply (VIN 7–12 V and GND). Two connectors provided for flexible cabling — connect your supply to either one. |
| Motor PWR Jumper | Regulator Enable Jumper | Jumper ON (default): onboard regulator powers the 5 V rail from VIN. Jumper OFF: regulator disabled; supply 5 V externally via the header 5V pin. |
| Control Header (6P) | MCU Control Pins | Bottom-right through-hole header carrying ENA, IN1, IN2, IN3, IN4, ENB signals from the microcontroller. |
| Multi-purpose Header (7P) | Power + Servo Header | Bottom-left through-hole header with VIN pass-through (×2), GND (×2), regulated 5 V output, and two servo signal pins (S, S). |
| D1–D8 | Flyback Protection Diodes | Eight SMD Schottky diodes clamping inductive voltage spikes when motor current is switched off — additional protection on top of the L293DD’s internal diodes. |
| LED | Power Indicator LED | Illuminates when the board is powered. If the LED is off, check the supply and CN1/CN2 connections. |
Located on the bottom-right edge. Connect these to digital (and PWM-capable) GPIO pins on your microcontroller.
| Pin | Direction | Type | Description |
|---|---|---|---|
| ENA | Input | Digital / PWM | Motor A enable. HIGH = enabled, LOW = coast stop. Use analogWrite(0–255) for speed control. |
| IN1 | Input | Digital | Motor A direction bit 1. HIGH with IN2=LOW → forward. |
| IN2 | Input | Digital | Motor A direction bit 2. HIGH with IN1=LOW → reverse. |
| IN3 | Input | Digital | Motor B direction bit 1. HIGH with IN4=LOW → forward. |
| IN4 | Input | Digital | Motor B direction bit 2. HIGH with IN3=LOW → reverse. |
| ENB | Input | Digital / PWM | Motor B enable. Same behaviour as ENA. |
| ENx | INx1 | INx2 | Motor State |
|---|---|---|---|
| HIGH | HIGH | LOW | Forward (clockwise) |
| HIGH | LOW | HIGH | Reverse (counter-clockwise) |
| HIGH | HIGH | HIGH | Brake (fast stop) |
| HIGH | LOW | LOW | Coast (free spin) |
| LOW | × | × | Motor disabled (Hi-Z) |
| PWM | HIGH | LOW | Forward + variable speed |
| PWM | LOW | HIGH | Reverse + variable speed |
ENx = ENA for Motor A (IN1/IN2); ENB for Motor B (IN3/IN4). “×” = don’t care.
| Pin | Direction | Description |
|---|---|---|
| VIN (×2) | In / Out | Motor supply voltage (7–12 V) pass-through. Use to power external devices, or as an alternative power input. |
| GND (×2) | — | Common ground. Must be connected to microcontroller GND. |
| 5V | Output | Regulated 5 V from U1. Powers the microcontroller or sensors. Only available when Motor PWR jumper is ON and VIN is 7–12 V. |
| S (×2) | Input | Servo signal pins — connect to PWM-capable GPIO on your microcontroller. Servo power comes from the 5V and GND pins on this same header. |
This tutorial drives a 2-wheel or 4-wheel robot car using the Model V and an Arduino Uno. The same pin assignments and sketch also work with Arduino Nano, Mega, and ESP32.
Connect Model V to Arduino Uno as shown below. The Fritzing file (OSOYOO Model V.fzz) included in the product package provides a graphical wiring view.
| Model V Pin / Connector | Arduino Uno Pin | Notes |
|---|---|---|
| ENA (Control Header) | Pin 5 (PWM ~) | Motor A speed control |
| IN1 (Control Header) | Pin 6 | Motor A direction bit 1 |
| IN2 (Control Header) | Pin 7 | Motor A direction bit 2 |
| IN3 (Control Header) | Pin 8 | Motor B direction bit 1 |
| IN4 (Control Header) | Pin 9 | Motor B direction bit 2 |
| ENB (Control Header) | Pin 10 (PWM ~) | Motor B speed control |
| GND (Multi-purpose Header) | GND | Essential — common ground |
| 5V (Multi-purpose Header) | 5V (optional) | Connect only when Motor PWR jumper is ON and you want the board to power the Arduino. Do not connect if Arduino powers itself separately. |
| CN1 or CN2 | — | External 7–12 V DC supply (+ to VIN, − to GND) |
| K1 & K2 | — | Motor A: left motor wires to K1 and K2 |
| K3 & K4 | — | Motor B: right motor wires to K3 and K4 |
myServo.attach(pin) with the Arduino pin connected to S.The sketch below loops through forward, reverse, left turn, right turn, and stop. Copy it into the Arduino IDE, select your board, and upload.
/*
* OSOYOO Model V Motor Driver — Robot Car Demo
* Compatible: Arduino Uno / Nano / Mega / ESP32
*
* Wiring (Arduino Uno):
* ENA → Pin 5 (PWM) ENB → Pin 10 (PWM)
* IN1 → Pin 6 IN3 → Pin 8
* IN2 → Pin 7 IN4 → Pin 9
* GND → Arduino GND (essential!)
* VIN → External 7-12 V DC supply
* K1+K2 → Left motor(s)
* K3+K4 → Right motor(s)
*/
// ── Pin definitions ───────────────────────────────────────────────
#define ENA 5 // Motor A enable (PWM speed)
#define IN1 6 // Motor A direction bit 1
#define IN2 7 // Motor A direction bit 2
#define IN3 8 // Motor B direction bit 1
#define IN4 9 // Motor B direction bit 2
#define ENB 10 // Motor B enable (PWM speed)
#define FULL_SPEED 220 // 0-255 drive speed
#define TURN_SPEED 180 // slightly lower for turns
// ── Low-level motor primitives ────────────────────────────────────
void motorA(int spd, bool fwd) {
analogWrite(ENA, spd);
digitalWrite(IN1, fwd ? HIGH : LOW);
digitalWrite(IN2, fwd ? LOW : HIGH);
}
void motorB(int spd, bool fwd) {
analogWrite(ENB, spd);
digitalWrite(IN3, fwd ? HIGH : LOW);
digitalWrite(IN4, fwd ? LOW : HIGH);
}
// ── Car movement functions ────────────────────────────────────────
void carForward (int s) { motorA(s,true); motorB(s,true); }
void carBackward(int s) { motorA(s,false); motorB(s,false); }
void carLeft (int s) { motorA(s,false); motorB(s,true); }
void carRight (int s) { motorA(s,true); motorB(s,false); }
void carStop() {
analogWrite(ENA, 0); analogWrite(ENB, 0);
digitalWrite(IN1,LOW); digitalWrite(IN2,LOW);
digitalWrite(IN3,LOW); digitalWrite(IN4,LOW);
}
// ── Setup ─────────────────────────────────────────────────────────
void setup() {
pinMode(ENA,OUTPUT); pinMode(IN1,OUTPUT); pinMode(IN2,OUTPUT);
pinMode(ENB,OUTPUT); pinMode(IN3,OUTPUT); pinMode(IN4,OUTPUT);
carStop();
Serial.begin(9600);
Serial.println("OSOYOO Model V — Robot Car Demo");
}
// ── Demo loop ─────────────────────────────────────────────────────
void loop() {
carForward(FULL_SPEED); delay(2000); // forward 2 s
carStop(); delay(400);
carBackward(FULL_SPEED); delay(2000); // backward 2 s
carStop(); delay(400);
carLeft(TURN_SPEED); delay(700); // spin left ~90°
carStop(); delay(400);
carRight(TURN_SPEED); delay(700); // spin right ~90°
carStop(); delay(1500); // pause, then repeat
}
analogWrite() accepts 0–255. Values below ~80 may not provide enough torque to start a loaded motor — increase FULL_SPEED as needed.analogWrite() directly. For finer PWM control use ledcAttach() / ledcWrite() at 1–10 kHz, 8-bit resolution.#include , call myServo.attach(pin) on the pin connected to S, and control it with myServo.write(angle) — fully independent of the motor channels.
Fig. 2 — PCB 2D layout drawing
| Dimension | Value |
|---|---|
| PCB Length | approx. 64 mm |
| PCB Width | approx. 56 mm |
| PCB Thickness | 1.6 mm (standard FR4) |
| Mounting Holes | 4 × Ø 3.2 mm, one at each corner |
| Mounting Hole Pitch (L) | approx. 57 mm |
| Mounting Hole Pitch (W) | approx. 49 mm |
| Tallest Component | approx. 12 mm (JST connector housing) |
| Weight (bare PCB) | approx. 20 g |
| PCB Colour | Purple, ENIG finish |
| Recommended Standoff | M3 × 8 mm (brass or nylon) |
| Document | File | Description |
|---|---|---|
| Circuit Schematic | SCH_OSOYOO Model V Motor Module v1.0_1-P1_2026-05-14.png | Full schematic of the Model V board (EasyEDA). |
| PCB 2D Drawing | PCB-2D_OSOYOO Model V Motor Module v1.0_2026-05-14.png | Top-view PCB layout with component reference designators. |
| Fritzing Diagram | OSOYOO Model V.fzz | Open in Fritzing to view / edit the breadboard wiring diagram. |
| Product Photo | Motor V实物图.jpg | High-resolution product photograph. |
| L293DD Datasheet | — | Available from Texas Instruments / STMicroelectronics website. |
| OSOYOO Model X (L298N) | Introduction | Reference comparison: L298N-based driver with the same control interface. |

Fig. 3 — OSOYOO Model V circuit schematic (EasyEDA)
analogWrite() frequency (490–980 Hz) is well within this limit. Do not exceed 25 kHz as it increases switching losses and heat.OSOYOO Model V DC Motor Driver Module — Product Documentation v1.0 | © OSOYOO |
www.osoyoo.com
DownLoad Url osoyoo.com