Ok here I go... Propeller Quick Start WS2801 USB DMX control...

bigredsoftware

New member
Ok here I go... Propeller Quick Start WS2801 USB DMX control...
My try:

OBJ
Strand : "WS2801"
DMXRx : "DMXRx"
PUB Main
DMXRx.Start(31,19) <<<<<<<<<<the led on pin 19 blinks, this must be working?! usb incomming rx is pin 31 on this board I found somewhere
Strand.Start(39,40,_intsnbffr,49) <<<<<<pin 39 is data, pin 40 is clock, strand of 49

What is _intsnbffr supposed to be structured like? I know I have to convert the incoming data from the other routine, but I need to know what I am reading as well as what I will be writing.... let me know if you have any guidance. Thanks!

Ben and Tim's libraies with mytry.spin attached:
 

Attachments

  • mytry.zip
    13.1 KB · Views: 24
Last edited:
So you have launched the DMX and pixel string code correctly, however there is no bridge between them. The DMX code is gathering the DMX data, but you aren't moving that data to the pixel string.

The easiest way to do this is have the pixels look at the DMX buffer, the problem is the DMX driver you were using didn't have a way to get the DMX buffer location. While I could have edited it I opted to use a different DMX driver which has the edit in it already.

Take a look and let me know if you have questions. BTW this is untested so it may not work.
 

Attachments

  • mytry2.zip
    8.8 KB · Views: 34
WOW!!! That was too fast. I used that dmx in before, but I thought it required the RS485 chip, and I wasn't sure if this would translate well over the USB interface on this board. This DOES gather data, PIN 19 lights right up when I feed it with Vixen on COM1, but the lights were not updating. I changed which pins I used for clock and data, and things stated flashing!! How about a "light test" code to use the WS2801 driver only and the pixel count function when the board turns on? I want to understand how this driver works, and the DMX data thing is kinda confusing now too. I will need to read 147 DMX addresses and update the string from 1 to 49 3 values each right?
 
Might be interesting to track this forum's response time one of these days. I'll bet surprising statistics will come out.
 
Wow you have no idea, THANK YOU!!!!!!!!!!! I understand, more now. Create an array of data, grab points one by one and update... I don't know why the pin thing is so picky, but this only works on certain pins I found out so far... Ultimately I used 19(DMX RX LED); 18(DATA); 20(CLOCK)

I also changed pixelCNT = 147 because this is 147 "channels" of dimming.

Now I can finally "play" with these things!
 
Create an array of data, grab points one by one and update...

The other way is to skip the copying and point the pixels directly to the DMX buffer in the object. That loop and additional buffer is a bit wasteful, but easy to understand.

I don't know why the pin thing is so picky, but this only works on certain pins I found out so far... Ultimately I used 19(DMX RX LED); 18(DATA); 20(CLOCK)

That is odd it shouldn't be.
 
Last edited:
Back
Top