Adurover - autonomous reversing without bidirectional ESCs

I’m working on a Ardurover project that is controlling 4 independent motors. The motors are 300watt brushless DC with dedicated motor controllers. The motor controllers do not work like bi-directional ESCs. They require a switch on the motor controller to toggle for forward and reverse operation.

I would like the ability to do pivot turns but I don’t see an easy way.

In manual mode I could have a switch on the RC TX that could remotely toggle switches but that wouldn’t solve the issue for autonomous modes.

I was reading about the “brushed with relay” feature just now. Am I on the right track?

Not really, brushed with relay uses different PWM type though you could try regular PWM with reverse relay output assigned.

Somebody was trying to configure water jet with reverser bucket a few months ago. In the end they might have had to use Lua.

L298N with TTL glue.

However, the L298 won’t reach 300W. You can try some Pololu dual motor driver with additional power output stage, or hoverboard controllers.

They are using a BLDC with a controller.

Thanks for that. I’ll give it a try on the bench.
It looks like you can configure 4 reverse relay functions. Perfect for my configuration.

Curious, you mention that the PWM for brushed is different than brushed motors. How so?

How works your motor controller in detail?
Can you send a link to the product decription or manual?
The FC only communicates with the ESC / motorcontroller. So if the motor behind is brushless or brushed is unimportant and not seen by the FC.
So the way with “brushed with relay” could be possible.

Brushed controllers often use duty cycle PWM (0-100%) instead of pulse duration (typically 1100-1900us or 1000-2000us) and tend to have higher minimum frequency (ex you may use 0-1000us pulses repeated at 1kHz to get 0-100% duty cycle).

1 Like

Here is a link to the manual for the BL40 Brushless Motor Driver

The product link is here: https://www.aliexpress.us/item/3256804007772779.html

It looks like you can use the Brushed w/Relay control scheme provided by ArduPilot with this speed controller. The PWM output on a servo output assigned to ThrottleLeft or ThrottleRight should be compatible. Use the associated relay outputs to trigger the forward/reverse logic.

Slightly off topic:
@Webillo - because AP now supports inverted relay logic, there’s no need for any additional hardware, “TTL glue” (or scripting) for L298N drivers. They are supported natively (see link above).

1 Like

Thanks to the feedback. I will configure the system this way and report back. I should have the controllers and motors in hand by the end of the month.

@LupusTheCanine, as you can see in the manual of the linked controller the duty cycle PWM (0-100%) is not exclusiv on brushed motor controllers :smile:


But as seen that occupies four Pixhawk AUX pins. With the TTL glue only two Pixhawk AUXs are occupied, and the other four can be the four encoder interrupting inputs here.

Then it comes down to one’s definition of complexity and/or specific needs. Added hardware can be seen as equally good or bad as using additional GPIO.

1 Like

For balance bots, previous connections are incompatible with this ones:

The vast majority of Rovers are not balance bots, and most do not need/use encoders, either. Again, specific needs…

2 Likes

Balance Bots and Single Copters. The red headed step children of Ardupilot :slightly_smiling_face:

1 Like

Thank you all for giving me feedback on this thread.
I wanted to report back and let you how the configuration came together.

I confirmed that the motor controllers I purchased like a PWM signal from 0% to 100% rather than the RC servo type PWM signal.

I successfully configured the Adupilot for Brushed with Relay settings and everything worked great.


At least I have a roadmap to improve support for singlecopters and some flapped/gimballed multirotors too. Takes too long with the daytime job, but I’m about to get a research leave next semester, so…

2 Likes