Paparazzi UAS  v5.18.0_stable
Paparazzi is a free software Unmanned Aircraft System.
logger_sd_chibios module

Log on a SD card, either text or binary data.

Based on ChibiOS HAL and Threads. If board allows it (ex: Apogee), the log file is automatically closed on power down. Files are written on a FAT file system using the FatFS library and can be accessed by using the autopilot as a mass storage (plug USB while the board is running).

Example for airframe file

Add to your firmware section: This example contains all possible configuration options, not all of them are mandatory!

<module name="logger_sd_chibios">
b'<define name="SDLOG_START_DELAY" value="30" unit="s" />\n '
b'<define name="SDLOG_AUTO_FLUSH_PERIOD" value="10" unit="s" />\n '
b'<define name="SDLOG_CONTIGUOUS_STORAGE_MEM" value="50" unit="Mo" />\n '
b'<configure name="SDLOG_LED" value="none|num" />\n '
</module>

Module configuration options

Configure Options

  • name: SDLOG_LED value: none|num
    Description: LED number or 'none' to disable. Default: none

Define Options

  • name: SDLOG_START_DELAY value: 30
    Description: Set the delay in seconds before starting the logger. This delay can be used to get plug USB cable and get data without starting a new log. Default: 30s
  • name: SDLOG_AUTO_FLUSH_PERIOD value: 10
    Description: Data flush period. Shorter period may decrease performances. Default: 10s
  • name: SDLOG_CONTIGUOUS_STORAGE_MEM value: 50
    Description: Try to reserve a given contiguous mass storage memory. Default: 50Mo

Module functions

Init Functions

These initialization functions are called once on startup.

Files

Header Files

The following headers are automatically included in modules.h

Source Files

Raw logger_sd_chibios.xml file:

<!DOCTYPE module SYSTEM "module.dtd">
<module name="logger_sd_chibios" dir="loggers">
<doc>
<description>
Log on a SD card, either text or binary data.
Based on ChibiOS HAL and Threads.
If board allows it (ex: Apogee), the log file is automatically closed on power down.
Files are written on a FAT file system using the FatFS library and can be accessed
by using the autopilot as a mass storage (plug USB while the board is running).
</description>
<configure name="SDLOG_LED" value="none|num" description="LED number or 'none' to disable. Default: none"/>
<define name="SDLOG_START_DELAY" value="30" unit="s" description="Set the delay in seconds before starting the logger. This delay can be used to get plug USB cable and get data without starting a new log. Default: 30s"/>
<define name="SDLOG_AUTO_FLUSH_PERIOD" value="10" unit="s" description="Data flush period. Shorter period may decrease performances. Default: 10s"/>
<define name="SDLOG_CONTIGUOUS_STORAGE_MEM" value="50" unit="Mo" description="Try to reserve a given contiguous mass storage memory. Default: 50Mo"/>
</doc>
<dep>
<depends>tlsf</depends>
</dep>
<header>
<file name="sdlog_chibios.h" />
</header>
<init fun="sdlog_chibios_init()"/>
<makefile target="ap">
<configure name="SDLOG_LED" default="none"/>
<define name="SDLOG_LED" value="$(SDLOG_LED)" cond="ifneq ($(SDLOG_LED),none)"/>
<file name="sdlog_chibios.c"/>
<file name="sdlog_chibios/sdLog.c"/>
<file name="sdlog_chibios/msg_queue.c"/>
<file name="sdlog_chibios/sdLog.c"/>
<file name="sdlog_chibios/printf.c"/>
<file name="sdlog_chibios/usb_msd.c"/>
<file name="sdlog_chibios/usbStorage.c"/>
<file_arch name="sdio_arch.c" dir="mcu_periph"/>
<configure name="SDLOG_USE_RTC" default="TRUE"/>
<configure name="USE_FATFS" value="TRUE"/>
<define name="HAL_USE_RTC" value="TRUE" cond="ifeq (,$(findstring $(SDLOG_USE_RTC),0 FALSE))"/>
<define name="HAL_USE_SDC" value="TRUE"/>
<define name="HAL_USE_USB" value="TRUE"/>
<!--test>
<include name="arch/chibios"/>
<include name="../ext/chibios/os/hal/include"/>
<include name="../ext/chibios/os/rt/include"/>
<include name="../ext/chibios/os/license"/>
<include name="../ext/chibios/os/common/ports/ARM/compilers/GCC"/>
<include name="../ext/chibios/os/common/ports/ARM"/>
<include name="../ext/chibios/os/common/startup/ARM/devices/LPC214x"/>
<include name="../ext/chibios/os/common/oslib/include"/>
<include name="../ext/chibios/os/hal/osal/rt"/>
<include name="boards/apogee/chibios/v1.0"/>
<include name="../ext/chibios/os/hal/ports/STM32/STM32F4xx"/>
<include name="../ext/chibios/os/hal/ports/common/ARMCMx"/>
</test-->
</makefile>
</module>