Skip to content

NodeJS module to control up to 16 WS281x ledstrips in parallel on a Raspberry Pi via SMI/DMA.

Notifications You must be signed in to change notification settings

krautsource/rpi-ws281x-smi

 
 

Repository files navigation

Drive WS281x ledstrips with 16 parallel channels on a Raspberry with NodeJS

Still a work in progress

This uses the Secondary Memory Interface (SMI) that all the Rapsberry PI's have.

Its based on the excellent ideas and code of Jeremy P Bentham.

Look at https://iosoft.blog/2020/09/29/raspberry-pi-multi-channel-ws2812/ for the technical details.

The code this is based on: https://github.com/jbentham/rpi .

My test configuration:

  • Rapsberry PI 3
  • Running ubuntu 21.0 (32-bits)
  • NodeJS 14
  • WS2812 ledmatrixes with 8x32 pixels per matrix. (and 8 of those matrixes parallel)

Updating 8 x 8 x 32 leds at 60fps from nodejs uses around 18% CPU which it pretty amazing! (this probably even could be optmized)

How to test yourself

Since its a work in progress its still messy.

Pinout

Pinout

https://iosoftblog.files.wordpress.com/2020/07/rpi_smi_pinout.png

About

NodeJS module to control up to 16 WS281x ledstrips in parallel on a Raspberry Pi via SMI/DMA.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C 95.6%
  • CMake 2.0%
  • C++ 1.4%
  • Other 1.0%