Friday, March 27, 2015

BLHeli OneShot Quantitative testing

I previously did some tests with KISS ESCs comparing the performance with OneShot to normal PWM modes showing Tau Labs implementation has a nice low latency from sensor update to output pulse, as well as the fact that OneShot results in better system performance.

Since then, I've wanted to replicate it with BLHeli's OneShot mode and see if it is has similar benefits. I got some BearHug ESCs, which unfortunately are quite unreliable and needed a few to be replaced which slowed things down. (In retrospect I wish I'd used these four in one ESCs). Anyway, I eventually got a working set of four and soldered the programming cable to them. I used my KISS PDB board again which provides a 5V BEC as well as current/voltage monitoring.

I put them on a ZMR250 frame using and this pretty nice cheap FPV system that seems to work fairly well. I'm also using these new plastic motors that are dirty cheap (30$ for four). They are spinning 5 inch props.

Of course, it's running a Tau Labs Sparky2 for the flight controller and TauLinkModule for control.

The PDB and ESCs fit quite nicely under the flight controller and leave room for the programming cables. And here it is all put together with the FPV system.

The antenna placement is probably a terrible idea ... the VTX is connected with velcro so can pop off in a crash. I'll redo this once some cloverleaf antennas arrive.

Flashing and Configuring

Once it was all put together, I followed this nice video by AKFreak on how to flash the ESCs (using a VM). This was actually the first time I'd played with an Arduino other than the one in my Shapeoko.

I programmed all of them with BLHeli 13.1

I went ahead and enabled Damped Light mode:


I used the Tau Labs system identification performance to measure the latency of the ESC responses with regular PWM and OneShot125 mode.

Regular (PWM High)

One Shot (PWM High)

One Shot (Damped Light)

This was done over two batteries so a range of voltages, although one of the slower outliers was actually with a fairly charged battery.

Regular (Damped Light)

At this point the BearHugs were becoming incredibly unreliable and dropping out of flight during autotune so I couldn't repeat it 3 times. Eventually I smelt the magic smoke and just gave up.


BearHug ESCs are really not reliable :( I've burnt so many hours trying to get flying on these. Can someone recommend alternatives that run BLHeli and are good for fast switching?

Average Tau:
Regular (PWM High): 0.034 (s)
One Shot (PWM High): 0.028 (s)
Regular (Damped Light): 0.038 (s) -- note this is only one trial
One Shot (Damped Light): 0.028

I'm not comfortable running statistics on this since the ESCs failed and I didn't get enough trials. There was more spread in the data than I'd have expected that wasn't explained by battery sag. One of the good regular runs was 0.029 and a two of the One Shot (damped) runs were greater than > 0.03. However, on average OneShot definitely seems to be trending in the right direction.

That being said, enabling OneShot consistently improves performance with these ESCs. The performance improvement was actually greater than for KISS (17% improvement) although it is hard to say if that is because of greater improvement for OneShot or worse performance for regular. I'd have to compare on the same motors / frame.  I'd be curious to see if Damped Light makes more of a difference on larger props.

The autotune settings were really snappy and I just wish I could trust this thing to stay in the air for five minutes (or now to even power up).

TL;DR: OneShot with BLHeli seems like a worthwhile improvement if you want that last ounce of performance.

Wednesday, March 25, 2015

BrushedSparky v0.2

BrushedSparky version 0.2 arrived a few days ago. 


There are a number of improvements over the previous revision.
  • A bigger motor mount hole allows for stronger mounts.
  • Using a 1.2 mm PCB shaves a bit of weight off. 
  • Changed the 5V step up regulator for a new one that is more efficient (and doesn't hum).
  • Using a more available VTX module so I can build more :)
  • Shuffled some components around for a slightly slimmed profile (also got a stencil to make it faster to populate).
  • Current monitoring (enables mAh consumed calculation)
  • Switch to disable VTX for flying LOS
  • VTX channel selection via the FC
  • LEDs on the arms for following via FPV
  • Two additional PicoBlade connectors for clipping arms to it and making a hex. Also two more buffered outputs on the back such as for LEDs.

I'm still controlling it via Tau Link Module, which gives me voltage, current, mAh remaining (as well as logging) on my phone relayed using the module in the transmitter. See the previous writeup for more information. Quite convenient since it gives me audio alerts. The new revision of Tau Link Module also has SPort support so hopefully I get this information on the Taranis soon.


The bare board assembled (without VTX on bottom) is only 12 grams:

And 41g ready to fly (without battery):

And now I have a nice row of micros above my desk:

Landing gear

One failure point is hitting the bottom of the motors and damaging them. I tried to design a more robust motor mount that protected them better and served as a landing gear:

Unfortunately it coupled vibrations too strongly into the frame and resulted in bad attitude estimation (not hovering level). I went with the original design for the motor mount and a landing cup that clips onto the arm and protects things.

They do pop off in crashes, but that's fine since it still saves any serious damage. I want to get my friend to try printing these in different materials - abs or flexible material - and see if it works any better.


Here are the parts I'm using for my preferred assembly. You can either buy all the parts from multirotorsuperstore or in pieces.


I'm really happy how it flies as well as the video quality (which the Dom V2 built in DVR doesn't do justice to). I started playing around in acro mode too and got some flips in, as well as a number of crashes. It takes abuse quite well, typically in a really bad crash just cracking the motor mount which takes about 2 minutes to replace.

 (Update) I also got telemetry on the Taranis via the TauLinkModule S.Port