-
-
Notifications
You must be signed in to change notification settings - Fork 357
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Update frequency of radio in trainermode to low if feeded via Sbus (servo movement jerky) #3844
Comments
For a more precise context, this was using a ELRS receiver @ 100 Hz / 8 channels, right? |
Yes, ELRS receiver is @ 100 Hz / 8 channels used to the Trainer's Rx. Same for the connection to the plane. |
Any progress on this? I see more users having the exact same problem. @raphaelcoeffic any idea? think #4047 could solve it? |
Same Problem here. |
I can confirm this with something close to current main. I will take a look tomorrow |
So, those are my findings: What happens on slower apcket rates is, that the reading of the sbus trainer data and the transmission of packets to the ExpressLRS TX module is not synchronised, so that there are timing differences which lead to lost packets. Conclusion: |
Thank you for the quick response. I just tried it briefly with 333Hz full. it is slightly better, but not flyable. |
In my test setup it looked good. 100Hz full to the RX for the model and 333 Hz full between student and trainer. |
I use er8gv with hv digital Servos. Mks or Kst. |
Which packet rate do you use between trainer radio and model and what which PWM rate do you use on the RX outputs? |
Tx16s teacher 100hzFull to er8gv Pwm Output i think 50hz. I nothing change there. without the Wireless Student all works perfekt. With cable works also. |
Here some News? |
Yes, some work going on to update and integrate an older PR that redid sbus trainer input and adds CRSF, sumd and Ibus Trainer inputs |
Thanks nice to hear |
Fix in 2.9.1? |
No, it is not that easy |
After some people said the problem had been solved, I started testing again. unfortunately unsuccessful. it still jerks. Was anything changed or fixed? Here some Video |
Regardless of whether or not we can use RX DMA, we can make use of the Idle IRQ to trigger processing of packets (via the timer task), assuming these are sent without holes in them (which should be the case, AFAIK). That would allow to have a much lower latency when processing these packets. This technique is already used for telemetry packets (depends on protocol, I think). Here is an example: void telemetryFrameTrigger_ISR(uint8_t module, const etx_proto_driver_t* drv)
{
BaseType_t xHigherPriorityTaskWoken = pdFALSE;
xTimerPendFunctionCallFromISR(_poll_frame, (void*)drv, module, &xHigherPriorityTaskWoken);
portYIELD_FROM_ISR( xHigherPriorityTaskWoken );
} This function is then called from the idle callback handler with the proper parameters. |
Is there an existing issue for this problem?
What part of EdgeTX is the focus of this bug?
Transmitter firmware
Current Behavior
I have a X9E with latest 2.9 EdgeTx. If trainer mode get his data from a sbus receiver connected via serial port, the servo movement is jerky. If trainer mode is feeded via wire, servo movement is smooth. If trainer mode is off, servo movement is smooth.
Expected Behavior
Same smooth servo movement in trainer mode, independent of the trainer source.
Steps To Reproduce
Student radio's input will be jerky.
Version
2.9.0
Transmitter
FrSky X9E / X9E Hall, Radiomaster Boxer
Operating System (OS)
No response
OS Version
No response
Anything else?
No response
The text was updated successfully, but these errors were encountered: