[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Paparazzi-devel] Magnetometer freeze problem occurring AR Drone 2.0

From: opersupport
Subject: [Paparazzi-devel] Magnetometer freeze problem occurring AR Drone 2.0
Date: Fri, 2 May 2014 14:28:37 -0700 (PDT)


I am working on a project where I am executing my own code for the AR Drone
2.0. My project makes use of sensor readings and control of propellers. So
far, the Paparazzi code base has been a great resource so far allowing me to
see how driver code is implemented such that I can write something on my own
to read sensors and talk to motors. Right now, I am re-using much of the
functionality from the navdata.c

Here is my slightly modified version, I removed the baro calibratoin stuff
because I don’t plan on using this initially, but other than that, it should
be mostly the same in terms of functionality

I can read all sensor data fine (accel,gyro, altitude, etc), it works
without problems except for the magnetometer data. It seems that the
magnetometer values sometime get held at a constant value and no longer
update. This happens in a few instances:

a)      At first, I would read in successful magnetometer readings in my 
I then terminate this program and sometimes after starting it up again, the
values are held at a constant.

b)      During my program execution, values are updating normally then suddenly
get held at a constant

c)      I’ve noticed that sometimes when moving the drone from a 
position and then moving it suddenly (ie: a change in attitude) will cause
the magnetometer to fail as well.
I have did some reading online on Github, from my understanding, there has
been issues in the past with the magnetometer. For instance:

On Jan 23rd there was a change to fix occasional magneto freeze issues. The
code I am using should have the correct implementation of this (see pastebin
link above) except for the fact that I am not calibrating the baro which I
don’t believe should have an effect on the initialization issue. To simplify
my tests, all I am doing is essentially calling IMU_Navdata_init () once,
then looping with the IMU_Navdata_update( ) function to grab data from the
serial port. When my program terminates, I close the file descriptor using

To summarize further: I am also using firmware version v*2.4.8. I also kill
the respawner script ( and the programs
(program.elf ) *prior to running my code. *Again, I can get all other IMU
data in fine; it’s just the magnetometer which still suffers from the freeze
issue despite having matching initialization code*. Could it be that there
may be hardware issues with my navigation board?

Please let me know if there are further steps I can take to better
understand the issue. What other tests can I perform?

View this message in context:
Sent from the paparazzi-devel mailing list archive at

reply via email to

[Prev in Thread] Current Thread [Next in Thread]