RGB Neopixel LED wiring and configuration

Good day to everyone,

I am currently working on a custom drone project and I would like to use an externally connected RGB Neopixel LED string to an Orange Cube+.

Does anybody have instructions available on how to configure it, both wiring and parameters, so that it will report the flight controller status?

Any help with this will be greatly appreciated.

Thank you in advance!

https://ardupilot.org/copter/docs/common-external-leds.html
Start there, everything is covered.

1 Like

Hey Shawn,

Thank you for sharing the link, I have read it previously but I am still not able to make my RGB LED work.

Here is my setup:

  • Cube Orange+
  • Neo Pixel LED light strip with 3 LEDs

The LED’s signal wire is connected to channel 8 of the Main Servo Output

Since I’m connected to that channel, I have set the Servo8_Function to 120

In the NTF_LED_TYPES I am setting it to 256 (Neopixel)

Still no luck with getting them to work

Screenshots are attached for reference.

Is there anything you can suggest to continue looking at?

Screenshot 2023-11-03 101446

I suspected there is an ongoing issue with neopixels and some firmware version, but I cant find a reference to that now so I’ll keep searching. Maybe I’m wrong about that too.

Just to cover off the basics, do you have:

  • a 5vdc supply for the LEDs
  • a common ground between the LED strip, the 5v power supply and the Cube servo negative pins

Also what other Main and Aux outputs are in use?

Maybe a photo or even hand-drawn diagram of your wiring…

Earlier firmware may fix the issue, Copter 4.3.7 would be the earliest I would try in the 4.3 range. Otherwise try 4.2.3

https://firmware.ardupilot.org/Copter/

There is this discussion, yet to be turned into an official bug or receive a fix

A fix has been found and is in testing. Hopefully it gets backported to the Stable release firmware

You should be able to use this modified script “My workaround (strobes work upon arming):” from the discussion below. It’s not a permanent fix, but should keep you out of trouble for a while

@xfacta @Ronald The reason that NeoPixel LEDs don’t function on Cube is because they require > 0.7*Vcc signal line, Aux pins put out 3.3V and generally power tends to be solid 5V.

The best solution is to use ProfiLEDs available here: CubePilot - ProfiLED-2m reel - Autopilots from 3DXR UK https://nwblue.com . Documentation for the LEDs is here https://docs.cubepilot.org/user-guides/profiled/profiled . We have had LED strips designed specifically for Our Cubes for quite sometime, and its encouraged that they be used to get the best result.

Regarding NeoPixels, to make them work you need to place a Pullup (around 5K Ohm to 5V) on the signal pin to drive the signals to meet the specification for them. Once you do that I believe they should start functioning. If you are still having issues please let us know.

I know that there is a fix here NeoPixel — Copter documentation but for Cubes the fix that I recommend is the one to take, and is a clean solution that works for cubes as we have Protection Circuit, which allows us to safely place a pull-up on the signal end.

Could we use BRD_PWM_VOLT_SEL to 5v in ardupilot ? On cube orange plus mini should that affect all outputs ? Or is there on mini carrier distinction between main and aux output ?

@J4NSS3NS it only impacts the IO lines, AUX lines are directly connected to FMU and are 3.3V Output

1 Like

I am getting the same result Selenita is getting. If I plug in my Neopixel into chan8 the light does not work. When on aux chan9 it works. I found this out when using a lua script first. Anytime I tried to drive the led from main my script would fail to setup the led. The Aux channels worked. Could this be a firmware issue. I am running Arducopter 4.4.4