It’s important to ensure our FPV drone is receiving the correct commands from our radio transmitter. By calibrating channel mid point and end points, your drone will fly more reliably and precisely. In this tutorial, I’ll guide you through correcting your radio channels’ midpoints and endpoints.
For insights on selecting a good radio transmitter, check out my other post: https://oscarliang.com/radio-transmitter/
While adjustments are typically needed for Roll, Pitch, Yaw, and Throttle channels, AUX channels (used for switches) usually don’t require tweaking unless they’re significantly off.
Table of Contents
What Are Mid-Point and End-Points?
Radio channels have a range of 1000 to 2000 – these are the endpoints. 1500, being the middle of this range, is the midpoint.
The Issue with Incorrect Midpoints
Ideally, the midpoints for Roll, Pitch, and Yaw channels should be at 1500 when the sticks are in their neutral positions. If these are off, you might notice your drone drifting when it should be stable. A well-calibrated quadcopter remains steady and moves as directed; incorrect midpoints, however, lead to unwanted drift and constant manual adjustments.
Initial Steps: Centering Trims
First off, ensure your trims haven’t been accidentally adjusted. Center all trim buttons — keep pushing the trim button left, or right, until you hear an audio cue, “trim centered” along with a haptic vibration.
If this doesn’t rectify your issue, it’s time to move on to calibration.
Calibrating Gimbals
Head over to the Radio Setup page, cycle through until you reach the “HARDWARE” page, and select “Sticks Calibration”. Follow the on-screen prompts carefully.
Make sure you only move the sticks as shown in the following image. For best result, avoid moving the sticks in circle. Be as gentle as possible when pushing the sticks, so the radio reads the end points correctly.
Adjusting Channel Midpoint
To adjust midpoints, navigate to the Outputs page on your EdgeTX radio. Access this by pressing the MDL key and cycling through with the PAGE button until you reach “OUTPUTS.” Here, focus on the first four channels (CH1 to CH4), corresponding to roll, pitch, throttle, and yaw. This assumes you have the default AETR channel map in Betaflight, if you use a different channel map, these channels might be in a different order. Learn more about channel map: https://oscarliang.com/channel-map/
Select the channel to adjust and hit “Edit”.
Modifying the PPM Center value alters the midpoint, as updated in real time in the Receiver tab in Betaflight Configurator. Roll, pitch, and yaw should all hit a midpoint of 1500; throttle midpoint adjustments are unnecessary.
In some setups, jittering might occur at mid point (e.g., 1498-1502), potentially caused by gimbal wear. It’s not a big issue, just get the mid point as close to 1500 as possible, then apply a “deadband” in Betaflight to minimize jittering in flight. For example if mid point jitters around 1498-1502, apply a deadband of 2.
Addressing Incorrect Endpoints
Having the full stick range ensures precise control — this means the lowest and highest channel values should be 1000 and 2000. Incorrect endpoints results in loss of stick resolution, it may even prevent the quad from arming.
Testing Channel Endpoints
In Betaflight Configurator’s receiver tab, check the minimum channel values by moving your transmitter sticks to the bottom left. Ideally, they should be around 1000 (however, slightly lower is acceptable, such as 988-999).
Now, to get the maximum values, move the sticks to the top right. Ideally they should be 2000 (slightly higher is tolerable, such as 2001-2012).
If these values are not 1000-2000, then you should consider fixing them by following the instructions below.
Adjusting Endpoints
Endpoints can be adjusted:
- directly on your EdgeTX radio’s Outputs page,
- or via Betaflight’s RXRange CLI command.
EdgeTX Outputs
Go to the Outputs page in your EdgeTX radio. The parameters we want to change are Min and Max.
Adjust Min until you reach the desired 1000 endpoint.
Then adjust Max until the highest channel value reads 2000.
Repeat this for all four channels: roll, pitch, yaw and throttle.
If you can’t get your endpoints to 1000 and 2000 without going over 100%, make sure “Extended Limits” (E. Limit) is enabled in the MODEL SETUP screen.
Using RXRange
For those who cannot adjust their endpoints in the radio, you can also do it in Betaflight using the “RXRange” command.
Enter “dump” in CLI, and locate the 4 lines begin with “rxrange“. They represent the first 4 channels in the radio, e.g. Roll, Pitch, Throttle and Yaw. (You should verify if that’s the correct channel map in your setup)
rxrange 0 1000 2000 rxrange 1 1000 2000 rxrange 2 1000 2000 rxrange 3 1000 2000
Move your sticks to the lowest position (bottom left), write down the channel values in the Receiver Tab.
Repeat this by moving the sticks to the highest position (top right).
For example, if our roll has endpoints of 1004-1995, we should enter this command in the CLI to achieve the 1000-2000 endpoints, i.e.
rxrange 0 1004 1995 save
You can now repeat for the other 3 channels:
rxrange 1 1004 1997 rxrange 2 1004 1996 rxrange 3 1002 1999 save
Now all 4 channels should give you 1000 to 2000 end points respectively. If there is still a tiny bit of difference, you can fine tune it using the first method we covered (in your radio’s Outputs page).
Are Slightly Off Endpoints Acceptable?
Slight deviations such as 988-1000 for low, 2000-2012 for high are generally fine, though losing a tiny bit of resolution at the end of stick travel.
Further Troubleshooting
If your radio has persistent inaccurate end points and mid point, it could be a sign of mechanical issue with the gimbals. Feel free to consult our forum.
Edit History
- Oct 2017 – tutorial created.
- Mar 2024 – updated for latest EdgeTX 2.9 and Betaflight 4.5.
24 comments
Hi Oscar, I need your help again!
I’ve followed your FPV building guide and almost everything works except for my throttle values.
I have a Radiomaster Zorro that displays values between 988 and 2012 for stick being at lowest and highest, respectively. I cannot get the TX to broadcast 0 for lowest point.
When lowest value is 988 and I’ve set min_check to 1050 in Betaflight, as soon as I arm the drone the motors spin and drone goes into a frenzy fly!
Is it my TX that needa adjusting, or do I need some sort of mapping in Betaflight to read 988 as “0” throttle? Please help!
Can you check these?
1. In Receiver tab, is your throttle value lower than 1000 at its lowest position? If so your radio config should be good. Don’t rely on the value displayed on the radio, it’s what Betaflight reads that matters. If the throttle lowest value reads over 1000, then you should fix the end points following this post: https://oscarliang.com/adjust-tx-channel-mid-end-point/
2. If that didn’t fix your issue, and your quad still takes off as soon as you arm, then you can try lowering “Motor Idle %” in the Motors tab. Give it a smaller value, generally 5% should be ok for most builds, but try a lower value just to check.
Thanks mate! Although tried both of your suggestions but was still having issues. I then took the props off and just tested with bare motors, realised motors weren’t spinning correctly. Three of them were starting and stopping, only one spinning. I went ahead and flashed the FC with latest, reset some configs and sure enough motors running correctly now!
I’m hoping it was just FC not being on correct firmware version and not a glitchy ESC
Great information. Thank you
Hi Oscar, as usual, a great guide, you can be proud of your articles, never dissapoint!
Your articles are always spot on, thank you so much for sharing your great wealth of knowledge!!!
Man thanks so much for the rxdump info. I couldnt set more than 100% outout on my Radiomaster Tx16S that did it for me.
i just got the radiomaster tx16s and i followed the steps above changing the end points on my radio only got me to 1075 and 1947 and when i tried to set rxrange in betaflight there was no change in the endpoints in the receivers tab any other ideas? or has anyone else had this problem?
After adjust the endpoints using rxrange my midpoint has moved as well. So now my endpoints are all correct but my midpoint is out. I’ve left all of the outputs values on my TX at default (-100, 100, 1500). How do I fix this?
Thanks for your help!
hello.. im having problems with my roll endpoint min and max is set to 1000 to 2000 but when I use roll inputs actual min and max inputs are always 1300 and 1700.. im using flysky fs i6x
Bonjour
Mon trottle sur beta, position mini indique 1117,donc pas d’armement…
Comment et où régler afin de descendre à 1000?
Si je décale la courbe des gazs pour être bon, je dois la décaler de -117 !!!!! Et du coup, quand j’arme le quad, je n’ai casi plus de Gaz…
Marci de vos réponses et aide..
when my sticks are centered betaflight always shows something between 1480 and 1510 on roll channel, what can i do to keep it stable at 1500
Some receivers do that, the outputs jitter like this. Not much you can do, you just have to apply some deadband on roll/pitch so it doesn’t affect your flying as much.
strange problem here. tyro69 fpv video is upside down in my goggles. is there a way to fix this?
flip the camera?
Extended limits in model setup. Perfect.
I’m new to taranis and I fly a helicopter with brain2 FBL and my cyclic sticks are giving about 86% travel at max endpoints in outputs page. 86% is a bit short really.
I’ll enable extended limits. Thanks. Your site is a great resource.
How can I do this on a Nirvana / Dark Knight radio?
Thanks! In my Jumper T12 (OpenTX 2.2.3), I’ve got endpoints of around 1100 and 1800 on all four primary channels–any idea why it’s so extreme?
Cheers
Hello,
how can I ad more “travel” for finer throttle feel and easier indoor hoovering?
See “Changing Throttle Sensitivity” in this post: https://oscarliang.com/throttle-curve/
what about spektrum
Exactly. I can only get my end points from 998 to 1998 and that’s with end points on my DX8 BOTH OUT TO MAX 150% DOES that matter?
Same issue here moving from DX6e to Radiomaster zorro. Not getting near 100% travel on all 4 primary channels. I’m stuck.
Found a JB video about the Betaflight cli function “rxrange” for the four primary output channels. (E.g. rxrange 0 988 2100) which makes the channels work for the whole range.