Here's what you will want to look for in a ESC for your quadcopter ...
Each motor on your quadcopter has a separate ESC that provides it power. In addition to the motor, some ESCs may also power servos as well. The maximum current the ESC can handle should exceed the demands placed on it under peak conditions by all of the components connected to it. If not, the ESC can be overloaded, overheat and then burn out, leading to a crash.
That said, you would not want to use a ESC whose max amp rating far exceeds that of the demands placed on it - for the simple reason that could lead to the ESC being heavier - and more expensive - than it really should be. You want to minimize weight without compromising on the reliability of any component.
Flight controllers send signals to the ESCs at around 400Hz. Hundreds of adjustments have to be made to the motor speeds every second in order to keep the quadcopter airborne. In case your ESCs cannot handle these kind of refresh rates, the motors will not respond as fast as they should - and that is not desirable. For the craft to be stable and very responsive to controls, the ESCs need to be fast enough.
- ESC Firmware / Software Options
The firmware installed in the ESc is what makes sense of the signals that the ESC receives from the flight controller and then use that information to control the motor speed. Some ESCs allow you to flash them and replace the preinstalled firmware with open source programs that can be downloaded from the Internet. But that may not be always possible - in which case you will have to connect the ESC to a programmer by soldering.
Programming ESCs using a programming card is a fairly easy and straightforward process. On the other hand, using a transmitter to program ESCs is a more complicated process. ESC programming cards are available at most hobby stores and they are very inexpensive. You can use this process to tell the ESC to turn the brake off, tell it what type of batteries you are using, set the voltage cut off to low and so on.
Broadly speaking, there are three options when it comes to firmware ...
These are not designed specifically for multi rotors, and can be used in other ESCs - RC airplanes for instance. The needs of multi rotors and other RC aircraft like airplanes, gliders and helicopters are very different. In RC planes, the motors speeds averaged and motors speeds do not change very fast.
And airplane ESCs need only handle a 50Hz signal - which would be awfully inadequate for a quadcopter. Quadcopter ESCs need to handle signals up to a frequency of 490Hz. Using firmware that's not designed for quadcopters and multi rotors is not the best thing to do if you are really serious about the hobby. The best choices for you would be SimonK or BLHeli that are designed only for use in multirotors.
This is designed specifically for multi rotors. There are quite a few different versions of SimonK software out there. It's possibly the best choice for your quadcopter's ESC because it takes motor response to the maximum - the controller makes much faster adjustments to motor speeds which makes the quad a lot more stable and responsive.
If you have been using "standard" firmware and switch to SimonK, you will notice the difference almost instantly. Your drone feels a lot more stable, responsive and easier and more fun to fly.
BLHeli is a relatively new firmware that's also designed specifically for quadcopters and other multirotors. And it offers all of the advantages of SimonK - and then some more. It offers a lot more flexibility if you want to change some setting - something that would require you to flash the firmware with SimonK.
The best thing you could do would be to buy a SimonK or BLHeli ESC with a bootloader if you are someone who changes things a lot - or if you are just getting started. But if you are really serious about drones, don't buy something other than SimonK or BLHeli.
There's just one other thing we would want to discuss about this topic - Oneshot. Oneshot125 - as its also called, is a communication protocol that allows for much faster communication between your ESC and the flight controller.For this to work, you would want to enable Oneshot on the flight controller as well as the ESCs.
This will allow the flight controller to send signals to the ESCs a lot faster, and this the motor speeds will be controlled much better leading to much better responsiveness and stability.
Both SimonK and BLHeli now support this communication protocol while traditional ESCs do not - which means apart from SimonK or BLheli, there's not much choice when it comes to ESC firmware.