I have a BLDC motor and a 300 amp ESC, The ESC shuts down after a few seconds at full load. The motor only draws 2 amps at full throttle, full load and the voltage only drops .5 volts. The battery is 6-s 8-p and has been tested, all cells are good My question is what is triggering the shutdown in the ESC? I have it set at 3v per cell which would be 18v It never get's lower than 24v. Nothing gets hot, it isn't on long enough to even get warm. If it's not the LVC is there something in the ESC that tells it is drawing to much current? Could it be the back EMF is not triggering the sequence correctly? I'm using an Arduino connected to the ESC instead of RC, Could there be anything in the code I could adjust?

#include <Servo.h> //Using servo library to control ESC
Servo esc; //Creating a servo class with name as esc
void setup()
esc.attach(10); //Specify the esc signal pin,Here as D10
esc.writeMicroseconds(1000); //initialize the signal to 1000
void loop()
int val; //Creating a variable val
val= analogRead(A0); //Read input from analog pin a0 and store in val
val= map(val, 0, 1023,1000,2000); //mapping val to minimum and maximum(Change if needed)
esc.writeMicroseconds(val); //using val as the signal to esc
  • Motor: SSS 56114 360KV Brushless 1/5 Motor 13.000W 56114mm for Boat, car and Surfboard Maximum Amps: 95A Max volt: 125V.

  • ESC: SPECS 300A BOAT ESC Flier mod. R-Snake Voltage (LiPo): 3-12S Voltage: 12V to 50V Anti-spark cable: yes Wires: 8AWG Connectors: 8mm Bullet BEC: No Size (mm): 2405735 Weight: 387g

This is a custom build so there is no other info on the prop.

  • $\begingroup$ Some ESCs have a 'lost comms' feature which cuts the drive after a few seconds without receiving a signal. I'm not familiar with the Arduino Servo library - does the writeMicroseconds() function send the value just once, or is it repeated/continuous? In the former case, it might interpret this is a loss of signal; adding a loop might help? $\endgroup$
    – Kralc
    Commented May 28, 2021 at 13:37
  • $\begingroup$ Thank you, That sounds very possible. It runs for about 12 seconds, shuts down, but I can start it again immediately. How would I add a loop to the code? $\endgroup$
    – edrummer
    Commented May 28, 2021 at 17:27
  • $\begingroup$ A simple loop could be done with while(true) { esc.writeMicroseconds(val); delay(100); }. $\endgroup$
    – Kralc
    Commented May 29, 2021 at 8:00
  • $\begingroup$ @Kralc, it should loop anyway, as it's in the loop function. Adding a delay might help as servos expect a pulse every 50ms $\endgroup$ Commented Jun 28, 2021 at 8:04
  • $\begingroup$ You could try a regular servo tester to generate the signal, to see if the problem is in the arduino or the ESC. $\endgroup$ Commented Jun 28, 2021 at 8:06

1 Answer 1


This has already happened to me, the problem was ESC configuration.

I was using a LiFe battery (3.3V/Cell) and the Low Voltage Cut-Off Threshold ESC configuration was about to cut the current with 3.2V/Cell. Look for the programmable settings of your ESC and check how it is.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.