I'm working on a project that will end up creating a small pixel controller that will handle up to 50 pixels and use an nRF24L01 module for communications. The intent is that each 50-pixel string will have one of these controllers directly attached to it with minimal (if any) wiring between the controller and the string. There will be other modules as well for handling AC light strings, but that is something for possibly another discussion. These controllers are created for my sole use, I'm not intending to sell them or make them available to the public. And, yes, I'm aware that this has some overlap with other projects out there, especially espixelstick, but I'm doing this because it's fun and I want my own stamp on my projects/displays.
What I'm interested in, though, is what type of effects would be useful to incorporate into the controllers. The reason for this is that the nRF24L01 has limited bandwidth. With a 1Mbps air data rate the useful user data rate is around 800Kbps after taking into account various overheads (sync bytes, address bytes, crc-bytes and interpacket recovery gaps). At a 40Hz update rate that would limit the number of pixels that could be supported to around 833 some-odd pixels if 24-bits of data is sent for every pixel, which is less that what I would like to see.
So I'm thinking of taking advantage of spatial or temporal correlation between the pixels (or both) to reduce the amount of data that is sent over the air. For example, one 32-byte nRF24L01 packet might include a byte to reset the entire pixel string data to all-off, followed by a multi-byte command to change the 'color' of some range of those pixels (either all to the same 'color' or a linearly changing sequence of 'colors'). Or perhaps instead of specifying a range of pixels perhaps a bit-map of pixels to change (for sparkle or similar effects). Another possibility is to send a single command to specify a dimming effect (either up or down) over some range of pixels and at some rate.
Although this is going to be a completely private project, I'd be interested in hearing what sort of effects that people are commonly using in their shows.
What I'm interested in, though, is what type of effects would be useful to incorporate into the controllers. The reason for this is that the nRF24L01 has limited bandwidth. With a 1Mbps air data rate the useful user data rate is around 800Kbps after taking into account various overheads (sync bytes, address bytes, crc-bytes and interpacket recovery gaps). At a 40Hz update rate that would limit the number of pixels that could be supported to around 833 some-odd pixels if 24-bits of data is sent for every pixel, which is less that what I would like to see.
So I'm thinking of taking advantage of spatial or temporal correlation between the pixels (or both) to reduce the amount of data that is sent over the air. For example, one 32-byte nRF24L01 packet might include a byte to reset the entire pixel string data to all-off, followed by a multi-byte command to change the 'color' of some range of those pixels (either all to the same 'color' or a linearly changing sequence of 'colors'). Or perhaps instead of specifying a range of pixels perhaps a bit-map of pixels to change (for sparkle or similar effects). Another possibility is to send a single command to specify a dimming effect (either up or down) over some range of pixels and at some rate.
Although this is going to be a completely private project, I'd be interested in hearing what sort of effects that people are commonly using in their shows.