BLHeli_32, should I care?

Looks like BLHeli team is not wasting their time and is preparing something new for our multirotors. After BLHeli_S, we will also have BLHeli_32.

According to an announcement posted on RCGroups, new software for ESCs (and new ESC of course, since it will not be compatible with current Atmel and SiLabs MCU) will be:

  • Running 32-bit MCU, Cortex-M0 at 48MHz (STM32F0 ??). Which, in my opinion, is a very logical step to take. Please remember, that all SiLabs (Silicon Labs) MCU powering most of our ESC, are under the hood old Intels 8051. And please remember that Intel 8051 was created in 1980. 37 years ago…
  • There are few places where additional computational performance can be spent. For example:
    • Programmable PWM frequency up to 48kHz
    • Auto timing for better efficiency
    • Programmable brake on stop power, very useful for folding propellers
    • Voltage and current limiting
    • DShot1200
    • and more…

Airbot Wraith32 Plus

ESCs with BLHeli_32 are not available yet, but Airbot already announced Wraith32 Plus (with voltage and current limiting) and Wraith32 Mini (without voltage and current limiting).

PWM, OneShot125 and Brushed motor protocol on an oscilloscope

When I’ve buoght an oscilloscope (cheap digital DSO201), I’ve decided it would be a good idea to see how different ESC protocols looks like from the signal point of view. Previously I’ve written few words about them, like which is the fastest as so on, but is there something “special” about them?

Well, let’s find out…

“Standard” PWM at 400Hz

0% throttle

PWM 0% at 400Hz

100% throttle

PWM 100% at 400Hz

OneShot125 at 1kHz

0% throttle

OneShot125 0% at 1kHz

100% throttle

OneShot125 100% at 1kHz

“Analog” PWM used in Brushed motors at 16kHz

0% throttle

Brushed 16kHz 0%

100% throttle

Brushed 16kHz 100%


Well, looks like PWM, OneShot125, OneShot42 and Multishot (no screenshots for last two, but they are so similar it just made no sense to post those) are basically only an variation of the same basic idea: throttle position is encoded as a period of time between rising and falling edge of a signal. 0% throttle is encoded as period A, 100% as period B. Everything between is scaled lineary. Protocols differ only in update frequency and period lengths for 0% and 100% throttle. Boring…

Only “Analog” PWM for brushed motors is different. There are not rising edges on 0% and throttle, since 0% throttle means no current on motors.

But, this can change. There are first attempts for digital ESC protocols. Betaflight is preparing for DSHOT600 and DSHOT150 digital protocols as I write. Like always, hardware support is/will be highly limited, but hmm… ESC telemetry? Why not…

Air Crash Investigation: gone in 6 seconds

“What goes up, must come down”. I had an opportunity to face this old truth 2 weeks ago, when my 600mm quadcopter felt from 30 meters straight into water.

It was supposed to be a simple flight:

  1. take off
  2. fly few hundred meters away with GPS assist
  3. engage Return To Home and land

Dozens of missions like this in last few months, so really, nothing special. Unfortunately, like I mentioned above, not everything went as planned. 2 minutes after take off, UAV lost stability and went down with screaming motors. Continue reading “Air Crash Investigation: gone in 6 seconds” »

PWM, OneShot125, OneShot42, Multishot and DSHOT comparison

