Hobbywing XRotor 40A (MkII)

Above is the Hobbywing (HW) X-Rotor 40A (BECless) purchased from Hobbyking. It lacks the authenticity markings promoted by Hobbywing, is it a clone? Who knows, it is Chinese.

The X-Rotor 40A was tested in its default configuration, there was no reason to change commutation timing.

Hobbywing enjoys a reputation as a quality product, a cut above the no-name products but his ESC was purchased for about A$16 + shipping, which is really a budget price for a 6S 40-60A BECless (or OPTO) ESC.

Tests were conducted with a script that I use consistently with asrg and eLogger to capture current and rpm, and all tests conducted at similar pressure, temperature and humidity, altitude is 700m.

BLHeli configuration


Above is a X-Rotor 40A modified with a permanent C2 interface cable for programming the MCU. The cable has a JST-SH1.0 connector (purchased as HK 258000026) to plug into the after market Tool Stick clone (HK 289000003). The wires from the left are orange, NC, brown and red. (Orange, Red and Brown wires correspond to Black White and Red dots on BLHeli documentation.) A small dot of hot melt adhesive is applied after soldering the wires to the PCB pads, and the cable folded down into the adhesive (to prevent fatigue and breakage of wires). The whole thing will be served over by clear heat shrink.
Continue reading Hobbywing XRotor 40A (MkII)

Robust programming of Silabs based BLHeli ESCs

This article describes a solution for robust and reliable ‘production’ programming of Silabs based BLHeli ESCs.

The intention is to test and tune the BLHeli configuration, save the configuration in some form, and a scripted solution to programming multiple ESCs now and later replacements with high confidence that they are exactly matching configurations.

There does not appear to be any batch facility for writing flash using the BLHeli bootloader, nor does it appear that BLHeliSuite can save the relevant hex files for later use, so excluding use of the BLHeli bootloader.

The configuration data is held in a block of flash memory labelled EEPROM in the source code. It is not actually EEPROM, the MCU does not have EEPROM, but for consistency the block will be referred to as EEPROM in this article.

Having tested and tuned the configuration using BLHeliSuite, the EEPROM block from the test ESC is read back using Silabs Flash Programming Utility (FPU) and a toolstick attached to the ESC’s C2 interface.

Above, reading the EEPROM block.

The EEPROM block is them merged over the distribution hex file to create a custom hex file for repeated use. Continue reading Robust programming of Silabs based BLHeli ESCs

RC electric drive noise

The website Mini Quad Test Bench by Ryan Harrell contains a growing set of test results for motors and ESCs.

In respect of ESCs, it appears to use BLHeli unless the ESC is incompatible in which case the proprietary firmware is used.

The configurations are targeted mainly at the mini quad racer part of the market, and the requirements for different size copters and different applications varies significantly.

The site contains an online editable graph facility that allows customisation of the graph.

Screenshot - 14_08_16 , 09_33_03

Above is a graph of current vs time for a uniform ramp servo input, and I have disabled most of the ESC types for clarity, selecting just the first two on the list and one which I use (F-30A). Continue reading RC electric drive noise

Thinking about vibration forces from a bent prop adapter

A recent crash trying to tame the update from CF v1.10 to v1.12 did some damage to two prop adapters, bending them just above the lower flange causing axial runout. The weak point in these adapters is at the transition from the hollow tapered lower section to the solid threaded upper section.

PropAdapterRunout01Above is measurement of the runout on the lower part of the spinner with a propeller hub mounted. Total Indicated Runout (TIR) was measured at almost 0.5mm, lets call it 0.5mm, and runout from centre is therefore 0.25mm. Continue reading Thinking about vibration forces from a bent prop adapter

Cleanflight and PPM

The first widely used ‘digital’ communications protocol used with Remote Control (RC) models was PWM.

Though PWM is a generic term, the accepted timing was that a pulse width of 1000µs to 2000µs conveyed 0-100% of the proportional control. The the on-off nature of the PWM signal was discrete (digital), the duration of the pulse was stepless (ie not discrete), and since there was no shared time reference, the receiver’s interpretation of the signal may have error.

