Neopixel LEDs as status LEDs for Ardupilot

Sometimes there's just no good place to mount the external LED to on a copter or one simply wants more light output... While developing my own little light controller, I wrote a decoder which decodes the I²C control signals for the external LED and controls arbitray amounts of Neopixels accordingly.

NOTE: Never power any amount of extra LEDs from the flight controller or the flight controller's power supply! One Neopixel can pull up to 60mA. That accumulates pretty quickly into significant currents when using many.

To get started, solder a 4-pin I²C DF13-cable to your Nano or Pro Mini. Pinouts for the flight controllers can be found in the respective documentations. Then solder ground and data in of the Neopixels to ground and your chosen data out on the Arduino. You can choose the amount of Neopixels and the data out pin in the #defines in the code.

Find the code on GitHub: https://github.com/sgofferj/Ardupilot-Neopixel
You will also need Adafruit's Neopixel library: https://github.com/adafruit/Adafruit_NeoPixel

Demo: https://www.youtube.com/watch?v=EW6yD5JcTpo

Original article: http://stefan.gofferje.net/uav/219-neopixel-leds-as-status-leds-for-ardupilot

2 Likes

using your code i made a vesion using the cheaper ws2801`s
https://github.com/finos2/PixHawk-i2c-to-Ws2801-bridge still in early stage
feel free to pont any bugs or open pull requests

FYI eventually https://github.com/ArduPilot/ardupilot/pull/11870 might make it a bit easier to use these things

Yes I’m aware about this.
But could wait until they push it to master
So I made that on the arduino

How to flash Neopixel LEDs when flying?They just remain either Green or Red