Even though televisions and projectors can both create high quality images with low latency, larger and brighter screens can also be very expensive. Because Chris Parker wanted an inexpensive large-format display, decided to go the open source route and build his own from a large number of RGB LEDs that could be easily controlled with software. His goals in constructing such a massive LED matrix involved playing background videos, adding extra color to a room, and visualizing music in a novel way. Cob Led Strip
The most important part of this project, the LEDs themselves, are simply 16 5-meter WS2812B RGB LED strips with a density of 30 pixels per meter to ensure adequate coverage over such a large area, for a total of 2,400 LEDs. Pushing color data to each pixel are four separate ESP8266 microcontrollers that are responsible for their own section of the matrix. One additional ESP8226 takes the outgoing data from the host PC and sends it via a websocket to the four receiving ESP8266s. Finally, a set of four 5V 60A provide sufficient current to each section's 576 LEDs that can draw up to 35A when set to white at full brightness.
Rather than laying out each LED by itself and wiring them together, Parker glued a series of 16 LED strips to a rigid board, with each of these columns housing 36 LEDs, totaling to 576 LEDs per section. This process was repeated for every one of the four sections while taking great care to ensure each pixel lined up with the ones above and below itself. The final step involved soldering three wires between each strip to pass data and power in the correct zig-zag pattern.
LEDs tend to bleed light into each other when in close proximity and can lead to a smeared image when viewed from a long distance away. To help solve this problem, Parker designed a set of four different grid tiles that break up the strip into discrete cells for the individual pixels, therefore reducing lightbleed. Once the tiles had been glued into place, a large sheet of light box cloth was tightly attached over the top to act as a diffuser.
The first part of displaying videos and graphics on the large LED matrix was to actually get the image data from a source. In this case, Parker opted to use TylerTimoJ's LED Matrix Control Software HD (LMCSHD) program which lets users capture their screen in real-time, import media files, or analyze audio before sending all of the resulting downsampled pixel data over serial to an awaiting receiver for display. In essence, the .NET 4.7-based application takes a frame, scales it to the matrix's dimensions, and streams the raw pixel data as an array of bytes to be read by the peripheral microcontroller. One of the five ESP8266 boards fulfills this role by storing the received data in a buffer and then sending it to each awaiting ESP8266-driven section.
Because this system needed to be lightweight and wireless, the ESP8266 acting as the server carries out two primary roles. First, it presents a webpage so that users can see which of the sections have successfully connected, and second, it pushes new pixel data to the correct section with WebSockets. By using a WebSocket instead of the traditional HTTP server, data can be consumed immediately by the client, resulting in lower latency and more frames per second.
Wall Wash Recessed Lighting Hackster.io, an Avnet Community © 2023