Hi @parasquid, no experience with the nRF52840DK and as there are many variants:
REFERENCE table of RGB Led datasheets 3528 5050 WS2811 WS2812 SK6812 APA102 NeoPixel
Taking into consideration: (in case this statement is found inaccurate)
'It doesn't seem to matter whether I have a neopixel connected or not'
Some ideas to explore:
Is there a level shifter, or is a level shifter required? (several in link above)
Separate supply and grounding consideration
Any possibility of a Neopixel strip of several LEDs to rule out flaky first green LED issue
that along with RGB vs GRB and leading start pulse duration
Pull-up on data line (see reference in reddit link)
Any ability to try a different Neopixel type? Some are 12V, different gating, end pulse state?
What is driving the Neopixel? Regulator on that board, or separate supply?
Try writing a larger array, to rule out rounding of starting pulse (which causes first green LED, BTW)
[055,055,055, 055,055,055, 055,055,055, 055,055,055])
Smaller value to reduce load on regulator, and all lit to see if pulse rounding issue is resolved
Ability to use Logic Analyzer to validate data sent?
EDIT: (see post #7 explanation - now built in)
Could there be a module retrieval delay that is beyond the 1 second timeout interval shown?
FWIW: I've always assigned the results of the require to a separate object after init, and performed future array writes in separate functions after a three second wait. Always successful on Pico, Wifi and MDBT42Q when using a level shifter.