Two years ago it was simple: you wanted to connect ESC to Flight Controller or radio receiver, you were just doing it. There were only one (maybe 2) protocols that allowed to pass information to ESC. It was a standard PWM protocol. And it was enough. No, with faster hardware, mini or even micro quads, this one protocol is not enough. So, we also have OneShot125, OneShot42, and Multishot. Should we care? A little.

  • Legacy 'Analog' PWM signal – this protocol is not used in the multirotor world. It is supported only by an extremely limited number of ESCs and radio receivers. 0% PWM duty cycle means 'Stop' and 100% PWM duty cycle means 'Full power'. Modern UAV pilots/builders should not take about it at all. The interesting fact is that BLHeli supports it as PWM Input option that is disabled by default.
  • 'Standard' PWM signal – I've previously described this protocol here. To recall: protocol encodes requested output as a length of a pulse. The pulse length of 1ms means 'Stop' and the pulse length of 2ms means 'Full power'. Because of this, maximal theoretical update frequency is 500Hz (490Hz in practical applications). Signal delay in case of PWM protocol is 2ms. It means, that ESC can start to update output 2ms after the flight controller started to send this information. All of that makes PWM rater slow, and using loop times below 2000us (refresh rate 500Hz) makes no sense.
  • 'OneShot125' protocol – this protocol uses 8 times shorter pulses than standard PWM protocol: from 125us (stop) to 250us (full power). That means 2 things: it allows for 8 times faster PID control loop update rate (looptime 250us / 4kHz update rate). It also has 8 times shorter signal delay: only 250us instead of 2000us. Currently, OneShot125 is the minimum for mini quads. Even bigger machines will appreciate smaller delay. Supported by most flight controllers and ESC (SimonK, BLHeli, KISS, other). If both Flight Controller firmware and ESC supports OneShot125, it should be used.
  • OneShot42 is 3 times faster version of OneShot125. Max 12kHz update rate and 42us signal delay. It was developed by Flyduino as part of KISS FC and ESC 'program'. Not widely supported yet.
  • Multishot – the fastest ESC protocol in this comparison, developed by RaceFlight, allows for 32kHz update rate. It is almost 10 times faster than OneShot125 (80 times faster than PWM). Requires both fast FC (preferably STM32F4) and fast ESC (Silabls F390 preferably). Not widely supported mainly because of a limited number of 'Multishot ready' ESCs. And it has fancy startup melody too… man…
  • DSHOT that comes in many versions, DSHOT300, DSHOT600, DSHOT1200… This is the "digital" protocol. It's not based on the length of a pulse but uses zeros and ones send just like over a serial port to control ESCs. With error control, fast update and commands like "beep" or "reverse". In theory the best on. It's not supported by all the software and hardware tho.

BLHeli firmware for ZTW Spider 40A OPTO Small ESC

ZTW Spider 40A OPTO Small ESC with stock SimonK firmware can be easily flashed with BLHeli using Cleanflight interface. I just did it, the whole process took few minutes. To be true, it took me more time to find out which firmware should those ESC be flashed with, than to flash them. For unknown reason this information is well hidden in the internet! So, here is short guide:

  1. We will be using Cleanflight BLHeli passthrough interface. It is build in in laster Cleanflight / Betaflight / INAV firmwares
  2. Use latest BLHeliSuite. I used
  3. Connect ESC to flight controller
  4. Connect flight controller to USB port
  5. Run BLHeliSuite software
  6. From Interface menu select ATMEL BLHeli / SK Bootloader (Cleanflight)
  7. Select COM port and click Connect
  8. Connect ESC to battery
  9. Click Check to detect connected ESCs
  10. BLHeliSuite will detect unknown firmware with SimonK bootloader
  11. Select ESC (1, 2, 3 or 4) and click Flash BLHeli
  12. Here comes funny part. There is no ZTW Spider 40A OPTO Small formware! Documentation states that ZTW Spider 40A should be flashed with BlueSeries 30A firmware. But images in docs and mine ZTW Spiders differs a little. But, looks like it is not a problem. Select BlueSeries 30A MULTI firmware and flash
  13. BLHeli 14.x enables Damped Light by default. That might not be a best idea for big (> 8″) propellers so you might want to disable it

blheli on ZTW Spider 40A Opto

ZTW Spider 40A OPTO Small ESC running BLHeli

Bottom line: ZTW Spider 40A OPTO Small ESC should be flashed with BlueSeries 30A BLHeli firmware!

EMAX SimonK Series 30A ESC – 3 months later

When 3 month ago I was doing “Hands on” review for EMAX SimonK Series 30A ESC I was quite optimistic about them. Well, why should I not be? Quite cheap, decent quality, easy to configure. Did EMAX 30A SimonK Series ESC met expectations I was putting on them?

Simple and short answer is: no, they did not met expectations. Reason is: one of them caught fire during flight causing whole UAV to fell from 30 meters into water.

emax 30A ESC SimonK on fire

emax 30A ESC SimonK Series on fire

