Hello everyone. I'm looking for some advice. I'm new to the world of microcontrollers.

Hello everyone. I’m looking for some advice. I’m new to the world of microcontrollers. I mostly a software guy, but hardware has always intrigued me. I created my first “Temperature” monitor circuit a few weeks ago, and now I want to try a LED project.

I would like to build a 2D matrix of strips, so I can use it as a digital billboard, and also for simple animations, effects, etc. Right now, I’m thinking I want to use 24 stacked stripes of 120 leds (60 per meter).

I’ve been using the Particle Photon, and I really like its programming interface, built in WIFI, and easy to use cloud MQTT implementation, so I would like to continue to use that.

Cost is a concern - these led strips are expensive! But also, I want to make sure I can actually address all of my pixels. I’m trying to decide between WS2812B vs APA102. Can the photon handle updating 2,880 WS2812B leds? Or do I have to get APA102 version instead? Are all the leds connected to a single (set) or pins, or can I use multiple pins of the Particle Photon to increase refresh rate? would like to have at least 60fps refresh rate, to make it really smooth. Does the CPU have time to do anything else besides updating the leds? I would like to be able to send MQTT messages to the device in order to update the billboard, or to play animations.

Also, what are people using to stream animations directly to the microcontroller? I imagine there must be some software that directly connects and streams in the pixels updates. Is there a library for this?

@Min_Idzelis

  1. if i am correct the photon particle is based on the STM32 ARM. my knowledge is that the fastled library does not have yet the parallel output implemented @Sam_Guyer may be you could correct me. hence using ws2812B even split over several pins you would have a refresh rate of 11fps :(.
    then with apa102 you could get higher refresh rate but i am not an expert on that.
    to get 60fps with 2880 leds on ws2812B you would need 6 block of 480 leds in parallel output.
    I am not an expert in Photo particle but you can find boards like the teensy or even the esp32 that can provide you with that kind of possibility and still have lot of power left to do a lot of things

2)Using the artnet library you can stream animation from tools like resolume, glediator, jynx ,… to the leds quite easily either viawifi or serial communications

in term of stand alone animations (generated by the mcu) @Marc_MERLIN and @Mark_Estes are the masters here

Also, here’s another option you can use for scrolling text.

ESP8266 can be reprogrammed over the internet via the web and will give you 4 parallel outputs with FastLED, allowing borderline enough frame rate on 2048 LEDs. For that many LEDs, you’ll likely want an ESP32 that can be reprogrammed over the web too.
A teensy can also run that many pixels, but it cannot be OTA’ed over wifi like an ESP32 or ESP8266.

Is it possible to use the teensy to control the LED strips, but then use a photon to send commands to the teensy? Is there an easy way to communicate between microcontrollers via SPI or some other protocol?

@Min_Idzelis I would use serial communication between two boards. U could use SPI but then you would need to write a specific protocol based on SPI. But if you are looking for a board that does all go for an esp32 they are quite cheap with wifi and bluetooth embedded. still programmable with Arduino IDE.

I looked up the ESP32, and it seems really great for my needs. For driving 24x120 (2880) LEDS - should I be looking at WS2812B vs APA102? How many LEDS should I hook up to each pin on the ESP32? I assume with the latest FastLED library, using multiple pins will speed up updates, due to parallel output. Does the parallel mode work with: WS2812B, and/or APA102?

@Min_Idzelis i am not a specialist of apa102; but if you’re using ws2812b
you can use parallel output with those leds and esp32.
if you use the current fastled1.8 you’ll be able to use full parallel output over 8 pins (you can plug more but you’ll have not full parallel output on all of them) you can then plug 360 leds (3 rows) per pin which will give you an FPS of around 90. which is plenty