Page 1 of 3 123 LastLast
Results 1 to 10 of 31

Thread: Null Pixels

Hybrid View

Previous Post Previous Post   Next Post Next Post
  1. #1
    Join Date
    Jan 2016
    Location
    Quad Cities, IL
    Posts
    15
    Post Thanks / Like

    Default Null Pixels

    I am trying to get a better understanding of null pixels. I see them referenced a lot but not much on actually using them. I get what they are and their purpose, but I am not sure how to implement them. I see that some controllers have the ability to define them in the controller itself but what if your controller doesn't have that feature? I am not needing null pixels right now, just trying to understand how to use them with the hardware I have now, just in case.

    I am using Arduino Unos now and just from playing around with them I know that while these are fun here in the workshop I don't think I want to be using them to run anything in my display. They will work for a small prop I'm sure but anything more than a typical 5m strip and I can see lag. I'll want a dedicated controller for that, but that is a discussion for a later date. I just wanted to clarify what 'controller' I was using for my question.

    OK. I'm using Vixen obviously, 3 Arduino Unos and WS2812Bs (30 leds per meter). I have 2 square frames that fit my front windows, each is 30x28 pixels (116 total). I'm thinking if I need to add a null pixel to this string, since I don't have a controller to set it up that I would want to add it as 117 elements in Vixen and then when I create the groups I would start using pixel #2, eg. 2-31, 32-59, 60-89, 90-117. The first pixel wouldn't be in a group and as such should always be in an off state and just pass the data on down the line.

    I think this sounds logical but I can't help thinking that what happens if you find you need to add a null pixel... if I set up the display and need to add a null pixel after the fact it seems it would throw off the sequence and I would have to go back and tweak it to accomodate the added element. TBH, even if the controller can define it, I don't understand how that works if you have a different number of elements defined in Vixen than you do with the controller.

    Hopefully someone can clear up my confusion?

  2. #2
    Join Date
    Nov 2011
    Location
    Chicago - Southwest Suburbs
    Posts
    7,051
    Post Thanks / Like

    Default Re: Null Pixels

    In my opinion, if you think you need a null pixel, you're doing something wrong. I've never used one in all the years I've been doing this. If your signal isn't making the distance you need, then either your wiring isn't up to snuff, or your controller is too far from the pixels. If it's just an unusual scenario and you really need to make a long jump to feed a string, or a section of a string, not only will you need to deal with the data integrity, but also the power loss. You're going to need to either use balanced transceivers on the data line, and voltage conversion on the power lines. Or just put another controller and power supply closer to the pixel string.

    But if you are going to use a null pixel. It is a pixel. No different than any other pixel. But it's one that you don't plan on using for it's light, just it's data regeneration functionality. So you need to send it data, but you want that data to always be zeros so that it stays dark. If you controller handles the null pixel, then you have to do nothing in the sequencer. The controller inserts the extra zeros for you. While this can vary for each controller, you typically don't include it in your string pixel count. The controller accounts for it behind the scenes.

    If you want to add a null pixel and your controller doesn't support this, or you need it in the middle of the string and the controller doesn't support that, then you need to handle it in the data feeding the controller. But again, you may want to stop and think why the controller doesn't have this feature in the first place. ...because it's not the best way to fix your problem.

    In vixen 3, you do not need to create a pixel element for the null pixel. It's not an element. It's just something you need to make sure you ignore. You just skip over those channels when patching. Leave the channels for that null pixel unpatched.
    Yes, if you're handling null pixels manually ahead of the controller, if you change the number of pixels, and their ordering, you'll need to make changes in your display setup. You'll need to unpatch the controller, adjust the output count, and then repatch making the necessary accommodations for the null pixels.

    Get used to the idea of undoing and redoing the patching in your display. It's something you're going to find yourself doing often enough as you evolve your show over time.

  3. #3
    Join Date
    Nov 2016
    Posts
    44
    Post Thanks / Like

    Default Re: Null Pixels

    2018 show.jpg
    Quote Originally Posted by jchuchla View Post
    In my opinion, if you think you need a null pixel, you're doing something wrong. I've never used one in all the years I've been doing this. If your signal isn't making the distance you need, then either your wiring isn't up to snuff, or your controller is too far from the pixels. If it's just an unusual scenario and you really need to make a long jump to feed a string, or a section of a string, not only will you need to deal with the data integrity, but also the power loss. You're going to need to either use balanced transceivers on the data line, and voltage conversion on the power lines. Or just put another controller and power supply closer to the pixel string.

    But if you are going to use a null pixel. It is a pixel. No different than any other pixel. But it's one that you don't plan on using for it's light, just it's data regeneration functionality. So you need to send it data, but you want that data to always be zeros so that it stays dark. If you controller handles the null pixel, then you have to do nothing in the sequencer. The controller inserts the extra zeros for you. While this can vary for each controller, you typically don't include it in your string pixel count. The controller accounts for it behind the scenes.

    If you want to add a null pixel and your controller doesn't support this, or you need it in the middle of the string and the controller doesn't support that, then you need to handle it in the data feeding the controller. But again, you may want to stop and think why the controller doesn't have this feature in the first place. ...because it's not the best way to fix your problem.

    In vixen 3, you do not need to create a pixel element for the null pixel. It's not an element. It's just something you need to make sure you ignore. You just skip over those channels when patching. Leave the channels for that null pixel unpatched.
    Yes, if you're handling null pixels manually ahead of the controller, if you change the number of pixels, and their ordering, you'll need to make changes in your display setup. You'll need to unpatch the controller, adjust the output count, and then repatch making the necessary accommodations for the null pixels.

    Get used to the idea of undoing and redoing the patching in your display. It's something you're going to find yourself doing often enough as you evolve your show over time.
    So I'm going to do my windows and eve's this year and to reach the upper eve, I'm struggling with where to put a controller that wouldn't be more than 20-30' from the start of the pixels. Same with one of the windows on the upstairs level.

    I'm sure I'm just not thinking of how to get the controller closer, unless I were to try and mount a controller up on the roof or side of the house...? My current controllers are in CG-1500 boxes, so I'm having trouble thinking of how to get it closer and if I do it just moves further from my other props.

    As far as wiring, it will be my second year with pixels and I had just bought pigtails and "extension cords" that fit the pigtails. Should I ditch those and wire up something else?

    Sorry for all the "newb" type questions, but I'm still a new guy... This year the only pixels I had were the ribbon tree and pixel tree. Next year, all pixels no AC or dumb anymore...

    2018 show.jpg
    Last edited by Whyintheworld; 01-11-2018 at 10:33 PM.

  4. #4
    Join Date
    Nov 2011
    Location
    Chicago - Southwest Suburbs
    Posts
    7,051
    Post Thanks / Like

    Default Re: Null Pixels

    Quote Originally Posted by Whyintheworld View Post
    So I'm going to do my windows and eve's this year and to reach the upper eve, I'm struggling with where to put a controller that wouldn't be more than 20-30' from the start of the pixels. Same with one of the windows on the upstairs level.

    I'm sure I'm just not thinking of how to get the controller closer, unless I were to try and mount a controller up on the roof or side of the house...? My current controllers are in CG-1500 boxes, so I'm having trouble thinking of how to get it closer and if I do it just moves further from my other props.

    As far as wiring, it will be my second year with pixels and I had just bought pigtails and "extension cords" that fit the pigtails. Should I ditch those and wire up something else?

    Sorry for all the "newb" type questions, but I'm still a new guy...
    No problem. You're still in the mindset of "these controllers are expensive so i better get the most out of them" that wears as you get more and more into the hobby. You'll find that thinking this way causes you to do things harder than you really should just so you can use as many outputs on as few controllers as possible.
    If you start moving more toward one small controller per prop, then the situation gets much easier. An ESPixelStick can be built into a small pill bottle and can hide right there with the window frame. Since you're just doing one prop, the power supply gets a lot smaller too. Something like a window frame can be driven off a wall wart and can be plugged into the closest outlet inside the window and you can just shut the window on the little cord.

    Or if you don't want to get into WiFi, you can do balanced lines. You can go very long distances on regular cat5 cable when you balance the data line, so long as voltage drop doesn't become an issue, or you locally power it. The balanced receiver is also a tiny little thing that can fit in a pill bottle and all you have is a nice neat cat5 cable (with no splices and lumps in it) going up to the window.

    There's lots of ways to skin the cat. But personally, I find that the null pixel method is the sloppiest way to get it done, and introduces the most inconveniences.

  5. #5
    Join Date
    Nov 2016
    Posts
    44
    Post Thanks / Like

    Default Re: Null Pixels

    I get everything you are saying and you are right about getting the most out of the controller mindset. The other thing is that I end up reading that a power supply would have to be fused, I read about distro boards, etc. But I haven't read about running off a wall-wart until now. Do you fuse that as well? Do you power the ESPixelStick with the wall wart and feed power through it or bypass it and inject right from the wall wart?

  6. #6
    Join Date
    Jan 2016
    Location
    Quad Cities, IL
    Posts
    15
    Post Thanks / Like

    Default Re: Null Pixels

    Thanks jchuchla,

    For the record, I don't need one and hopefully never will. I've been researching different things to get up to speed. Reading on how the pixel strips work I learned that, simplistically speaking, an array is passed to the first pixel which uses the first array element to set what it should be doing then trims that array element off and passes the remaining array data to the next pixel and this process is repeated until the end. Knowing that some people use null pixels I wondered how that particular pixel's array data was handled as it was passed down the chain. It has to either be null values or something that tells the null pixel to ignore any values and not modify the array but just pass it on. The former seems the most logical method as I suspect the IC chip in the LED strip isn't quite that smart.

    Everything you said makes sense except leaving them unpatched. If I don't patch them wouldn't that mean that any data values (null or otherwise) for that pixel wouldn't be sent to the controller since it isn't patched to that particular element?

    Sorry, I feel I'm asking about technical details that are probably outside the scope of running a display but I went down the rabbit hole and just can't seem to stop wondering about it.

  7. #7
    Join Date
    Nov 2011
    Location
    Chicago - Southwest Suburbs
    Posts
    7,051
    Post Thanks / Like

    Default Re: Null Pixels

    It's no problem asking these questions. It's curiosity like this that breeds new creations. To keep track of what's going on you have to consider what's happening to the data stream at each step of the process.

    In vixen, the data stream for the pixels starts at the output controller module. It is configured to send a given number of channels. There is one "output" or patch point for each channel of data. each of these channels corresponds with a location in the data array. Regardless of whether there is data to go in to a channel, that channel needs to be sent. in other words, you can't have a 2nd channel without a first channel. The actual position of the data in the array is what actually defines it's address. So it doesn't matter if it's patched or not. Something must be sent for each channel.

    Secondly, in the data stream, there is no such thing as null. The data stream is an unsigned 8 bit integer array. So it is a value between 0 and 255. It will never be nothing, or null. 0 has a distinct meaning of full off, and this is the default when nothing is influencing it otherwise.

    Patching elements to channels is how you connect the stream of intentions created by effects to the output controller channels. Leaving something unpatched will have the simple effect of leaving that channel always at the default value of 0.

    When a controller adds provisions for null pixels what it does is inserts 3 extra zero values for each null pixel to the output stream before it starts copying the rest of the data from the sACN buffer to the pixel output buffer (or stream)

  8. Thanks ScareCrowe thanked for this post
  9. #8
    Join Date
    Dec 2012
    Location
    Hudson MA
    Posts
    2,605
    Post Thanks / Like

    Default Re: Null Pixels

    Jon is correct. there are options to a null pixel. one i use often is a pixel buffer / driver. it regenerates the signal and is invisible to the sequencer and controller. Unlike Jon, i am using cheap wire and do have to use these devices in my show.


    2018 - Moving and going to visit my Daughter in New Zealand. Most likely I will be dark or nearly dark, Some static stuff that is simple to put up.

  10. Likes pixelpuppy liked this post
  11. #9
    Join Date
    Nov 2011
    Location
    Chicago - Southwest Suburbs
    Posts
    7,051
    Post Thanks / Like

    Default Re: Null Pixels

    Quote Originally Posted by MartinMueller2003 View Post
    Unlike Jon, i am using cheap wire and do have to use these devices in my show.
    I really don't use any fancy wire. All of the pixel lines in my show (except one i haven't switched out yet) are the DIYLE extensions. No more than a 10' and 5' in any one link. It's not exactly high quality wire. Just ordinary 3 conductor 20awg parallel conductor. The one other line i have is Cat5. Again, nothing fancy. But I am using a pair of balanced driver/receivers on it. It's about 35'. Everything else that's further from a big controller is now driven by an ESPixelStick. That's replaced a few more wires. They're so cheap that it's just easier and cheaper than doing any other solution.

  12. #10
    Join Date
    Jan 2016
    Location
    Quad Cities, IL
    Posts
    15
    Post Thanks / Like

    Default Re: Null Pixels

    Quote Originally Posted by jchuchla View Post
    It's no problem asking these questions. It's curiosity like this that breeds new creations. To keep track of what's going on you have to consider what's happening to the data stream at each step of the process.

    In vixen, the data stream for the pixels starts at the output controller module. It is configured to send a given number of channels. There is one "output" or patch point for each channel of data. each of these channels corresponds with a location in the data array. Regardless of whether there is data to go in to a channel, that channel needs to be sent. in other words, you can't have a 2nd channel without a first channel. The actual position of the data in the array is what actually defines it's address. So it doesn't matter if it's patched or not. Something must be sent for each channel.

    Secondly, in the data stream, there is no such thing as null. The data stream is an unsigned 8 bit integer array. So it is a value between 0 and 255. It will never be nothing, or null. 0 has a distinct meaning of full off, and this is the default when nothing is influencing it otherwise.

    Patching elements to channels is how you connect the stream of intentions created by effects to the output controller channels. Leaving something unpatched will have the simple effect of leaving that channel always at the default value of 0.

    When a controller adds provisions for null pixels what it does is inserts 3 extra zero values for each null pixel to the output stream before it starts copying the rest of the data from the sACN buffer to the pixel output buffer (or stream)
    Apologies for my delay, at first I was more confused and had to chew on what you said. I finally opened up the Setup Display panel and the visual helped everything click, now it makes sense to me. If I need a null pixel at the beginning of a RGB strip I would add the elements for that strip and leave the first 3 channels unpatched, which results in the first array element always being assigned zero values. [While we are on the subject, I think the terminology for 'Null Pixel' would have been better as a 'Zero Pixel'. It seems more aptly descriptive. Learning the lingo is a little challenging, what with null versus zero & Elements-both pixels and array indices. Hard not to get tripped up sometimes! ;)]

    I think if I ever find myself needing a null pixel I will go with Martin's suggestion of that pixel buffer/driver. That seems to be the best way (besides an additional controller) to handle it.

    I completely facepalmed myself with the null value statement. I know the difference between NULL and 0 and that they are not the same, I just misspoke, lol.

    Thank You jchuchla and everyone for the help! I really do appreciate it.

Page 1 of 3 123 LastLast

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •