ESC Calibration Arduino


Good morming,

I'm having trouble calibrating the Brushless motors with the ESC and arduino UNO. I have:

  • Arduino UNO
  • Turnigy Series Brushless Speed Controller
  • Brushless motor

The problem I'm having is that the motors turns only in one direction, if I changes the values when I calibrate the ESC the motor goes in other direction but I cant make it change direction with the same calibration values.

The conection I believe they are correct because it works, but not as I expected. I guess the problem is the ESC, I dont know if you have been in asimliar situation...

Thank you very much for your help


If you are using an airplane or helicopter ESC, it will only turn in one direction after it is calibrated. The ESCs used in OpenROV are car ESCs, which will go in forward and reverse.


I'm using a car ESC, but I have no clue how to make it work in both directions when calibrating... I attach a picture of the ESC

715-20140314_115345.jpg (601 KB)


If this ESC is only operating in one direction, then you haven't programmed it correctly. Go back and reprogram it for forward/reverse operation.



What is the ‘correct’ way to program an ESC? I am also having difficulty getting it to spin in reverse.


Almost all hobby ESCs have some amount of programmability built-in to them. To program them, you need to have an adapter for that particular ESC or family of ESCs. For instance, hobbyking sells a USB programming adapter for Afro ESCs, the type of ESC that is used on OpenROV 2.7 and 2.8.


Thank you for the reply! I will purchase one of those ASAP.


I purchased & received the Afro ESC programming tool. I have successfully flashed the latest firmware onto the ESCs, however I am still unsure of how to program them to go in reverse (via Servo library in Arduino). Other ESCs mention a startup procedure that will tell the ESC what range I’d like them to run in - however I’m finding none of this documented for the Afros. Any more suggestions?

Your help is much appreciated,




If you look in the main assembler file (tgy.asm), you will see a lot of parameters that can be changed before re-assembling the code. If I remember correctly, to enable forward/reverse operation you change the parameter RC_PULS_REVERSE from 0 to 1.



Thank you so much :slight_smile: Everything worked!