If you have already tried to read an RC receiver signal with an Arduino, you may have been surprised by the result: oscillating values, neutral that isn't at 1500, and sometimes even a completely inverted signal. No panic, it's completely normal and easily manageable.
Understanding the RC PWM signal
All RC radios use a PWM signal (radio PWM signal) to communicate with the receiver. This signal is an electrical pulse whose width varies with stick position:
- ~1000 µs : position extrême dans un sens
- ~1500 µs : position neutre (centré)
- ~2000 µs : position extrême dans l'autre sens
These values vary by radio. Some are 1000-2000, others 1100-1900 or even 1028-1633 like the Absima CR3P. That's why calibration is essential.
The inverted signal problem
On some radios, especially when trim or channel direction is modified, the signal can be inverted: full forward = low value, full back = high value. It's not a bug — it's simply how some manufacturers program their transmitters.
Calibration with Flare RC
The app offers automatic calibration in 4 guided steps:
- Neutre : centrez le stick, l'app enregistre la valeur pendant 3 secondes
- Plein avant : poussez à fond, l'app enregistre
- Plein arrière : tirez à fond, l'app enregistre
- Zone morte : calculée automatiquement (5% de la plage)
Values are then saved in the ESP32's flash memory and survive power outages.
What is the dead zone?
The dead zone is a range around the neutral where throttle is considered zero. It avoids false positives when the stick isn't perfectly centered. A value of 20 to 40µs is generally ideal.
Automatic 4-step calibration
Flare RC guides calibration and detects errors automatically.
▶ Download Flare RC