NeoPixel WS2812B not working on Omnibus F4 Pro

I’m having some trouble getting neopixels working on my Omnibus F4 Pro build.

I put data in on the LEDs to the servo 8 pad to avoid timer conflicts with my 3 servo outputs. (Using 1 for dshot motor, 3 and 4 for elevons).

I set the following params but i’m still having trouble. am I missing anything?
BRD_PWM_COUNT = 4
RELAY_PIN(0-6) = -1 (not changing these, just making sure there’s nothing using those pins)
NTF_LED_TYPES = 256 (neopixel only)
SERVO8_FUNCTION = 120 (NeoPixel1)

After a reboot I would’ve expected to see the pixels operate as standard status lights but I see no change.

I don’t think that anyone has managed to get this new functionality to work on any FCs yet … :slightly_frowning_face:

Henry has rewritten the instructions, which may make things clearer: https://github.com/ArduPilot/ardupilot_wiki/pull/2458/files

SOLVED!

I had to set BRD_PWM_COUNT = 8.

From the documentation it sounds like you have to use any GPIO capable pin, which made me think I had to de-register it as a servo output to get it to work.

@mike_d were you able to get the NeoPixel to display the standard status colours/sequence?

I am interested as this would allow me to see the status of the FC from outside the plane before arming?

@Taipan yes I did! There was a bit of confusion from the wiki page but it is re-written and makes sense now.
You need to have BRD_PWM_COUNT set to make sure your output is a PWM capable output. (in this case I set it to 8)
You set your NTF_LED_TYPES to include neopixel, and set SERVOx_FUNCTION to 120.
Also note that for the omnibusF4pro, you have to obey the PWM grouping listed on the flight controller page.

You have groups (1,2,6), (3,4,5), (7,8). If you have one servo port set as neopixel, you can’t use the rest in the group as PWM outputs. (example, if you have neopixel on servo5, you can’t use servo3 or servo4 for motor/servo control).

My servo output is as follows:

  1. Dshot throttle ESC
  2. Disabled
  3. Elevon Servo
  4. Elevon Servo
  5. Disabled
  6. Disabled
  7. Disabled
  8. NeoPixel1

Hopefully this helps!

Thanks @mike_d - that explanation helps … :grinning:

I assume that you did not need to use a logic level converter between the 3.3v data output of the Omnibus Pro and the 5v data input of the NeoPixel?

@Taipan that’s correct, no logic level converter. Though your mileage may vary, depending on the LED you’re using