Asked — Edited

Roli H-Bridge Question Too


I have a probleme with my Roli h-bridge.

I checked my connections like explained in those posts :

My h-bridge was initially connected like the wrong way as here :

User-inserted image

Now when I open the exemple project from roli in ARC , if I want to go forward, only the right motor is going forward (nok), if I want to go right, only right motor is going backward (nok), if I want to go backward, the two motors are going backward (ok), if I want go left, left motor is going backard, right motor is going forward (ok).

I don't know where is my mistake.



Upgrade to ARC Pro

Your robot can be more than a simple automated machine with the power of ARC Pro!


Have you checked the wiring on the ezb side to see if it is correct as well?

United Kingdom


Just a thought. Have you changed the digital port values in the "H-Bridge movement" control config menu (pictured below)? Try clicking on the "gear" icon, then try changing the port values in menu until you get the correct movement direction you desire.

User-inserted image


TheRat, did you modify the project? Always use the default projects that are included with ARC. The default projects always work and are tested.

Ensure both the wires on the EZ-B and wires on the HBridge are connected correctly according to the images.

I realize the image is very challenging to understand, which is why we will be changing it when i return to Calgary later this week.


@Richard : I have same the same wiring on ezb than in tutorial.

@Steve : I have this :

User-inserted image

@DJ : Thanks, I modified the project but "save as" it localy, I have reloaded the roli default project and I have the same problem.

it looks ok to me but I certainly miss a trick of

User-inserted image

User-inserted image


Your black PWM pin looks like it isn't plugged in all the way on the H-Bridge, but that would effect the right motor and your issue is with the left motor.

Do the leds on the h-bridge light when you give it commands?


United Kingdom

Trial and error my be your friend here. The only thing I can suggest you could do for now is change the trigger configuration around until you find one that works for you. No need to change PWM values. Do one channel, left or right, at a time to make elimination easier.


Follow up to Steve G's suggestion. When my Roli was wired backwards, I added a digital on object for ports 0-5 and then used the chart from Rich's excellent H-bridge tutorial amd tried different combinations until I figured out the wiring.

Looking at your pictures and symptoms, I think you have a bad Hbridge, but that would confirm it. If you set d0 and d6 high, and then find any other port which doesn't cause some movement then you either have a bad H-bridge or a bad port on the EZ-B.

(you can test for a bad port by moving the wire from the non-responding port to another port.)


United Kingdom

It looks like your left forwards wire isn't working or isn't in the right place going by the description of what's happening/not happening.

Using the defaults, this should be port D1/blue/In4.

Never count out a broken wire, that's been the culprit a number of times for me. Try swapping over the purple and blue wires on both sides so that purple connects In4 to D1 and Blue connects In3 to D0, test and see if the left motor runs only reverse rather than only forward, if this is the case then the blue wire is broken.

A, B, C and D should light up too depending on the logic sent. Forwards, reverse, left and right should make 2 of the 4 leds illuminate, does it? (this will eliminate a motor/motor wiring fault).


Did you set the pwm speed?

Modifying the project did you accidentally miss the speed initialization script for the hbridge in the connection control?


here is the init script :

# This is the initialization script for your Roli robot
# This script is called from the Connection Control when a connection
# is made to the Roli EZ-B

# Move the servos into the calibration position
# All servos will be set to 90 degrees
ControlCommand("Auto Position", AutoPositionFrameJump, "Calibrate")

# Pause for a brief period of time to ensure the servos have been initialized

# We want the arm and neck servos to move smoothly
# To do this, we will set the speed of each servo
# The speed is how quickly a servo will move between positions
# We set a variable for the speed, and then use that variable for
# every speed command.
# This is an effecient way to reuse a value numerous times
$speed = 1

servospeed(d12, $speed)
servospeed(d13, $speed)
servospeed(d14, $speed)
servospeed(d15, $speed)
servospeed(d16, $speed)
servospeed(d17, $speed)
servospeed(d18, $speed)
servospeed(d19, $speed)

# This sets the speed for the HBridge Motor Controller
# The speed is a number between 0 and 255
# Setting this speed will initialize the PWM on the motor controller

# Even though we set the speed, we will also enable the PWM
# on the speed pins that connect to the HBridge Motor Controller
# The number is 100, which means 100%
pwm(d0, 100)
pwm(d5, 100)


Sorry, I did not have time to see my problem.

Maybe I could during the Christmas holiday;)