Blue ESC rotation direction control

Hello, all. I have a question on controlling the direction of a brushless, sensor-less motor/ESC combination. I know that any two phase (motor drive) wires can be reversed to achieve this, and I know that the Blue ESC has a firmware/software provision to do the same. My question is as follows:

Can the direction of rotation also be changes by swapping either:

  1. Any two phase sense (back EMF) wires? (PHASE_A -> PHASE_B and vice-a-versa)
  2. Any two pairs of phase drive signals? (AH->BH, AL-BL and vice-a-versa)
Your comments are appreciated, -A


The phase sensing and phase driving wires from the ESC are the sames wires. The sensing and the driving for each phase must be the same or the ESC firmware will be very confused. I suppose it might work to some degree since it would still sense rotation, but the motor timing would be off by quite a bit. I think the answer to your question is no.

You can imagine the motor being simplified to just three windings. Those would be arranged in a circle and pulsed sequentially as the motor rotates. You can see that if you switch two of those but keep sending the same pulses, the direction will change.


Rusty, thank you for the quick response.

When I say “phase drive”, I’m referring to the high- and low- MOSFET gate drive signals, NOT the output of that phase. So, if I re-direct the gate drive originally intended for PHASE_A to PHASE_B, and vice-a-versa, does that change the motor direction?




I think you’ll want to re-direct the back-EMF sensing as well or it would have trouble accurately sensing the rotation. That said, the SimonK firmware can operate fine with only two phases of back-EMF sensing. The software to reverse direction essentially just flips two gate drives and sensing to reverse direction.

Can you tell me more about your application and what you are trying to do?


Rusty, thanks again for the feedback. I had the same thought - both the MOSFET drive and phase feedback signals would have to be switched to change direction. Doing this in hardware, outside the processor, is pretty crude.

I see that the phase feedback signal is routed to both the gate drive circuit and the processor; does the processor use the feedback signal to calculate RPM only, or to time the commutation as well?

I’m working on a version of the Blue ESC with a hardware direction switch. Unfortunately, all processor input channels are spoken for, leaving me w/o a clean hardware option. I’m thinking about introducing a DC bias to the current or temp sense inputs to indicate the desired rotation direction. Making sense of the bias will require a minor change to the firmware - is the firmware source available?


Okay. The firmware uses the sensing to time commutation.

Why do you need a hardware direction switch?

The firmware is open source:

Our branch: GitHub - bluerobotics/tgy: Modification of the tgy firmware to support I2C communication for the BlueESC.
Main branch: GitHub - sim-/tgy: tgy -- Open Source Firmware for ATmega-based Brushless ESCs


Rusty, the hardware switch is a convenient feature in my application, even with the presence of the firmware direction control. Thank you again for the help, -Alex


Okay. Sounds good. Good luck!