I’m currently trying to rebuild my project “Circularium” (https://youtu.be/KKxmautzwHY). The idea is to create smaller audiolight modules working with FastLed (currently MaxMSP&Live) cut from AC (on batt). Since the led device is built as a starfish I need to choose a microcontroller with wifi supporting Blynk. My problem it seems difficult to work with a lot of led (I think I need around 1000) in a starfish configuration with Fastled. So I’m looking for advices pointing me in the right direction: If I would have for example 16 independant branches of 1 meter ledstrips what microcontroller would support Fastled with 16 GPiout and is it at least possible ? Any tips welcomed. Thx guys.
Derrick, seconding the Teensy 3.2 with parallel output. For WiFi handling, get an ESP8266 or ESP32 and use SoftwareSerial to communicate between the ESP and the Teensy.
Take a look at the EasyTransfer library for shuttling data structures over Serial or Software Serial.
@Derrick_Giscloux , the basic ESP32 has 520kB internal SRAM, some modules like the ESP32-WROVER have an additional 4Mb of RAM. There is also a minimum of 4Mb of flash memory.
@Derrick_Giscloux , yes. I’m advocating that you use a second microcontroller to handle the WiFi and run the lighting using the Teensy. That “spreads the load” across two microcontrollers, and the Teensy doesn’t need to know how the LED instructions arrive–it just pushes pixels.
If the messages over WiFi are “procedural” and not the entire array of LEDs, this is probably a good approach.
Yes the EasyTransfer library allows bidirectional transfer of structs with checksum. See a tweaked version within an ongoing project of mine, below.
I think you’d be able to use hardware UARTs (ESP8266 has Serial1 that is output only; Teensy has Serial1 iirc) to make the stream of information from the ESP/WiFi to the Teensy/LEDs not be interrupted by WiFi (on the ESP) and FastLED.show() (on the Teensy). If the two microcontrollers are nearby, and you use shielded, twisted-pair for serial I think you could take the baud rate very high to keep up with your target frame rate.
It’s also possible that the whole thing could be run on an ESP32, as I’ve seen some experimental versions that support parallel output (PORT approach) but you may not have hardware-level signal (read: you’ll have “bit-banging”).
@Mike_Dodds is right, a very good way to do this is to use an ESP8266 and a Teensy. The EasyTransfer library is great amd works well on both MCUs.
If you use an ESP32, you will be bit banging the LED output, but it alo has a dual core processor, and can be set to use one core for WiFi and the other for the LEDs.
My tree, with 800 LEDs in a starfish confguration, currently has a Teensy 3.2, and I’m about to add a WeMos D1 Mini. I’m also going to try an ESP32 and see which I prefer.
Okay Guys, many thanks, that gives me a lot of new good information. However my project will requiere near one hundred module of between 800 and 1000 leds, each module starfished. So you understand that costs are an important point. @Mike_Dodds I’m not sure to understand: is there some specific versions of ESP32 hardware that support the parallel output technic through the PORT approach ?? @Jeremy_Spencer where can I find some example on bit banging-use on a dual core processor? Sorry Guys for the questions I’m just starting deeply with microcontrollers as you understand. Best.
@Derrick_Giscloux , look at the post below. You don’t need any specific hardware, except to ensure that the board you choose has the correct pins available. I’d suggest using one based on the ESP32-WROVER module as it has an extra 4MB of RAM.