Reversing A Brushless Motor Electrically

Hello, I have a brushless motor running from my arduino uno via an esc and I have discovered it is not reversible by the esc but it can be reversed my switching around any two wires on the motor. Is there any way I can make the arduino switch the connections? Transistors? An H-bridge?

a dpdt (double pole double throw) relay driven via transistor should be suitable for reversing one of the windings

reversing one of the windings

Make that two of the windings. Note that there may be reversing ESCs available that are used in RC cars and such.

FYI,
You probably don't want reverse it unless the throttle is at zero. You only need to zero it for the
response time of the relay + 30% so if it is 30 mS then probably 50 mS would be sufficient time
to keep the throttle zeroed.

You have to be careful. It is not JUST the relay actuation time you must be concerned with, but also the mechanical inertia of the system and any acceleration or deceleration built into the ESC. To just add 30% to the relay time could cause overheating if the motor has not stopped due to flywheel effects, particularly if the reversing is done frequently.

Zoomcat: Why would you want to reverse two of the windings? Reversing a single winding will reverse the motor if it is a three phase brushless.

-fab

jackrae:
a dpdt (double pole double throw) relay driven via transistor should be suitable for reversing one of the windings

Thanks for the reply! I found this, would it work? http://www.seeedstudio.com/wiki/Relay_Shield_V2.0

Zoomcat: Why would you want to reverse two of the windings? Reversing a single winding will reverse the motor if it is a three phase brushless.

If two wires are reversed, how many of the three winding are affected? How is the motor wired? Y, deta, other?

Yes but you need to use TWO of the relays. The power wires + & - go to the N.O. & N.C contacts. The motor + & - wires each go to ONE of the COM(mon) pins. Your code should always have ONE relay ON
and other OFF. Personally , I don't like relying on code for that so I would use a 7404 TTL inverter chip
(or a transistor) to invert the signal to one of the relays so the other relay ALWAYS gets the OPPOSITE
signal (If K1 is HIGH, K2 is LOW, and vice versa). That's bullet proof.

If two wires are reversed, how many of the three winding are affected? How is the motor wired? Y, deta, other?

Any hobby brushless motor will revere direction if ANY two windings are reversed.

That's bullet proof.

Why is a DTDP relay not "bullet proof"?

Yes. A DPDT relay is bullet proof, 2 independent relays running independent control lines is NOT bullet proof.(ie: 2 SPST relays)

I surmise that most BLDC motors are delta wound (on the basis that they have three power connections)

Let us assume the windings are terminated U,V,W and the supply lines are terminated A,B,C. Then if CW rotation is achieved by having connections A-U, B-V and C-W then reversal to CCW rotation can be accomplished by re-arranging connections to A-U, B-W and C-V. This is a single coil reversal (Coil V-W)

If you were to reverse two coils the result would be a double reversal which takes you back to normal rotation

IF the motor was star wound and the common (neutral) point remained hidden internally there are still only three connections and "technically" speaking swapping two connections is reconfiguring two windings but that really is just picking at straws. One is still swapping over only two lines

raschemmel:
..... Personally , I don't like relying on code for that so I would use a 7404 TTL inverter chip
(or a transistor) ....

why ?
Well written code which works is less likely to fail all of a sudden than an electronic device

Many visualise a problem when using a pair of logic controlled SPDT relays to accomplish reversing in that there is danger of incorrect relay operation causing a short on the system power supply.

This would be the case if the power was fed to the moving contact arms with the NO and NC terminals being used in a conventional cross-over configuration and connected to the driven component (be it DC motor or the coil of a BLDC motor)

However, if the situation is "reversed" and the relays are wired such that the driven component (DC motor or BLDC coil) is wired to the relay moving contacts with the power feed connected to the fixed NO and NC contacts wired such that one pole of the power goes to both NO contacts and the other pole of the power goes to both NC contacts then there is no danger of shortening the power supply. With this wiring method, failure of one of the relays to sequence correctly simply ends up in simple and "safe" disconnection of the driven component.

Of course a typical BLDC (3-phase motor) won't "like" having one of its phases left open circuit and will refuse to run but that is somewhat better than inadvertently applying a short circuit across your power supply.

1 Like

How large is the motor and ESC? the peak currents possible via an ESC might be
in the 100A range, which is way beyond most relays.

Also while the relay is switching there is a short time during which only two of the ESC
output wires are connected to the motor. That is generally a no-no with high current ESCs
since the normal back EMF feedback mechanism cannot operate and the ESC may simply
burn out the winding (or itself).

Or put another way don't be surprised if you break something doing this.

MarkT:
Or put another way don't be surprised if you break something doing this.

totally agree.
I think I would go for a reversible ESC myself

Hopefully the motor is the weakest link but you could end up with some pretty hot suppl cables as well

But the OP's question was "how do I do it" not " will I break anything if I do it wrong" :smiling_imp:

if I had to I would use h bridge (s)

Wired using high current practice.

And timed with sufficient dead time to allow the motor to stop before reversing.

I have done this with a brushed motor but not a brushless one.

Not using an ESC but direct pwm of one leg.

I have seen a burnt out expensive motor and esc there someone used car solenoids to try this and got it wrong.
not strictly his fault as burke advising him did not understand the interaction between esc and motor.
Switching under load can destroy both, no protection.
That was a model boat and the esc,s or them are not always symmetrical either.
Not that you would reverse one of those anyway as they are reversible themselves.

The bottom line is that if you use two independent SPST relays, you must double check the wiring you use
to make sure that NO combination of relays ON/OFF results in shorting one ESC output to another, which
would blow the ESC , most likely. (some have short protection circuitry). Using a DPDT eliminates the need
for such precautions.

Raschemmel
With the method I suggested there is NO possibility that the ESC outputs can be shortened together, if wired correctly, irrespective of what the relays are doing. Whilst a DPDT relay does seem to provide avoidance of possible shorts its security isn't foolproof since one set of contacts could weld closed and on the next transition a short is applied to the supply system (ESC)

In an arduino is being used to control the ESC then suitable stop periods can be incorporated in the software to prevent attempts at reversing whilst still being powered