PWM, PWMSync, Oneshot Output
This page describes the output method that can be used with LibrePilot firmware.
What is PWM?
Pulse Width Modulation (PWM), is a simple technique to encode a single value that can be sent to the Esc, it can be used as well to retrieve values from a Rc Receiver or drive a servo.
A digital output is used to create a square wave with on/off or logical values sending a pulse length proportional to the value we want to encode.
Usual values in Rc world are between 1000 - 2000µs (µs = microseconds)
Output modes
Outputs are defined in Configuration > Output tab
Can be normal PWM + rate desired, PWMSync or OneShot125.
Output channels are organized as Banks, this means if you configure the output mode for one bank, all outputs that use this bank are configured the same.
Look at colors that matches Bank <> Output channel.
PWM-490Hz
All ESCs should allow basic PWM output up to 490Hz. About CC3D This is the only output mode possible for the CC3D/Atom |
PWM - 490Hz update rate has a 1000-2000µs pulse width.
The PWM output is not synced to the gyro output.
Gyro update is around 2000µs and Output rate is 490Hz so 2040µs.
This causes cyclically a important lag between Gyro update and command received to the ESC.
PWMSync
Candidates for this mode are Simonk or recent (600Hz) ESCs About CC3D CC3D/Atom do not allow this mode if PWM input Old PPM input (pin1) DO NOT ALLOW PWMSync See CC3D hardware page for more details. |
PWMSync has a 500Hz update rate and a 1000-1900µs pulse width.
The PWM output is synced to the gyro output.
Output rate is 500Hz, same as Gyro update. Around 2000µs.
The lag is almost stable but still the variable pulse value to be decoded by the ESC.
OneShot125
Candidates for this mode are BLHeli, Kiss ESCs. Same as PWMSync, the CC3D/Atom need a Old PPM input (pin1) DO NOT ALLOW PWMSync See CC3D hardware page for more details. |
OneShot125 has a 500Hz update rate and a 125-250µs pulse width.
Like PWMSyn mode the output is synced to the gyro output.
The lag is stable, just still a very small lag due to the reduced variable pulse value.
Please note the Output page still uses a 1000-2000µs range, this values are divided /8