Inav: Detect and ignore accelerometer if measured vibration is high

Created on 21 Aug 2016  ยท  71Comments  ยท  Source: iNavFlight/inav

In some cases above certain throttle value accelerometer starts to read garbage rendering inertial modes unflyable:
image
image

Not sure where this effect comes from. Possible causes:

  1. Electrical noise when above certain power level ESCs draw currect in spikes causing high-frequency noise.
  2. Mechanical noise

In both cases I suspect resonance with MEMS accelerometer natural frequency. Datasheet doesn't specify it for accelerometers but for gyros it's in range 27-40kHz for typical gyros. If I'm correct adding mechanical damping that absorbs high-frequency vibrations and electrical filtering (adding a capacitor to power supply) will help.

In any case the resonance effect is unsafe for the craft and we should be able to detect it and act accordingly.

BUG Enhancement

All 71 comments

That"s the sacred Gral for any closed control loop...and very little can be
done...if the measure is noisy before the reading you can correct it...if
the measire come from the observer(sensor)itself nothing can be done and
you need to change it or an external same sensors which is not affected by
the noise. If the problem is resonance it have to be solved only by
hardware...a typical example of resonance is "tacoma bridge"(look for the
video on youtube) detecting to ignore it doesn't solve the issue and in a
very short time during the flight the aircraft dismatle by itself.

Il 21/ago/2016 03:43, "Konstantin Sharlaimov" [email protected] ha
scritto:

In some cases above certain throttle value accelerometer starts to read
garbage rendering inertial modes unflyable:
[image: image]
https://cloud.githubusercontent.com/assets/11059099/17834772/1264506a-6793-11e6-908f-214ebc1527e5.png
[image: image]
https://cloud.githubusercontent.com/assets/11059099/17834775/3363381c-6793-11e6-9391-e5ac5888979e.png

Not sure where this effect comes from. Possible causes:

  1. Electrical noise when above certain power level ESCs draw currect in
    spikes causing high-frequency noise.
  2. Mechanical noise

In both cases I suspect resonance with MEMS accelerometer natural
frequency. Datasheet doesn't specify it for accelerometers but for gyros
it's in range 27-40kHz for typical gyros. If I'm correct adding mechanical
damping that absorbs high-frequency vibrations and electrical filtering
(adding a capacitor to power supply) will help.

In any case the resonance effect is unsafe for the craft and we should be
able to detect it and act accordingly.

โ€”
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/iNavFlight/inav/issues/486, or mute the thread
https://github.com/notifications/unsubscribe-auth/ALSWinNE1742i0OtIFwL-G7h_gRLE6ohks5qh603gaJpZM4JpNED
.

I know we can't solve it in software, but we can detect it and prevent issues with Alt/Pos hold by disabling inertial estimation and relying only on sensors that are less accurate but more reliable at the moment (baro/GPS).

This will degrade performance considerably but will keep the copter/pilot/surroundings safe.

Physical you can also add a diode in series that will also prevent surges
coming from esc...the problem is finding a diode small and of a lot of
amps...

Il 21/ago/2016 06:43, "Konstantin Sharlaimov" [email protected] ha
scritto:

I know we can't solve it in software, but we can detect it and prevent
issues with Alt/Pos hold by disabling inertial estimation and relying only
on sensors that are less accurate but more reliable at the moment
(baro/GPS).

This will degrade performance considerably but will keep the
copter/pilot/surroundings safe.

โ€”
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/iNavFlight/inav/issues/486#issuecomment-241238663,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ALSWiuoR-L-f8Ln1cJW48sphB53vZ5Ayks5qh9dpgaJpZM4JpNED
.

I'm thinking about adding a lowpass filter to the line powering the FC

Hm... I wonder if this is the cause of problems with airplanes and Naze32 full boards. Baro weight is very small - good enough for stable accelerometer but insacely small for noisy one. GPS-only setups use GPS Z coord/vel to correct the inertial estimate and GPS weight is usually set much higher - enough to keep the estimated position/velocity within sane limits.

Airplanes also usually have much higher vibration levels than multirotors...

Cap will be 0hz lp and adding the diode in the line will make it better

Il 21/ago/2016 06:46, "Konstantin Sharlaimov" [email protected] ha
scritto:

I'm thinking about adding a lowpass filter to the line powering the FC

โ€”
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/iNavFlight/inav/issues/486#issuecomment-241238757,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ALSWinD1f6m5vvlD__U3vyQlJ8TK2l0oks5qh9gsgaJpZM4JpNED
.

ESCs can easily draw 20-30A each and 30A+ diodes are heavy and bulky and I suspect it's not electrical noise that is driving accelerometer crazy. I suspect it's a mechanical issue.

Going out to verify in about half an hour - added silicone pads to soft-mount my FC, will fly and do a few punch-outs to see what do I have in logs. No electrical change so experiment will be clean and correct.

"disabling inertial estimation and relying only on sensors that are less accurate but more reliable at the moment (baro/GPS)."

Good idea, but maybe we should test fly and see how it behaves without the inertial estimator?

Wilco1969 had it also with no props so i doubt it's mechanica or he should
had the reading with much more less throttle since the rotor spins at much
higher speed for the same throttle. If it is that, damping pads should
solve if the fc is not integrated in the structure..i suppose it's
electrical...an 1n4001series with 1000uf cap in parallel is small enough
for the fc filtering...about detecting the issue you already have the
answer..baro reading... if those big changes in altitude are there also
baro or gps or sonar should feel them... But a good idea is integrate acc
reading and derivate baro or whatever pos reading we take in consideration
so to compare them in terms of velocity
Il 21/ago/2016 06:59, "Konstantin Sharlaimov" [email protected] ha
scritto:

ESCs can easily draw 20-30A each and 30A+ diodes are heavy and bulky and
I suspect it's not electrical noise that is driving accelerometer crazy. I
suspect it's a mechanical issue.

Going out to verify in about half an hour - added silicone pads to
soft-mount my FC, will fly and do a few punch-outs to see what do I have in
logs. No electrical change so experiment will be clean and correct.

โ€”
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/iNavFlight/inav/issues/486#issuecomment-241239121, or
mute the thread
https://github.com/notifications/unsubscribe-auth/ALSWiqSumPzSnl6eR3NzZ5RjLGwm04Zdks5qh9sUgaJpZM4JpNED
.

It's a mechanical issue. Added o-rings to my FC mount and hit 4.3g at full throttle without any garbage readings from accelerometer.
image

It's definitely mechanical.... If it where electrical, I would expect it also on the other motors...

What caught me by surprise was the better 'feeling' motor, actually being the one causing the resonance issue. No way I'm going to be able to remove the problem with balancing.. it is critical speed issue.
What about the ACC sensor range ? Is it large enough to never ever be overloaded with the highest peaks? Similar problem happened on MultiWii a few years ago.

Don't worry about the copter disintegrate on flight... It's very small, but enough to make the ACC go crazy... I'm just unlucky to hit the wrong frequency.

I think I will order an SPracing Evo board
That is not part of the frame,so can be mounted on some double sided foam tape.... The same copter with all its vibrations has been flying perfectly before using a Naze on foam.
Then F3FC provides a clean build, but a nightmare to remove vibrations....

