How long does it take from flipping a switch in transmitter before that action is coming out of receiver? This is something I have wanted to measure for a long time. Actually it was one of the reasons I bought my oscilloscope but for some reason I forgot that since I had more interesting stuff to do like analyzing UDI & VBar and that kinda stuff.
This was long due, so let’s try to find out!
Chain of events
In order to understand everything we need to get a bit theoretical first. So, what happens when you flip a switch and that switch is configuring a channel output on receiver? (We are assuming no teacher – student function is present)
- Flip switch
- Transmitter processes input information
- Transmitter examines flight modes
- Transmitter updates model function outputs
- Transmitter updates mix values
- Transmitter assigns functions to servo/channel
- Transmitter applies mixes separately to all servos
- Transmitter generates servo output
- Transmitter checks for servo test mode
- Transmitter assigns output value from input value
- Transmitter checks for reversal
- Transmitter interpolates between end positions and servo center
- Transmitter adds digital and flight mode trims
- Transmitter adds subtrim offset
- Transmitter adds transition delay caused by flight mode switch is added
- Transmitter checks delay from servo setup menu
- Transmitter checks servo balancer
- Transmitter crops minimal and maximum physical limits
- Transmitter sends the servo/channel value to receiver
We can see there’s quite a lot to do before anything happens. Looking at the amount of calculation one can not be other than astonished about the performance of today’s transmitters processing power.
What happens in receiver then? Well, in basic receiver gets (as I understand it) ready channel values and receiver then acts on that information.
After all, none of this is important in itself this time, what we are looking is the total time of the whole operation.
Test’s were run on following equipment
- DC-24 firmware 4.22
- REX6 firmware 1.03
- R6 firmware 3.24
- Rigol DS1054Z (Upgraded to DS1104Z) oscilloscope
I soldered two wires to a 2-position switch to get the exact switch-time and connected that to oscilloscope to channel one (Yellow line in all pictures). Channel two (Blue line in all pictures) in oscilloscope was then connected to servo output on receiver.
Switch was assigned to a function and that function to a channel and receiver output as digital output. No mixes, servo balancing etc was used.
So, how long does it take?
Enough with tech-stuff. Let’s find out:
It takes 28.70ms. We can even see the switch going from one position to another with “no position” in the middle. Now, I was a bit surprised, somehow I imagined a bit faster result. well, let’s continue.
100Hz vs. 50Hz?
Having transmitter on 100Hz vs. 50Hz is a topic that surely does heat up feelings and wakes up those “I heard from… that…”-comments on forums. So, let’s see the impact (if any) on that. The above was with transmitter set on 100Hz so I changed the setting to 50Hz and power-cycled the transmitter and receiver. The result?
It should come as no surprise that there is a difference, with 100Hz changed to 50Hz being only difference in test-setup the time jumped to 35.60ms.
New tech – faster speeds?
Both above tests were ran on REX6 receiver. I wanted to see what happens with changing the receiver to older R6 receiver. And the result…
The result was a bit expected and at the same time a bit surprising. With transmitter on 100Hz in both cases R6 got a time of 36.80ms where REX6 got a time of 28.70ms. This was interesting, we do know that REX receivers do have more pure CPU-power inside them but the difference is somewhat big in my mind.
What about pure servo-signal?
This was a bit tricky to measure since as we know servo-signal is not “constant”, it’s a pulse width modulated repeating signal coming from receiver. It CAN be measured but not really exact:
In the blue line we can see servo signals with 10ms apart each other. That means receiver sends servo position to servo every 10ms. Looking from the point the switch is flipped in transmitter and looking for next updated servo signal we can see that the time is 24.90ms. What I find more interesting is that between the switch-use and the actual updated servo signal there is one servo signal-update missing. This is intriguing, I wonder if Jetimodel would give some more information regarding this.
There’s always room for errors. I repeated every test at least 10 times and used average valued pictures here. The differences were really small, we are talking about 2ms maximum. In the last test there was a bit more variation due the switch-flipping position with servo signal pulses. Differences were around 4ms there but again, average valued picture was used.
What does this mean?
Let’s assume a simple situation where you have a servo in it’s lowest (-100) position installed in a model. The servo operating value is for example 60 degrees and manufacturer says the speed is 0.10sec/60 degrees. We wan’t to know how long it takes from flipping the switch in transmitter before servo is in it’s max position. That adds up to following formula:
Total time = Signalling time + Servo time
And in our case with REX6, 100Hz setting in transmitter and this 0.10sec / 60 degrees servo it would be 28.70ms signalling time added with 100ms with a total of 128.70ms. In simpler form that is 0.129 seconds.
Now we can start to debate of things like “but the servo rarely needs to move the whole travel so your timing is the worst case scenario”. Well, we can say we move the servo just half of the maximum, the total time would be 0.079 seconds.
One more thing. We have not been taking gyros in to the equation yet. Gyro get’s servo signals from receiver, uses it’s sensors to calculate new values based on angle and input signal before putting those out to servos. What is the impact on that is entirely different story. I do have a few different gyros here so we just might be coming back to that. That would be interesting to see how different protocols (UDI/PPM etc) would affect the total timing.
And no. The time for the radio signal to travel from transmitter to receiver have not been calculated. Radio signal is sort of electromagnetic radiation and travels almost with speed of light. So in our usage and flying distances it has no meaning.
I’m no signal tech. Read accordingly. And get out on the field and have some fun :)
7 thoughts on “Action timing – Whole operation”
Very interesting research! I've exactly the same oscilloscope and will check the response time on my DC-16 vs. Futaba FX-40!
It would be interesting to measure the time from throwing the switch to the time voltage is applied to the servo motor and then to when the voltage is removed from the servo motor. You would get the real speed of the servo and the delay inherent in PWM servos that can't start until they know which direction to go. (assuming starting from neutral – 1.5 msec)
It would be great if you had comparison times with other manufactures!
Great job getting this info!
I do not know if you can answer this, but How does this time (Jeti) compare to Futaba or JR?
Reason I ask, I used to own a JR 9503, and well, there was a latency. Well, I did not know this until I got a Jeti. To me, now, I feel Jeti has no latency. SO I wonder if you know how ours compares to the other ones?
No idea. In order to get 100% comparable results all set-ups should ne measured with same equipment. And since I do not have for example JR it’s not gonna happen any time soon.
I'm thinking of purchasing Rigol DS1104Z.. How is the overall performance of the O-scope?
I'm very happy with it, but I'm a electronics-noobie so read some reviews online :)