

The Adafruit Motor Bonnet (Part ID: 4280) is a versatile add-on board designed to simplify the control of DC motors and stepper motors. It features built-in motor drivers, efficient power management, and seamless compatibility with microcontrollers like the Raspberry Pi. This compact and powerful board is ideal for robotics, automation, and other motor control applications.








The Adafruit Motor Bonnet is built with robust features to ensure reliable motor control. Below are its key technical specifications:
| Parameter | Value |
|---|---|
| Manufacturer | Adafruit |
| Part ID | 4280 |
| Motor Driver Chip | DRV8833 |
| Input Voltage Range | 4.5V to 13.5V |
| Maximum Continuous Current | 1.2A per motor channel |
| Peak Current | 2A per motor channel |
| Communication Protocol | I2C |
| Dimensions | 65mm x 30mm x 10mm |
The Adafruit Motor Bonnet uses a standard I2C interface and includes motor output terminals for connecting motors. Below is the pin configuration:
| Pin Name | Description |
|---|---|
| SDA | I2C Data Line |
| SCL | I2C Clock Line |
| 3V | 3.3V Power Supply |
| GND | Ground |
| Terminal Label | Description |
|---|---|
| M1+ / M1- | Motor 1 positive and negative terminals |
| M2+ / M2- | Motor 2 positive and negative terminals |
| M3+ / M3- | Motor 3 positive and negative terminals |
| M4+ / M4- | Motor 4 positive and negative terminals |
| Pin Name | Description |
|---|---|
| VIN | External power supply for motors (4.5V to 13.5V) |
| GND | Ground |
The Adafruit Motor Bonnet is easy to set up and use with microcontrollers like the Raspberry Pi. Follow the steps below to integrate it into your project:
pip3 install adafruit-circuitpython-motorkit
raspi-config to enable I2C communication.Below is an example Python script to control a DC motor using the Adafruit Motor Bonnet:
from adafruit_motorkit import MotorKit import time
kit = MotorKit()
kit.motor1.throttle = 0.5 # Set throttle between -1.0 (reverse) and 1.0 (forward) time.sleep(2) # Run for 2 seconds
kit.motor1.throttle = 0 time.sleep(1)
kit.motor1.throttle = -1.0 time.sleep(2)
kit.motor1.throttle = 0
Motors Not Running:
Erratic Motor Behavior:
I2C Communication Errors:
i2cdetect command to verify that the Motor Bonnet is detected on the I2C bus.Q: Can I control more than four motors with the Motor Bonnet?
A: No, the Motor Bonnet supports up to four motors. For additional motors, consider using multiple bonnets with unique I2C addresses.
Q: What types of motors are supported?
A: The Motor Bonnet supports DC motors and stepper motors.
Q: Can I use the Motor Bonnet with an Arduino?
A: The Motor Bonnet is primarily designed for Raspberry Pi, but it can be used with other microcontrollers that support I2C communication.
Q: How do I change the I2C address of the Motor Bonnet?
A: The I2C address can be changed by soldering the address jumpers on the back of the board. Refer to the Adafruit documentation for details.
By following this guide, you can effectively integrate the Adafruit Motor Bonnet into your projects and achieve precise motor control.