“In the deep mid-winter…

calmly flew my drone;
carbon props were spinning
with very little roam.”

In the deep mid-winter from Andy Baker on Vimeo.

I’ll get my coat.

I’ve finally found some carbon props that work for Zoe; sadly they’re not the cute looking tri-blades I’d been hunting for – they only seem to be available for tiny quads.  My new ones are 8″ tip to tip, compared to the 6.5″ of the floppy props.  They provide a lot more lift at lower rotation rate which is good as far as capturing all available data is concerned below the 460Hz low pass filter.  Critically, and the main reason for wanting CF props, they are very strong, and don’t bend permanently with gentle contact with the ground unlike the floppies.

Finally cracked the current batch of problems.

The are two classes of problems: never getting off the ground, or alternatively, leaping off the ground.

The inability to get off the ground regardless of prop type was due to my code disbelieving that near zero G readings were invalid; discarding the zero G readings meant the velocity integrated higher during warm-up phase, meaning the motion processing code thought it was rising faster than it actually was.  Once the zero G readings were included, then the floppy props worked, but for some reason the carbon ones still struggled to get off the ground.

The reason for this CF prop problem turned out to be the jitters during the prolonged spin up of the props.  The code tries to keep Zoe on the ground while the code winds the props up to hover speed.  At a micro level, this means the feet would lift off, the code would slow down the props, and the feet would hit the hard take-off surface;  this hard micro-collision causes a low reading which integrates to a falling velocity event though the quad was sat on the floor.  When the flight-plan finally flips to ascent, it has to overcome the integrated negative velocity, and so leaps into the air.  The fix is three-fold:

  1. don’t take off from hard surfaces
  2. get the quads off the ground ASAP – don’t wait around for the props to spin up
  3. add physical buffering so the 0g impacts don’t make it to the sensors – for example sitting the HoG on a soft foam pad, and adding soft balls to the feet.

This is work in progress.

There’s a third problem though which was troubling me with the CF props even once the previous two had been (partially) fixed – they still struggled getting Zoe off the ground compared to the floppy props despite their profiles being very similar.  I finally spotted the problem when I was swapping prop types.  The floppy props have a deliberately rough surface whereas the CF ones are coated in the gloss varnish, presumably to cover splinters in the CF.  Airflow at the prop surface is better over rough surfaces due to micro-turbulence, and that causes a better airflow and lift at the macro level.  The higher speed CF probs gloss surface was causing the air-flow to break away from the props at lower revs.  This results in a lack of expected lift, so the code spin the props faster making the situation worse.  Some sanding of the CF props to roughen the gloss surface improved matters significantly but again this is still work in progress.

CF props and near zero G

So I’ve finally worked out why Zoe doesn’t work with her carbon props.  2 factors:

  1. I’ve been using a hard take-off surface outdoors rather than the wet, soggy lawn.  This means that while the blades are winding up to hover speed, Zoe’s legs are imperceptibly bouncing up and down on the hard surface.  An upwards force from the blades is smooth, but as a leg hits the hard surface, the hard deceleration is picked up by the accelerometer as near zero or negative G.
  2. I’d still got the near zero G protective code in place, not recognising the near 0 G does happen when impacting with hard surfaces .

Hence the vertical velocity integration was ommitting the low or negative G forces, meaning the vertical velocity was showing much higher rates than expected, so the code wound down the prop speeds to slow down the perceived ascent.  Hence she never got off the ground.

Moving her to the saturated lawn and removing the protective code filtering out near 0G readings meant she finally took off.  She was very unstable but she took off.

So more physical buffering is required – I’ll be attaching sponge balls onto her feet to soften the hard impacts.  At the same time I have some softer (I think) foam pads coming too for attaching Zoe’s HoG to the frame.  Finally, I need to get her off the ground as quickly as possible rather than faffing around bringing her props up to speed in a nice controlled manner.  Oh, and I need to get her off the ground ASAP.


I’ve finally got the FIFO buffer code working with lots of protection against overflow, and also using a guaranteed way to ensure the code and FIFO are always synchronised.  It works perfectly, so I’ve updated the code on GitHub

Then I took Zoe and Phoebe about; with the floppy props Zoe flew OK but not as well as usual and, as usual, neither would fly at all with the CF props.  Some stats revealed unsurprisingly that it’s Z-axis noise from the props;  Zoe’s floppy props aren’t so floppy at freezing temperatures but when I brought her indoors, she was fine again.

The problem is the motors / props can’t react fast enough to sharp spikes in acceleration, so drift ensues – in this case downwards vertical drift keeping them both pinned to the ground when the sensors felt the spikes.  I need to find a way to soften those acceleration spikes such that the net integrated velocity is the same, and the motors can react to it.

There’s a couple of approaches I can take here, and as usual, I’ll be trying both.

The first is to add additional foam buffering between the HoG and the frame to soften the blows just like Zoe’s floppy props do.  The second is to tweak the vertical velocity PID gains to be dominated by the I-gain and reduce the P-gain significantly.

Redecorating the lounge ceiling

I don’t like the props Zoe uses that come with the T-motor Air Gear 200 kit; they’re flimsy plastic, they bend and the stay bent.

A quick ebay browse over the weekend turned up some 3 blade carbon props, with the required 5mm bore hole, and 6″ span compared to the plastics’ 6.5″.  Perfect.  They arrived in the post this morning.

So I gave them a quick try prior to packing up Zoe for the work engineering conference tomorrow; the result?  I’m redecorating the lounge ceiling.

Swapping back to the flippy floppy props and normal service was resumed. Phew!

I’d seen this in the past with Phoebe and that triggered the new custom PCB for her, after which she no longer had the I2C errors, and I was able to swap her to the 1kHz sampling FIFO code.  Yet while testing this outdoors yesterday, she still lept into the air until I turned the alpf filter down from 0 (460Hz) down to at least 2 (96Hz).

The fact Zoe now does this too with the CF props is scary and fascinating.  Once I get back from the conference, I’ll be switching her over to the CF props and flying her outside with diagnostics enable to try to track down why such a simple swap of props yields such radically different behavior!

But for now, I need to get back to repainting the lounge ceiling before the wife and kids get home and spot the distruction!

Propeller / motor overshoot

As usual, having a pause for thought has resulted in a plausible cause for the very different tests results between yesterday and today.

Both days I was using the cheaper, lower powered motors with plastic props. The only difference was yesterday the battery was charged to perhaps 11.5V – today nearer to 12.2V.

Imagine that the combination of heavier plastic blades (rather than carbon) combined with higher battery charge level creates sufficient angular momentum in the blades that the motor rotor overshoots the motor stator coils it’s supposed to just reach and instead it continues on to the next set. Depending on the number of coils, that would yield a signifiant increase in RPM and therefore lift.

I’d never had problems with the carbon blades; being so light they simply don’t carry anything like as much angular momentum. And the motors they’re attached to have higher Kv value (980 vs 920) and much stronger magnets meaning they had a tighter grip on these lighter blades. The result: lower angular momentum and closer control leading to much reduced risk of overshoot beyond the expected stator coil.

But in these tests, with heavier props and lower powered motors, it seems the motors simply do not have quite enough oomph to restrain the props angular momentum.

Convincing enough for me; time to move back to the better motors and carbon blades.