MicroArduCopter, 3" props, Omnibus Nano, Success!

It must be because your desired alt deviates so much from the actual altitude. Did you check that the baro alt is the same?

BAlt is similar to Alt (obviously with more error).

Did the RCOUT drop at the same time or stay high?

@andyp1per returning to your last PR on gyro rate I tested your last small-copter-4.1 (as of today) with my other 3 inch copter with revo-mini, same config as post #871

INS_GYRO_RATE = 1
FFT_WINDOW_SIZE = 64

[Edit]
Changed image, it was the wrong one.

I see strange behavior on RCOUT in the “falling” zone

That looks pretty good to me! The latest update removes the 188Hz pre-filter. You can probably squasuh the remaining peak more by using the double-notch but you may not have enough CPU for that

That’s what I fear

fill for 20 char min

You might be ok - you only need two peaks and two notches on each - so four total. Remind me what FFT options you are using?

No idea what is going on here

Here the FFT params:

FFT_ATT_REF,15.00000000
FFT_BW_HOVER,131.06542969
FFT_ENABLE,1
FFT_FREQ_HOVER,341.35119629
FFT_HMNC_FIT,10
FFT_HMNC_PEAK,0
FFT_MAXHZ,480
FFT_MINHZ,180
FFT_SAMPLE_MODE,0
FFT_SNR_REF,25.00000000
FFT_THR_REF,0.12224859
FFT_WINDOW_OLAP,0.50000000
FFT_WINDOW_SIZE,64

No problem, I will see, Thanks.

And INS_HMNC_OPTS?

You could set

FFT_HMNC_PEAK

To 1 to always track the first peak

Here INS_HNTCH_*

INS_HNTCH_ATT,40.00000000
INS_HNTCH_BW,150.00000000
INS_HNTCH_ENABLE,1
INS_HNTCH_FREQ,300.00000000
INS_HNTCH_HMNCS,3
INS_HNTCH_MODE,4
INS_HNTCH_OPTS,0
INS_HNTCH_REF,1.00000000

I will try with:

FFT_HMNC_PEAK,1
INS_HNTCH_OPTS,1
1 Like

FFT graph with previous config +

FFT_HMNC_PEAK,1
INS_HNTCH_OPTS,1

Accel0

Gyro0

Now I have also a static notch at 120Hz

[Edit]
Top accel
Bottom gyro

Before latest test I see this on GCS Messages:

[MAV 001:1] PreArm: EKF3 still initialising 
[MAV 001:1] PreArm: Radio failsafe on 
[MAV 001:1] PreArm: Internal errors 0x8000 l:391 ,main_loop_st 
[MAV 001:1] k 
[MAV 001:1] PreArm: EKF3 still initialising 
[MAV 001:1] PreArm: Radio failsafe on 
[MAV 001:1] PreArm: Internal errors 0x8000 l:391 ,main_loop_st 
[MAV 001:1] k 
[MAV 001:1] PreArm: EKF3 still initialising 
[MAV 001:1] PreArm: Radio failsafe on 
[MAV 001:1] PreArm: Internal errors 0x8000 l:391 ,main_loop_st 
[MAV 001:1] k 
[MAV 001:1] PreArm: EKF3 still initialising 
[MAV 001:1] PreArm: Radio failsafe on 
[MAV 001:1] PreArm: Internal errors 0x8000 l:391 ,main_loop_st 
[MAV 001:1] k 
[MAV 001:1] PreArm: EKF3 still initialising 
[MAV 001:1] PreArm: Radio failsafe on 
[MAV 001:1] PreArm: Internal errors 0x8000 l:391 ,main_loop_st 
[MAV 001:1] k 
[MAV 001:1] PreArm: Radio failsafe on 
[MAV 001:1] PreArm: Internal errors 0x8000 l:391 ,main_loop_st 
[MAV 001:1] k 
[MAV 001:1] PreArm: Radio failsafe on 
[MAV 001:1] PreArm: Internal errors 0x8000 l:391 ,main_loop_st 
[MAV 001:1] k 
[MAV 001:1] PreArm: Radio failsafe on 
[MAV 001:1] PreArm: Internal errors 0x8000 l:391 ,main_loop_st 
[MAV 001:1] k 
[MAV 001:1] Radio Failsafe Cleared 
[MAV 001:1] PreArm: Internal errors 0x8000 l:391 ,main_loop_st 
[MAV 001:1] k 
[MAV 001:1] PreArm: Internal errors 0x8000 l:391 ,main_loop_st 
[MAV 001:1] k 
[MAV 001:1] PreArm: EKF3 still initialising 
[MAV 001:1] PreArm: Internal errors 0x8000 l:391 ,main_loop_st 
[MAV 001:1] k 
[MAV 001:1] PreArm: Internal errors 0x8000 l:391 ,main_loop_st 
[MAV 001:1] k 
[MAV 001:1] PreArm: Internal errors 0x8000 l:391 ,main_loop_st 
[MAV 001:1] k 

Then I rebooted and done the test OK.

Looks like its worse, probably not enough CPU.

@andyp1per I was thinking about Nyquist frequency, folding, aliases, things I studied many years ago and now I am a little bit confused.

The accel FFT spectrum (pre-filter) on post #887 seems to me sampled at 1KHz and not 2KHz, I say this because is near perfectly symmetrical around 500Hz, 0 to 500Hz the signal, 500Hz to 1000Hz the folding. Am I wrong?

I report here the FFT in question
Accel-Folding

Another thing i would like understand: when we sample, say the accel, at 1KHz all vibration at frequencies higher then 500Hz re-enter in the signal we sample as aliases. Is this right? Could this be cause of problems in stability (leaning)?

From what I remember the only way to eliminate aliases is to filter the signal in the analog domain to not let frequencies above Fs/2 enter the ADC. But in our case both the analog signal (accel) and the ADC are inside the IMU chip.

You are correct on all counts!

The MPU6000 will only go up to 1Khz on Accels, but 8Khz on Gyros - my PR allows these to be independent. So when you set the gyro rate to 2kz we downsample gyros to 2kz but accels remain at 1khz. You would need to have a ICM20689 to avoid this.

Aliasing is a problem, and we filter to avoid aliasing effects, but I don’t think it’s the problem.

I have to buy a FC with ICM20689.

I think it could be more a problem to accel then to gyro for undesired effect like leaning, I say this because I red it here and because in this thread I red about leaning problems more times.

What I don’t understand is how can we filter to avoid aliasing? It should be done before the signal enter the ADC, if we use digital filter is too late, the aliases are already in.

There seem to be a lot of Omnibus Nano V6 users here so it seems a good place to ask… Has anyone tried the V6.1? It claims to be firmware compatible which, I assume means it has all the same ports in the same places. I have one on order so I guess I’ll find out either way.