Quad Blade Question

I’m not sure if this is the right category… please move as needed.

I have a question about building a quad blade–how bad would it be (data lag) to run the data wire back to the hilt side to have all four strips running in the same direction and using subblade rather than using a zigzag formation with subbladereverse? I’m starting on some denser pixel strips and was thinking I could better limit voltage drop by having the start of each strip wired directly to the PCB–but that would mean either running them in parallel (which i feel defeats the purpose) or running a data wire from the tip back to the base–which increases the distance the signal has to travel between the strips.
These are the strips i’m looking at: SMD3014 332 led/m 12w/m ( Full Color COB LED Strip Same As WS2812B SK6812 High Density Individually Addressable Smart RGB Dream Color COB Led Light DC5V (aliexpress.us))

Somewhat related question–I saw that the number of blades is capped at 20 due to a hard coded section that handles the blade arrays–are there any performance issues with having a high blade count–in the range of 10-15, including a 4 or 5 strip blade plus independently controlled pixel switches, accents, and crystal chambers (additional blades would have 1 to 10 pixels each)?

thanks,
j

Electricity is fast, lag is not an issue.
There is a chance that a longer wire could degrade the signal and cause flickering though, but I’ve used much longer cables than this, so I don’t think it would be an issue.

The strip doesn’t really care which way the power is going though, so you can wire the end of some some strips to the PCB, and that should basically do the same thing. (That’s what I do in my zig-zag blades, every other strip gets power injected “backwards”)

Probably.
ProffieOS works on one blade at a time. Once it’s calculated the colors for each LED in that blade, it hands it off to the data output code to transmit it to the blade. This works in parallel with the calculations, but only one data stream runs at a time. The data stream runs at 800kBit/s. Since each LED needs 24 bits, that is 33333 LED updates per second, maximum. I have a saber with 530 LEDs in the blade, 5 in the pogo pin PCB, 7 LEDs in the control box, and 30 in the pommel, for a total of 572. The maximum theoretical frame rate for my saber is 33333/572 = 58 updates per second. However, I get less than that because of some overhead. Also, I have to compile with optimization, or the frame rate drops even more.

If you have significantly more LEDs and blades than my saber, I would expect that the frame rate drops enough that it starts to look bad. If I compile with the “smallest” setting on my saber, the ignition and retraction doesn’t look smooth anymore, and I would imagine that the same thing would happen if you start using too many LEDs.

Note that limitations might vary depending on hardware. The Teensy4 is for instance capable of feeding out data to multiple blades at the same time, which means that the limiting factor is the longest string, not the sum total of all strings.

I’ve also been exploring ways to support dotstar pixels. Dotstar pixels support data rates which are 20 times higher than ws2811 pixels, but unfortunately they require two wires.

3 Likes

I was looking at about 1000 LEDs on a 30" blade. If I’m understanding all the nuance to your answer, splitting this into multiple subblades doesn’t help–but what wasn’t entirely clear was whether using 2 data pins instead of 1 would make a difference (although it would require a custom blade connector)–but wiring in parallel with 2 independent strips and 2 mirrored strips would improve the framerate overall (which is why KR created the V2 pixel stick).

thank you,
j

Having more data pins does not help on Proffieboards. Only Teensy4-based setups see any benefit from doing that.

PS: One thing that can help with really long strings is overclocking. Most neopixels are able to handle data at higher rates than advertised. The maximum stable speed is probably somewhere around 1Mhz. (Which is what I use for my 530-pixel blade.)

1 Like

Adding a TLDNR intro:
Q1: will a blade with a max framerate of 35 be okay, or have so many visual artifacts it would not look good? Q2: What about a max framerate of 45?

full text/context
I initially shelved this idea after this exchange but I’m digging it back up.
I’m considering a blade build of 76cm/30" with six pixel strips using 5mm cob strips with either 200/m or 160/m. This yields 934 pixels for the 200/m strip (including +16 for emitter and +6 for accents), which would have a max framerate of ~35.7, or 748 pixels using 160/m strips, with a max framerate of 45.6. I have an octagonal inner frame to hold the strips straight.

These framerates are higher than the 24fps for motion pictures, but well below the 60fps ideal for video games–and you mentioned that overhead would erode the actual frame rates… The saber will be installed with a Proffie v3.9 flashed with “FASTEST”

Until now, the most I’ve used is similar to your build, with 560ish pixels on a quad blade, and I have had no issues with blade style performance (Proffie v3.9 set to fastest)–like yours, that has a max framerate of 58, which is close to the ideal videogame framerate of 60.

Asking the experts: will a max framerate of 35 be good enough for most blade styles, or too low with visual artifacts? would 45 be sufficiently better, or still too low? Which is the better benchmark for performance: 60fps or 24fps?

My fall back plan: although the build will be an absolute pain–instead of 3 zig-zag strips for six independent sub-blades, I could wire it so the opposing sides are in parallel, so three independent sub-blades but each driving two opposing strips wired in parallel, doubling the frame rates. Viewed from the side, it shouldn’t be easy to tell sides are mirrored.

note: I have considered the power requirement. 15A should be enough for the 2020 leds but the chassis will be wired with dual 20awg to support 20amps using both negative pins on the board and 3 fetts coupled with a 20A battery. (I also looked at 180/m 3535s but I could only find them in 12v).

First of all, you might want to use the “top” command and see what frame rates your actually getting, because you’re probably not getting the theoretical maximum.

Second, what frame rate you get may depend highly on the style. A complicated style can take a lot of time to calculate, which may cause slowdowns. In particular, the ignition and retraction effects, which is where you notice low frame rates the most. Before I turned on optimization, the frame rate on my 529 pixel blade was pretty low, and it didn’t look great.

That said, I’m not sure what frame rate is actually “good enough”. My guess is something in the 30-40 range. The good news is that it should be testable. You can try the blade setup you want even if you don’t have 900 pixels and see how it works. It might not be perfect, but it should give you a good idea at least.

If you end up in a situation where some complex blades don’t work well, but some simple ones do, you could try using “pixelate” in the complex styles to speed them up. I could also imagine having some style that copies values from another style, but that would need to be coded.

1 Like

thank you! I’ll give the 160/m strips a shot–shouldn’t be too hard and should enable some amazing effects–especially FETTs rain effect. worst-case, i stick to simpler blade styles.

Testing is an excellent idea–guess i need to push harder on finishing my test bench. I tend to jump from idea to idea like the squirrels chasing after the peanuts my wife throws out the back door…

One last question–you mentioned you overclock your board, but I could not find any information on how to do that. any links would be appreciated. I overclock my computer, but that’s easy… I imagine overclocking the proffie will be much more complicated. Again, thank you.

I do not overclock my boards, but I do send out the WS2811 data at one Mhz rather than 840kHz, which increases the frame rate a bit. You can see how that is done here:

3 Likes
3 Likes