LED Desk Surface Matrix (No Coding)
by Saucy Moss in Circuits > LEDs
2709 Views, 55 Favorites, 0 Comments
LED Desk Surface Matrix (No Coding)
This is a custom LED panel that I made to be the surface of my desk! It can display a low resolution version of any image or video! The surface is a 5' by 2' sheet of white translucent acrylic. The diffuser sides and hexagon shapes are 3D printed. It uses WLED and an ESP32 board for its electronics. Signal RGB is used for the light patterns and screen mirroring.
Last fall, it became apparent that my old kid-sized desk wasn't going to cut it anymore. I needed more space for homework, working on projects, and a computer. Using the engineering skills I learned in school, I decided that I would make my own desk that would both suit my needs and be super unique! The desk itself is a tensegrity table, but I have another instructable about that. This one just talks about the LED panel that's on top!
More than just gamer aesthetic, this desk can backlight paper, making it super easy to read (it looks much better irl than in the fourth picture above). This feature is especially useful at night when I have trouble focusing on homework that's due later that morning. When I want to do some quick math or make a sketch, I can draw directly on my desk using a dry erase marker because of the acrylic top. Overall, I made this because I didn't want to just go home from boring classes at school to a boring room at home. This unique desk makes my room a much more fun place to be, helping me get my homework done and stay motivated. Finding motivation has been a struggle this year, and this definitely helps!
Supplies
- 5' by 2' white 7328 translucent acrylic sheet (I bought this one)
- About 2.5kg of white PLA filament
- 1/4kg of translucent PLA filament
- ESP32 board
- 5V 10A power supply
- WLED compatible strip LED lights
- Extra wire and solder
- Double sided tape
- 5' by 2' plywood
- Paint (optional)
Choose Your Lights
You can choose any individually addressable LED lights that are WLED compatible. WLED is the software that runs on the ESP32 board, but we'll get to that later. I recommend 30 LED/m which means there will be one light every 1.31" or 3.33cm. I used these (5v 500pcs bought during a deal for about $60) so I could get the spacing between them just how I wanted at 2''. I wanted this specific spacing so that the hexagons would fit nicely for my 5' by 2' desk. However, I would just use strip lights if I had to make this again because the wires were super stiff and annoying to work with.
Determine Your Pattern
Depending on your LED light spacing, you will need to modify the hexagon pattern so that each pixel fits nicely in each hexagon. I've parametrized the file so you can easily adjust the size of the hexagons, but you'll need to go back and re-add the wire spacings from underneath. You'll also need to re-slice the whole thing into smaller pieces to accommodate the size of your 3D printer's print bed. If you want, you could just do square pixels, but the hexagon is the bestagon. Start printing these pieces as soon as possible, because they take a while. It took almost 400 hours of continuous printing to print out all of the hexagon panels on my printer (50mm/s printing speed).
Downloads
Get the Base Ready
I bought two 2' x 3' pieces of plywood and cut a foot off of one. Then I duct-taped them together to make one 5' by 2' piece. I then painted one of the faces and all the thin sides black to match my desk. On the other side, I outlined all of the hexagons in pencil using a panel that I printed out already.
Get the Lights Ready
For this step you will need the following:
- Your LED lights
- ESP32 board
- 5V 10A power supply
- Extra wire
- Electrical tape
- Soldering tools
I followed this tutorial, it shows you how to install WLED on your ESP32 board and how to power your LEDs with your power supply. It's super simple and easy to follow. I soldered the wires together instead of using the breadboard jumper wires or injection splicing wire connectors used in the video, but you can use those if you want. At this point, you should be able to plug in your lights into a wall outlet. They should turn on and be controllable from your phone. Don't worry if the lights toward the end are super dim, we fix that in the next step.
Put the Lights on the Base
If you just bought strip lights, this step is super easy. Just cut them in rows and tape them down, making sure each LED fits nicely into each pixel that you drew in step 3. Start in the corner closest to a power outlet where your desk is. For me and my string lights, however, this was a super long and tedious step of cutting double-sided tape into squares and putting each light down one at a time. Once they are all arranged, you will need to re-wire all the strips you cut. Simply solder jumper wires onto the exposed metal on the strips, connecting the +5V, Din (data), and GND wires on the end of the first strip to the beginning of the next. Pay attention to the arrows on the strips though. You'll want to make sure you are soldering the wires on the end that the arrows aren't pointing towards. If your strips get dim towards the end, you'll want to add a few power injection wires. This means hooking up voltage and ground wires from your power supply to the lights where they are dim. I did this four times, so basically every 100th light was directly hooked up to the power supply.
Put the 3D-printed Pixel Panels on Top
This step is simple. All you need to do is glue down all the panels you made onto the board. Then lay your acrylic sheet on top. You can glue this piece down if you want, but you don't have to. It'll be locked in place in the next step.
Add Diffusers on the Sides + Final Touches
This final step is to let light shine from the sides without being able to see ugly LED strips and wires. I bought some translucent PLA filament and printed my own diffusers. They are simple 0.1" thick rectangles with a fillet on the top corner. I wasn't happy with them initially, so I cut out and glued on a piece of vellum paper to each piece, which helps. I then simply glued each of these diffusers to the sides of the hexagon panels (Note: The LED hot spots on the sides aren't as pronounced irl as they seem in the photo).
To hide the ESP32 board, I printed out this little cover piece and glued it to the side of my desk, as before it was just hanging out the corner. I know its a bit hard to see in the picture, so I've attached the file if you want to get a better look.
Downloads
Set Up Signal RGB
First, you have to make sure that your lights are hooked up to the same WiFi network as your PC (which has Signal RGB installed). Go into the WiFi Setup menu in WLED and check. Then note the Client IP address. In Signal RGB, go to Network on the left, then scroll down and click WLED. Next enter in the IP address where it says "Discover WLED device by IP" and click "link" on the box that appears.
Now we have to let Signal RGB know how our LED lights are arranged. Go into Devices on the left, find the WLED logo on the bottom, and delete the default strip of LEDs. Then re-add custom length LED strips by row. For my hexagon pattern, I have 15 alternating rows of 30 and 31 lights, so I added custom LED strips accordingly, naming each one by row number. Finally, go into Layouts on the left and all of the strips should be there. Go ahead and turn on an effect (such as Black Ice) to make this easier. Select each strip, rotate it by 180 degrees if you need to, scale it up until it fits perfectly, and organize each by row (see picture). If you want to display a custom image or video, select the Screen Mirror effect and pull up that image on your monitor. You can mess with the brightness and color shift in the Customize menu on the left.
Fun Uses
I used Leonardo AI to develop a cool swirling pattern with my favorite colors. The AI made a four second video of that image as well so there is some cool movement on my desk.
There are audio visualizers in Signal RGB so the desk lights up with my music! Signal RGB also has dozens of unique effects that work great!
I can also display the time and timers on my desk, which is perfect for reminding myself how late I'm staying up working on homework. Speaking of, I've got some that needs to get done...