Arduino Nano Reading Neopixel Data

I'm trying to build a project that requires an Arduino Nano to receive and manipulate WS2801/Neopixel packets.

Not sure where to start looking. I am finding plenty of libraries for sending neopixel data, but nothing for receiving and manipulating it.

I'll need to run the Nano input pins with roughly 150ns resolution to capture the proper timing for this. After looking into digitalRead speeds, I'm pretty sure it's not up to the task. Any advice on a faster digitalRead alternative and/or addressing ports directly would be great!

I realize also that I may have to build this from scratch, so all suggestions are hugely appreciated :slight_smile:

This sounds like the venerable XY-problem.

WHY do you need to do this? Explain what you want to do, why, and what you want the outcome to be.

// Per.

Yes I agree it sounds like an X-Y problem, but if it is not then it is quite a tough problem. Forget digital read it is way too slow and look at direct port addressing. Their is a playground page on that, just google it.
Look at the data sheet for the waveform that you will get. Trying to read a 800KHz signal on a 16 MHz processor does not leave you with too many clock cycles to play with and you would be best programming using assembler or use a faster Arduino like a Due.