Brushless betafpv motor with Arduino

This is my first time trying to control a brushless motor with Arduino, but I'm running into problems that I haven't been able to work through. I'm hoping it's just because I'm a noob with brushless stuff, and there's something easy I'm missing.

I'm using a tiny BetaFPV 11000KV 7.4v Whoop drone motor with a load current of 3.8A. (1103 Brushless Motors – BETAFPV Hobby)
The ESC is E-Power 10A
The battery is a 2S lipo
Arduino is Arduino Uno

A poor attempt at a circuit diagram:

When I connect the ESC to battery, the motor beeps to indicate that it is connected. I can do a calibration sequence where I output full throttle (PWM 2000us) for two seconds, then go to low throttle (1000us), and it gives me confirmation beeps for all of that.

But when I then try to start the motor by sending anything over min throttle (1100us, for example), the motor twitches a bit, then seems to power cycle as though it's browning out. Since my arduino is powered from the ESC, it also power cycles, so the whole process starts over.

I also tried powering the arduino from a separate power source:

But then the motor just continually twitches. I'm not sure what I did differently, but at one point, the motor actually started to spin, but then gave out some magic smoke. So I somehow toasted that motor. Luckily I have some more, but I want to figure out what I'm doing wrong so I don't burn up more of them.

I know these motors are intended for use with whoop flight controllers, but I thought they would work the same as any other brushless motor, and should be controllable with a normal ESC. But maybe they require some special type of ESC? That's probably a question for a different forum. But if anyone here knows what I might be doing wrong, any help is appreciated!

My test code:

#include <Servo.h>

#define ESC_PIN 9
Servo esc;

void setup()
{
    esc.attach(ESC_PIN, 1000, 2000);

    // Calibration sequence
    esc.writeMicroseconds(2000); //Set high throttle.  Get a confirmation beep
    delay(2000); 
    esc.writeMicroseconds(1000); //Set low throttle. Get a confirmation tune
    delay(2000);

    esc.writeMicroseconds(1300); //Try to start the motor. Motor twitches, and everything resets.
}

void loop()
{
}

The first aid You need is a topic You need to read, and use. Here it is: How to get the best out of this forum - Using Arduino / IDE 1.x - Arduino Forum

1 Like

I will take a SWAG and say that is correct. Without any information on the hardware and its capacity that is about the best I can do.

I'm not sure how to further identify the hardware; there aren't any markings to go off of other than "E Power 10A ESC". They were given to me, so I'm not sure where they were purchased.

But the good news is that some 20A ESCs I ordered arrived today, and they seem to work just fine with these motors.

I still don't understand why the E Power ESCs didn't work; they're rated for 10A, and these motors draw ~4500mA peak (I can test that now with the new ESCs). But at least I can move forward with the new ESCs. Plus, the new ones have BLHeli firmware, which has nice documentation.

Thanks for your help!

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.