Replies: 3 comments 6 replies
-
Is this XY map generator close to what you're looking for? Basically you'd write your code for a regular matrix, but call this mapping function first before actually sending it out to the LEDs. Since it's nothing but a lookup table, it's extremely fast. |
Beta Was this translation helpful? Give feedback.
-
On an ESP32 it can update a chain of 1140 LEDs about 24 times a second. Faster if fewer LEDs, and it can do that on 8 channels at once!
Do the panels feature concentric rings? How do you envision drawing into them? Like what is your dream API to be able to set a pixel on one of them?
- Dave
… On Oct 5, 2021, at 9:07 AM, Anand Lobo ***@***.***> wrote:
The coordinates of my pixels are highly irregular. That means the fake matrix would need to be quite large and very sparse. If I want to prevent distance distortion it would mean even larger fake matrix.
I totally understand, but even an extremely large matrix lookup is insanely fast on processors like the ESP32. It's a bit of work up-front - but unless the pixels are going to move around, it should be pretty much 100% reliable and won't require any changes to the NightDriver code.
You should provide some sort of visual example so that we can see exactly what problem you're trying to solve; typically, the fastest way is to take the pixel data and re-map it like this.
It even works on a curved surface: https://www.youtube.com/watch?v=zYZkbfmCuEY <https://www.youtube.com/watch?v=zYZkbfmCuEY>
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub <#15 (reply in thread)>, or unsubscribe <https://github.com/notifications/unsubscribe-auth/AA4HCFYED7H6WTP56Y3634TUFMPCVANCNFSM5FJRJQUA>.
|
Beta Was this translation helpful? Give feedback.
-
This conversation kind of coasted to a halt without ever being closed. THe mapping solution suggested by @ohnoitsalobo is certainly popular in WLED. There's not an implementation in that in NightDriver. I've flirted with needing it a few times and certainly enables some interesting approaches. The specific hardware that zdar is asking about, if I understand it correctly, is wacky enough that evne the common generators like:
It's easy to imagine a magnetic/velcro approach that lets someone stick zany combinations of these things onto a wall, but it'd be a real pain to represent these in any kind of memory-efficient way that (A) would be a reasonable thing to implement in a UI at all and (B) would allow things like X/Y mappings to that an "explosion" in the bottom center arced to outer branches and then gravity-fell to the bottom or sparked off. The brute force would be to have a wall-sized X/Y pixel mapping that's probably sparse (the user can't afford a wall of HUB75s - at some point, you just use monitors. :-) ) and just has a multi-level map that subsegments regional pixels into an X/Y matrix to allow normal patterns to work on them. For physically large boundaries (a wall's worth of pixels) this becomes a nightmare's worth of data to manage, even cleverly, in a humble 320k ESP32 and certainly not a walk in the park for even an 8MB model that's currently the top of the value line of ESP32. (Three years later, there's talk of an ESP32 that'll do 64MB, but none have been built and as such, it's not something now supported.) If you're willing to throw more MCUs at the problem and have each "neighborhood" of pixels controlled by a local HOA and have them all chattering to each other over something like ESP-NOW or even (gasp) wires, frame rates get easier, but defining an overall representation of the whole thing doesn't. A 3,000x3,000px wall is hard, even if lots of the pixels are missing. It's probably worth reframing the question, at least as I understand it, as to what kind of aesthetically pleasing effects could be rendered onto such a configuration. You might not be able to do a "stars and stripes waving in the wind" or "gif renderer" in a way that's practical while allowing arbitrary geometry there, but it might be fun for someone with art skills to explore what's attractive with panels like these in a way that makes sense given the realities of computer science/hardware expense that we're all currently bound. Then again, maybe it's the kind of thing that gets rendered on a Real Computer™ and shipped over WiFi to the blinky farm on the wall. That's something NightDriverLED and something like XLights, ledfx.app, or another renderer could pull off. I could double-check the math about 1140 LEDs @ 24 fps, but just from memory, that's about the commonly accepted numbers for the reality of the bandwidth of WS281x protocol. It's an 800khz NRZ protocol with about three subframes per bit, 24 bits of color that's 2 colors * 256 brightness levels, etc. That's just about the point where the "one wire" (I hate that term) approach runs out of gas as bound by those paramaters. Going faster involves changing LED strands, signalling protocols, etc. It moves from dollar-store hardware to complicated things - lots of problems can be solved by applying money if that's the goal. :-) Do these panels actually exist now? What software supports them Really Well? What could NightDriverLED do better? I'll have to say that if you're willing to roll something in code, NightDriverLED has really good underpinnings to let you engineer/build code and products like this. If you're looking to paw at something without actually writing code, WLED probably gets you to "pretty patterns on a wall" faster (maybe each "strip" is an ordered "segment" that you manually place, etc.) but you probably run into hard limits that are harder to remove later. |
Beta Was this translation helpful? Give feedback.
-
Hi,
I have led "strip" which has LEDs randomly distributed in space. I know spatial coordinates (XY) for each of LED in strip.
Is there a way to use NightDriverStrip effects to work with such strip?
If I understand code well they work only over regular LED matrix :-(
Beta Was this translation helpful? Give feedback.
All reactions