I think it's resonance of internal structures of MEMS accelerometer - it's a mass on the spring so it must have a natural frequency and you are unlucky to hit it.
https://www.youtube.com/watch?v=eqZgxR6eRjo

Try putting o-ring below the motors that should isolate them somehow

Il 21/ago/2016 10:00, "Konstantin Sharlaimov" [email protected] ha
scritto:

I think it's resonance of internal structures of MEMS accelerometer - it's
a mass on the spring so it must have a natural frequency and you are
unlucky to hit it.
https://www.youtube.com/watch?v=eqZgxR6eRjo

โ€”
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/iNavFlight/inav/issues/486#issuecomment-241244309,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ALSWilBTiyPpQbb68tOTCGT2crW3bit9ks5qiAWpgaJpZM4JpNED
.

It is indeed very odd...mems have a negligible mass so their resonance
frequency should be above ghz.. Propably you get some spurious freq of the
BPF that is already double the rotation speed or triple if you use 3 leafs
prop

Il 21/ago/2016 10:00, "Konstantin Sharlaimov" [email protected] ha
scritto:

I think it's resonance of internal structures of MEMS accelerometer - it's
a mass on the spring so it must have a natural frequency and you are
unlucky to hit it.
https://www.youtube.com/watch?v=eqZgxR6eRjo

โ€”
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/iNavFlight/inav/issues/486#issuecomment-241244309,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ALSWilBTiyPpQbb68tOTCGT2crW3bit9ks5qiAWpgaJpZM4JpNED
.

Yes, that might help as well. We are probably fighting very high frequencies here - probably khz or even mhz here. Probably we are hitting a harmonic of propeller noise which is transfered through a stiff frame - this also explains why simply putting rubber o-rings is enough to kill the vibration (which is only possible if vibration is small and of very high frequency).

This presentation analyse ADXL50 MEMS accelerometer and estimate resonant frequency of only 24kHz which is very possible with small props or damaged bearings. I don't think MPU sensors are much different - definitely not MHz or GHz.

Ha, in my case issues like this were usually mechanical. Faulty motor bearing / not good enough balance / loose frame element / crack in one of the booms / shitty motor mount. Motor noise hitting resonance frequency and bam.

@digitalentity this not only has to be noise hitting resonant frequency of MEMS accelerometer. It can be also noise hitting resonant frequency of anything else

I'll try fitting a wooden arm.... Should have a similar effect... But will have to wait until this evening.... (Wife won't let me...๐Ÿ˜ž)

@wilco1967 actually more (or less) stiff arms might help. Wood is also quite good at isolating high freq. Adding some extra stiffless to the frame may also help as well as adding a rubber/silicone pad under the motors. Possibilities are many, thing is that if this happens again firmware will go crazy again.

We need a way to detect it and react in a safe way, not going heywire and skyrocketing or dropping.

Mmm...probably bearing related bpf in that case can do little if we think
of a rotation speed of 30krpm bpf for two leaf. Prop should be 10khz a tree
leaf should be there but bearings i mean roll bearing can give also 5x or
6x rotation speed since there are 5 or 6 or 7 balls

Il 21/ago/2016 10:21, "Konstantin Sharlaimov" [email protected] ha
scritto:

This presentation
http://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-777j-design-and-fabrication-of-microelectromechanical-devices-spring-2007/lecture-notes/07lecture24.pdf
analyse ADXL50 MEMS accelerometer and estimate resonant frequency of only
24kHz which is very possible with small props or damaged bearings.

โ€”
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/iNavFlight/inav/issues/486#issuecomment-241245082,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ALSWiqRE0DZ316D4vH15GKVRucGcQmuPks5qiAqVgaJpZM4JpNED
.

I have 2blade 9x5 HQ props on 900 kV motor... Most tests were flown on 3s I guess I hover at approx 6000 rpm, or 100 Hz. Give or take a bid...
Definitely not a mini quad....

You had the same issue with no props...dp probably some scratched bearing...

Il 21/ago/2016 11:11, "wilco1967" [email protected] ha scritto:

I have 2blade 9x5 HQ props on 900 kV motor... Most tests were flown on 3s
I guess I hover at approx 6000 rpm, or 100 Hz. Give or take a bid...
Definitely not a mini quad....

โ€”
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/iNavFlight/inav/issues/486#issuecomment-241246846,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ALSWitx7RijypYwb9xpudvM12P8NUVDaks5qiBY6gaJpZM4JpNED
.

On one motor, but that's replaced

The new motor actually sounds worse, but gives no ACC effect without a prop... I guess it's the arms, rather then the motors

Well... It's the combination, hitting a resonance frequency

Just my experience i build an hexa for a friend when i was using 5045x3 i
could see the tip of the gps box shaking like in a mixer..just not to talk
on how arms were vibrating....everything disappeared as i swtiched for
5030x3..if you can try to decrease the props pitch and increase size or
number of blades i'm sure it will help

Il 21/ago/2016 11:21, "wilco1967" [email protected] ha scritto:

Well... It's the combination, hitting a resonance frequency

โ€”
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/iNavFlight/inav/issues/486#issuecomment-241247252,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ALSWiuLuahv0mMdv2nC6xWfZQaBr3Sz6ks5qiBh_gaJpZM4JpNED
.

I've ordered an SPracing F3 Evo board.... Don't think I'll ever solve the vibrations without being able to isolate the FC from the frame....
And wooden arms are OK for test, but I already have an old all wooden copter... Don't need another ugly looking one.
That old wooden tricopter is using MultiWii navigation version, still working perfect, with enormous amount of vibrations.... OK, not as precise as iNav, but very reliable....

You don't need to fill it with wood if you could just place a rubber o-ring
like the ones used for plumbing it is more than enough and you won't see
any aesthetic change

Il 21/ago/2016 16:51, "wilco1967" [email protected] ha scritto:

I've ordered an SPracing F3 Evo board.... Don't think I'll ever solve the
vibrations without being able to isolate the FC from the frame....
And wooden arms are OK for test, but I already have an old all wooden
copter... Don't need another ugly looking one.
That old wooden tricopter is using MultiWii navigation version, still
working perfect, with enormous amount of vibrations.... OK, not as precise
as iNav, but very reliable....

โ€”
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/iNavFlight/inav/issues/486#issuecomment-241262066,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ALSWitLkGYbBkXKUiXm7bEQqAa3eRbVJks5qiGX1gaJpZM4JpNED
.

Problem is, the F3FC board IS the frame..... Nothing to isolate....
I will try to put some foam between the arms and frame instead... If it works, fine... Anyway, that new SPracing board will find some use.... If not on the Tricopter, then on a plane....

I understood that but what i mean is put an o-ring between the motors base
and the frame so to have each motor sitting on a soft pad

Il 21/ago/2016 18:18, "wilco1967" [email protected] ha scritto:

Problem is, the F3FC board IS the frame..... Nothing to isolate....
I will try to put some foam between the arms and frame instead... If it
works, fine... Anyway, that new SPracing board will find some use.... If
not on the Tricopter, then on a plane....

โ€”
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/iNavFlight/inav/issues/486#issuecomment-241266637,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ALSWiuwPf-1b2RKktQdfR0ut-aK_amHUks5qiHpHgaJpZM4JpNED
.

