ESC EMAX BLHELI Flash needed?

Hey,
I got BLHeli 25A connected to brushless motor , it looks it got bad since randomly it will stop rotatating the motor ( I got 2 so I swapped and the issue went to the other motor)
I bought a new BLHeli to replace the bad one, isnt it plug n play ?
it doesnt work, connected the same way as the old one.

both controlled via same pin on arduino nano .. so one motor works and the other one doesnt

its not code related but maybe someone here had that issue

25a.jpg

25a.jpg

I have never needed to flash an ESC out of the box.

I have never had a dead-on-arrival ESC, even though I buy inexpensive ones from far away.

While I have flashed ESCs to get special or different features, it should not usually be necessary for pedestrian purposes. Google is your friend here, it's not hard but it can be a bit complicated.

Lastly should have been first: have you tried calibrating the ESC? What response do you get?

Also: try more swapping. It is not impossible, however unlikely, that a motor and ESC do not "get along". This usually means something wrong, but it may be too early to conclude that you have found the error source.

I am just saying make sure you try every corner of the area.

HTH

a7

how would I calibrate it?
I got calibrate in the code
setting 1000,2000 than calibration

might be dead on arrival

It may be different, google for your exact situation.

  1. without the power connected to the ESC send maximum pulse width and

  2. hook up the power to the ESC

  3. wait for some tones - tones come from the motor, so if no motor, no tones. Just wait 20 seconds shou,d be more than enough.

  4. send minimum pulse width to the ESC

  5. wait for a few more tones

This sets the endpoints for the ESC firmware.

You can do it all on the Arduino, I used Serial.read to get the pulse width setting and change it in the loop, a very simple test program that you can further use to exercise the ESC and moto.

a7

can you show me an example for sending maximum? and minimum?
I'll try it tommorw, I think that that when motor is connected there is some beeps

It's a trivial program, if you cannot understand this you may want to adjust your priorities.

I don't think this is my code, it's a bit fancy for something I throw together. On the other hand, it's a bit crude compared to anything someone would publish with pride.

I have not used this, but it was left where I would find it and it has worked. For me and some of the ESCs I use. The ESC signal can be as simple as the servo signal which is what you are doing if you use the Servo.h library.

The constants MAX and MIN_SIGNAL are plausible endpoints; your ESC may use different values.

The line ending should be set to "No line ending" in the IDE serial monitor window so you can send single characters. Like I said, it's crude.

The motor should be mounted firmly and void of propellers and stuff, even though this can be done without spinning the motors. One never knows.

// zoomkat 10-22-11 serial servo test
may not have had anything to do with this at some point, but hey! Thanks.

a7

#include <Servo.h>

#define MAX_SIGNAL 2000
#define MIN_SIGNAL 1000  // 700 ?
#define MOTOR_PIN 7

Servo motor;

void setup() {
  Serial.begin(9600);
  Serial.println("ESC Calibration Dance.");

  motor.attach(MOTOR_PIN);
}

void loop()
{
  Serial.println("Start (again) the calibrate dance for ESC.");


  Serial.println("Turn OFF power source."); keywait();

  Serial.println("Now writing maximum output.");
  motor.writeMicroseconds(MAX_SIGNAL);
  Serial.println("Turn ON power source."); keywait();
  
  Serial.println("Now to write minimum output"); keywait();
  motor.writeMicroseconds(MIN_SIGNAL);
}

// Wait for human
void keywait()
{
  Serial.println(" So press any key.");

  while (!Serial.available())
    ;
  Serial.read();
}

Thank you very much, it works now
:slight_smile:

Do you mean that

A. calibrating the ESC as outlined above solved your problem

OR

B. while fooling around, you discovered some stupid mistake other error in your circuit or code

Enquiring minds would like to know, THX.

alto777

My code had calibration but the needed sequence of disconnecting volatge ,etc wasn't going on, so I used your script and follow the steps, and it worked.
didn't change anything on my code :slight_smile:

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