adafruit / adafruit/Adafruit_CircuitPython_NeoPixel
Updating buffer slow
- Dominant language
- Python
- Stars
- 329
- Forks
- 96
- PR merge metrics
- No merged PRs in 30d
Description
Hi all,
I am trying to make a display with neopixels. 1024 of those to be exact. I've been trying to use only one channel so far. For some reason I've been able to get GPIO pin 10 to work on my raspberry pi 3. The data transfer to leds work within a small error but the time between takes a long time. Time to send data to leds according to oscilloscope takes about 31ms but to update the library's buffer takes at least 125ms.
What I do is I unpack frames from a gif file. Put the frames to a queue and in another thread take those frames and put them to neopixel object. I have tried with loop and directly. I have tried to put the frame aquiring and showing to a separate processa but at most I have gotten about 17fps. Theoretically I should be able to get closer to 30fps if it wasn't for the time between data sendings.
Is there anything to do besides change to multiple gpios to update the big screen faster?
Contributor guide
No contributing guide indexed for this repository
Research direction
Start by profiling the time spent updating the NeoPixel object's library buffer separately from sending data to the LEDs. Reproduce the GIF-frame, queue, and threaded or process-based workflow on a Raspberry Pi 3, then compare the measured buffer-update time with the requested frame rate. Done means identifying whether the buffer-update delay can be reduced enough to approach 30 fps, or documenting the limiting constraint.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python, raspberry-pi
- Domain
- embedded-iot, performance
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100