So, for a multichannel system, there would be one ‘signal’ wire for each channel, which gets to be a nuisance for lots of channels.

PPM (aka PPMSUM, CPPM) was an early protocol to multiplex multiple channels on one signal wire. The initial protocol description was of a frame comprising 500µs SPACE (S) followed by 500µs – 1500µs MARK (M) carrying the channel information as in the RC PWM protocol, then the same for the next channel and so on. These frames were repeated at a fixed frame repetition rate (FRR) of around 50Hz. Early implementations ‘defined’ this total frame duration variably, eg 18ms, 22.5ms, 28ms were popular. Continue reading Cleanflight and PPM

Comparison of SimonK and BLHeli 14.6 on an Afro30 ESC

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.

Continue reading Comparison of SimonK and BLHeli 14.6 on an Afro30 ESC

Dataflash on NAZE32

The Acro NAZE32 flight controller ships without a dataflash chip, which is so shortsighted of the designer / manufacturer. Many users will not be at all interested in Baro or Magnetometer which come on the deluxe version, but the dataflash is so useful in tuning a copter.

Unfortunately, the designer put pads on the rev5 board for 150mil SOIC-8 chips (SOICN), but lots of dataflash chips are in 208mil packages (SOICW) and all the large capacity chips are SOICW. Rev6 boards appear to have pads that will suit both sizes… but then the Acro comes with dataflash, even if small.

If you are happy to install a 2Mb dataflash chip, buy a SOICN package and your job is easy.

I installed a 64Mb Winbond chip (W25Q64FVSIG), they are easy to find on eBay for a dollar or so. (You will also need a 10nF ceramic 0603 cap).

If you want to install a SOICW package… Continue reading Dataflash on NAZE32

U-BLOX LEA-6T GPS module – for experiments

This article documents a LEA-6T module build for general experiments.

The LEA-6T is an inexpensive GPS module (~$40 at time of purchase, but getting cheaper) that can supply raw pseudo range data.


The module above is supplied for use on UAVs of various kinds, and came complete with a plastic radome and cables to suit an APM copter. The module also contains a 3D compass (magnetometer) which is not used here.


Above is the internals of the module with a custom cable to pick up just the RS232-TTL signals from the GPS (and supply 5V). The connector is a 8pin Hirose DF13. Continue reading U-BLOX LEA-6T GPS module – for experiments

Seriously Pro F3 flight controller gyro/acc failure

I purchased an Acro Seriously Pro F3 flight controller (FC) recently and having soldered the connectors on and loaded the current firmware, it was time for a pre-installation checkout.

The article outlines a basic pre-installation test that revealed problems that would prevent effective use of the FC.

Acc/gyro checkout


Doing no more than an acc calibration and allowing initialisation with a stabilised FC, the FC on the end of a USB cable should deliver acceptable sensor responses in Cleanflight Configurator (CC).

This flight controller has two problems:

  • offset in the gyro z axis (yaw);
  • low acc output in the Y axis (roll).

Continue reading Seriously Pro F3 flight controller gyro/acc failure

Flashing SeriouslyProF3 Cleanflight using ST-LINKV2


If for some reason you cannot use the bootloader that reads from the USB port via the CP2102, you can resort to programming the MCU chip using the SWD port and a programmer that supports that protocol.

WARNING: there is potential for damage if you get this stuff wrong. No warranty is offered, if you break it, you get to keep both parts.

Example hardware configuration


Above is the hardware configuration for programming. I have used a LiPo and BEC to supply 5V to the SPF3 board (the target), and a clone ST-LINKV2 (~$4 on eBay) is connected to the Serial Wire Debug (SWD) connector on the SPF3 with a custom cable. Note that you cannot use USART2 concurrently with SWD.
Continue reading Flashing SeriouslyProF3 Cleanflight using ST-LINKV2