REAL DataLogging for APM1

3689507094?profile=original 

DataLogging for APM1

 

Hi,

 

For a while I wanted to record my flights for analyzing it later. The problem was that the current recording system is not working well. So I decided to rebuild the whole recording method.

The first problem was to determent what parameters/variables I need…. I came up with this list:

Servos In

Servos Out

IMU:    3 Gyros

            3 Accelerometers

            3 Attitudes

            3 Compasses

            Air speed

            Barometer

GPS: Time in ms

GPS fix

Number of satellites

Latitude

Longitude

Altitude

Ground speed

Ground course

3689507094?profile=original

Of course I've added headers and end bytes. To have a relevant data that I could analyze I wanted to record at 50Hz (even though that the GPS is only 10Hz). This presented quite a challenge.

The second problem was the amount of flash memory that I have… In APM1 we are using the Atmel 45DB161D as our data logger and it has only 16Mb = 16Mbits (NOT 16MB=16MBytes as written everywhere!!!) it means that I had a very limited amount of space to save the data that I mentioned above. So I've build in the GUI couple of extra buttons so I could control when I start recording and when do I stop it in order to save space.

The third problem was to synchronize the samples. I decided to use the GPS ms time as a reference to all the variables and parameters but the current MTK GPS library didn’t contain the time in ms – it has a bug... so I've changed that as well to output the GPS time in ms.

The forth problem was the very buggy file system that currently exists. I tried to use it and eventually decided to not use it. I wrote the data straight to the memory for now. Later on I'll create/repair the file system

It means now that I have about 7 minute of complete accurate on board recording of my flight. I can make the code more costly effective regarding space consuming (for example the GPS is only 10Hz and I write in to the flash in 50Hz) and eventually convert the method of writing, to and from the flash, from ascii to binary – that will save A LOT of time/space.

To support all this I had to add the AMP GUI some features like start/stop record buttons to decide when to start/strop the record because of the space/time samples, I created a bar which displays how much space capacity remains, how the log is created and stop etc. All is done via MAVLink.

3689507222?profile=original

The download of the log is being done like it used to be – the output is a CSV file (Hurray!) that I can view and make graphs out of it on Excel.

I'm planning to add some more stuff like temperature sensors, RPM etc..

I would like you (the diydrones community) to look at it.. both sides of software – in the APM and the Mission Planner and tell me what you think of it.

Do you find it helpful? Do you think we could integrate it into Ardupilot/Arducopter and the mission planner?

Maayan Dreamer

 

           

           

 

E-mail me when people leave their comments –

You need to be a member of diydrones to add comments!

Join diydrones

Comments

  • Hello

    This is exactly what I wanted for my final thesis becoming an engineer for aeronatics. For ideas exchange I want to get in direct contact with you.

    Great work

    THANKS

  • Paul, Can you please refer me to the place where the AMP2 implements on-board data-logging?

    I'm planning to integrate is into the public version..

     

  • 100KM
    Hi Paul

    I have both 1.4 and 2.5, but I don't see a difference in the "stock" logging? Where is the difference? Both logs to onboard memory?
  • Been looking for this capabity for a while! This would be incredibly useful. Please incorperate!

  • 100KM
    Looks brilliant! I'd love to have better logging. Pity only 7 minutes though. Would the apm2.5 be able to store more?
This reply was deleted.