logging: allow logging backend config

* logging: allow logging backend config

* correct board comments

* documentation: updated logging section
This commit is contained in:
Alexander Lerach 2025-08-27 15:44:36 +02:00 committed by GitHub
parent 30fcb4fcb1
commit 8f2c36689d
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
7 changed files with 68 additions and 9 deletions

View File

@ -8,6 +8,9 @@
# End Setup for board specific configurations. #
###############################################################################
#
# Set SD logging mode
#
if param compare SDLOG_MODE 1
then
set LOGGER_ARGS "${LOGGER_ARGS} -e"
@ -28,8 +31,28 @@ then
set LOGGER_ARGS "${LOGGER_ARGS} -a"
fi
#
# Set logging backend
#
if param compare SDLOG_BACKEND 1
then
set LOGGER_ARGS "${LOGGER_ARGS} -m file"
fi
if ! param compare SDLOG_MODE -1
if param compare SDLOG_BACKEND 2
then
set LOGGER_ARGS "${LOGGER_ARGS} -m mavlink"
fi
if param compare SDLOG_BACKEND 3
then
set LOGGER_ARGS "${LOGGER_ARGS} -m all"
fi
#
# Start logger if any logging backend is enabled
#
if ! param compare SDLOG_BACKEND 0
then
logger start -b ${LOGGER_BUF} -t ${LOGGER_ARGS}
fi

View File

@ -14,7 +14,7 @@ param set-default SYS_DM_BACKEND 1
# Set TELEM1 as default mavlink connection
param set-default MAV_0_CONFIG 0
# Disable logger writing to FRAM, only stream over MAVLINK
set LOGGER_ARGS "-m mavlink"
param set-default SDLOG_BACKEND 2
# 200kOhm/10kOhm voltage divider on V_BAT
param set-default BAT1_V_DIV 21

View File

@ -38,5 +38,5 @@ param set-default SYS_DM_BACKEND 1
# Ignore that there is no SD card
param set-default COM_ARM_SDCARD 0
# Don't try to log onto SD card
param set-default SDLOG_MODE -1
# Disable logging
param set-default SDLOG_BACKEND 0

View File

@ -38,5 +38,5 @@ param set-default SYS_DM_BACKEND 1
# Ignore that there is no SD card
param set-default COM_ARM_SDCARD 0
# Don't try to log onto SD card
param set-default SDLOG_MODE -1
# Disable logging
param set-default SDLOG_BACKEND 0

View File

@ -35,14 +35,15 @@ The parameters you are most likely to change are listed below.
| Parameter | Description |
| ------------------------------------------------------------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| [SDLOG_MODE](../advanced_config/parameter_reference.md#SDLOG_MODE) | Logging Mode. Defines when logging starts and stops.<br />- `-1`: Logging disabled.<br />- `0`: Log when armed until disarm (default).<br />- `1`: Log from boot until disarm.<br />- `2`: Log from boot until shutdown.<br />- `3`: Log based on the [AUX1 RC channel](../advanced_config/parameter_reference.md#RC_MAP_AUX1).<br />- `4`: Log from first armed until shutdown. |
| [SDLOG_MODE](../advanced_config/parameter_reference.md#SDLOG_MODE) | Logging Mode. Defines when logging starts and stops.<br />- `0`: Log when armed until disarm (default).<br />- `1`: Log from boot until disarm.<br />- `2`: Log from boot until shutdown.<br />- `3`: Log based on the [AUX1 RC channel](../advanced_config/parameter_reference.md#RC_MAP_AUX1).<br />- `4`: Log from first armed until shutdown. |
| [SDLOG_BACKEND](../advanced_config/parameter_reference.md#SDLOG_BACKEND) | Logging Backend (bitmask). Setting a bit enables the corresponding backend. If no backend is selected, the logger is disabled.<br />- bit `0`: SD card logging.</br >- bit `1`: Mavlink logging.
| [SDLOG_PROFILE](../advanced_config/parameter_reference.md#SDLOG_PROFILE) | Logging profile. Use this to enable less common logging/analysis (e.g. for EKF2 replay, high rate logging for PID & filter tuning, thermal temperature calibration). |
| [SDLOG_MISSION](../advanced_config/parameter_reference.md#SDLOG_MISSION) | Create very small additional "Mission Log".<br>This log can _not_ be used with [Flight Review](../log/flight_log_analysis.md#flight-review-online-tool), but is useful when you need a small log for geotagging or regulatory compliance. |
Useful settings for specific cases:
- Raw sensor data for comparison: [SDLOG_MODE=1](../advanced_config/parameter_reference.md#SDLOG_MODE) and [SDLOG_PROFILE=64](../advanced_config/parameter_reference.md#SDLOG_PROFILE).
- Disabling logging altogether: [SDLOG_MODE=`-1`](../advanced_config/parameter_reference.md#SDLOG_MODE)
- Disabling logging altogether: [SDLOG_BACKEND=`0`](../advanced_config/parameter_reference.md#SDLOG_BACKEND)
### Logger module

View File

@ -150,5 +150,18 @@ param_modify_on_import_ret param_modify_on_import(bson_node_t node)
}
}
// 2025-08-22: translate SDLOG_MODE (disabled) to SDLOG_BACKEND (no logging backend)
{
if (strcmp("SDLOG_MODE", node->name) == 0) {
if (node->i32 == -1) {
node->i32 = 0;
int32_t sdlog_backend_val = 0;
param_set(param_find("SDLOG_BACKEND"), &sdlog_backend_val);
PX4_INFO("migrating %s -> %s", "SDLOG_MODE", "SDLOG_BACKEND");
}
}
}
return param_modify_on_import_ret::PARAM_NOT_MODIFIED;
}

View File

@ -55,7 +55,10 @@ PARAM_DEFINE_INT32(SDLOG_UTC_OFFSET, 0);
* Determines when to start and stop logging. By default, logging is started
* when arming the system, and stopped when disarming.
*
* @value -1 disabled
* Note: The logging start/end points that can be configured here only apply to
* SD logging. The mavlink backend is started/stopped independently
* of these points.
*
* @value 0 when armed until disarm (default)
* @value 1 from boot until disarm
* @value 2 from boot until shutdown
@ -67,6 +70,25 @@ PARAM_DEFINE_INT32(SDLOG_UTC_OFFSET, 0);
*/
PARAM_DEFINE_INT32(SDLOG_MODE, 0);
/**
* Logging Backend (integer bitmask).
*
* If no logging is set the logger will not be started.
*
* Set bits true to enable:
* 0: SD card logging
* 1: Mavlink logging
*
* @min 0
* @max 3
* @bit 0 SD card logging
* @bit 1 Mavlink logging
*
* @reboot_required true
* @group SD Logging
*/
PARAM_DEFINE_INT32(SDLOG_BACKEND, 3);
/**
* Battery-only Logging
*