Difference between revisions of "Data Logger"

From PaparazziUAV
Jump to navigation Jump to search
Line 34: Line 34:
==Software==
==Software==


FIxME
It might seem strange that to compile the software to let the Logger hardware work is in the Airframe cnfiguration directory, but that's the way it is. Just use
 
conf/airframes/logger.xml


==Connecting==
==Connecting==

Revision as of 07:17, 24 August 2012

Introduction

This page describes various onboard external devices called "data loggers", that can be connected to the Paparazzi autopilot. Such a Data Logger device can be used to store telemetry data to a storage medium on board the aircraft. Such a storage medium can be an SD card. Not all logger accept the new SD HighCapacity(SDHC) cards. For now logging is not done directly by the autopilot itself as the usage of a file system as well as possible lag you might get with a SD storage speed does not fit well with the real-time nature of Autopilots.

Why

One would naturally first ask; why on on-board logger when we have data over the air?

The answer to this is multi-fold; Sometimes it is not possible to log everything over the air because of speed, lag and datavolume limitations of data send wireless over the air. Or one needs to log when there is no telemetry at all in long distance flight. Or one want to log all the RAW IMU data to debug specific scenarios.

To solve this issue, there are various loggers that can be cnnected to your Paparazzi Autopilot board. A short overview can be found on this page.

Option 1: TWOGA-LOGGA

A dedicated logger with lots of flexibility, Paparazzi TWOGA-LOGGA. If you think tis is not a good name feel free to rename the device.

https://github.com/paparazzi/paparazzi-hardware/tree/master/controller/logger/v1.0

Operation

The logger is connected between the autopilot and the modem. It stores all telemetry on a micro SD card when power is connected. At the end of the flight a button is pressed just before disconnecting the main battery to stop logging (other ways of stopping are not yet done, e.g. by telemetry message from the gcs or a battery buffered voltage-drop detection). When logging is stopped and the USB is connected the logger acts as USB mass storage device and the micro SD card content can be read with any PC supporting FAT file system. The telemetry data is converted to the standard .data and .log file with a Paparazzi tool. Logging can be started again through a long press of the button if USB was not connected.

Hardware

We decided to use the well known LPC2148 to do the logging. That allows to use the Paparazzi configuration/tool chain and have a standard USB connection for read out with any PC. All designs have a STOP button. It has to be pressed to close the file and be able to read the data! The USB should be connected after the logger is stopped to prevent going into download mode when re-powered.

LED2 on:        logging enabled, press button to stop
LED3 flashing:  writing message to SD

LED2 flashing:  logging stopped, connect USB to read out data or press button long to restart logging

LED1 on:        USB mass storage enabled

Software

It might seem strange that to compile the software to let the Logger hardware work is in the Airframe cnfiguration directory, but that's the way it is. Just use

conf/airframes/logger.xml

Connecting

FIXme

Option 2: An dedicated TWOG board

You can directly connect a micro SD card to a TWOG. Remember that micro SD cards do have a limited number of insertions and should not be plugged too often. The (micro) SD card is connected to the SPI1 of the TWOG following this scheme:

micro SD card connected to SPI
microSD         TinyV2 SPI J3 

 8 nc
 7 DO            5 MISO
 6 GND           1 GND
 5 CLK           7 SCK
 4 Vcc           2 +3V3
 3 DI            4 MOSI
 2 CS            3 SSEL
 1 nc
Looking onto the gold plated connector side of the microSD card:

 ###############
 I 8 
 I 7
 I 6
 I 5
 I 4
 I 3
 I 2
 I 1
 ######    ##
       \  I  \
        ##    ##

The start/stop button is connected to the BUTTON (P0.7) pin of the USB connector (J9). It is activated by pulling it low.

Option 3: Logomatic

There is also direct support for the Sparkfun Logomatic V2.6 board,

Software

Just use

conf/airframes/logomatic.xml

Currently autopilot data must be collected on UART0 for sd2log to work [20:40, 9 August 2012 (UTC)]

Option 4: OpenLog

If you don't want to add a complete TWOG or full-blown LPC-Board to you setup you can also use the Sparkfun OpenLog board. Take a look at Openlog.

UART Connection

The two serial inputs LPC_RXD0 (J7) and RXD1 (J2) are used to receive data. The received data is not forwarded to TX0/1 by software (the UART TX pins are deactivated). If the logger is put in between Tiny and the modem the connection should be done with a wire so that a logger failure does not cause any data link issue.

I2C Connection

tbd

SPI Connection

tbd

Configuration

The logger is defined just like an aircraft. Take the

conf/airframes/logger_sd.xml

as example. You can enable one or both UARTs for logging and have to set the serial speed

<configure name="UART0_BAUD" value="B9600" />
<configure name="UART1_BAUD" value="B9600" />

The message type can be switched between the PPRZ and the XBEE format

<configure name="LOG_MSG_FMT" value="LOG_PPRZ"/>
or
<configure name="LOG_MSG_FMT" value="LOG_XBEE"/>

The SD card can either be connected to SPI0 or SPI1

<configure name="SPI_CHANNEL" value="0" />
or
<configure name="SPI_CHANNEL" value="1" />

Now create a new A/C with the logger airframe. Although they will not be used, you still need to supply dummy files for Flight Plan, Settings, Radio and Telemetry.

Decoding

The telemetry is written in the Paparazzi .tlm format that adds a timestamp to each message. The logger starts with 00000000.TLM in the main folder of the SD and increases the number with each log session. Already used numbers will not be overwritten. This data can be converted back to the Paparazzi .log and .data format using sd2log (make sure environment variables are set before running pprz programs from the commandline)

me@home:~/media/usbstick$ ~/paparazzi3/sw/logalizer/sd2log 00000002.TLM
Renaming produced file ...
09_08_13__20_55_03_SD.data file produced
09_08_13__20_55_03_SD.log file produced
09_08_13__20_55_03_SD.tlm file saved

It creates timestamps from the .tlm and changes the filename to the take-off time if a GPS message with correct time was available in the file or the current local PC time if no GPS was available. The .log file will be re-created either from the current configuration (if still in existence) or the MD5-labeled files that are stored in var/conf each time you build an aircraft. All resulting files are stored in var/logs with an _SD extension.