RGB Animator icon RGB Animator — Create custom animations for JD Humanoid's 18 RGB Eyes LEDs via I2C - per-LED color frames, transitions, pauses, scripting and real-time preview. Try it →
 
Hbridge Movement Panel Robot Skill

Hbridge Movement Panel

by Synthiam Inc.

Movement panel for dual H-bridge motor controllers, driving two motors with optional PWM speed control in ARCx.

Requires ARCx v6 (Updated 9/29/2026)
Tags: Movement Panels
Compatible with: Compatible with Microsoft Windows 10 or 11 Windows Compatible with ARM Linux (Raspberry pi, etc) ARM Compatible with Linux Linux Compatible with MacOS MacOS

How to add the Hbridge Movement Panel robot skill

  1. Load the most recent release of ARCx on a compatible operating system (Get ARCx).
  2. Press the + Skills menu from the top menu bar in ARCx.
  3. Choose the Movement Panels category tab.
  4. Press the Hbridge Movement Panel icon to add the robot skill to your project.

Don't have a robot yet?

Follow the Getting Started Guide to build a robot and use the Hbridge Movement Panel robot skill.


How to use the Hbridge Movement Panel robot skill

Drives a robot with a dual channel H-Bridge motor controller, such as an L298N, L293D, TB6612FNG, BTS7960 or Sabertooth in analog mode.

This is a movement panel: once it is in the project, everything in ARCx that moves the robot - the Movement Joystick, the Wiimote, Movement.Forward() in a script, the Autonomous AI skill, a ROS /cmd_vel binding - drives these two motors. Only one Movement Panel can be in a project at a time.

Requirements

  • A connected EZB.
  • A dual channel H-Bridge, one channel per side of the robot.
  • Four digital ports, two per motor.
  • Two PWM-capable ports as well, if the board has speed (enable) inputs and you want speed control.

How an H-Bridge works

Each motor channel has a pair of inputs, usually labelled IN1/IN2 and IN3/IN4. The pair decides which way that motor turns:

Trigger A Trigger B The motor
HIGH LOW turns forward
LOW HIGH turns in reverse
LOW LOW stops
HIGH HIGH never sent by this skill - on most boards it is a brake, on some it is a short

Many boards have a third input per channel, labelled ENA/ENB or PWM. That one is not a direction, it is a throttle: the duty cycle on it sets how fast the motor turns. Boards without it, or with those pins jumpered to 5V, always run at full speed.

Adding it to a project

  1. Connect to the EZB.
  2. Add the skill (Movement Panels category).
  3. Open the configuration and choose the four trigger ports - Trigger A and Trigger B for each motor.
  4. If the board has enable inputs, tick H-Bridge has PWM speed inputs and choose the two PWM ports.
  5. Save, then push the joystick in the skill's window.

Opening the configuration stops the robot first, so the ports are never left latched HIGH while they are being reassigned.

Wiring

A typical L298N wired to EZB digital ports D1 to D6:

H-Bridge pin EZB port Setting
IN1 D1 Left Motor Trigger A
IN2 D2 Left Motor Trigger B
IN3 D3 Right Motor Trigger A
IN4 D4 Right Motor Trigger B
ENA D5 Speed Control Left PWM
ENB D6 Speed Control Right PWM

Those are the defaults, so a robot wired this way needs no configuration at all beyond ticking the PWM box.

Give the H-Bridge and the EZB a common ground, and power the motors from the H-Bridge's own motor supply - never from the EZB's servo rail.

The four ports do not have to be on the same EZB. Each board is sent its own single packet, so a robot with one channel on each of two boards still drives both sides together.

The window

Hbridge  <a href='/Support/ARC-Overview/movement-panels' target='_top'>Movement Panel</a>  <a href='/Support/Skills/Skills-Overview' target='_top'>robot skill</a> window

  • Joystick - push forward or back to drive, sideways to turn. How far the thumb is pushed sets the speed, and pushing forward at an angle blends the two sides so the robot drives in an ARC instead of a spin turn. The thumb springs back to the centre when released, which stops the robot.
  • Left and Right readout - the current speed for each side, 0-255. These are ARCx's global movement speeds, so they also move when another skill or a script commands a movement. They are only shown when PWM speed control is turned on, because without an enable input the speed has nowhere to go.

How direction works

Turning is done by driving one side forward and the other in reverse (a spin turn):

Direction Left motor Right motor
Forward forward forward
Reverse reverse reverse
Left reverse forward
Right forward reverse
Stop all four triggers LOW all four triggers LOW

Speed control

With H-Bridge has PWM speed inputs turned on, every movement also writes a duty cycle to the two enable ports. ARCx's movement speed of 0-255 is scaled to a duty cycle of 0-100%, so speed 255 is full throttle and speed 128 is roughly half. Each side uses its own speed, so a script or a joystick can set the two differently to drive in an ARC instead of a spin turn.

Stopping writes 0% as well as dropping the triggers.

Small DC motors often will not turn below about 30% duty cycle. If the robot stalls and buzzes at low speeds, that is the motors, not the skill - raise the speed.

With the option turned off, the enable ports are never written and the motors always run at whatever speed the motor supply gives them. The speed values are then ignored by this skill, although other skills still see them.

Configuration

Hbridge  <a href='/Support/ARC-Overview/movement-panels' target='_top'>Movement Panel</a> configuration settings

Setting Meaning
Left Motor Trigger A The port that is HIGH when the left wheel drives forward (IN1).
Left Motor Trigger B The port that is HIGH when the left wheel drives in reverse (IN2).
Right Motor Trigger A The port that is HIGH when the right wheel drives forward (IN3).
Right Motor Trigger B The port that is HIGH when the right wheel drives in reverse (IN4).
H-Bridge has PWM speed inputs Turn on when the board has ENA/ENB inputs that take a PWM signal. The two PWM ports below are only used when this is on.
Speed Control Left PWM The enable port for the left motor's channel (ENA).
Speed Control Right PWM The enable port for the right motor's channel (ENB).

The Window tab sets the robot skill's window title, its size on the workspace and notes about what it does in this project.

Window configuration tab

Troubleshooting

Symptom Cause
The robot turns instead of going forward One motor's wires are reversed. Swap that motor's two leads on the H-Bridge, or swap its Trigger A and Trigger B ports.
Forward and reverse are swapped on both sides Swap Trigger A and Trigger B for both motors.
Left and right are swapped The two channels are the other way round. Swap the Left Motor and Right Motor ports.
Nothing moves, no sound from the motors Not connected, wrong ports, or the wrong board index on a multi-board project.
The motors buzz but do not turn PWM speed too low for these motors, or the motor supply is too weak.
Full speed only, speed changes do nothing H-Bridge has PWM speed inputs is off, or ENA/ENB are jumpered to 5V on the board.
Nothing moves but the H-Bridge LEDs light No motor supply, or the motor supply shares no ground with the EZB.
The robot keeps driving after a stop Something else is commanding movement - check for a joystick, a script, or the Autonomous AI skill still running.
Two movement panels in the project Remove one; only one Movement Panel is supported.

ARC Pro

Upgrade to ARC Pro

Join the ARC Pro community and gain access to a wealth of resources and support, ensuring your robot's success.