Esc brushless motor not work exactly

hello, I am making a drone based on arduino with NRF transmitter, my problem is when I have calibrated every each ESC, it is ok, but if I start 2 or more motors together they stop early for example in 1/3 of full power, I don't know what is the reasen of that behave, thank you

Your post was MOVED to its current location as it is more suitable.

Could you also take a few moments to Learn How To Use The Forum.

Other general help and troubleshooting advice can be found here.
It will help you get the best out of the forum in the future.

Maybe your power supply is not strong enough for 2 esc's at the same time. Do you power the esc's from a lipo or something else?

It is new lipo battery 3S ,5000mAh , 60C

Hi, @dronappsemi
Welcome to the forum.

Can you please post your code, using code tags?
Can you please post a circuit diagram?
Can you please post an image(s) of your project?

Do the ESC beep a code when the problem occurs?

Thanks.. Tom... :smiley: :+1: :coffee: :australia:

And is the lipo fully charged? If yes then you may have bad wiring/connectors somewhere in the battery/ESCs/motors chain.

Steve

So, here is a code, which I use to calibrate esc, and test motors, range of pwm width is in watch esc different, because the motors are going on that range...I listen beeps when I connect Power, Also on send "0", but aby beeps sa count of lipo cells.


#include <Servo.h>

Servo motA, motB, motC, motD;
char data;

void setup() {
    Serial.begin(9600);

       

motA.attach(3, 500,870);  
motB.attach(5, 500,2000);  
motC.attach(6, 1050,1910);  
motD.attach(9, 500,1910);  


 displayInstructions();
}

void loop() {
  
    if (Serial.available()) {
        data = Serial.read();

        switch (data) {
            // 0
            case 48 : Serial.println("Sending 0 throttle");

                      motA.write(0);
                     motB.write(0);
                     motC.write(0);
                     motD.write(0);
            break;

            // 1
            case 49 : Serial.println("Sending 180 throttle");
                      motA.write(180);
                      motB.write(180);
                      motC.write(180);
                     motD.write(180);

            break;

            // 2
case 50 : Serial.print("Running test in 3");
                      delay(1000);
                      Serial.print(" 2");
                      delay(1000);
                      Serial.println(" 1...");
                      delay(1000);
                      test();

            break;
        }
    }}
}

/**
 * Test function sending angle to the ESCs from 0 to 180 degrees
 */

void test()
{
  delay(1000);
    for (int i=0; i<=180; i++)
    if (Serial.available()) {

 
        Serial.print("Speed = ");
        Serial.println(i);
       
        motA.write(i);
        motB.write(i);
        motC.write(i);
        motD.write(i);

/* 
//IF I USE writeMicroseconds NOT WRITE, THE RESULT IS SAME

int  m1 = map(i,0,180,500,870);

int  m2 = map(i,0,180,500,2000);

int  m3 = map(i,0,180,1050,1910);

int  m4 = map(i,0,180,500,1910);


       motA.writeMicroseconds(m1);

            motD.writeMicroseconds(m4);
                
            motB.writeMicroseconds(m2);
                
              motC.writeMicroseconds(m3); 
*/
 
        delay(200);
    }

    Serial.println("STOP");
    motA.write(0);
    motB.write(0);
    motC.write(0);
    motD.write(0);



/**
 * Displays instructions to user
 */

void displayInstructions()
{  
    Serial.println("READY - PLEASE SEND INSTRUCTIONS AS FOLLOWING :");
    Serial.println("\t0 : Sends 0 throttle");
    Serial.println("\t1 : Sends 180 throttle");
    Serial.println("\t2 : Runs test function\n");
}

Shoud be a problem from using PDB?

Hi,
@dronappsemi schematic;

Please label what the connections are to each piece of hardware.
What are the four connections to each ESC?

Your Power Distribution Board should be easy, WHEN you label things.

Tom... :smiley: :+1: :coffee: :australia:

That sounds like plenty, 300A max. I'd start worrying that the wiring or power distribution board are the limiting factors - can you monitor each ESC's supply voltage during a test to see if there's voltage droop?

Ok, I will monitor it

Hi,
Can you please post a link to data/spec of the Power Distribution Board?

Thanks.. Tom.... :smiley: :+1: :coffee: :australia:

Features of PDB :

  1. 2oz copper, 4-layers &1.6mm PCB.

  2. Built-in XT60 Socket.

  3. Total 6 pairs ESC solder tabs are fit for H or X type frame.

  4. 5V & 12V Output LED indicators & Short circuit tolerant .

Specifications:

  1. Input voltage range (3S-4S LiPo operation): 9 - 18V DC

  2. Regulated 5V and 12V outputs

  3. LED power indicators ( 5V & 12V outputs )

  4. 6 ESC outputs & 1 pair VCC/GND pads

  5. Size: 50 x 35 x 3mm/2 x 1.4 x 0.1 in

  6. Package size: 145 x 88mm/5.7 x 3.5 in

  7. Net Weight: 10g

  8. Package weight: 15g

ESC outputs:

  1. Continuous current: 25A4 or 15A6

  2. Peak current (10 seconds/minute): 30A4 or 20A6

BEC 5V output:

  1. Designed for RC Receivers, Flight controllers, OSD, and Servos.

  2. DC/DC synchronous buck regulator.

  3. Voltage: 5.0 +/- 0.1VDC

  4. Continuous current: 2 Amps (Max.2.5A 10s/minute)

  5. Output Ripple: 40mV (VIn=16V, VOut=5V@2A load)

  6. Short-circuit tolerant (5 seconds/minute)

BEC 12V output:

  1. Designed for Video TX or FPV camera with linear regulator.

  2. The battery should be 4S LiPo (13~18V DC)

  3. Voltage: 12.0 +/- 0.3VDC

  4. Continuous current: 500mA (Max.0.8A 5s/minute)

  5. Short-circuit tolerant (2 seconds/minute)

BEC 12V @ 3S LiPo

Output voltage= 3S LiPo voltage -1V

Hi,

Are you sure the current limit on the outputs are not being exceeded.

Tom.... :smiley: :+1: :coffee: :australia:

I Can test it without using PDB, if it will be ok, than we will know a problem

So I have tried to make something like by-pass and connect lipo battery directly to 2 esc without PDB and IT seems that work ok, today I will connect All of esc

So, after some weeks, I have time to test All esc without conection by PDB, but there IS Still the samé problém

After battling with my 2 esc's i found with mine the best way is to attach the motor in the 1000 to 2000 range then write 2000 for full power delay 2 seconds then 1000 to map the throttle ,apparently required by my esc's. for example:

LeftESC.attach(9, 1000, 2000);       // attached to pin 9 I just do this with 1 Servo
  Serial.begin(9600);    // start serial at 9600 baud
  LeftESC.write(2000);
  delay(2000);
  LeftESC.write(1000);

leftThrust = map(yAxis, 0, 1020, 1000, 2000);
  LeftESC.write(leftThrust);

it looks like your using the pot values in your motor value statement possibly?