Proposal of position lights controller

This thread is a little brainstorming thread, and I would like to hear some ideas, requests, …

We would like to assembly controller of position lights. I know, that PX4 supports some external I2C RGB LED. It is used for visualisation of controller state. (Armed/disarmed, ready to arm, low battery, errors, … )

Such position lights are very important for evening tests. At this time it is better, but in winter it was a problem. I’m not able to control our small training autogyro model about half an hour before sunset. At a distance of about 100m, I was visually losing UAV orientation.

This position lights should follow this convention: Aviation_navigation_lights

It also should display the state of the controller, and it should be particularly controlled from the ground (throught mavlink/RC).

Lighting modes

For FW I would suggest this principe of lighting. Position lights will always light with less power. And sometimes (~ every 2s) it will flashes twice in time. It is one possible mode.

Next usage is landing light. This must be possible to control from the ground. And it can be turned off in flight (automatically).

For multicopter, it must be able to show orientation in the air. It can be in concert with ‘Aviation navigation lights’ or something different. I assume that each arm will be equipped with RGB LED.

The multicopter can be equipped with a “search/spotting light” directed down or mounted on some gimbal. The intensity of that light should also be controlled from RC.

Light source

That is a question.

For use with FW/Autogyro/helicopter it should be some monochromatic high power LED, some LED strip or some COB module.

For Multicopter it should be RGB high power LED.

Hardware solution

I would like to avoid another firmware out of FC. All SW should be in PX4. Because it is easier to implement these methods and it offers the easiest maintenance.

Therefore, I2C it looks like sollution of this problem. Use some I2C-PWM converter. Here is list of some pre-selected IOs:

This light control unit (this PCB) also should be powered directly from the battery (lipol … 3S - 6S??) . It should be equipted with XT30 connector. Type of output connector is not selected yet.


Prefered is I2C. Next solution is CAN. It also provides FW update. It is more difficult, more expensive but it can provide a more flexible solution.

If it will be solved with some MCU, then the best way would be UAVCAN.

Questions :slight_smile:

  • Would there be interest in such a thing?
  • Prefered interface?
  • Optimal maximal lighting of LEDs (current requst per channel)? Proposal of light sources?
  • Optimal number of power outputs? (It will be possible to use multiple units paraelly)

Any other comments, suggestions, comments are very welcome! :slight_smile:

I have recently been exploring options for position lighting, which you and I agree is a valuable feature.

However, I am currently pursuing a different approach than you propose.

What I am currently working on is a very simple self contained controller built out of a few ICs and a N channel MOSFET - no software. It pulses LEDs twice every second - blink blink pause, blink blink pause.

I haven’t yet fully explored alternatives such as a small microcontroller such as an 8-pin PIC, which while providing additional capability will likely consume more current.

I have tested the circuit with small LEDs and await the arrival of one watt LEDs in red, green, and white. The MOSFET output stage has roughly 60 amp drive capacity, allowing for quite a few LEDs to be driven in parallel, each with their own current limiting.

While powering off the flight battery is certainly possible, I prefer the idea of powering such a system from an auxiliary battery for a couple of reasons.

  1. An auxiliary battery will provide a much more stable voltage and available current. This reduces the demands on the position light controller. My F550 exhibits considerable voltage drop under full load. A position lighting system powered from the flight battery requires additional circuitry to accommodate this.

  2. I prefer that my flight batteries only power things that essential to flight. As valuable as position lighting is, I have a hard time classifying it as essential. I don’t want position lighting to reduce my flight time. Yes, I recognize that the additional weight of an auxiliary battery may itself reduce flight time.

  3. I happen to have a couple of 2200 mAh 3S batteries sitting around. They are probably overkill for powering position lighting and a camera gimbal, but they are there. I haven’t yet done the calculations yet, but I suspect a pair of 18650 batteries could do the job.

I am not opposed to interfacing with PX4. Perhaps there is an output available on the FC that could be used to modify the behavior of my circuit in a useful way to signal status.

If you are still interested, I look forward to further discussion of the topic.

Hi @pyeager, thanks for replay

Yes, it is definitely a solution as well. But probably not enough for us.

Our solution should also work itself. Without connection (or assistance) of autopilot. But connections to autopilot have a lot of benefits. which we want. It can also show the status of UAV (battery, estimator values, altitude, …, if it is armed)

Connection to autopilot can be realised through more communication ports/protocols.

  • Uart (MAVLINK)
  • Uart (custom)
  • RcPPM output
  • Arm signal
  • SafetyLed signal…

Uart (mavlink or custom) are good solutions. But autopilot usually does not have enough ports. UAVCAN have prepared methods for controlling lights. And add new control methods is quite easy. Using an output only for that purpose does not make the controller easier.

We want to drive diodes with some current source/sink. This is mainly due to independency on battery type 3S-xS type and independency on used LED(s). One group of LEDs should be connected in serial.

Why is connection to autopilot necessary?

I want position lighting. I suspect others will as well in order to be able to legally fly at night under regulations likely to take effect here in the US in the near future.

So please explain to me the benefit of tying a a position lighting subsystem to the flight controller.

I am designing a system to drive LEDs in parallel, each with it’s own current limiting resistor in series.

This way, the user can add LEDs as desired, as long as they have the appropriate series resistor for the LED and the supply voltage. Also as long as the load of all the LEDs doesn’t exceed the 60 amp capacity of the MOSFET output stage. Nothing about the design of this circuit prevents the use of LEDs in series. It is up to the user to ensure that the 60 amp drive capability of the circuit and the current limit of the LEDs are not exceeded.

I am quite familiar with the details of properly driving LEDs. For a low duty cycle “strobe” sort of operation, series resistors for current limiting work just fine, as long as the resistor is chosen properly for the supply voltage and the LED in use. The only downside of such a simple driving circuit is a (yet to be determined and likely minor) decrease in brightness as the supply voltage decreases.

Currently testing with 1 watt LEDs. A 33 ohm series resistor apparently works fine. The current duty cycle of 10-20% (blink blink pause) ensures that 1/4 watt series resistors don’t thermally self destruct.

The current test setup is so bright as to be painful to look at and difficult to share via video.
We have it covered with a coffee mug most of the time to avoid damage to our retinas. This has exposed a likely enhancement - a “night mode” (easily implemented with a switchable series resistor). Trying to upload video of the test setup.