Issues Operating a Pololu G2 High-Power Motor Driver 18v17 for Small Robot

Hello,

I’m fairly new to electronics and I’ve run into an issue with using the Pololu G2 High-Power Motor Driver 18v17 for a small tracked robot I’m trying to build and control. The goal is to be able to control the robot using an RC transmitter and make it move forward, backward, turn, etc.

The motors on the robot and the motor drivers are connected as follows: The motor driver on the right hand side (as oriented in the pictures below) is connected to the front motor of the robot, which drives the left side wheels. The motor driver on the left hand side is connected to the rear motor of the robot by feeding the wires through a small hole in the cardboard shield (below), driving the right side wheels. Both motor drivers are wired from OUTA and OUTB on the boards to the two terminals of their respective motors. For reference, I have attached the solders on the rear side of both boards as well.

Right hand side motor driver:


Left hand side motor driver:



The two red wires come out of the VIN terminals of the motor drivers and connect in parallel to the positive end of an XT30 connector; likewise for GND and negative. This plugs in to a 12V NiMH battery.


There are two questions I have / issues I’ve run into. First, when testing the motor drivers directly powered to the battery without any RC connections, only the right side wheels (connected to the left hand side motor driver) spin. Is there a reason for this? I also do not know if this behavior is normal, or if the motor should not be spinning when connected only to power. In other words, I do not know whether the motor driver that is stationary or the driver that is driving the motor is behaving properly.

The second, and more significant, issue that I have is that neither of the motor drivers seem to respond to RC controls. The RC transmitter I am using is an FrSky Taranis X9 Lite, and the receiver is an FrSky X8R. The X8R receiver operates between 4-10V and is powered by a 7.4V LiPo battery, connected to channel 8 of the receiver. When troubleshooting, I was able to confirm that the RC transmitter and receiver are working properly by using a servo motor. The servo, plugged into channel 1, responded to inputs on the Taranis transmitter.


Swapping out the servo motor, I connected the motor drivers to channels 1 and 2 of the RC receiver. Since the receiver is already being powered by the external 7.4V battery, the red cables connecting to channels 1 and 2 are cut and unused. The yellow cable connects from the signal pin on the receiver to the motor driver’s PWM terminal, and the brown cable connects the receiver’s negative pin to the motor driver’s GND terminal. I should note, however, that I did initially have the wires connected to the wrong terminals on the left side board to CS and VM instead (I mistakenly got the board orientation wrong). When testing with this setup, both motors ran for a second or so, then there was a pop and some smoke, so it’s possible that the left side board is damaged.

In any case, following this, I fixed the RC wiring and tested once again. In the video clip below, I turned on the transmitter and receiver and set the transmitter inputs to near zero. I then expected the motors not to move when plugged into battery power, since their respective RC channels 1 and 2 were set to a signal value of zero on the transmitter. Instead, as soon as the battery power is connected to the motor drivers, both motors spin. Due to the previous troubleshooting, I am fairly confident that the transmitter and receiver are operating correctly, and thus the issue is somewhere in the motor drivers (either they aren’t operating as they should, or I’m missing some configuration), or the wiring to the drivers. At first, I thought the issue may have been caused by not utilizing the DIR terminal on the motor drivers, since I’m controlling the robot with RC rather than a microcontroller. However, I reviewed the driver specs which said that DIR is default set to Low, which I understand to mean that the drivers should still be operational and sending signal to the motors even without the DIR pin plugged in. How can I fix this issue so that the motors respond to the RC transmitter’s controls, like the servo motor does?


Thanks,
Amos

Hello.

Unfortunately, the G2 High-Power Motor Driver 18v17 does not accept hobby RC servo signals. The PWM input on our G2 High-Power Motor Driver boards is for duty cycle-based PWM signals. For reference, hobby RC servo signals use the width of the pulse (typically between 1ms and 2ms) to send a signal, whereas duty cycle-based PWM signals use the percentage of “on” time to send a signal (i.e. 0% duty cycle is low the whole time, 50% is on for the same amount of time that it is off, and 100% is on all the time).

To use the High Power Motor Drivers with RC servo signals, you would need to add something like a microcontroller between them to convert the RC signal into an appropriate PWM and DIR signal. However, since it sounds like your G2 High-Power Motor Drivers are already damaged (see below), you might consider using something like our G2 Simple Motor Controllers (which can be configured to directly accept RC signals) instead. Unfortunately, since most of those are still currently rationed due to the global parts shortage, you might also consider the RoboClaw controllers as an alternative. Another alternative that might be more economical could be to program an Arduino to read your RC signals have it communicate with something like our Motoron M2S18v18 shield (which uses an I2C interface) to drive the motors.

It still seems valuable to comment on some of the questions and concerns you had while using the High Power Motor Drivers, so I have done so below.

Since the PWM pin is pulled low by default on the High Power Motor Driver boards, when you only have the VIN power connections to the High Power Motor Drivers, the motors should not spin. It is not clear to me what is causing one of yours to spin, but at the point where electronics have produced smoke, they are almost certainly damaged If you have not done so, I recommend retesting all of your receiver channels with servos separately from the drivers again to make sure your receiver is still functioning correctly. Additionally, from your pictures, it looks like your soldering could use some work. While it is probably too late to fix the soldering, it might even be possible that the PWM pin is shorted to the neighboring nSLP pin on one of your boards (it is hard to tell from the picture. Either way, several of the solder joints look like they could be cold or not wetting properly to the pads. For future reference I recommend referring to Adafruit’s Guide To Excellent Soldering. Also, please note that the RoboClaw controllers and some of the G2 Simple Motor Controllers that I mentioned above are available with the connectors pre-soldered.

Brandon

Hi Brandon,

I think I understand the issue now, I wasn’t aware before of the different types of PWM input signals. I’ll make sure to take a look at the linked resources, as well as the motor drivers available that can suit this project. I did test the RC channels again with the servo motor separately from the drivers and fortunately they all still work properly. Thanks so much for your help, I really appreciate it!

Amos