Mx1616 Motor Driver: Datasheet
#include <AccelStepper.h>// Define pin connections #define STEP_PIN 3 #define DIR_PIN 4 #define ENABLE_PIN 5
// Set microstepping (example: 1/16 step = 3200 steps/rev for 1.8° motor) // MS1,MS2,MS3 all HIGH
AccelStepper stepper(AccelStepper::DRIVER, STEP_PIN, DIR_PIN);
void setup() pinMode(ENABLE_PIN, OUTPUT); digitalWrite(ENABLE_PIN, LOW); // Enable driver
stepper.setMaxSpeed(1000); // steps/second stepper.setAcceleration(500); stepper.moveTo(6400); // 2 full rotations (if 200 steps/rev * 16 microsteps)
void loop() stepper.run();
| Pin No. | Name | Type | Description | |---------|----------|-------------|--------------------------------------------------| | 1 | VCC | Power | Motor power supply (2.5V - 12V) | | 2 | IN1 | Input | Input control signal for Channel A (H-Bridge A) | | 3 | IN2 | Input | Input control signal for Channel A | | 4 | GND | Power | Common ground (power & logic) | | 5 | OUT2 | Output | Output B terminal (Channel B motor connection) | | 6 | IN3 | Input | Input control signal for Channel B | | 7 | IN4 | Input | Input control signal for Channel B | | 8 | OUT1 | Output | Output A terminal (Channel A motor connection) |
Note: The exposed pad (ESOP-8) must be connected to GND for thermal dissipation.
Connect a bipolar stepper motor:
The Mx1616 module usually comes with built-in decoupling capacitors. However, if your motors are noisy (causing the microcontroller to reset), check the datasheet recommendations for adding a large electrolytic capacitor (e.g., 100uF) across the VM and GND terminals near the driver.
| Pin # | Name | Function | | :--- | :--- | :--- | | 1 | VM | Motor power supply (4.5V – 13.5V) | | 2, 9 | AO1, BO1 | Output A1 / Output B1 | | 3, 8 | AO2, BO2 | Output A2 / Output B2 | | 4 | PGND | Power ground for motors | | 5 | VCC | Logic supply (2.7V – 5.5V) | | 6 | STBY | Standby (High = Active; Low = Standby) | | 7, 15 | AIN1, BIN1 | Input 1 for Channel A / Channel B | | 10, 14 | AIN2, BIN2 | Input 2 for Channel A / Channel B | | 11 | PWMA | PWM input for Channel A (speed control) | | 12 | GND | Logic ground | | 13 | PWMB | PWM input for Channel B (speed control) | | 16 | VREF | Reference voltage (usually tied to VCC) |
The Mx1616 uses a reference voltage (VREF) internally. If your board provides a VREF pin: Mx1616 Motor Driver Datasheet
IOUT_max = VREF / (8 × Rsense)
Example: If Rsense = 0.1Ω and VREF = 1.28V → IOUT = 1.28 / (8 * 0.1) = 1.6A.
Do not rely on the "Peak Current" rating for your motor selection. If your motor draws 2A when stalled, the Mx1616 may overheat and trigger its internal thermal shutdown protection after a few seconds. Always size your driver based on the Continuous Current rating relative to your motor's load current.
End of Datasheet
For technical support or samples, contact: support@mxicsemi.com
is a high-performance, dual-channel H-bridge motor driver often utilized as a more efficient, compact alternative to legacy drivers like the L293D or L298N. Designed specifically for low-voltage applications ranging from
, it excels in robotics and small toy motor control by offering significantly lower on-resistance and standby current. Key Technical Specifications According to documentation from Art of Circuits Mikrocontroller.net , here are the critical parameters for your design: Voltage Range: Operates between #include <AccelStepper
, making it ideal for Lithium-ion (3.7V) or 4xAA battery packs. Current Handling: Continuous: Approximately per channel. Can handle bursts up to (depending on the specific variant like MX1616H). Low On-Resistance: The internal MOSFETs have a resistance of roughly
, which minimizes heat generation compared to older bipolar-junction transistor (BJT) drivers. Standby Power: Extremely efficient standby mode drawing less than Thermal Protection:
Built-in Thermal Shutdown (TSD) circuit with hysteresis to prevent chip failure under excessive load. Pin Configuration & Control Logic
module typically follows a straightforward interface for microcontrollers like Arduino or ESP32: Power Pins: (or VCC/GND): Power supply for the motors ( Signal Inputs: IN1 & IN2: Control Motor A direction and speed (via PWM). IN3 & IN4: Control Motor B direction and speed. Motor Outputs: Motor A / Motor B: Connect directly to the DC motor terminals. Control Truth Table Motor Action Coast / Standby Design Considerations & Pro-Tips Avoid the "Over-Limit" Trap: While the datasheet mentions Makers Electronics
warns that pushing the module to its limits for extended periods can cause overheating and potential failure. PWM Frequency: For smooth speed control, a PWM frequency around
is standard, though the chip is versatile enough for common MCU default frequencies. Alternative Options: If you find the out of stock, the void loop() stepper
is often cited as a compatible alternative with similar electrical characteristics. Arduino code snippet
to test the directional control and PWM speed of this driver? H-Bridge DC Motor Driver Module MX1616