From 6e157fdb364d2eb0c5e7ccdecb7928a39ed19898 Mon Sep 17 00:00:00 2001 From: Michel Pastor Date: Wed, 7 Feb 2018 02:12:33 +0100 Subject: [PATCH] Add documentation for the digital lights output feature --- docs/Lights.md | 33 ++++++++++++++++++ docs/assets/images/lights_power_schematic.png | Bin 0 -> 37553 bytes 2 files changed, 33 insertions(+) create mode 100644 docs/Lights.md create mode 100644 docs/assets/images/lights_power_schematic.png diff --git a/docs/Lights.md b/docs/Lights.md new file mode 100644 index 0000000000..a79c78a31c --- /dev/null +++ b/docs/Lights.md @@ -0,0 +1,33 @@ +# Digital output for controlling lights + +This features allows the control of generic non adressable lights with the `LIGHTS` flight mode. It also allows the FC to turn on or flash the lights in the case of a failsafe event. + +## Custom firmware build + +A custom build is required. The `USE_LIGHTS` macro must be defined in the `target.h` file corresponding to the FC this feature should be enabled on. Also the MCU pin to use as output for controlling the electronic power switch must be defined: `LIGHTS_PIN`. + +Example: +``` +#define USE_LIGHTS +#define LIGHTS_PIN PA1 // Use PA1 pin as output +``` + +## Run-time configuration + +Once a flight controller board is flashed with a custom build including the previously decribed changes a new `LIGHTS` flight mode will be available. When this mode is enabled the output pin will switch to a high state and output 3.3V otherwise the pin is in the low state and connected to ground. + +The default settings will also make the lights flash in the case of a failsafe event. By default a 100ms flash every second (1Hz). + +Settings associated with this feature: +- `failsafe_lights` can be `ON` or `OFF` +- `failsafe_lights_flash_period` in milliseconds +- `failsafe_lights_on_time` duration of the flash for every period in milliseconds + +If `failsafe_lights_on_time` is greater or equal to `failsafe_lights_flash_period` the lights will stay continuously on during the failsafe event. + +## Power driver + +The MCU output pins cannot drive loads greater than a few milliamperes. You will need an electronic power switch to drive the lights like the following example circuit (Don't forget the current limiting resistor(s) if you are using LEDs which don't have built-in current limiting, not included in this schematic). + +### Example schematic of a N-FET based power switch capable of driving higher than 10A loads +![Example schematic](assets/images/lights_power_schematic.png) diff --git a/docs/assets/images/lights_power_schematic.png b/docs/assets/images/lights_power_schematic.png new file mode 100644 index 0000000000000000000000000000000000000000..732efa109a755354221713459a339552add0721b GIT binary patch literal 37553 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 wXWWiWIGUE$;%gc!h|Y*MfbZGOJFv