Ahh, ok.... I misunderstood....
Bit difficult the way the motor mount is attached to the arm. The bolts
holding the motor are flush against the sides of the arm, without any
play,so would still transfer a lot of vibrations I guess.
I will put some foam tape between the arms and top and bottom frame plate,
and then not overtighten the bolt that goes through the arm....
So the motor and arm can vibrate, without transferring too much high
frequency vibrations to the frame / FC
Or just use the tape to hold everything together if the bolt still
transfers too much vibrations....
And if done neatly, it doesn't look bad....
With wooden arms, all cables will run outside...

For sure it will change the vibrations, but if it will solve it remains to
be seen.... Will see how it goes....Now if I hurry, and the weather
improves, I might get one flight in this evening.

Groeten,

Wilco

On 21 August 2016 at 18:21, bk79 [email protected] wrote:

I understood that but what i mean is put an o-ring between the motors base
and the frame so to have each motor sitting on a soft pad

Il 21/ago/2016 18:18, "wilco1967" [email protected] ha scritto:

Problem is, the F3FC board IS the frame..... Nothing to isolate....
I will try to put some foam between the arms and frame instead... If it
works, fine... Anyway, that new SPracing board will find some use.... If
not on the Tricopter, then on a plane....

โ€”
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/iNavFlight/inav/issues/486#issuecomment-241266637,
or mute the thread
auth/ALSWiuwPf-1b2RKktQdfR0ut-aK_amHUks5qiHpHgaJpZM4JpNED>
.

โ€”
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/iNavFlight/inav/issues/486#issuecomment-241266828,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AEFaZ61pqlav0XnA4_ayMVJ0u6FOhf1Cks5qiHsQgaJpZM4JpNED
.

Put some glue on the bolts if not fully tight they are going get loosen

Il 21/ago/2016 18:57, "wilco1967" [email protected] ha scritto:

Ahh, ok.... I misunderstood....
Bit difficult the way the motor mount is attached to the arm. The bolts
holding the motor are flush against the sides of the arm, without any
play,so would still transfer a lot of vibrations I guess.
I will put some foam tape between the arms and top and bottom frame plate,
and then not overtighten the bolt that goes through the arm....
So the motor and arm can vibrate, without transferring too much high
frequency vibrations to the frame / FC
Or just use the tape to hold everything together if the bolt still
transfers too much vibrations....
And if done neatly, it doesn't look bad....
With wooden arms, all cables will run outside...

For sure it will change the vibrations, but if it will solve it remains to
be seen.... Will see how it goes....Now if I hurry, and the weather
improves, I might get one flight in this evening.

Groeten,

Wilco

On 21 August 2016 at 18:21, bk79 [email protected] wrote:

I understood that but what i mean is put an o-ring between the motors
base
and the frame so to have each motor sitting on a soft pad

Il 21/ago/2016 18:18, "wilco1967" [email protected] ha scritto:

Problem is, the F3FC board IS the frame..... Nothing to isolate....
I will try to put some foam between the arms and frame instead... If it
works, fine... Anyway, that new SPracing board will find some use....
If
not on the Tricopter, then on a plane....

โ€”
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
<https://github.com/iNavFlight/inav/issues/486#issuecomment-241266637
,
or mute the thread
auth/ALSWiuwPf-1b2RKktQdfR0ut-aK_amHUks5qiHpHgaJpZM4JpNED>
.

โ€”
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/iNavFlight/inav/issues/486#issuecomment-241266828,
or mute the thread
ayMVJ0u6FOhf1Cks5qiHsQgaJpZM4JpNED>
.

โ€”
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/iNavFlight/inav/issues/486#issuecomment-241268688,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ALSWim0WGE3HkxG0j6YVSuTreoN6DzCnks5qiINggaJpZM4JpNED
.

OK, that looks promissing.....
Almost all vibration effects on the ACC gone....
image

now out for a test flight

Finally SUCCESS !!!!!!

Flew (almost) perfectly..... Alt holt works 99% OK now.... few times saw a small hunch of throttle pulsations, but gone almost immediately if it started... It holds atltitude very well now.....
The rest is optimization in PID parameters.....

Blacklog is also very smooth now....

Flight is not optimal yet.... I think I lost GPS for a few seconds but it quickly recovered. And there is a slight hunch of toilet bowling, but that is just because the compass isn't well aligned at the moment... Nothing that can't be solved with some settings & tidying up of wiring.

Now have to do some cleaning up to do....a few drops of loctite on the nuts (thanks BK79) and some tuning / optimization. Luckily those damn vibrations are mostly under control.

I'll try tightening up the bolts to see how far I can tighten them before the problems return.... atm pretty loose (but tight enough that it will not fall apart in mid air ;-)

THANKS A LOT to ALL of you for your help. Very much appreciated....

The next few days, I'll write a little report on the RCExplorer website about the issues I had.... And what can be done about it.... I'm sure others will run into the same issues when they try this board.... It is just so much more sensitive for vibrations than an external mounted FC.
It wasn't noticable on flightmodes other than Alt-hold, so most people flying Triflight or cleanflight will perhaps never notice it.....
Will try to convince some Tricopter owners to try iNav... The RCExplorer tricopter is not a racing machine... So I think many people will be interrested in proper GPS functions.

Here is the log file, for comparison.
LOG00216.TXT

The SPRacingF3 EVO will have to find another home once it arrives..... I have a plane lying which would make a good test rig. New toys

Thanks again

@wilco1967 glad that you managed to resolve the problem.

We are not fighting low frequency (<200-300Hz) vibrations here so any sort of dampening that will attenuate multi-kHz mechanical noise will probably do equally as good. Another example of how important vibration dampening is for higher-level functions.

Actually, the issue affects Triflight and Cleanflight as well - might cause level drift if exhibited very close to hover - accelerometer is used to correct gyro drift in ANGLE/HORIZON modes and if it measures garbage - horizon level will slowly drift.

Imagine attaching a GoPro to your Tri and having it hover at 1650 throttle where the issue starts to manifect itself. You'll probably be trying to fight the issue like "my tri doesn't fly level, after a few minutes of flight it drifts and I have to land!".

Indeed you would expect this to also effect auto level modes, but it didn't
on any of my tests.... autolevel always perfect.

Now I have to admit, I don't fly pure auto level much....never more than 30
seconds or so....I either use Acro mode or GPS modes. GPS modes have always
worked perfectly (at least, for as long as my GPS plays nice.... new one on
the way).

Groeten,

Wilco

On 22 August 2016 at 01:40, Konstantin Sharlaimov [email protected]
wrote:

@wilco1967 https://github.com/wilco1967 glad that you managed to
resolve the problem.

We are not fighting low frequency (<200-300Hz) vibrations here so any sort
of dampening that will attenuate multi-kHz mechanical noise will probably
do equally as good. Another example of how important vibration dampening is
for higher-level functions.

Actually, the issue affects Triflight and Cleanflight as well - might
cause level drift if exhibited very close to hover - accelerometer is used
to correct gyro drift in ANGLE/HORIZON modes and if it measures garbage -
horizon level will slowly drift.

Imagine attaching a GoPro to your Tri and having it hover at 1650 throttle
where the issue starts to manifect itself. You'll probably be trying to
fight the issue like "my tri doesn't fly level, after a few minutes of
flight it drifts and I have to land!".

โ€”
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/iNavFlight/inav/issues/486#issuecomment-241289753,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AEFaZ0Vvdry8hG0kO76ohFdtKnJP9wJGks5qiOIEgaJpZM4JpNED
.

