LOOP RATE higher than 800 and telemetry message issue

Hi all,
we are working with small quadcopter with 5" prop with last AC 3.6 ,
its a lot of time we are working with loop rate at 800 and we clearly found good improvements in overall stabilization performance and flight behaviour in general.

We are using also a precise indoor localization system and again setting loop rates higher than 800 bring evident and consistent improvement in position hold and navigation performance.

Passing from 800 to 1200, is better but telemetry message to ground station completely freezes during the flight.
Passing from 1200 to 1600 we observe an overall even greater enhancement than the previous step but telemetry message is totally compromised, even with the usual usb serial link.

I’ve already read in this post

that this is a known limitation actually, moreover I’ve seen back in last year roadmap http://ardupilot.org/dev/docs/roadmap.html this 4kHz+ loop rate PIDs .

Is there a temporal hack for the current firmware that could help fixing telemetry issues for loop rates of 1600 and more?

If not, how is the “4kHz+ loop rate PIDs” support status and if its already in some branch how can I beta test it ?


I’ve opened a PR for this feature here:

As I noted in the PR, this is not yet safe to fly (although if you are willing to risk a vehicle, then logs would be appreciated!)


I’ll prepare a willing quadcopter for the science of Ardupilot 4kHz+ loop rate :slight_smile:

What’s of these do you need?

Out of curiosity what Flight Controller are you talking about here?

thanks. It won’t achieve 4kHz with that PR. Loop rates that high will require some other structural changes.
It should work with loop rates significantly higher than it does now though. I’ve been testing 1800Hz on a PH4-mini (a F765).
Unfortunately if you push it too high at the moment then telemetry will stop. I’m still working on a way to prevent that.

1 Like

I think OP mentioned pixracer somewhere in these forums…

I’d be willing to try this as well… Benefit of having tiny 3" prop copter is it’s not too scary to test things.
(Although I guess a flyaway is a possible outcome if the thing locks up in a way where the motors are spinning but it’s not responding to commands like motor stop… Inside testing would be alright, though)

But I’m assuming I need to be set up to compile to try it, right? If it’s possible to d/l an already compiled copy, let me know. I don’t have a development environment set up at the moment.

First test at 1600 done!
I’ve compiled yours wip firmware with our hwdef for our Pixracer, and I’ve already test it at 1600 loop rate and its flying good!
Also the wifi telemetry working good with MP connected all the time and the usb connection too.

Initially I cannot save any log for you, MP with yours firmware freezes completely during the normal log downloader. So I installed the new firmware on a new FC, and I’ve carefully test that the log downloader was working before the first flight! (I was able to clean the sd card and see that there is no log before the flight).
After the flight at 1600 MP always freezes during the log downloader. I’ve put back the loop rate at 400, restart, and try to download it… still no way, completely frozen. And also it cannot clear tha logs anymore.

Finally using a third FC (all 3 FC are the same type, Pixracer) with the standard fw I was able to download from the sd with the log made at 1600 , I haven’t seen it already, I hope something its written or could help to sort it out.
loop rate 1600 tridge fw.zip (100.3 KB)
Let me know how to proceed, what’s do you need and could help you for this great PR, there are 3 willling quadcopter waiting to go higher than 1600 and save logs for this :smiley:
This new version solve the telemetry link and usb connection for 1600 loop rate, but the dataflash log is not happy anymore.

In this log it seems to have the same problem that there was with telemetry, most of the log messages are found at beginning and ending but missing during flight (I suppose you flew for one minute in the middle of the log).

Missing messages:

  • AHR2
  • ATT
  • NKFx
  • RATE

Maybe also the logging needs to be done on a separate thread?

1 Like

Writing logs asynchronously might require an approach similar to the BatchLogger, but I suppose part of the problem here maybe that your sdcard cannot keep up.