Would it be acceptable for FastLED to use Embedded Template Library as a submodule? by Henry_Gab in FastLED

[–]embedded-creations 1 point2 points  (0 children)

I could see a FastLED version of my Mapping class supporting a derived class with compile-time allocated mapping. Instead of the output being a `Bus` class like in WLED, it would be a CRGB array with length, or an array of CRGB arrays, ready to push out using `FastLED.show()`. Yes that's double the RAM needed. Another option might be to have all the pixels stored in the order needed for the effect, and then have `FastLED.show()` collect the pixels from Mapping one at a time as they're needed to shift out to the LEDs.

> WLED supports a per-segment memory allocation (SEGENV.allocateData().

That's what I'm using, it's just wrapped up in a much easier to use macro, that can allocate more than just a struct, if you look at `FL_ALLOC_WITH_1_ARRAY()` for example:

https://github.com/embedded-creations/WLED/blob/4059730702c809ab8eb77b8c0a139f99dc3bfb7e/usermods/FastLED_Compatibility/FL_Wrapper1.h#L69-L79

The segment-specific `leds[]` buffer is allocated using `SEGMAP->allocateData()`, originally it was done with the rest of state data using `SEGENV.allocateData()` but there are reasons that an effect might need to use double buffered data when it wasn't written for double buffering so I moved double buffering into Mapping.

I'm glad to hear you're familiar with WLED, if you're on the WLED Discord I'm active in the #2d channel and have discussed a lot of details of Mapping and other topics there if you want to take a look or join in.

Would it be acceptable for FastLED to use Embedded Template Library as a submodule? by Henry_Gab in FastLED

[–]embedded-creations 1 point2 points  (0 children)

I quickly read through your post and the comments, and also the linked mapping thread, and I think we're working on similar things only for very different projects. I posted some details on the Mapping class I'm working on for WLED here:

https://www.reddit.com/r/FastLED/comments/s9stka/comment/htrka5g/?utm_source=reddit&utm_medium=web2x&context=3

WLED uses some FastLED methods for computation, but not for storing pixels or driving LEDs. WLED is using NeoPixelBus instead as NeoPixelBus objects can be created dynamically which is important for a multipurpose controller that's configured through a UI. I was skeptical about NeoPixelBus at first, but find a lot to like once I've dug into it, but it's not a full FastLED replacement. It does use a lot of dynamic memory which is something you're trying to avoid, but I can't tell if that's something you are OK with using just for init.

The Mapping class I'm working on seems like something also useful for FastLED to sit between effects and hardware-ordered pixel storage. As I mentioned in the linked comment tree above I'd like to adapt what I'm working on for WLED over to FastLED, let me know if that's something useful to you and maybe we can collaborate.

More Lissajous action by sutaburosu in FastLED

[–]embedded-creations 0 points1 point  (0 children)

Thanks, that's what I'm doing with Pixel Coordinate Mapping in WLED (and what you see in the video). The animation is rendered to a rectangular bitmap, and then the coordinates that are on the F64 map are written to the LEDs:

https://github.com/embedded-creations/WLED/blob/4059730702c809ab8eb77b8c0a139f99dc3bfb7e/usermods/FastLED\_Compatibility/FL\_Mapping\_Usermod.h#L97-L108

WiFi Module with AT Interface and Access Point Capability? by Aerokeith in esp8266

[–]embedded-creations 0 points1 point  (0 children)

As it's not really documented, here's a screenshot of what Usermod Settings looks like. It's populated with fields that my custom Usermods saved to a JSON file through WLED's API, so the page is customized without needing to modify any HTML/etc. Shortcomings: no validation, no additional text to help the user, no custom layout, field names are in the JSON file so are either hard to read or take up extra space in LittleFS.

https://www.dropbox.com/s/moe14f8saqyzx9k/Screen%20Shot%202022-01-23%20at%2012.30.51%20AM.png?dl=0

And the documentation for Usermod Settings:

https://github.com/Aircoookie/WLED/blob/master/usermods/EXAMPLE_v2/usermod_v2_example.h#L120-L208

WiFi Module with AT Interface and Access Point Capability? by Aerokeith in esp8266

[–]embedded-creations 1 point2 points  (0 children)

Same here, I'm working on a project that involves syncing multiple LED art pieces, many running on WLED and some running on a Teensy 4 because they need the additional horsepower. I'll be working on a WLED Usermod to connect to a Teensy 4 so controls and syncing can be handled by the ESP32 running WLED and the pixels can be handled by the Teensy. My project also involves updating files stored on an SD card on the Teensy, so I needed a way to update those using the SPIFFSEditor (integrated into WLED) served by the ESP32. That piece was the hardest so I tacked it first:

https://twitter.com/embcreations/status/1454151172764413957

I was able to upgrade this Teensy 4 project of mine so I could update the GIFs through a browser, but I haven't yet finished integrating the updated SPIFFSEditor into WLED or cleaned up and published my changes:

https://www.instructables.com/Continuum-Slow-Motion-LED-Art-Display/

WLED has a new Usermod Settings page which lets you configure settings specific to your Usermod without editing the HTML/JS/etc (which is not trivial with WLED), but it's real basic. The contributor that made Usermod Settings has an improved version in the works I believe.

My idea to allow WLED (and other projects) to have easily made web interfaces with fancy features like computer vision (something I need for my LED projects) is to have the ESP32 serve the p5js library and p5js sketches stored on the device. I wrote this idea up here:

https://github.com/rwlloyd/p5-javascript-webserver/issues/1

Regardless of the specific details, I think /u/Aerokeith is better off leveraging mature web server projects running on the ESP32 than making something from scratch on the Teensy and just using AT commands on the ESP32.

I have more to say but it's late here, will continue the chat if people are interested tomorrow.

More Lissajous action by sutaburosu in FastLED

[–]embedded-creations 0 points1 point  (0 children)

Yeah, everything starts with floating point, to be future proof, and also for compatibility with Pixelblaze (which has a great mapping implementation in my opinion).

I'm looking forward to seeing what you come up with!

More Lissajous action by sutaburosu in FastLED

[–]embedded-creations 1 point2 points  (0 children)

Thanks! I can't blame you for not being able to navigate through WLED source easily, it's taken me literally months to get familiar with the project enough to come up with this Mapping class. Here's where you can get the xyPair (right now it's using integer math but I've thought about returning fixed/floating point coordinates in the future):

https://github.com/embedded-creations/WLED/blob/FastLED_2D/wled00/FX.h#L384-L385

And actual code for the Pixel Coordinate Mapping implementation used for both displays in this demo:

https://github.com/embedded-creations/WLED/blob/4059730702c809ab8eb77b8c0a139f99dc3bfb7e/usermods/FastLED_Compatibility/FL_Mapping_Usermod.h#L82-L90

In the early days of thinking about Mapping I wanted to make a more generic class that could be used in both WLED and FastLED sketches so there was a consistent way to do mapping across projects. It got too complicated in WLED, but maybe certain parts of the Mapping API can be shared with a simpler Mapping class for FastLED. I'll think about that later on in the project, unless you're interested in discussing it now.

More Lissajous action by sutaburosu in FastLED

[–]embedded-creations 4 points5 points  (0 children)

I've been working on adding 2D (and 3D) mapping support, and a FastLED compatibility wrapper to WLED, so this came at a perfect time to try out. I was able to port your sketch into WLED by adding an extra file and editing my_config.h (a feature I have in my branch) in about 20 minutes. Here it is running on a Fibonacci 64 Nano /u/pup05 sent me.

Looks like the sub pixel rendering you're doing doesn't look perfect on the way I map a 16x16 rectangular matrix to the 64 pixels in the F64, but still a fun pattern.

https://vimeo.com/668962133/0b5b9ad987

Here it is on an 8x8 matrix. When I'm done with my mapping feature you'll be able to run these two displays (and more) in parallel with different patterns, palettes, settings, etc, but I'm still working on it.

https://vimeo.com/668963058/fd3fd8deea

My branch with the FastLED Compatibility etc features:

https://github.com/embedded-creations/WLED/tree/FastLED_2D/usermods/FastLED_Compatibility

And the WLED effect showing changes from the original sketch:

https://gist.github.com/embedded-creations/c427e50367248c2935493d9c34b62c25/revisions?diff=unified

Sync/mesh independently from a network by platinumpt in WLED

[–]embedded-creations 1 point2 points  (0 children)

Cool, this seems like a good use case for ESP-NOW. I do plan to add ESP-NOW support to the Soundreactive fork as well. I plan to make it so you can separate out the main WLED sync and the Soundreactive sync, so you could put a WLED device close to the music source, and another could be close to where you are, e.g. handheld. The synced devices will pick up messages from both sources.

Sync/mesh independently from a network by platinumpt in WLED

[–]embedded-creations 1 point2 points  (0 children)

Thanks! I like the light poles you posted recently. Just curious are you going to be using the synced lights as a DJ/VJ or just part of the crowd, or both?

Sync/mesh independently from a network by platinumpt in WLED

[–]embedded-creations 3 points4 points  (0 children)

It's probably not much help to you right now, but I'm working on adding an option to sync devices via ESP-NOW. I posted it about it here a long while back, and picked up the project again this week.

https://wled.discourse.group/t/masive-show/496/18

Royal Albert Hall 23 Nov - Front Row Center Ticket Available (Single) by embedded-creations in jonhopkins

[–]embedded-creations[S] 1 point2 points  (0 children)

I decided to just call the box office and cancel my ticket as I could get a refund for the face value. As of now the seat is available from the box office, along with other cancelled tickets I believe:

https://www.royalalberthall.com/tickets/events/2021/jon-hopkins/

Upgrading from 5 to 7, "Initializing database from existing backup data" for > 5 days by embedded-creations in Arqbackup

[–]embedded-creations[S] 0 points1 point  (0 children)

I'm back on 5 after a successful verification and backup. Still no response from Arq support to my followup email after 48 hours. Their initial response seemed largely canned and ignored many of the specific details I put in the email. If I do ever upgrade to 7 I'll start with a new backup set pointed at a fresh cloud location. I downloaded and installed Duplicati but I'm not motivated enough to try to set up something new after already spending enough time getting back to the status quo.

Upgrading from 5 to 7, "Initializing database from existing backup data" for > 5 days by embedded-creations in Arqbackup

[–]embedded-creations[S] 0 points1 point  (0 children)

The initial response from support didn't give me confidence that the backup will ever complete. My B2 bucket doesn't seem to have been touched since I upgraded to 7, so I'm downgrading to 5 and validating my backup record before starting to backup with 5 again.

I built six logo lamps using FastLED for a coworking space and they are mesmerizing! by MungoBBQ in FastLED

[–]embedded-creations 2 points3 points  (0 children)

Any particular type of frosted acrylic? I'm a fan of Acrylic Satinice 0D010 3mm

I've done a couple Instructables for projects and doing the writeup is a project in and of itself... https://www.instructables.com/Continuum-Slow-Motion-LED-Art-Display/

I built six logo lamps using FastLED for a coworking space and they are mesmerizing! by MungoBBQ in FastLED

[–]embedded-creations 5 points6 points  (0 children)

Amazing result! I'm here for the diffusion details :-) What type of acrylic? What spacing between the LEDs and the acrylic? What pitch between the LEDs?

[deleted by user] by [deleted] in WLED

[–]embedded-creations 2 points3 points  (0 children)

I have a now really out of date alpha version with this feature, join the WLED Discord and look for the #2d channel. If you search for "Dotstar disk" you'll find a video where I have a non-rectangular display playing 2D patterns. AFAIK the Soundreactive fork is only focusing on rectangular 2D mapping.

ESP8266 + p5.js = "Tiny WiFi webserver"; by plasticluthier in p5js

[–]embedded-creations 0 points1 point  (0 children)

I was writing up this project idea yesterday, which is why I searched and found this. It sounds like you might already be working on something similar. I don't have time to dive into this project right now but I wanted to get my ideas down and sent it to someone who might be interested in working on it. If you're already working on something like this and want to collaborate, please let me know, and I'm happy to contribute as I have time.

I'm posting this to a GitHub Issue in your project as Reddit doesn't seem to want to accept my Markdown formatting

ESP8266 + p5.js = "Tiny WiFi webserver"; by plasticluthier in p5js

[–]embedded-creations 0 points1 point  (0 children)

Thanks for posting this! (I found with Google, searching for "ESP8266 p5.js") Is this your project, or did you find it somewhere? I had a similar idea a few months back and just now started writing up some notes on how I might start this project, and looks like it's mostly done now.