Please see all COVID-19 updates here as some shipments may be delayed due to CDC safety and staffing guidelines. If you have an order or shipping question please refer to our Customer Support page. For technical questions please check out our Forums. Thank you for your continued support.


Member Since: September 13, 2011

Country: United States

  • For those writing custom drivers, this device is one of the few you'll encounter that employs clock stretching, so your I2C driver code must be able to deal with that. Funny, so few devices use clock stretching that I had removed it from my I2C code.

    The connectColor() function is incorrectly implemented in the standard Arduino library (code is dated November 25th, 2018). The 16-bit colors are supposed to be written Little-Endian, but that function writes them as Big-Endian.

    I have ported the Sparkfun library to the Parallax Propeller P2, with the fix for connect_color(), and one or two additional methods for convenience.

  • Really wish there was an RC network on the CLR\ pin to ensure the display is blank on power up. Otherwise, it works well.

  • Grody is correct; the WS2801 uses a clock and data line -- it is SPI without an external chip select. The chip select is handled internally by monitoring the state of th clock line (when it's quiet for a specific period, the chip resets itself to accept incoming data).

    Propeller uses that tried my original driver found that some products reversed the red and blue LEDs, hence I added that feature to my driver.

  • That depends on the chip and the driver you're using. I code for the Propeller which allows me to devote a processor to constant updates (typically every 3 to 5ms) and have a RAM buffer for 170 LEDs (or more - 170x3 fits into DMX universe).

    These videos show Propeller-based projects I designed and coded for Steve Wang (he created the Predator and a lot of other cool movie monsters): -- http://www.youtube.com/watch?v=YuSMKciw0J8 -- http://www.youtube.com/watch?feature=player_detailpage&v=pO5P7-LxzTE (see Wes Borland's costume at 5:20 mark)

  • Technically, you don't, which makes it useful for simple processors and low-bandwidth color changes.

    I work in Hollywood with effects shops, often doing animated lighting, so I need to be able to refresh the display at a fairly zippy rate. This is where the Propeller really helps; I can have one or more processors updating color registers while the driver processor is constantly updating the LEDs.

    For a project I did using WS2801 LED strips (with 95 LEDs in the strip, wrapped around a sphere) I uses a 5ms refresh of the LEDs and two animation cogs (processors); one created a swirl effect, the other a latitudinal ring effect. I don't have video of the final program, but you can see test code running in the video link below. This display was built by Steve Want (Predator and many other cool movie characters) and his team at Biomorphs.


  • Here's a direct link to my WS281x driver and demo files: http://obex.parallax.com/object/703

    The driver code (written in Propeller Assembly) is commented and should make sense. It uses a very nifty rearrange-on-the-fly trick by TonyP12 in the Propeller forum. I like to store my color values in the form $RRGGBB, but the device wants the order to be $GGRRBB. By adding just two lines (a test and a rotate) the bits can be sent to the WS231x in the correct order.

  • For those using the Propeller chip, I wrote a driver that is posted in the Propeller Object Exchange. Since the driver runs in its own processor, it's behavior is set and forget (it auto refreshes so you don't have to tell the string to update).

No public wish lists :(