Update:
Seems like my vibration problems are not completely over yet.....
A lot better than before, but still coming back too often....

Using the slightly heavier 4S battery brings the RPM right back in the critical range.... not as bad as before, but still very noticable....
it's the same vibration issue... not something I can tune out.

Same will happen if I weigh it down with FPV camera etc.

Will put some doublesided tape also under the motors, see if that helps......

Looks like the SPracing board will go on the Tricopter after all when it arrives..... trying to deal with this isn't fun.

Ok.... Adding some soft double sided tape under the motors as well did it....
Haven't seen any strange behaviour anymore....
Flew perfectly....
Now I hope the problem doesn't return....

Just a stupid question - how did you secure the motor screws? Did you screw them tight? Is the tape still absorbing vibrations then?

Some time ago I've developed more sophisticated motor mount on my bigger quad, which works pretty well actually, but I'd prefer not to replicate it on my 250:

motor-mount

I used almost the same idea..
Some Scotch double sided clear mounting tape below and on top of the arm, and the motor bolts not too tight....
This stuff is quite rubbery. Will see how long it stays this flexible..

@wilco1967 I'm now having similar issues with ACC noise that you described. It would be nice if you wrote a summary of your finding to RCExplorer forums as you mentioned. Would be good information for any others thinking of running iNav on the tricopter board.

Hi Ikaino,

I haven't flow it for almost two weeks now, because on a business trip... but I managed to write a 'small' story on the RCexplorer website....
http://rcexplorer.se/forums/topic/f3fc-inav-experiences/

