I just received my atom fly and already did some tests since yesterday evening. I used the "AtomFly" sample code and looked into the accelerometer data to implement a PID control loop. Idea is to calculate pitch and roll values and come up with pwm values for the ESCs/motors to balance the drone to keep it flat. For example, if the drone is tilted left, the left two motors (A and C) will need more power and right two motors (B and D) will need less power.
It was my first attempt (and first ever coding any drone) but quickly got some initial code to try. So without the motors running, I got the PID results somewhat expected, good enough for the first draft code. Then holding under the atom fly, I "turned on" the motors and watched the accelerometer readings, pitch and roll values. The moment I turn on the motors, the accelerometer readings almost turns into random values. It's noise but the amplitude of the noise is quite shocking.
I tried a few methods to reduce noise, including averaging 10 reads from accelerometer, a low pass filter, but the not able to get a meangingful noise reduction. Here are the example pitch and roll values, while I was holding it exactly in the same position look at the values jump all over the place:
motors off
p 0.08 r 0.76
p 0.18 r 0.85
p 0.11 r 0.90
p 0.14 r 0.89
p 0.14 r 1.01
p 0.12 r 1.03
p 0.17 r 0.93
p 0.19 r 0.98
p 0.24 r 1.01
p 0.21 r 0.97
p 0.10 r 0.99
p 0.21 r 1.04
p 0.25 r 1.01
p 0.29 r 1.05
p 0.20 r 1.01
p 0.28 r 0.98
p 0.32 r 0.96
p 0.50 r 1.01
p -0.11 r 1.69
p 0.29 r 0.84
p 0.64 r 1.03
p 0.47 r 0.43
p 0.57 r 0.39
p 0.91 r 0.31
motors on
p 1.52 r -0.21
p 2.13 r 0.42
p -1.55 r 0.93
p -4.36 r -3.68
p -7.84 r -8.67
p 10.32 r 18.60
p -12.92 r 9.18
p 10.58 r 35.11
p 14.80 r 13.29
p 14.80 r 30.15
p -7.86 r 10.19
p -10.08 r 5.31
p -29.28 r -11.35
p -43.59 r -19.16
p -18.37 r -1.91
p 7.71 r -13.85
p -9.24 r 8.91
p 19.41 r 4.72
p 24.34 r -4.03
p 17.54 r 27.78
p 19.21 r 12.25
p -11.16 r -9.75
p -24.23 r 1.72
p -26.27 r 29.51
p -33.18 r 15.28
p -14.21 r -10.03
p -9.11 r -0.97
p -10.81 r 35.41
p -4.66 r 0.96
Is this level of noise common for accelerometers on a drone? Any input is welcome.