For those just starting out in the world of RC, a low cost transmitter like the Flysky FS-i6S can be very compelling. But is buying a cheap transmitter setting yourself up for failure down the line? The general feel in the RC community has been that cheaper transmitters have higher latency or “lag” on their inputs, which is precisely the kind of thing you want to avoid when flying along at 40+ MPH. As such, the general wisdom has been that your transmitter is one area where you don’t want to cheap out.
Wanting to put that theory to the test, [Marek Baczynski] set out to compare the response time between the Flysky FS-i6S and the more established Taranis X9D. In the video after the break, he uses his Saleae logic analyzer to time how long it takes movement on the transmitter sticks to get interpreted as servo commands at the receiver.
[Marek] connects the logic analyzer directly to the gimbals of both transmitters, allowing him to see user input before any processing is done by the electronics. It’s particularly interesting to see how the smooth analog curves of the gimbals are converted to a “staircase” digital output.
The final results of the latency test end up being fairly surprising. To put it simply: the cheaper Flysky radio not only more accurately interprets the user’s input, but does it considerably faster than the Taranis. [Marek] says he was so surprised by these results that he re-ran the test three times to verify.
But even taking into account the apparently higher fidelity of the cheap radio, he cautions you shouldn’t swap out your gear just yet. Higher end transmitters have a number of other features which make them worth hanging on to, even if the newer generation of radios is slightly faster. The real takeaway from this video is that if you’re just getting into the RC game, these cheaper transmitters aren’t necessarily the kiss of death the community makes them out to be.
Experiments like this and the recent detailed analysis of common hobby motors show just how seriously people take the world of RC. It’s unlikely this single experiment will quell the debate about “cheap” RC transmitters, but perhaps it’s a start.
57 thoughts on “Quantifying Latency In Cheap RC Transmitters”
I wish the pictures had scales on them.
Here ‘ya go! https://imgur.com/a/zo17C
Should “gimbals” not be “potentiometers” ?
Why should it? It’s specifically referring to the control sticks, which might *use* potentiometers, but that doesn’t make the gimbal a pot itself!
Correct you are. There are gimbals with hall effect sensor instead of potentiometer.
ps: How long until we will see some “revolutionary optical gimbals with ruby bearings for only $400 each” ?
If what you’re implying is that hall sensors are overkill, you’ve probably not encountered a noisy pot. All pots get noisy after a while, and this can mean severe control glitches. Hall sensors are definitely justified.
A gimbal is 2 potentiometers, and that’s all it is, unless it’s a sensored gimbal.
Maybe gimbalometers ;-)
OK, some actual info from the video (so you don’t have to watch it):
Taranis – 111Hz
Flysky – 130Hz
Taranis – 22.96ms
Flysky – 15.10ms
My opinion: Both have considerable delay and quite low update frequencies, but the difference between both really isn’t that pronounced. If you’re worried about lag, go look elsewhere.
Wow. I always just assumed that latency was lower than that with commercial gear. I built my own gear using a pair of Moteinos with 100 Hz update and 9ms latency. Guess that’s not too shabby after all.
There’s not really any benefit to lower latency – you generally can’t update a servo faster than every 20ms anyway, and that’s still far faster than it can respond mechanically.
Is that 20ms inherent mechanical lag?
Anyway 20+15 > 20+9
No, the 20ms comes from the PWM(ish) signal that is used to set the position. The signal starts high every 20ms, with a high period of between 1ms and 2ms and the remainder low. See https://en.wikipedia.org/wiki/Servo_control for some details and diagrams.
Some servos can be overdriven by sending the same 1 – 2ms high signal but reducing the period from 20ms to some lower value, but this is generally not recommended as it is out of spec and may not work on all servos (from what I understand).
Which is why we have switched to digital protocols like sbus on the receiver side and dshot for escs.
Sure, servos are slow. But modern flight controllers and escs can be very fast and latency between the flight controller and esc absolutely matters.
A delay of over 20ms is longer than the worst case delay in pal fpv transmissions if you fly fpv.
Not taking the screen into account, just camera, transmission and receiver.
I have to say thats pretty bad for the modern transmitter world. Spektrum was even worse in a different video.
In the quadcopter world, no one uses the old 20ms protocol any more. Even with oneshot125 you’re down to 1/4th of the delay you’d have with PWM-Servo. And DShot1200 updates the ESC every 13.5us
Depending on the details, the Spektrum protocol transmits a packet every 22 or 11 ms. Analog video from 2.4GHz transmitters is also around 20ms in latency, even though people comparing it to digital video tend to treat it as instantaneous.
Nobody seems to be complaining much about that before they’re told the actual numbers, so ~20ms appears to be a reasonable lower bound for tolerable lag, even in competitive drone racing.
Those do add up, though. That’s 20ms of pure signal delay from the controller, then you get the servo lag, and supposing you’re flying with a camera, you get those extra 20ms on the video feed and whatever else the video receiver adds. you end up with at the very least 50ms delay, and that’s very easy to perceive, and definitely will affect performance in a race.
There are no servos on a racing drone.
And RC airplanes don’t race?
Would be good to see how they compare to something a bit more high end or well established such as against a Futaba.
And yes the ‘joysticks’ on RC transmitters are called gimbals. “A gimbal is a pivoted support that allows the rotation of an object about a single axis” – Wikipedia.
Futaba is definitely the “old guard” now. You’d be pretty hard pressed to find anyone still running Futaba gear in most modern RC groups/forums.
So the comparison would be lost on the audience for this video.
Sure, but he attached the logic analyzer to the part that produces the voltage — the potentiometer — not the mechanical assembly that moves the pot.
And the small lapse in spelling makes it hard to understand for you what he did?
There are more pots in a transmitter than just those in the gimbals.
Can you Quantify some more expensive as a benchmark….
Any counter strike gamer would be fine with these rates. But no, in the RC community superior brains seem to be present.
If the result would have been opposite, It’s completely clear to anybody having flown these transmitters that there is no issue whatsoever with the i6. It’s simply the “expensive must be better”-mindset that’s driving these discussions.
Over the years, I have found that in the RC forums, and at the airfield, there is a presence of the so called ‘experts’, who base their knowledge on what is read on the internet, rather than on a honest review of the facts. This is mostly done to self justify having spent a lot of hard earned cash on a hobby. That is an easily done mistake when we first enter the RC hobby; we are new to all the terminology and the fastest way to get to play with the new RC toys, is to go for the most expensive. This in turn means that the now ‘expert’ is handling the expensive kit, without having a comparison marker with the cheaper ones, but still needs to justify the lighter wallet, and will list all the negative ‘facts’ of the cheaper models, regardless if they have ever tried them or not.
I was one of those ‘experts’, I spent a lot of money, left the hobby after a while, and later got back into it, but doing my homework, before parting with my cash.
I now have some relatively cheap kit, that works, and that suits my abilities, and that I don’t need to justify to myself for the cost.
In addition, I can go to the airfield with a smug look on my face, knowing that I have spent half of the others, for the same end result.
Does the Taranis he used had Analog potentiometers or new hall sensor glimbals?
One thing the Flysky basic set doesn’t have, is receivers with fail safe. After Havning your drone just bring Carried away once, the fun dissapears.
They do have failsafe in the X6b and the new Flit10. It’s a pain to configure though, as you need to dedicate one of the AUX channels as the failsafe, map it to a switch and only then configure that AUX to work as failsafe in betaflight.
I’m not talking about a panic go home button, but the fact that the servo positions is held if the model looses reception, so if you are in a hover or a climb with a quad, it just sails away on the last received input. A failsafe is programmically set in the receiver, so throttle is reduce to say 75% if it looses a set number of pulse trains, so it will get down near you.
Yeah, you can totally configure that on a Flysky, with those two receivers. In the radio you set up the positions that you want the servo outputs to go to when connection is lost. It holds for a super-short time (~1 second) and after that, goes to any values you pre-program, on all the channels you want.
If you have a betaflight flight computer, you can do even better, and set more specific behaviours on connection lost. Like for example: stabilise for 3 seconds, and then drop.
Would be interesting to see the Radiolink AT10 II tested like this, they claim something like only 3ms, and not that expensive, either.
I second this!!!
Hello 2020’s, i am reading all of comments since i am looking for the best TX, i am willing to get in to the hobby and want to buy Radiolink ATII claiming the 3ms latency, I hope some a new heroic vlogger will post about its latency with real environment 3d critical driving/piloting, however i have seen once but i need another experiment, anyway i am worried about its potentiometer gimbals, the only downside of it for me.
If potentiometer is still good after a year or 2 of average usage , I am glad to have ATII Radiolink,
i am newbie, and prefer to have TX first, please do not take my comments seriously since I do not have any experience in rc world.
Thank you all for giving me an idea.
The FlySky transmitter is a nice toy to play with for custom firmware development. I documented most of the pinout and and wrote custom firmwware for it some time ago:
It is still experimental and more meant for messing around with firmware development than actually flying scary stuff with it ;)
Coincidently I was reading your blog just last night, I love the open source ESC and FC (I was looking for inspiration to make my own all in one for a really tiny drone).
Regarding Openground I think it would help if you did a project update post. Let people know what’s currently working and what’s not, how they can install it etc. There are a few posts about it but it would get more people interested if it was clear what the cool parts are and what you have to do to get started, even if it’s for messing around :)
I have that transmitter at home and I’ve done some messing around on STM32 micros before, I may just give it a try when it’s not snowing outside.
Great work on all your projects so far, sorry to hear the Chinese made copies of the hw without crediting.. that’s just how they work, it’s nothing personal – to them everything is open source no attribution required. They would have just bought one and copied it regardless of board designs being online and stuff.
Well, this sure is an eye-opener for me, having not looked at any RC waveforms since the last time I crashed – er, flew an RC plane twenty-some years ago, which was of course on analog PPM gear. I’m not at all surprised or alarmed at the latency, but LOOK at that resolution! Are they really sending only four or five significant bits to the servos? I’m only seeing about 20 levels in one radio and 15 in the other, so I’m being generous here. It seems like fine movement of the sticks would do absolutely nothing until you hit a quantization threshold. On a stick with two inches of throw, twenty discrete output levels translates to 1/10″ movement of the sticks! That’s kind of big.
Is this just an artifact of the measurement technique, or have other people out there seen this in practice?
i’m guessing the gains were set low, and we never got to see the full swing..
i know the Spektrum DX7 has a 10 bit resolution so ..
That was exactly my thought. Forget about the 22ms latency. But the resolution! The marketing guys claim 1024 steps (yes they use that “big” number instead of poor 10 bits) resolution and in the end the come up with 4-5 bits?
I actually do not believe the situation is that bad. Maybe he measured the output of a broken servo? Mechanically? With a folding rule?
Well, after writing that, it occurred to me that it’s possible that [Marek Baczynski] only hooked enough leads up to his logic analyzer to get a good idea of the latency, rather than the whole word.
He measured the receiver output (no servos involved). You can clearly see the PPM pulse train on his analyzer.
What is not clear is how he decoded the PPM pulses into discrete levels, however. That would be a matter of software in the analyzer, as well as sampling rate.
Ok, I studied the video a little more closely, and he’s not using (C)PPM, but rather SBus and iBUs outputs, which are digital data packets. So it should represent the data as delivered from the transmitter.
Yes, so presumably the superimposed waveforms are decoded from that, to their full resolution.
No, the reason you only see big steps is that the samples are only taken at ~100Hz, so you are seeing low time resolution, not low amplitude resolution. So intermediate changes during a 100Hz clock are not visible. If it was changed slowly, you would see a lot more levels.
Ah, I see. Thank you.
in the end, it’s highly likely that the multirotor flight software is going to average that data anyway, probably over a much longer time-span than 20msec ..
What about performance/latency as a function of transmitter-receiver distance?
That would be based on the speed of light – so 3.34 microseconds per kilometer or 5.37 microseconds per mile. (the speed of light is a constant at 299,792.458 kilometers a second or 186,282.397 miles a second, well a tiny bit slower if you include the refractive index of air at 1.0003, but that would not really need to be applied at typical hobby RC distances).
1 foot per nano second.
more like what about the time it takes to encode-send-receive-decode, that would be another thing you can somewhat control with software/hw design
Seems like there are two kinds ‘Experts’ in any field, through experience, and through the wallet. Someone with experience, can usually work with whatever tools or equipment is on hand, the better expert. Then there are those, who believe they can buy their way past all the learning time, with the newest, and most expensive, which usually doesn’t amount to much in practice.
Latency can come into being from several sources, and usually a little different in the lab, and in the wild. Kind of crazy arguing a few milliseconds, such a small fraction of time to react/respond. Usually pretty easy to adapt to, but it’s an individual thing, people have their own latency, some even freeze up, and need a moment to ‘reboot’.
Manufacturer specs are more for marketing these days, actual performance usually doesn’t come close anymore. Lab comparisons are fine, but things usually act a little different outside. There is plenty of good equipment, in the low-middle price range, that will do everything you want and expect. I know, those expensive units have tons more features, you won’t find on those cheaper units, but how many of those added features will actually be used, or even needed?
Try “Control-Line Combat” flying. No RC involved, so ZERO latency! Plus you will get a thrills that are orders-of-magnitude more than flying Anything RC!
Assuming a control line of 15 meters the absolute minimum latency is 50 nanoseconds, speed of light, and is probably much higher because of accelerations and elasticity of components.
Nope. Not speed of light – these are mechanical connections, so speed of sound through whatever material they’re made of applies.
It seems everyone is forgeting that taranis/opentx does not directly map a button/gimbal to output. It passes by several layers of code to permit to use filters, mixes, and even to associate scripts with it. And if you want, to output a value to the receiver. So I don’t find this number all that bad.
Please be kind and respectful to help make the comments section excellent. (Comment Policy)