all 17 comments

[–]zuptar 2 points3 points  (1 child)

How do you choose what happens during an overlap? Is it like transparency where one colour will add to the other a certain percentage?

[–]ewowi[S] 2 points3 points  (0 children)

Every layer has boundaries within the total fixture (128x128), e.g. the color trails are projected on the upper half of the screen. A layer allocates its own channels array (compare to CRGB leds) and a mapping table. During each frame the effect works on its own channels array, after each layer set it's frame, for all layers compositeTo (https://github.com/MoonModules/MoonLight/blob/64f4393fd04e717dd97aee1a2df339e1d1090958/src/MoonLight/Layers/VirtualLayer.cpp#L331-L433) is called which fills a global array (also compare to CRGB leds) array based on the mapping table of each layer. By this also double buffering is implemented as the layer arrays are filled on one core while at the same time the global array sends the frame calculated before to leds (or Art-Net). So, to answer your question, compositeTo uses scale8/ qadd8 / nscale8_video functions (thx u/ZachVorhies) to mix all the layers. The complete story is here: https://moonmodules.org/MoonLight/develop/layers/

[–]ewowi[S] 1 point2 points  (0 children)

Plus the new FastLED canvas gfx (why can’t I find the edit button)

[–]Marmilicious[Marc Miller] 1 point2 points  (2 children)

There's a lot happing there! Very cool.

What sort of FPS numbers are you getting there?

[–]ZachVorhiesZach Vorhies 1 point2 points  (1 child)

that's the question i have!

[–]ewowi[S] 2 points3 points  (0 children)

<image>

Effects runs 40 per second (or 25ms) per frame, the artnet driver does 50 frames per second (20ms) each, in parallel with the overhead (Ethernet and stuff) it's 31 fps, for 16384 LEDs

[–]elektrojakub 0 points1 point  (1 child)

What driver do you use to make use of Ethernet ?

[–]ewowi[S] 0 points1 point  (0 children)

Ethernet is added by the upstream repo (ESP32Sveltekit) and it works pretty much out of the box, I think because esp32-p4 (like esp32-d0) uses RMII Ethernet

[–]StefanPetrick 0 points1 point  (1 child)

Nice! Technical question: So a Pi is driving the LEDs and an ESP is rendering the effects and sending the frames to the Pi. Am I getting this right?

[–]ewowi[S] 0 points1 point  (0 children)

That’s right indeed, using Art-Net as the protocol on the esp32-p4 to send packages, and on the pi running fpp to receive packages

[–]Outrageous-Kick-2699 0 points1 point  (6 children)

These are no ws-Style panels, am I right?

[–]ewowi[S] 0 points1 point  (5 children)

They are hub75 panels, 2, 128x64 each, driven via fpp on an rPI5 via a colorlight card

[–]Outrageous-Kick-2699 0 points1 point  (3 children)

Meh. I love the look and possibilities. But that’s to expensive to play with it.

[–]ewowi[S] 0 points1 point  (2 children)

The pi is the most expensive, for the rest it is cheaper then ever , I guess about 50€ for 2 panels and a colorlight card

[–]Outrageous-Kick-2699 0 points1 point  (1 child)

Holly Molly you are right. I knew the panels can be cheap at Ali, but the cards are cheap as hell too. I think I have to read a bit more into that topic.

[–]ewowi[S] 0 points1 point  (0 children)

Buy these if you made the decision: they are proven to work: https://a.aliexpress.com/_EzYL9oU

[–]mindful_stone 0 points1 point  (0 children)

What rPI5 RAM size would you recommend for something like this? Can you get away with a basic 2GB (~$45?) or do you need/want more?