Neopixel led not working after enabling dronecan port

NeoPixel Output Not Working When CAN Port Is Enabled

I’m trying to use NeoPixel LEDs directly from a Pixhawk (ArduPilot firmware) for a light show, but I’ve run into a conflict with the CAN interface.

Setup

  • Pixhawk running ArduPilot
  • NeoPixel LEDs connected to an AUX output (e.g., AUX3/AUX5)
  • GPS module connected via UAVCAN

Behavior

  • If I disable CAN P1/P2 drivers in parameters and reboot:
    • NeoPixels work perfectly
    • The strip responds to NTF_LED_TYPES, NTF_LED_LEN, etc.
    • All color tests pass
  • If I enable CAN ports (required for GPS):
    • NeoPixels stop working entirely
    • LED output stays blank
    • Pixhawk does not pass the NeoPixel color test

Observations

  • There seems to be a conflict between the CAN driver and the NeoPixel driver.
  • With CAN enabled → GPS works, but NeoPixels fail.
  • With CAN disabled → NeoPixels work, but GPS is unusable.

Tried So Far

  • Reassigning NTF_LED_TYPES and NTF_LED_LEN
  • Moving LED output to different AUX channels
  • Testing both internal and external NeoPixels (including GPS module’s onboard LEDs)
  • Running with CAN GPS disabled (LEDs OK) vs. enabled (LEDs fail)

Question for the Community

  • Is this a known hardware/firmware conflict (shared DMA/timer resources between NeoPixels and CAN)?
  • Is there a workaround to run both CAN GPS and NeoPixels together?
  • Or is the recommended approach to offload LED control to a companion computer (e.g., Raspberry Pi or Arduino) instead of Pixhawk?

I don’t have experience with this issue, but ChatGPT gave me a pretty detailed answer. You might try that.