so after some research I decided to build a PCB for controlling the aircraft lights.
First things first, and this is based on current aviation standards.
There are 4 kind of lights in an aircraft:
- Navigation Lights (constant on)
- Anti-collision lights ( strobe, and dual strobe)
- Beacon Lights ( blink ever second)
- Landing Lights ( well when landing obviously)
Reference from Airbus A320: https://i.stack.imgur.com/2Tzfc.png
One solution would be to create an application to drive directly the current AUX or MAIN outputs. When driving the AUX either we load a program on the IO MCU or we have to constantly turn on and of the lights over the UART (FMU->IO_MCU). Well this overloading the serial port and the MCUs for just blinking some LEDs. This is obviously the worst solution.
When using the MAIN outputs this would be the best solution. However we still need to use the FMU all the time to do the blinking(could use a hard-timer to release the load). But if you plan on having multiple FMUs this is not going to work in case the FMU that is controlling the lights hangs somewhere.
This solution uses an I2C LED driver with Programmable Lighting Sequences(All in one chip).
Why I like this solution? Can plug in any I2C bus, program the light sequence and let it run. Can just turn on/off on request. And you can ofcourse have FMU-redundancy without affecting the aircraft lights behavior.
I am currently writing the drive and the app for controlling from px4 over I2C.
The IC that I am using is the:
LP5562 - 4-channel RGB/White LED driver with internal program memory and Independent channel control
There is a second stage on the PCB that makes the MOSFET switch…so that you can control any type of LED source.
Take a look at this TI article for further details: