I wanted to start a conversation around the roll and pitch of Arducopter drifting as you fly.
The reason is I just assembled new hardware and problems that weren't there before have now shown up in a bad way. Flying indoors in a 5ft space I was able to get up to 30° error in roll and around 10-15° in pitch. I was able to control it and it flew perfectly level the whole time, I just had to hold the stick into the corner of the radio. Lading and waiting corrects the issue.
What could cause this. I had been flying an older version of the IMU this whole time. This version has an analogue filter for the gyros where the new hardware has it as an option. You must solder the pads around the gyros to enable them. I was also flying with two slightly tweaked motors giving off a lot of vibration. This could affect the accels.
My question is: If you have a problem like this, what is the vibration level on your copter, and do you have the filter pads soldered?
And notice I didn't say "loss of control" or "it didn't fly stable". I had control, and it flew perfectly. It just lost it's reference to the ground and I had to compensate with the stick. Had it been worse than 45° I would have lost control.
There are three pairs of pads, each with a white outline. (look for GYRO-XY near the relay).
Jani Solders his to enable the filter. I have never flown this board until now. I will solder them to test the filters this week.
Replies are closed for this discussion.
"The invensense gyros already have a 1st order filter built inside with a cutoff frequency of 140Hz"
It is strange to see such high noise at 800 Hz with a 2 Khz sampling loop if the gyros are filtered with a 140 Hz low pass. Not impossible, but strange.
i would suggest to all testers, to avoid diagnostic errors, to check for their +5V power quality. Not easy to test, because noise can exhibit only during fly or high current flight phases. HF, VHF and UHF noise content cannot be seen with basic tools like voltmeters or entry level scopes but can have disastrous effect on electronic circuits, analog and digitals.
For simplicity, the best is perhaps to test with a separate 4.8V battery for receiver / APM powering, so that any power noise and ESC / APM ground loop can be mostly eliminated.
Powering with an integrated BEC ESC is not a good idea i think for such critical tests. I would stay away as well from UBEC (switched BEC) because they can produce heavy HF / VHF / UHF low impedance noise on their output.
That is exactly what I was thinking.
But then again if it was noise because of badly filter ADC reference /power source then we would see the interference when no motors are spinning. Right?
Actually I just tested to drive the APM with external battery. And the noise behaves the same.
Just tried with a propeller. Could not find a small propeller so I just put a inverse propeller causing a downwards push. Made sure that it was not balanced.
The noise basically behaves the same.. The accelerometer responds more to the increased vibration.
Again click the images to see the animation.
First the gyro. Note! These samples are taken with the extra 1.1uf capacitor.
Actually besides this 800Hz I would say this is handling the bad noise environment (see acc image).
Then the acc.
"But then again if it was noise because of badly filter ADC reference /power source then we would see the interference when no motors are spinning. Right?"
No because if there is a ground loop between ESCs and APM, or if noise is coming back from motors to the APM, then you will see interferences only when high currents are making their EMI job.
Interferences problems can be very complex. That's why it's better to remove this possibility fully separating control and power, at least for those tests.
As you tried with a dedicated external battery, this could prouve that there is really noise on the gyro output, not on the power side.
Noise can be created by two problems :
2) sampling frequency jitter
First idea is always to think that the problem does come from the analog signal. -> aliasing problem.
And if the sampling frequency jitter was the cause of the problem ?
I think that the analog gyro outputs needs to be tested with an FFT analyser to be sure.
A good quality audio card can be used for this, if there is no lab tool available, as the frequency is in the audio range.
Measured the sampling jitter. It is max 10us.
Decoupled the ESC, i.e. motor, esc and radio running on separate battery from the APM.
So the only link between motor and APM is the arm holding the motor, i.e. only a mechanical connection.
Same thing 800Hz spike moving from the border inwards. I assume this is 1000Hz-1200Hz disturbance aliased to 1000Hz-800Hz.
What happens in the gyro if it is shaken faster than it specified for?
Have we exceeded the specification of the Gyro by applying vibration of 1200Hz? I know nothing about gyros, maybe now is a good time to read up on them? :)
So it seems that you don't have a sampling clock jitter problem neither.
Jason, how is the sampling frequency produced in the ACM code ? Could we have a jitter problem here ?
Could you try to mount the IMU / APM boards on silicone tubes (the one used for fuel links on RC models).
You should see a dramatic decrease in vibrations. Then add progressively some weight on the boards, to rise the mechanical inertia. You should see again lower vibrations and a lower resonnance frequency.
If there is still vibrations, then we have a microphonic effect coupling problem ! like we can see on old electronic tubes.
Sometimes we can see noise problems on the board himself, without help of external ground loops or external power noise.
I've seen wierd things happen on a AVR design i did because of decoupling problems on the +5V rail.
The i2c bus was creating noise and i couldn't get things working reliabily.
Adding a LC filter on the VCC and AVCC inputs can help here.
As we have a weird problem, because some users do not report it and others do report it, i think that all need to be checked and validated.
I've found this on a forum, seems interesting for vibration isolation , Zeal tape and fuel silicon tube :
I have tried vibration-isolating my APM/IMU module by putting a layer of 6mm foam above and below it to wedge it without screws in between the fibreglass layers of the standard AC2 chassis. However when the chassis is screwed back together the foam is very compressed and the arrangement is so tight that I'm not sure it's offering any vibration isolation at all. I don't know how to tell..
What I would prefer is some relatively floppy attachment with foam or silicone tube on one side of the module only, but I haven't come up with any good way of doing this.
Does anyone have any examples (pictures would be good) of how they have done vibration isolation on the APM/IMU module in a standard Arducopter chassis?
I would try three 15 - 20 mm lenght silicon tube behind each APM corner each one fixed with a 3mm screw on the board.
On the chassis, three 3mm screws would enter in each tube.
Should allow to get a good isolation.
I will try the silicone tubing tonight.
Did some rudamentary scope measurements on the analog line last night.
It has obvious vibration noise in the signal upto maybe 300Hz, after that the vibration noise dies down. So I am not seeing this ~1000Hz noise on the ADC input.
Putting weight on the board (finger pushed down on the gyro) does not seem to reduce the noise significantly. I will test more tonight.
I also read in the gyro datasheet that it is possible to disturb the gyro oscillator with a sound source of 20-30kHZ. So I tried that, removed the motor from the frame and held it above the gyro. That gave me the same noise behaviour. So it is not a sound polution. :)
Here is 2 samples to play with. One is 1 motor running, the other one is 4 motors running at the same time.
My copter is standard arducopter from jdrones with custom legs (15 cm long).
Oilpan is Hotel 1.0, filter pads soldered.