(hmmmm.... link doesnt seem to work, but you'll find it....

I have some things in the works, but not for 1.4

Is this a bug and is it critical @digitalentity ?

Seems like an enhancement ?

I agree, it's not a critical issue.

Ok, time to look into this. It appears to be triggered by high vibration, causing internal ADC saturation. Changing acc scale to 16G makes problem less prominent (https://github.com/iNavFlight/inav/pull/3203)

Also, DLPF on Invensense chips seems to be implemented in such way that it's processing analog signal from the MEMS itself before the ADC. Reducing DLPF to 42Hz made accelerometer resonance issues completely disappear on the bench. I still have to confirm that in logs in flight.

Lowering DLPF will definitely affect ACRO performance, but it's a possible software workaround for the problem. I'm also working on some code to detect the vibration levels.

Hi Konstantin....

It just happens that my old tricopter developed some vibration issues again after a crash. Guess the prop adapter got slightly bent, so it wouldn't properly hold altitude anymore. sometimes, at certain RPM, it would shoot up....
replaced the prop adapter, and much better already, but still it happened sometimes....

So I just tried your newest update. Seems better, but difficult to tell for sure.... After I replaced the prop adapter, it already improved a lot, but sometimes, it still surged. With latest firmware, I didn't really notice any surge.

attched two blackbox log files.... one with iNav 2.0.0 development from 3 days ago (log21)... one brand new (log 23).... both are already with the replaced prop adapter, so only change is firmware version.

https://drive.google.com/open?id=1yQi3tQmR1GpOYCZRGD2oK50vnHBrdLl6

@wilco1967 what gyro_hardware_lpf setting are you flying with?

Whow, that's fast. ;-)

I'm using
set gyro_hardware_lpf = 256HZ

But Gyro's are ok (I think).... ACC_Z is acting up sometimes.

here's the complete dump....
`# version

INAV/OMNIBUS 2.0.0 May 13 2018 / 10:32:34 (56ca670b)

resources

mixer

mmix reset

mmix 0 1.000 0.000 1.333 0.000
mmix 1 1.000 -1.000 -0.667 0.000
mmix 2 1.000 1.000 -0.667 0.000

servo mix

smix reset

smix 0 5 2 100 0

servo

servo 0 1000 2000 1500 100
servo 1 1000 2000 1500 100
servo 2 1000 2000 1500 100
servo 3 1000 2000 1500 100
servo 4 1000 2000 1500 100
servo 5 1000 2000 1500 100
servo 6 1000 2000 1500 100
servo 7 1000 2000 1500 100

feature

feature -RX_PPM
feature -VBAT
feature -TX_PROF_SEL
feature -MOTOR_STOP
feature -SOFTSERIAL
feature -GPS
feature -TELEMETRY
feature -CURRENT_METER
feature -3D
feature -RX_PARALLEL_PWM
feature -RX_MSP
feature -RSSI_ADC
feature -LED_STRIP
feature -DASHBOARD
feature -BLACKBOX
feature -TRANSPONDER
feature -AIRMODE
feature -SUPEREXPO
feature -VTX
feature -RX_SPI
feature -PWM_SERVO_DRIVER
feature -PWM_OUTPUT_ENABLE
feature -OSD
feature -FW_LAUNCH
feature -TRACE
feature VBAT
feature GPS
feature TELEMETRY
feature CURRENT_METER
feature BLACKBOX
feature PWM_OUTPUT_ENABLE
feature OSD

beeper

beeper RUNTIME_CALIBRATION
beeper HW_FAILURE
beeper RX_LOST
beeper RX_LOST_LANDING
beeper DISARMING
beeper ARMING
beeper ARMING_GPS_FIX
beeper BAT_CRIT_LOW
beeper BAT_LOW
beeper GPS_STATUS
beeper RX_SET
beeper ACTION_SUCCESS
beeper ACTION_FAIL
beeper READY_BEEP
beeper MULTI_BEEPS
beeper DISARM_REPEAT
beeper ARMED
beeper SYSTEM_INIT
beeper ON_USB
beeper LAUNCH_MODE
beeper CAM_CONNECTION_OPEN
beeper CAM_CONNECTION_CLOSED

map

map TAER

name

name Tricopter

serial

serial 20 1 115200 38400 0 115200
serial 0 1 57600 38400 57600 115200
serial 1 2 115200 57600 0 115200
serial 2 32 57600 38400 0 115200

led

led 0 0,0::C:0
led 1 0,0::C:0
led 2 0,0::C:0
led 3 0,0::C:0
led 4 0,0::C:0
led 5 0,0::C:0
led 6 0,0::C:0
led 7 0,0::C:0
led 8 0,0::C:0
led 9 0,0::C:0
led 10 0,0::C:0
led 11 0,0::C:0
led 12 0,0::C:0
led 13 0,0::C:0
led 14 0,0::C:0
led 15 0,0::C:0
led 16 0,0::C:0
led 17 0,0::C:0
led 18 0,0::C:0
led 19 0,0::C:0
led 20 0,0::C:0
led 21 0,0::C:0
led 22 0,0::C:0
led 23 0,0::C:0
led 24 0,0::C:0
led 25 0,0::C:0
led 26 0,0::C:0
led 27 0,0::C:0
led 28 0,0::C:0
led 29 0,0::C:0
led 30 0,0::C:0
led 31 0,0::C:0

color

color 0 0,0,0
color 1 0,255,255
color 2 0,0,255
color 3 30,0,255
color 4 60,0,255
color 5 90,0,255
color 6 120,0,255
color 7 150,0,255
color 8 180,0,255
color 9 210,0,255
color 10 240,0,255
color 11 270,0,255
color 12 300,0,255
color 13 330,0,255
color 14 0,0,0
color 15 0,0,0

mode_color

mode_color 0 0 1
mode_color 0 1 11
mode_color 0 2 2
mode_color 0 3 13
mode_color 0 4 10
mode_color 0 5 3
mode_color 1 0 5
mode_color 1 1 11
mode_color 1 2 3
mode_color 1 3 13
mode_color 1 4 10
mode_color 1 5 3
mode_color 2 0 10
mode_color 2 1 11
mode_color 2 2 4
mode_color 2 3 13
mode_color 2 4 10
mode_color 2 5 3
mode_color 3 0 8
mode_color 3 1 11
mode_color 3 2 4
mode_color 3 3 13
mode_color 3 4 10
mode_color 3 5 3
mode_color 4 0 7
mode_color 4 1 11
mode_color 4 2 3
mode_color 4 3 13
mode_color 4 4 10
mode_color 4 5 3
mode_color 5 0 9
mode_color 5 1 11
mode_color 5 2 2
mode_color 5 3 13
mode_color 5 4 10
mode_color 5 5 3
mode_color 6 0 6
mode_color 6 1 10
mode_color 6 2 1
mode_color 6 3 0
mode_color 6 4 0
mode_color 6 5 2
mode_color 6 6 3
mode_color 6 7 6
mode_color 6 8 0
mode_color 6 9 0
mode_color 6 10 0

aux

aux 0 1 0 1050 2100
aux 1 4 0 1150 2100
aux 2 3 0 1150 2100
aux 3 9 0 1150 1900
aux 4 8 0 1900 2100
aux 5 19 0 1250 1350
aux 6 22 0 1350 1450
aux 7 0 0 900 900
aux 8 0 0 900 900
aux 9 0 0 900 900
aux 10 0 0 900 900
aux 11 0 0 900 900
aux 12 0 0 900 900
aux 13 0 0 900 900
aux 14 0 0 900 900
aux 15 0 0 900 900
aux 16 0 0 900 900
aux 17 0 0 900 900
aux 18 0 0 900 900
aux 19 0 0 900 900

adjrange

adjrange 0 0 0 900 900 0 0
adjrange 1 0 0 900 900 0 0
adjrange 2 0 0 900 900 0 0
adjrange 3 0 0 900 900 0 0
adjrange 4 0 0 900 900 0 0
adjrange 5 0 0 900 900 0 0
adjrange 6 0 0 900 900 0 0
adjrange 7 0 0 900 900 0 0
adjrange 8 0 0 900 900 0 0
adjrange 9 0 0 900 900 0 0
adjrange 10 0 0 900 900 0 0
adjrange 11 0 0 900 900 0 0

rxrange

rxrange 0 1000 2000
rxrange 1 1000 2000
rxrange 2 1000 2000
rxrange 3 1000 2000

osd_layout

osd_layout 0 0 1 2 V
osd_layout 0 1 0 12 V
osd_layout 0 2 0 0 V
osd_layout 0 3 8 6 V
osd_layout 0 4 8 6 H
osd_layout 0 5 23 8 H
osd_layout 0 6 23 9 H
osd_layout 0 7 6 1 V
osd_layout 0 8 20 2 H
osd_layout 0 9 22 13 H
osd_layout 0 10 8 6 H
osd_layout 0 11 0 13 V
osd_layout 0 12 5 13 V
osd_layout 0 13 13 1 V
osd_layout 0 14 1 1 V
osd_layout 0 15 24 7 V
osd_layout 0 16 2 10 H
osd_layout 0 17 2 11 H
osd_layout 0 18 2 12 H
osd_layout 0 19 15 1 H
osd_layout 0 20 18 12 H
osd_layout 0 21 0 12 H
osd_layout 0 22 24 1 V
osd_layout 0 23 23 2 V
osd_layout 0 24 12 2 H
osd_layout 0 25 23 5 V
osd_layout 0 26 24 7 H
osd_layout 0 27 3 5 H
osd_layout 0 28 23 13 V
osd_layout 0 29 23 12 H
osd_layout 0 30 1 14 V
osd_layout 0 31 0 10 H
osd_layout 0 32 12 1 H
osd_layout 0 33 23 12 V
osd_layout 0 34 18 2 H
osd_layout 0 35 1 5 H
osd_layout 0 36 1 5 H
osd_layout 0 37 1 6 H
osd_layout 0 38 1 7 H
osd_layout 0 39 1 5 H
osd_layout 0 40 1 2 H
osd_layout 0 41 1 8 H
osd_layout 0 42 1 7 H
osd_layout 0 43 0 0 H
osd_layout 0 44 0 0 H
osd_layout 1 0 23 0 H
osd_layout 1 1 12 0 H
osd_layout 1 2 0 0 H
osd_layout 1 3 8 6 H
osd_layout 1 4 8 6 H
osd_layout 1 5 23 8 H
osd_layout 1 6 23 9 H
osd_layout 1 7 12 12 H
osd_layout 1 8 20 2 H
osd_layout 1 9 1 2 H
osd_layout 1 10 8 6 H
osd_layout 1 11 1 3 H
osd_layout 1 12 1 4 H
osd_layout 1 13 23 1 H
osd_layout 1 14 0 11 H
osd_layout 1 15 1 0 H
osd_layout 1 16 2 10 H
osd_layout 1 17 2 11 H
osd_layout 1 18 2 12 H
osd_layout 1 19 15 1 H
osd_layout 1 20 18 12 H
osd_layout 1 21 0 12 H
osd_layout 1 22 14 11 H
osd_layout 1 23 1 1 H
osd_layout 1 24 12 2 H
osd_layout 1 25 23 5 H
osd_layout 1 26 24 7 H
osd_layout 1 27 3 5 H
osd_layout 1 28 23 11 H
osd_layout 1 29 23 12 H
osd_layout 1 30 1 13 H
osd_layout 1 31 0 10 H
osd_layout 1 32 12 1 H
osd_layout 1 33 6 2 H
osd_layout 1 34 18 2 H
osd_layout 1 35 1 5 H
osd_layout 1 36 1 5 H
osd_layout 1 37 1 6 H
osd_layout 1 38 1 7 H
osd_layout 1 39 1 5 H
osd_layout 1 40 1 2 H
osd_layout 1 41 1 8 H
osd_layout 1 42 1 7 H
osd_layout 1 43 0 0 H
osd_layout 1 44 0 0 H
osd_layout 2 0 23 0 H
osd_layout 2 1 12 0 H
osd_layout 2 2 0 0 H
osd_layout 2 3 8 6 H
osd_layout 2 4 8 6 H
osd_layout 2 5 23 8 H
osd_layout 2 6 23 9 H
osd_layout 2 7 12 12 H
osd_layout 2 8 20 2 H
osd_layout 2 9 1 2 H
osd_layout 2 10 8 6 H
osd_layout 2 11 1 3 H
osd_layout 2 12 1 4 H
osd_layout 2 13 23 1 H
osd_layout 2 14 0 11 H
osd_layout 2 15 1 0 H
osd_layout 2 16 2 10 H
osd_layout 2 17 2 11 H
osd_layout 2 18 2 12 H
osd_layout 2 19 15 1 H
osd_layout 2 20 18 12 H
osd_layout 2 21 0 12 H
osd_layout 2 22 14 11 H
osd_layout 2 23 1 1 H
osd_layout 2 24 12 2 H
osd_layout 2 25 23 5 H
osd_layout 2 26 24 7 H
osd_layout 2 27 3 5 H
osd_layout 2 28 23 11 H
osd_layout 2 29 23 12 H
osd_layout 2 30 1 13 H
osd_layout 2 31 0 10 H
osd_layout 2 32 12 1 H
osd_layout 2 33 6 2 H
osd_layout 2 34 18 2 H
osd_layout 2 35 1 5 H
osd_layout 2 36 1 5 H
osd_layout 2 37 1 6 H
osd_layout 2 38 1 7 H
osd_layout 2 39 1 5 H
osd_layout 2 40 1 2 H
osd_layout 2 41 1 8 H
osd_layout 2 42 1 7 H
osd_layout 2 43 0 0 H
osd_layout 2 44 0 0 H
osd_layout 3 0 23 0 H
osd_layout 3 1 12 0 H
osd_layout 3 2 0 0 H
osd_layout 3 3 8 6 H
osd_layout 3 4 8 6 H
osd_layout 3 5 23 8 H
osd_layout 3 6 23 9 H
osd_layout 3 7 12 12 H
osd_layout 3 8 20 2 H
osd_layout 3 9 1 2 H
osd_layout 3 10 8 6 H
osd_layout 3 11 1 3 H
osd_layout 3 12 1 4 H
osd_layout 3 13 23 1 H
osd_layout 3 14 0 11 H
osd_layout 3 15 1 0 H
osd_layout 3 16 2 10 H
osd_layout 3 17 2 11 H
osd_layout 3 18 2 12 H
osd_layout 3 19 15 1 H
osd_layout 3 20 18 12 H
osd_layout 3 21 0 12 H
osd_layout 3 22 14 11 H
osd_layout 3 23 1 1 H
osd_layout 3 24 12 2 H
osd_layout 3 25 23 5 H
osd_layout 3 26 24 7 H
osd_layout 3 27 3 5 H
osd_layout 3 28 23 11 H
osd_layout 3 29 23 12 H
osd_layout 3 30 1 13 H
osd_layout 3 31 0 10 H
osd_layout 3 32 12 1 H
osd_layout 3 33 6 2 H
osd_layout 3 34 18 2 H
osd_layout 3 35 1 5 H
osd_layout 3 36 1 5 H
osd_layout 3 37 1 6 H
osd_layout 3 38 1 7 H
osd_layout 3 39 1 5 H
osd_layout 3 40 1 2 H
osd_layout 3 41 1 8 H
osd_layout 3 42 1 7 H
osd_layout 3 43 0 0 H
osd_layout 3 44 0 0 H

master

set looptime = 500
set gyro_sync = ON
set align_gyro = DEFAULT
set gyro_hardware_lpf = 256HZ
set gyro_lpf_hz = 30
set moron_threshold = 32
set gyro_notch1_hz = 120
set gyro_notch1_cutoff = 80
set gyro_notch2_hz = 60
set gyro_notch2_cutoff = 40
set gyro_stage2_lowpass_hz = 0
set vbat_adc_channel = 1
set rssi_adc_channel = 3
set current_adc_channel = 2
set airspeed_adc_channel = 0
set acc_notch_hz = 0
set acc_notch_cutoff = 1
set align_acc = DEFAULT
set acc_hardware = MPU6000
set acc_lpf_hz = 15
set acczero_x = 181
set acczero_y = -49
set acczero_z = -319
set accgain_x = 4111
set accgain_y = 4068
set accgain_z = 4028
set rangefinder_hardware = NONE
set rangefinder_median_filter = OFF
set align_mag = CW90FLIP
set mag_hardware = HMC5883
set mag_declination = 130
set magzero_x = -21
set magzero_y = -106
set magzero_z = -81
set mag_calibration_time = 30
set align_mag_roll = 0
set align_mag_pitch = 0
set align_mag_yaw = 0
set baro_hardware = BMP280
set baro_median_filter = ON
set pitot_hardware = NONE
set pitot_use_median_filter = ON
set pitot_noise_lpf = 0.600
set pitot_scale = 1.000
set receiver_type = PPM
set mid_rc = 1500
set min_check = 1100
set max_check = 1900
set rssi_channel = 8
set rssi_scale = 100
set rssi_invert = OFF
set rc_smoothing = ON
set serialrx_provider = FPORT
set serialrx_inverted = OFF
set rx_spi_rf_channel_count = 0
set spektrum_sat_bind = 0
set rx_min_usec = 900
set rx_max_usec = 2100
set serialrx_halfduplex = OFF
set blackbox_rate_num = 1
set blackbox_rate_denom = 1
set blackbox_device = SDCARD
set sdcard_detect_inverted = ON
set min_throttle = 1100
set max_throttle = 2000
set min_command = 1000
set motor_pwm_rate = 2000
set motor_pwm_protocol = MULTISHOT
set failsafe_delay = 2
set failsafe_recovery_delay = 5
set failsafe_off_delay = 200
set failsafe_throttle = 1000
set failsafe_throttle_low_delay = 0
set failsafe_procedure = RTH
set failsafe_stick_threshold = 50
set failsafe_fw_roll_angle = -200
set failsafe_fw_pitch_angle = 100
set failsafe_fw_yaw_rate = -45
set failsafe_min_distance = 0
set failsafe_min_distance_procedure = RTH
set align_board_roll = 0
set align_board_pitch = 0
set align_board_yaw = 1800
set vbat_scale = 1100
set vbat_cell_detect_voltage = 430
set vbat_max_cell_voltage = 430
set vbat_min_cell_voltage = 330
set vbat_warning_cell_voltage = 350
set battery_capacity = 2500
set battery_capacity_warning = 375
set battery_capacity_critical = 250
set battery_capacity_unit = MAH
set current_meter_scale = 500
set current_meter_offset = 0
set current_meter_type = ADC
set yaw_motor_direction = 1
set yaw_jump_prevention_limit = 200
set platform_type = TRICOPTER
set has_flaps = OFF
set model_preview_type = 4
set 3d_deadband_low = 1406
set 3d_deadband_high = 1514
set 3d_neutral = 1460
set servo_center_pulse = 1500
set servo_pwm_rate = 50
set servo_lpf_hz = 20
set flaperon_throw_offset = 200
set tri_unarmed_servo = OFF
set reboot_character = 82
set imu_dcm_kp = 2500
set imu_dcm_ki = 50
set imu_dcm_kp_mag = 10000
set imu_dcm_ki_mag = 0
set small_angle = 25
set fixed_wing_auto_arm = OFF
set disarm_kill_switch = OFF
set auto_disarm_delay = 5
set switch_disarm_delay = 150
set gps_provider = UBLOX
set gps_sbas_mode = NONE
set gps_dyn_model = AIR_1G
set gps_auto_config = ON
set gps_auto_baud = ON
set gps_ublox_use_galileo = OFF
set gps_min_sats = 6
set deadband = 5
set yaw_deadband = 5
set pos_hold_deadband = 20
set alt_hold_deadband = 50
set 3d_deadband_throttle = 50
set fw_autotune_overshoot_time = 100
set fw_autotune_undershoot_time = 200
set fw_autotune_threshold = 50
set fw_autotune_ff_to_p_gain = 10
set fw_autotune_ff_to_i_tc = 600
set inav_auto_mag_decl = ON
set inav_gravity_cal_tolerance = 5
set inav_use_gps_velned = ON
set inav_reset_altitude = FIRST_ARM
set inav_reset_home = FIRST_ARM
set inav_max_surface_altitude = 200
set inav_w_z_surface_p = 3.500
set inav_w_z_surface_v = 6.100
set inav_w_z_baro_p = 0.350
set inav_w_z_gps_p = 0.200
set inav_w_z_gps_v = 0.500
set inav_w_xy_gps_p = 1.000
set inav_w_xy_gps_v = 2.000
set inav_w_z_res_v = 0.500
set inav_w_xy_res_v = 0.500
set inav_w_acc_bias = 0.010
set inav_max_eph_epv = 1000.000
set inav_baro_epv = 100.000
set nav_disarm_on_landing = ON
set nav_use_midthr_for_althold = ON
set nav_extra_arming_safety = OFF
set nav_user_control_mode = CRUISE
set nav_position_timeout = 5
set nav_wp_radius = 2000
set nav_wp_safe_distance = 20000
set nav_auto_speed = 1000
set nav_auto_climb_rate = 500
set nav_manual_speed = 1000
set nav_manual_climb_rate = 200
set nav_landing_speed = 500
set nav_land_slowdown_minalt = 500
set nav_land_slowdown_maxalt = 2000
set nav_emerg_landing_speed = 500
set nav_min_rth_distance = 500
set nav_rth_climb_first = ON
set nav_rth_climb_ignore_emerg = OFF
set nav_rth_tail_first = OFF
set nav_rth_allow_landing = ALWAYS
set nav_rth_alt_mode = AT_LEAST
set nav_rth_abort_threshold = 50000
set nav_rth_altitude = 4500
set nav_mc_bank_angle = 30
set nav_mc_hover_thr = 1500
set nav_mc_auto_disarm_delay = 2000
set nav_fw_cruise_thr = 1350
set nav_fw_min_thr = 1200
set nav_fw_max_thr = 1700
set nav_fw_bank_angle = 50
set nav_fw_climb_angle = 30
set nav_fw_dive_angle = 25
set nav_fw_pitch2thr = 10
set nav_fw_loiter_radius = 4000
set nav_fw_land_dive_angle = 2
set nav_fw_launch_velocity = 300
set nav_fw_launch_accel = 1500
set nav_fw_launch_max_angle = 60
set nav_fw_launch_detect_time = 30
set nav_fw_launch_thr = 1900
set nav_fw_launch_idle_thr = 1000
set nav_fw_launch_motor_delay = 200
set nav_fw_launch_spinup_time = 100
set nav_fw_launch_min_time = 0
set nav_fw_launch_timeout = 7000
set nav_fw_launch_max_altitude = 0
set nav_fw_launch_climb_angle = 18
set telemetry_switch = OFF
set telemetry_inverted = OFF
set frsky_default_latitude = 0.000
set frsky_default_longitude = 0.000
set frsky_coordinates_format = 0
set frsky_unit = METRIC
set frsky_vfas_precision = 0
set report_cell_voltage = OFF
set hott_alarm_sound_interval = 5
set smartport_uart_unidir = OFF
set smartport_fuel_unit = MAH
set ibus_telemetry_type = 0
set ltm_update_rate = SLOW
set ledstrip_visual_beeper = OFF
set osd_video_system = 1
set osd_row_shiftdown = 0
set osd_units = METRIC
set osd_stats_energy_unit = MAH
set osd_rssi_alarm = 35
set osd_time_alarm = 10
set osd_alt_alarm = 250
set osd_artificial_horizon_reverse_roll = OFF
set osd_crosshairs_style = DEFAULT
set osd_left_sidebar_scroll = NONE
set osd_right_sidebar_scroll = NONE
set osd_sidebar_scroll_arrows = OFF
set osd_main_voltage_decimals = 1
set osd_attitude_angle_decimals = 0
set i2c_speed = 400KHZ
set cpu_underclock = OFF
set debug_mode = GYRO
set acc_task_frequency = 500
set attitude_task_frequency = 250
set async_mode = NONE
set throttle_tilt_comp_str = 0
set input_filtering_mode = OFF
set mode_range_logic_operator = OR
set stats = OFF
set stats_total_time = 0
set stats_total_dist = 0
set stats_total_energy = 0
set tz_offset = 120
set display_force_sw_blink = OFF

profile

profile 1

set mc_p_pitch = 70
set mc_i_pitch = 20
set mc_d_pitch = 60
set mc_p_roll = 70
set mc_i_roll = 20
set mc_d_roll = 60
set mc_p_yaw = 75
set mc_i_yaw = 20
set mc_d_yaw = 0
set mc_p_level = 20
set mc_i_level = 15
set mc_d_level = 75
set fw_p_pitch = 10
set fw_i_pitch = 12
set fw_ff_pitch = 16
set fw_p_roll = 10
set fw_i_roll = 12
set fw_ff_roll = 16
set fw_p_yaw = 50
set fw_i_yaw = 45
set fw_ff_yaw = 0
set fw_p_level = 20
set fw_i_level = 15
set fw_d_level = 75
set max_angle_inclination_rll = 300
set max_angle_inclination_pit = 300
set dterm_lpf_hz = 40
set yaw_lpf_hz = 20
set dterm_setpoint_weight = 0.000
set fw_iterm_throw_limit = 165
set fw_reference_airspeed = 1000.000
set fw_turn_assist_yaw_gain = 1.000
set dterm_notch_hz = 100
set dterm_notch_cutoff = 40
set pidsum_limit = 500
set yaw_p_limit = 300
set iterm_windup = 50
set rate_accel_limit_roll_pitch = 0
set rate_accel_limit_yaw = 10000
set heading_hold_rate_limit = 90
set nav_mc_pos_z_p = 50
set nav_mc_pos_z_i = 0
set nav_mc_pos_z_d = 0
set nav_mc_vel_z_p = 100
set nav_mc_vel_z_i = 50
set nav_mc_vel_z_d = 10
set nav_mc_pos_xy_p = 65
set nav_mc_pos_xy_i = 120
set nav_mc_pos_xy_d = 10
set nav_mc_vel_xy_p = 40
set nav_mc_vel_xy_i = 15
set nav_mc_vel_xy_d = 100
set nav_mc_heading_p = 60
set nav_fw_pos_z_p = 50
set nav_fw_pos_z_i = 0
set nav_fw_pos_z_d = 0
set nav_fw_pos_xy_p = 75
set nav_fw_pos_xy_i = 5
set nav_fw_pos_xy_d = 8
set nav_fw_heading_p = 60
set thr_mid = 50
set thr_expo = 0
set tpa_rate = 20
set tpa_breakpoint = 1650
set fw_tpa_time_constant = 0
set rc_expo = 70
set rc_yaw_expo = 20
set roll_rate = 55
set pitch_rate = 48
set yaw_rate = 20
set manual_rc_expo = 70
set manual_rc_yaw_expo = 20
set manual_roll_rate = 100
set manual_pitch_rate = 100
set manual_yaw_rate = 100`

Try going down to 98HZ or even 42HZ. You might have to change tuning to account for larger filtering delay. On my testquad lowering gyro hardware LPF helped a lot.

Ok... I'll try 42hz and report back....

btw, I also adjusted (just now)
set acc_notch_hz = 80
set acc_notch_cutoff = 50
(was 0 / 1)
not visible in configurator, but just noticed them in CLI dump...

Alright.... did another testflight (actually 2, but forgot to insert SD card first time ;-)

What can I say..... it Flies perfect....
Not a hint of surging.... holds altitude perfect....

not sure if the 42Hz caused it, or the ACC notch filtering.... had 2 slight peaks in ACC_Z anaylser display and those are gone now. ACC_Z trace is now absolutely smooth...

LOG00001 42Hz + ACC notch 80_50.TXT

Not needing to re-tune anything.... For my flying style, I don't think I would notice anyway...
besides, the software gyro_lpf_hz = 30 should have a similar effect I assume ?

Will try again with ACC notch filter disabled again.... to be continued...

Ok, notch filter disabled doesn't make much difference...... Still the ACC_Z trace is very smooth (just slightly more noisy then with notch enabled).

So the 42Hz seems to have the biggest impact....
LOG00001 42hz ACC notch disabled.TXT

I'll switch the ACC notch filter back on.... pretty happy with how it flies now...

Thanks a lot !

I did some investigation and it appears that vibration causes unfiltered acceleration values to be clipped to match the sensor output scale (8G/16G).

However, I believe DLPF inside the sensor is able to correctly read and process the out of range values without saturating and clipping and make filtered values fit in sensor output scale range. If we set DLPF low enough high amplitude/high frequency vibration will be attenuated and smoothed and we'll see correct values as output of the sensor.

Price for this is increased delay in both acc and gyro since DLPF setting affects both. The usual tradeoff between robustness and performance ๐Ÿ˜„

Just did another test, with the earlier firmware (8G), ACC_LPF at 42Hz and ACC notch filters active again....
LOG00001 ACC 8G 42Hz ACC notch 80_50.TXT

ACC_Z is still smooth, so for me, it doesn't seem to matter if we run at 8G or 16G range.... the 42Hz gyro_LPF setting seems to make the difference.

but my highest ACC_Z peaks (mostly unfiltered) never went up much above 2G anyway.... So I guess for the kind of vibrations I'm seeing, it wouldn't matter.. But I can see it making a difference for copters which show (or not show, but still encounter) peaks above 8G.

I couldn't notice any downside in 16G setting, but my flying is not 'race style', on a rather large tricopter (RXExplorer V4 tricopter).

I'll be reflashing to latest 16G version for now....

Thanks again !

@wilco1967 we don't see actual mess in the logs since our accelerometer always goes through LPF (and maybe notch) before being used or logged.

Vibration/clipping detection code (#3210) operates on raw accelerometer data. I'll appreciate if you can do several tests with #3210 with 42HZ and 256HZ (and if you are brave enough - trigger the skyrocket bug). We need data to create a baseline for acceptable acceleration.

Ok... will try (compiling now....)
this is using git checkout de_acc_vibre, correct ? (not so good at github.... it's more like monkey see, monkey do for me ;-)

what do you mean with 'skyrocket bug' ? (sure going to try... if I knew what it was... ;-).

Yep, de_acc_vibre branch it is.
Skyrocket bug is the event when ALTHOLD shoots up into the sky

Ah, ok..... got it....
but it didn't happen again when filtering at 42.... will try de_acc_vibre branch with 256hz , no notch first.

another test with de_acc_vibre branch on 256hz, no acc notch filter
Sorry, still debug_mode = GYRO..... will do another one with debug_mode = VIBE
I guess that's what your mostly intersted in....

Couldn't get it to skyrocket this time, but clearly visible the ACC_Z data is much more noisy.
Since I replaced the prop adapter, it only happens some time, not always....
LOG00001 256hz ACC notch disabled, vibre firmware.TXT

alright, here the same test, with debug_mode = vibe....
Guess the new ones are Debug fields in blackbog explorer, but the values don't make sense to me....

BTW, this time, there was just a hint of it trying to freak out again (but it didn't...).

LOG00001 256hz ACC notch disabled, vibre firmware VIBE logging.TXT

and here's one with set gyro_hardware_lpf = 42HZ.... no other changes....

it's clearly noticable that alt_hold is smoother..... on 256, it still randomly tries to go up/down just a little in quick sucession . On 42, that effect is mostly gone....

Anything else you want me to try ?
LOG00001. 42hz ACC notch disabled, vibre firmware.TXT

Was kind of 'disappointed' I couldn't get it to skyrocket, so re-installed the old slightly bent prop adapter, and set set gyro_hardware_lpf back to 256Hz....

Still can't get it to freak out again.... I'm sure it's the same adapter, but it could be turned 120 deg, or 240 deg from previous position.... I can see it wobbling slightly as it turns slowly though.
Also the prop could have been in another orientation.... anyway, can't reproduce the issue right now....

Anyway, the 42hz makes a huge improvement on the ACC_Z trace for me. So I still call this a succes.
Just a bid annoying I can't reproduce it....

here's the log, if you're interested.... The ACC_Z looks pretty lousy, but it still flies reasonably well.
LOG00001 256hz, old prop adapter.TXT

Got it...... (to skyrocket)

re-flashed the older firmware from 10-may, with the 8G (I assume).
old bend prop adapter, 256Hz ACC, no ACC notch.

This time it flipped out and it started to skyrocket on first attempt.... well, not severe, but same I encountered many times.... it climbed approx by 10 meters uncommanded before slowly settling again to original altitude.... Event around the 16 seconds marker in attached log.... ACC_Z peaks go from 0.0G to 1.6G in about 0.1 second

Not sure this is due to difference in 8 / 16 G accelerometer setting, but anyway, I guess you might find it interesting....
LOG00001 firmware 10-5 256Hz, skyrocketed.....TXT

@wilco1967 thanks for the logs, now I have some idea what the vibration limit for the accelerometer might be. Last log (skyrocket one) is, alas, with debug = GYRO and is of limited use.

ahh, correct.... I see....
but that was with the older firmware (INAV/OMNIBUS 2.0.0 May 10 2018 / 15:42:32 (0dce1907), without the set debug_mode = VIBE option.....

didn't happen on the de_acc_vibre branch....

Hope the other logs help you somehow.... If you need another test, let me know....

Thanks a lot.... At least I found some settings it works pretty good now !

FYI, did one last test with 42Hz + ACC notch filters active, on 10 may firmware, with bent prop adapter, and it still flew pretty well..... the 42Hz setting definitely is the ticket (for me at least).

Seems this can also heavily affect estimated attitude:
image

image

I think I have this same bug here, I posted on the facebook group before.

I made the autolaunch procedure (20 seconds), and then the minidrak almost crash, I didnt have full authority on the right elevon, it was like if the FC was tilted to one side, and only left me move the right servo very little, I managed to land roughtly, and I forgot that I could use manual mode to land it safely due how nervous I was.

The servos where OK, phisical connection was OK, movement was OK and reflex was OK as always, FC position was fixed and calibration OK, checked before and after the crash.

After this flight I have activated artificial horizon on the OSD to see if the gyro FC was not working OK and made 2 or 3 flights more without a problem doing autolaunch.

Proof video - https://youtu.be/M9PeBd47Fh0

apparently fixed in #4681

Was this page helpful?
0 / 5 - 0 ratings