As you can see on the pictures above, ESC is completely burned. Both MOSFETs and electronics. How do I know it burned during flight and caused a crash and not the oter way? Thanks to Blackbox logs I have a proof that this single ESC and motor connected to it were gradually losing power before UAV crashed. Since motor and attached propeller survived without a scratch, ESC is the one to blame.

To make things worse, it was not too much load that killed it. Before crash ESCs were running at around 45% throttle. That is around 7A per ESC. Way below promised 30A.

So, final conclusion: no, maybe they are cheap and easy to use, they are not reliable! And that is the critical flaw of those ESC!

How to reverse motor direction

You finished your build, you connect LiPo, power up flight controller, apply throttle (no propellers of course) and you see that one or motors are spinning in wrong direction. How to fix that? You can not do it, for example in Cleanflight Configurator. ESC communication protocol does not allow to change BLC motor direction.

There are 4 ways of dealing with this problem:

  1. Hardware way that works all the time: swap any two motor wires. Does not matter which, just take any two and swap them between motor and ESC: A with B, B with C or A with C. If you have bullet connectors, it’s simple. If you soldered wires to ESC pads, you would have to resolder them. How to change motor direction
  2. If you have BLHeli ESC software, BLHeliSuite allows to change motor direction without swapping any wires. Connect to ESC with BLHeliSuite, and change Motor Direction option. blheli motor direction This works only with BLHeli enabled ESC, and only on Windows.
  3. Most of ESC allows to change options like motor direction via transmitter. Exact procedure differs from manufacturer to manufacturer, but usually it looks like below. For exact procedure and possible options refer to ESC user manual!
    1. Connect ESC to radio receiver throttle channel or use flight controller configurator software Live mode. Remember to remove propellers!
    2. Throttle UP
    3. Power ESC, it will start to beep signaling number of cells
    4. Keep throttle up until you hear a sequence that confirms programming mode has been entered
    5. Wait to hear beeping sequence indicating Motor Direction option
    6. Throttle DOWN
    7. Wait until you hear beeping sequence indicating desired rotation direction (normal or reversed)
    8. Throttle UP
    9. Setting will be changed and after next power cycle rotation direction will be changed
  4. Sometimes special programming cards for ESC can be acquired. They somehow automate procedure from point 3 but work on the same principle. For exact programming procedure refer to programming card user manual.

EMAX esc programming card

EMAX programming card photo [1]

Hands on: Emax SimonK Series 30A ESC

You want to know the secret? I’m cheap. I almost never buy expensive stuff. It’s not that I can not afford it and buy cheapest stuff available. In my opinion, both ways are wrong. I buy things that position themselves somewhere in the middle. Not the cheapest, not “the best” and most expensive? Why not the cheapest? Because of very low quality. Why not the best? Because I have to pay a lot a little of additional quality or performance I do not really need. And things in a middle usually provide enough for reasonable price. For me it makes sense…

Thanks to GearBest I’ve received a set of EMAX SimonK Series 30A ESC for a review. They are not the cheapest 30A ESC for multirotors. You can easily buy some no-name for almost half a price. You can also but “the best” for almost twice as much. But are they worth the price? I will try to find out in the next couple of weeks while using them on my 600mm quadcopter.


EMAX SimonK Series 30A ESCs are packed in antistatic bags with a user’s manual in Chinese and English.

EMAX ESC SimonK 30A boxed Continue reading “Hands on: Emax SimonK Series 30A ESC” »

ESC on fire: Multistar 10A v2 BLheli

What happens when your soldering skills are not as good as you thought they were? Well, usually you end up with something burned. That was exactly what happened to me last week. I replaced damaged motor, soldered wires directly to ESC, just like always, and went flying.

First LiPo, everything good. Second LiPo, no problems. Third LiPo, crash, no damage. Fourth LiPo, still no problems. Fifth LiPo, another crash, minor damage: cable tie holding one of ESC broken. I replaced cable tie, put another LiPo, replaced broken prop and attempted to take off. Quad refused to comply, flipped and popped magical smoke. Second later flame appeared. Fire went down only after disconnecting battery. Damage above repair, PCB burned.

Multistar 10A v2 ESC BLheli burned

Multistar 10A v2 ESC BLheli burned

Time for new ESC…