Plans are being made to build another copter using a Seriously Pro F3 Flight Controller, and drive options are being considered.
Since this is a high performance flight controller with faster loop times, and Oneshot125 is used on the ESCs for faster response, an ESC that exhibits fast response is warranted to fully explore the benefits of faster loop times.
Most stock ESCs are quite slow, though with replacement firmware they can perform much better.
Though I have dismissed BLHeli for several reasons in the past, I have a set of Hobbywing Skywalker 40A Silabs based ESCs which will run BLHeli and not SimonK, so review of the current version (14.6) of BLHeli is warranted.
Dowloading 55MB of bloatware and updating the firmware using a Silabs Sticktool / C2 interface (which itself is quite fast and convenient as I have added permanent cables for the C2 interface), reminded me of most of the bad things of BLHeliSuite. Despite falling foul of the traps too many times, I achieved the desired result
This article documents some comparison tests of:
- SimonK commit 1f75da384e5c83f83916aa752819ca6eed712565 afro_nfet.hex; and
- BLHeli v14.6 for Hobbywing Skywalker 40A.
In the SimonK case, default configuration was used, and 3s battery used for tests.
Above, the BLHeli configuration.
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 and Eagle Tree logger (using a rpm detector connected to the motor wires).
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
Above is the current and rpm plot from the entire test window.
Note the very large current spike at the start where the motor responds to the jump test.
Above zooms in on a small part of the test to explore response time to rapid and large transients. Everything is pretty much consistent with earlier tests and seems to be operating properly.
BLHeli
Above is the current and rpm plot from the entire test window.
Note that the jump test at 4s shows no visible current spike, but them some weak motor drive that is sensed by the rpm detector as rotation when in fact the motor did not rotate at all.
Above zooms in on a small part of the test to explore response time to rapid and large transients. Everything is pretty much consistent with earlier tests. Note though the anomalous bumps in the rpm curve to the right. There is negligible motor current, yet some drive has disrupted detection of the rpm and caused these bumps. This is probably caused by the BLHeli ESC, it is never evident on repeated tests with the SimonK ESC, and always present on repeated tests with the BLHeli ESC.
Comparison
The SimonK ESC gave a significant response to the initial jump test and handled it well, the BLHeli ESC almost ignored it (it has a rated limiting filter on the input) and them produced some drive leading to anomalous rpm indication.
On the second part of the test, both ESCs performed similarly, except that again during the later part of deceleration, BLHeli appears to have produced some anomalous drive.
Conclusions
SimonK shows mostly faster response (though there are parts of the test where BLHeli shows faster response) and less anomalous behaviour, and will be used in the first instance on the new SP F3 based copter.