Comparison of SimonK and BLHeli on an Afro30 ESC

Afro30

This article documents some comparison tests of:

  • SimonK commit 1f75da384e5c83f83916aa752819ca6eed712565 afro_nfet.hex with COMP_PWM; and
  • BLHeli v11.2 commit baaa4db600b5cd78752c9b4f580fd08d15f1f1f1 for Hobbyking Afro 30A.

In each case, default configuration was used (apart from COMP_PWM on SimonK), and 4s battery used for tests. Both firmwares were loaded under the SImonK bootloader.

The motor used for the test was a Hobbyking 4822-690Kv. This motor has been mentioned in reports of sync problems with SimonK, though in my experience they have been fairly good on recent releases on other ESCs than this one.

The tests comprise a set of throttle variations driven from a script on Arduino RC servo ramp generator.

The part of the script shown in the graphics in this article is:

//rapid mid range test
ramp(300/(RATE*0.05),RATE*0.05); //quick up to 1400
for(i=5;i--;){
  ramp(200/(RATE*0.05),RATE*0.05); //quick up to 1600
  delay(50);
  ramp(-200/(RATE*0.05),RATE*0.05); //quick down to 1400
  delay(50);
  }
ramp(-300/(RATE*0.1),RATE*0.1); //quick down to 1100
  delay(2000);

//other tests
ramp(900/(RATE*2),RATE*2); //slow up ramp to max
delay(500);
ramp(-150/(RATE*0.5),RATE*0.5); //quick down to 1850
delay(500);
for(i=3;i--;){
  ramp(-650/(RATE*0.5),RATE*0.5); //quick down to 1200
  ramp(650/(RATE*0.5),RATE*0.5); //quick up to 1850
  ramp(-250/(RATE*0.2),RATE*0.2); //quick down to 1200
  ramp(250/(RATE*0.2),RATE*0.2); //quick up to 1850
  ramp(-850/(RATE*0.5),RATE*0.5); //quick down to 1000
  ramp(400/(RATE*0.2),RATE*0.2); //quick up to 400
  delay(500);
  ramp(450/(RATE*0.2),RATE*0.2); //quick up to 1850
  delay(1000);
  }

SimonK

CroppedEagle12

Above is a plot of rpm and current for the test scenario.

CroppedEagle13

Above is a zoomed in view of the rapid mid range part of the test.

BLHeli

CroppedEagle10

Above is a plot of rpm and current for the test scenario.

CroppedEagle11

Above is a zoomed in view of the rapid mid range part of the test.

Comparison

Both ESCs performed well, no sign of sync problems though as mentioned, this motor has proved challenging in the past.

The SimonK FW is definitely more responsive on a zero to max jump test, BLHeli is intentionally rate limited. The speed variation in the zoomed view is slightly more for SimonK indicating a faster response. The question is whether the faster response of SimonK is of practical value. In a broad sense, the faster any element of a closed loop system responds, the easier it is to achieve a stable fast loop response, but if other elements dominate the loop response, it may be safer to slow the motor response to reduce the risk of sync loss.

Though this was a quite limited test, it indicates that they are both good drive systems. It may happen that some drive system combinations perform better with one type of FW than the other, I documented one at BLHeli on Hobbyking 40A ESC 4A UBEC 9261000003 – #3 and I expect there will be others the other way around.

 Update 12/03/2015 – BLHeli v13.1

BLHeli v13.1 was loaded onto the test setup and  several runs measured. Some options in BLHeli v11.2 were no longer available but this test did not use those options and so the firmware configuration was essentially the same.

They were essentially identical to the plots above for v11.2, the variation in run plots was as much between runs of the same version as it was between the two versions. So although there have been several upgraded of BLHeli since the original report, the report is also valid for v13.1 for the configuration tested.