Motor Control Chain
Model a battery-to-motor power chain with an Ovonic LiPo, L298N motor driver, DC motor, and Arduino controller.
Goal
Build a complete motor control system: an Ovonic 4S LiPo battery powering an L298N motor driver, which drives a DC motor, all controlled by an Arduino Uno Rev3. You'll model the full power chain from battery to motor, add control logic, validate with DRC, and review the BOM.
What you're building
A robotics-style motor control system. The battery provides high-voltage power to the motor driver, which regulates current delivery to the motor. The Arduino sends control signals (direction and PWM speed) to the motor driver. This is the core pattern behind every wheeled robot, conveyor belt, and motorized mechanism.
Steps
Create a new board and place the battery
Open Protoboard, create a New Board, and name it "Motor Control Chain".
Open the Parts Bin (cuboid icon) and search for "Ovonic". Drag the Ovonic 4S 1300mAh 120C LiPo (XT60) onto the left side of the canvas.
This is a 4-cell lithium polymer battery:
Nominal voltage: 14.8V (4 cells x 3.7V)
Voltage range: 12V (depleted) to 16.8V (fully charged)
Discharge rate: 120C, meaning this battery can deliver serious current
Connector: XT60
Place the L298N motor driver
Search the Parts Bin for "L298N". Drag the L298N Dual H-Bridge Motor Driver Module onto the canvas to the right of the battery.
The L298N is a versatile motor driver:
Motor supply (Vs): 5V to 35V, which accepts the 14.8V from our LiPo
Per-channel current: Up to ~2A
Onboard 5V regulator: Can power its own logic and an external controller (via jumper)
Control inputs: IN1, IN2, IN3, IN4 for direction; ENA, ENB for PWM speed control
Create a blank part for the DC motor
Since the library doesn't have a generic DC motor, create a Blank Part from the Parts Bin. Configure it in the Inspector:
Name:
DC Motor (12V)Description:
Generic 12V brushed DC motor, ~1A stall currentDomain: Add the Electrical domain
Interface: Add a motor input interface with the role set to motor (the driven device). Include two functions:
Motor+: signal class: power, direction: sinkMotor-: signal class: power, direction: sink
Place the motor to the right of the L298N on the canvas.
Place the Arduino Uno Rev3 as the controller
Search for "Arduino Uno" and drag the Arduino Uno Rev3 onto the canvas above or below the motor driver, wherever it fits cleanly in your layout.
The Arduino will send digital control signals to the L298N:
Direction pins: Two digital outputs (e.g., D7, D8) mapped to IN1 and IN2
PWM speed pin: One PWM-capable output (e.g., D9) mapped to ENA
Connect the battery to the motor driver (power harness)
Create the first harness: Ovonic 4S LiPo to L298N.
Hover near the edge of the Ovonic 4S until a handle appears
Drag to the L298N to create a harness
Protoboard should detect the battery's power output interface and the L298N's motor supply (Vs) power input
In the Inspector, verify the interface link:
Battery's power output paired with L298N's Motor Supply (Vs) domain
Function links: Battery Positive to Vs+ and Battery Negative to GND
Connect the motor driver to the motor (drive harness)
Create the second harness: L298N to DC Motor.
Hover near the edge of the L298N and drag to the DC Motor
Pair the L298N's motor output interface with the motor's motor input interface
Create function links: OUT1 to Motor+ and OUT2 to Motor-
This harness represents the H-bridge output. The L298N switches the polarity of these lines to control the motor's direction, and modulates the duty cycle (via PWM) to control speed.
Connect the Arduino to the motor driver (control harness)
Create the third harness: Arduino Uno Rev3 to L298N.
Hover near the edge of the Arduino Uno and drag to the L298N
This is a control signal connection; the Arduino's digital outputs connect to the L298N's logic inputs
You'll need to create function links for:
Digital output (e.g., D7)
IN1
Direction control A
Digital output (e.g., D8)
IN2
Direction control B
PWM output (e.g., D9)
ENA
Speed control (PWM enable)
You may also need to connect the Arduino's GND to the L298N's logic GND to establish a common ground reference.
Run DRC and fix issues
Click the Board Review icon (shield icon) to run DRC. With three harnesses connecting four parts, there are several things the DRC checks:
Resource allocation (amber)
The Arduino needs specific pin assignments for the control harness. Select the harness, open the Inspector, and allocate D7 to IN1, D8 to IN2, and D9 to ENA.
Voltage domain mismatch (amber or red)
If the battery's voltage range doesn't fully overlap with the L298N's accepted range, you may see a warning. Verify the L298N's Vs domain accepts the battery's output range (12-16.8V falls within 5-35V, so this should pass).
Missing ground references (amber)
Ensure each harness has a GND-to-GND function link. The battery, motor driver, Arduino, and motor all need a common ground.
Motor interface roles (red)
If the blank motor part's interface role doesn't complement the L298N's output role, you'll get INCOMPATIBLE. Make sure the motor uses a motor or input role and the L298N uses a driver or output role.
Open ProtoBot and try:
"Fix all DRC issues. Allocate Arduino pins D7, D8, and D9 for motor driver control. Make sure all ground references are connected."
ProtoBot can handle resource allocation, add missing function links, and verify voltage domain compatibility in one pass.
Re-run DRC after each round of fixes until all connections show CONFIGURED (green).
Review the BOM
Click the BOM icon (cart icon) to see your parts list:
Ovonic 4S 1300mAh 120C LiPo (XT60)
Ovonic
Battery
L298N Dual H-Bridge Motor Driver Module
STMicroelectronics
Motor driver
DC Motor (12V)
(custom blank part)
Motor
Arduino Uno Rev3
Arduino
Microcontroller
Export to CSV or PDF when you're ready to share or purchase.
Understanding the power chain
The signal flow in this design follows a clear hierarchy:
[Battery] --14.8V--> [Motor Driver] --switched output--> [Motor]
^
|
[Arduino Uno]
(direction + PWM control)Power path: Battery supplies high-voltage/high-current power to the L298N, which switches it to the motor. The motor never connects directly to the battery; the driver controls when and how power is delivered.
Control path: The Arduino sends low-current logic signals to the L298N. IN1/IN2 set direction (which way current flows through the motor), and ENA sets speed (PWM duty cycle).
Ground path: All four parts share a common ground. This is essential for the logic signals to work correctly.
Common failures
Taking it further
Add a second motor to the L298N's Channel B (it's a dual H-bridge) and see how DRC handles shared resources
Replace the Arduino with a Teensy 4.1 for more PWM channels and higher clock speed
Add the REV SPARK MAX motor controller with a REV NEO Brushless motor for a brushless motor chain
Connect a sensor (e.g., an HCSR04 ultrasonic sensor) to the Arduino for obstacle-avoidance logic
Next steps
Common DRC Failures: See what happens when connections go wrong
MCU + Sensor + Regulator: Build a data-focused system with I2C communication
Fixing Errors: Learn systematic approaches to resolving DRC issues
BOM + Export: Deep dive into the bill of materials workflow
Last updated

