Quantifying Latency in Cheap RC Transmitters

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.

55 thoughts on “Quantifying Latency in Cheap RC Transmitters

      1. 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” ?

        1. 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.

  1. OK, some actual info from the video (so you don’t have to watch it):
    Update frequencies:
    Taranis – 111Hz
    Flysky – 130Hz

    Average delays:
    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.

    1. 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.

      1. 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.

          1. 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).

        1. 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.

        2. Weeeelllll…

          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

    2. 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.

      1. 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.

  2. 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.

    1. 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.

  3. 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.

    1. 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.

    1. 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.

      1. 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.

        1. 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.

    1. 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.

  4. 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?

    1. 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?

      1. 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.

          1. 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.

    2. 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.

    1. 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).

  5. 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?

    1. Pedant Alert!
      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.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

w

Connecting to %s