From 4ea7de449a5a92209b3243fa3b9ec18cbac3d5c7 Mon Sep 17 00:00:00 2001 From: Hamish Willee Date: Fri, 21 Feb 2025 08:34:08 +1100 Subject: [PATCH] InternalCombustionEngineControl - doc corrections (#24359) * InternalCombustionEngineControl - doc corrections * Update InternalCombustionEngineControl.cpp --- .../InternalCombustionEngineControl.cpp | 45 ++++++++++++++----- 1 file changed, 33 insertions(+), 12 deletions(-) diff --git a/src/modules/internal_combustion_engine_control/InternalCombustionEngineControl.cpp b/src/modules/internal_combustion_engine_control/InternalCombustionEngineControl.cpp index f4ab6a05aa..1e8a1b1a35 100644 --- a/src/modules/internal_combustion_engine_control/InternalCombustionEngineControl.cpp +++ b/src/modules/internal_combustion_engine_control/InternalCombustionEngineControl.cpp @@ -355,31 +355,52 @@ int InternalCombustionEngineControl::print_usage(const char *reason) PRINT_MODULE_DESCRIPTION( R"DESCR_STR( ### Description + The module controls internal combustion engine (ICE) features including: -ignition (on/off),throttle and choke level, starter engine delay, and user request. -The module publishes [InternalCombustionEngineControl.msg](../msg_docs/InternalCombustionEngineControl.md). -The architecture is as shown below.: -![Architecture](../../assets/diagrams/ice_control_diagram.png) +ignition (on/off), throttle and choke level, starter engine delay, and user request. ### Enabling + This feature is not enabled by default needs to be configured in the build target for your board together with the rpm capture driver: + +``` CONFIG_MODULES_INTERNAL_COMBUSTION_ENGINE_CONTROL=y CONFIG_DRIVERS_RPM_CAPTURE=y +``` Additionally, to enable the module: -- set [ICE_EN](https://docs.px4.io/main/en/advanced_config/parameter_reference.html#ICE_EN) -to true and adjust the other module parameters ICE_ according to your needs. -- set [RPM_CAP_ENABLE](https://docs.px4.io/main/en/advanced_config/parameter_reference.html#RPM_CAP_ENABLE) to true. + +- Set [ICE_EN](../advanced_config/parameter_reference.md#ICE_EN) +to true and adjust the other `ICE_` module parameters according to your needs. +- Set [RPM_CAP_ENABLE](../advanced_config/parameter_reference.md#RPM_CAP_ENABLE) to true. + +The module outputs control signals for ignition, throttle, and choke, +and takes inputs from an RPM sensor. +These must be mapped to AUX outputs/inputs in the [Actuator configuration](../config/actuators.md), +similar to the setup shown below. + +![Actuator setup for ICE](../../assets/hardware/ice/ice_actuator_setup.png) ### Implementation + The ICE is implemented with a (4) state machine: -![Architecture](../../assets/diagrams/ice_control_state_machine.png) + +![Architecture](../../assets/hardware/ice/ice_control_state_machine.png) + The state machine: -- checks if [Rpm.msg](../msg_docs/Rpm.md) is updated to know if the engine is running -- allows for user inputs from -- AUX{N} -- Arming state in [VehicleStatus.msg(../msg_docs/VehicleStatus.md) + +- Checks if [Rpm.msg](../msg_docs/Rpm.md) is updated to know if the engine is running +- Allows for user inputs from: + - AUX{N} + - Arming state in [VehicleStatus.msg](../msg_docs/VehicleStatus.md) + +The module publishes [InternalCombustionEngineControl.msg](../msg_docs/InternalCombustionEngineControl.md). + +The architecture is as shown below: + +![Architecture](../../assets/hardware/ice/ice_control_diagram.png) + )DESCR_STR");