[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Paparazzi-devel] Interesting flight with ARDrone2 and master branch
From: |
Andrew Chambers |
Subject: |
Re: [Paparazzi-devel] Interesting flight with ARDrone2 and master branch |
Date: |
Thu, 27 Feb 2014 10:23:38 -0800 |
In the next few days, I'll do some more testing on older versions of the code. For now, I wanted to describe the exact problem, mention a work around, and see if people knew more.
ardrone2 firmware: 2.4.3
git master HEAD
During operation, the magnetometer readings will stop updating. Other data such as gyro and accelerometer continue to work. This is surprising since all the data is sent in a block from the nav board to the main ardrone2 board.
When the magnetometer stops working, I can do the following and it will start working again.
1. Telnet to the vehicle (192.168.1.1)
2. Start bin/program.elf
3. Kill bin/program.elf
4. Restart communication on the nav board (echo -e -n "\1" > /dev/ttyO1)
The program.elf (parrot's software) must be doing some magic to restart the nav board. I'm interested in finding a better solution. I believe that there is also a way to send a reset to the nav board (gpio 181 -d ho 1) but that doesn't seem to help.
Looking at the raw hex stream from the nav board, I see the identical data from the magnetometer so I don't believe it is a problem with our parsing code. Instead I think it is the way that we set up the nav board and/or fail to perform some required interaction with the nav board.
Finally I notice something interesting when using the standard parrot code. I can watch a hexdump from the nav board and if I hold the serial port open, the data will eventually stop and I'll get a warning in the parrot iphone app about "PIC watchdog emergency". My feeling is that there is a problem with the nav board and parrot themselves will periodically close the serial port and restart the nav board.