Content

Introduction
In order to control a multirotor aircraft precisely and keep it stable, it's necessary to update the Electronic Speed Controllers (ESCs) faster than a regular RC receiver would do. While normally the ESC or servo is updated 50 times per second, the ESCs connected to the OpenPilot flight controller can be updated 8 times faster. This is done to ensure a better response and correction on the multi rotor aircraft.
The faster update rate of the speed controllers is what we call "TurboPWM".
TurboPWM support is an OpenPilot innovation that allows a cheap regular hobby ESC to perform just as well on Multi-Rotor aircraft as their expensive, specialised I2C counterparts.

Why is this important?
There has been a debate in the multi rotor community for a while regarding the necessity of I2C speed controllers on multirotor aircraft. Some people feel it is important, while others feel it is overkill. Perhaps the truth lies somewhere in the middle. On certain sized craft it can make a difference, while on others, not so much. The main reason for this debate is the high cost of the I2C speed controllers and the limits they contain. For example, the most common I2C ESC offers support for just 10 Amps of current, and in a poor design choice actually contains a fuse.
Additionally, while using a bus technology like I2C offers speed improvements over regular PWM, it has a serious drawback in that a plausible critical failure negates the redundancy features built in to octocopter airframes. While an octo based aircraft can still land safely after the failure of an ESC, when using an I2C bus the failure of a single ESC could mean all ESCs on the bus shut down causing a real safety risk. This is really dependent on whether the failure leaves the line pulled low, or floating high: if it's left pulled low, the bus will become inoperative and all ESCs will stop responding to inputs. The OpenPilot board is designed with 8 PWM outputs; if a single PWM ESC were to fail, the others would still function, and hence, OpenPilot provides for full hexa and octo redundancy.
TurboPWM support in OpenPilot means that the limits and expense of I2C ESCs are a thing of the past.

Comparison
Speed Controller | Price Per ESC US$ | Price Per Octo US$ | Octo Redundancy | Amp per ESC | Contains fuse |
|---|---|---|---|---|---|
HK 18-20 TurboPWM | $6.80 | $54 | Yes | 20 | No |
MikroKopter I2C ESC | $55 | $440 | No | 10 | Yes |
Because OpenPilot is a non-commercial project and is not motivated by profit, it frees us to do innovations like this that help the community; from the table above it is apparent that the use of TurboPWM compatible ESCs saves considerable cost. In fact, a full compliment of ESCs for an Octo can be bought for less than a single I2C ESC. Additionally, there is no loss in performance, and TurboPWM offers the use of the natural redundancy in the Octo platform.
Another nice feature is there are no I2C connector soldering to be performed. The ESCs just simply plug in to the OpenPilot board.

I2C Support
This does not effect the I2C ESC support in OpenPilot. We offer that as a convenience for people who already own I2C ESCs that upgrade to OpenPilot from legacy multirotor controllers. Additionally, if someone wants to use an Octo based multirotor aircraft with Pan & Tilt camera compensation, we recommend that PWM ESCs are used for motor control and connected to the 8 PWM outputs on the OpenPilot board to gain the TurboPWM redundancy features. The additional non-flight critical camera pan and tilt servos should be connected to the I2C bus with our I2C to PWM converter board.

Compatible ESCs
Following is a list of ESCs that have been tested extensively with the TurboPWM feature of OpenPilot. However, it is likely that our TurboPWM feature will work with many other ESCs, so please help expand this list. It is important to only add ESCs that have had a great deal of testing performed to ensure that they are capable of sustaining TurboPWM speeds reliably.
TurboPWM is configurable and can be set to many different speeds. The standard speed we aim for is 400Hz, which updates the ESC at 400 times per second. In our testing, this shows to give identical performance to I2C controllers, and in fact, even the 300Hz rate shows this as well. When using these ESCs, it is important that you disable the low voltage cut off feature, if such a feature is present.

Speed Controller | Price Per ESC, US$ | Tested TurboPWM Speed | Max Amps | LiPo cell count | BEC | Notes |
|---|---|---|---|---|---|---|
$6.80 | 400Hz | 20A | 2S-3S | 2A, linear | Not programmable, needs a full throttle sweep at power up for calibration | |
| Hobbyking SS 18-20 (programmable) | $7.62 | 400Hz | 20A | 2S-3S | 2A, linear | Programmable version of above. Programmed with the Turnigy BESC Card |
$6.50 | 400Hz | 8A const. 10A burst | 2S-3S | 1A, linear | Not programmable, needs a full throttle sweep at power up for calibration | |
$11.90 | 400Hz | 18A const. 22A burst | 2S-4S | 2A, linear | Fully programmable by sticks or with a programming cardOS' Quad | |
$9.24 | 400Hz | 10A const. 12A burst | 2S-4S | 2A, linear | Fully programmable by sticks or with a programming card | |
$7.98 | 400Hz | 6A const. 8A burst | 2S | 1A, linear | Fully programmable by sticks or with a programming cardOS' CCcopter | |
| Exceed Proton 10A | $12 | 400Hz | Continuous 10A, Burst 12A up to 10 sec. | 2S-4S | 1A / 5V Linear | |
| HW pentium 10A | $11.99 | 400Hz | Continuous 10A, Burst 12A up to 10 sec. | 2S-4S | 1A / 5V Linear | |
| RCTimer 60A ESC | $16.99 | 400Hz | 60A Max 80A <10sec. | 2S-7S | No |
|
| Gaui GU-344 | 300Hz | Do not go above 300Hz (Forum link) |
Table last updated November 14th, 2011

How do I know if my ESCs are compatible?
The only way to test it is to apply different input PWM frequency signals, make them change from low to high, and vice-versa. Check the motor response (notice how fast it achieves the desired RPMs after the input data changes, using tachometers). You should also check if it responds reliably, does not lose the sync, etc.
OpenPilot spreadsheet for compatible ESCs:

Recommended ESC settings
Brake: Off
Battery Type: Ni-xx
Cut Off Type: Soft-Cut
Cut Off Voltage: Low
Start Mode: Normal
Timing Mode: Medium (will vary, must be set to whatever produces no misfiring)
Music/Li-Po Cells: <all off>
Governor mode: Off
|
Calibrating ESC's
Caution: You will be able to start your motors (even when the blue status light is showing the board is disarmed and your transmitter is set to Throttle Hold). Please remove all propellers and make sure the motors are clear. |
You can use the config output panel to calibrate all your ESCs at the same time. Here's how:
On programmable ESCs (such as the Turnigy Plush), do the following:
- Remove all the props first and disconnect your battery from the ESCs, then power your board through the USB.
- Go to the output config panel in the configuration gadget, check the "test outputs" function, and confirm that you want to continue.
- Move the slider on all ESC output channels to the max value you like (for example 1900 microseconds). (You can link the outputs so you can calibrate all ESCs at the same time.)
- Now apply power from your battery without disconnecting the USB. Your ESCs will boot and beep accordingly, indicating that they received a high throttle set point.
- Move all the sliders back to 1000 microseconds. The ESCs will beep several times to confirm the low position and all will be calibrated properly.
Very easy, just make sure to remove your props so that you don't get any nasty surprises if anything does not go according to plan.
If you are unable to move the sliders, make sure that both your minimum and maximum end points are not set at 1000 as in the screenshot below.
|
Video of Dacat demonstrating how to calibrate the ESCs.
