Pixel Driver Update

JonnyMacJonnyMac Posts: 7,309
edited 2019-11-11 - 00:17:34 in Propeller 1
I'm helping a friend with a Christmas display controller and thought that I should update my unified RGBW pixel driver.

-- now supports single-shot (default) and auto-refresh (old driver) modes.

A friend reported occasional ghosting when using auto-refresh with long strips. I think this may have happened because buffer updates occurred while the driver cog was part-way through an update cycle (race condition).

Starting the driver hasn't changed, though one is able to use a 0 reset delay now (this should only be done in 1-shot mode). After starting the driver, the pixels can be updated with the .show() method. This will refresh the pixels and wait for another call to .show(). If you'd like the pixels to auto-update call the .auto_run() method after starting the driver.

Before updating ObEx I am posting here for testing and feedback for those who are inclined.

Thank you.


  • Jon, many thanks for your ongoing efforts, your older pixel driver is working fine for me in several projects. Exception is a project where I decided to have 10 strings of 21 LED's, each with a separate propeller driver pin. Could you give me a hint how to use your driver to get the highest frame rate in this case and how to synchronize pattern generation and output. I can of course rewire the project, but... well, there must be a smart way of doing this.


    Nico Hattink
  • Hi Jonny Mac, you wouldn't happen to have a driver coded in "C" for the sk6812 rgbw leds by chance would you? i have been fooling around with them and they've been kicking my butt.
  • JonnyMacJonnyMac Posts: 7,309
    edited 2019-12-04 - 23:52:21
    I don't. When it comes to the Propeller, I uses Spin and PASM.

    You know... I have converted lots of C code to Spin -- why not go the other way? You have my source; it might be a fun exercise.

    Another route may be the FastSpin compiler which I am told allows one to use libraries written in Spin inside C apps. That sounds kind of neat.
  • That was the rudimentary start of fastspin, it was (is?) called spin2cpp and converts spin to c/c++.

    Still available and might be a solution to convert the existing spin object to C.

    FastSpin does indeed allow mixed languages, It is just amazing how nice it is integrated.


Sign In or Register to comment.