DJ stand created as part of a student party. It has 480 LEDs (WS2812B) to light 80 PMMA blocks. The LEDs light up according to the music to make a Vu meter.
Step 1: Materials
The general structure of the stand is made of wood with 18mm chipboard held in place with brackets and cleats.
The front panel is made in several layers in order to maintain the PMMA blocks and will be detailed in part 3. The sound process is made in Python on a Raspberry Pi so that there is always an electronics on the stand and a display to facilitate access to the DJ if necessary. Note that some of the parts, in particular the PMMA, were made using a laser cutter. PMMA can be difficult to achieve under the same conditions without it, inform yourself in the Fablabs around you, they can probably help you make this stand.
List of materials :
WARNING : 0.5m*0.5m panel will depend on the size of your laser cutter. See the all guide to be sure of the size you need.
- 18mm chipboard:
- 2x 1m*2m
- 2x 1m*1m
- 3mm MDF:
- 1x 1m*1m
- 4x 0.5m*0.5m
- 6mm MDF:
- 8x 0.5m*0.5m
- ~12m of cleats (30mm*30mm is fine)
- 5m PMMA :
- ~0.5m² (the size of the sheet depend on the size of your laser cutter)
- Raspberry Pi (3b is fine)
- Waveshare 7" touchscreen
- 8 meters of WS2812B with 60 LEDs/m
- USB soundcard (the cheapest from Ugreen with a mic input is fine, ~10$)
- 16x 5mm threaded rod with a length of 1meter (it is better to cut it at 90cm, see step 3.5
- 320x 5mm nuts.
- some 3D printed parts.
- Wood screws (3mm and 5mm)
- Wood glue
- 4 caddy wheel with brake (it is better to move it, believe me !).
- Some wire to solder
BOB-12009 logic level converter (from Sparkfun)
Some Terminal Block connector to power the Raspberry Pi and the LED.
A micro USB cable.
5V power supply (at least 100W (20A)).
You are now ready to start your project !
Step 2: Mechanics
This is only the general structure of the stand, the rest of the parts will be used for the realization
of the front panel and its electronic and software configuration. The structure has been made on 2m * 1m boards so that it can fit on a DJ stage which often have this size and can therefore be easily raised if necessary.
I provide you with the 3D plans of each part and the general structure so that you can see how to assemble it. This may be clearer with the different photos.
- Using a circular saw, cut the base of the counter from a 2m * 1m board (file available). You get the picture N°1
- We will then install the side panels. For each panel:
- Take a cleats about 85cm long (choose a size according to the size of your cleats, two cleats will be placed on either side, do not exceed). CAUTION: The front panel has a thickness of about 3cm, be careful to choose a length so that there is 4cm left for the front panel.
- Screw this cleats onto the base parallel to the edge, taking care to have a distance between the edge and the cleats of about 2cm (the thickness of the board that will land in front)
- Take 2 cleats of about 80cm. They will be screwed on both sides of the first cleats to support the board as well as possible. The length of the cleats will determine the height of the DJ tray, so you can change this size as you wish. We took 80cm so as to leave a height so that the plate is protected and not necessarily visible. 80cm being the standard height of a table, it seemed perfect to us.
- Repeat the last two steps on the other side of the counter, you should have the result of photo N°2.
We will now lay the boards as in picture N°3 and N°4. The result is photo N°5
- All that's left is to cut the tray now. To draw the plate, the easiest way is to do the same drawing as for the base, then for the sides, draw a parallel line offset by 18mm, the thickness of the board that makes up the side.
- For the front, cut off 4cm. Before cutting the center that will be the DJ's space, put the board down to make sure that the cut is correct. You then obtain the plot of photo N°6. Then once cut, photo N°7 and finally N°8.
- Ideally, the stand should be painted now, before the front panel is installed with PMMA. We painted everything in Black because it was the best thing for us, but you are free. This type of wood absorbs a lot of paint, painting with a paint gun and a compressor is the easiest here.
Step 3: Front Panel
This step is the most important and at the same time the most time-consuming. It requires a lot of time, especially for the assembly of the PMMA blocks in the threaded rods.
The front panel assembly is done in several steps. We will first make the led panel, then we will cut the PMMA and then assemble them in the visible front panel.
- LEDs Panel:
- We will take as a base the 1m*1m MDF3 panel.
- We will then glue MDF3 boards with strips cut from them to inlay the LED ribbon. The laser cutter at my disposal has a working surface of 80cm*50cm, I made 4 panels of 50cm*50cm. Adapt the dimensions according to your equipment. Then glue these panels on the base we took before. You should have a 6mm thick board with 10 hollow strips to insert the leds. (See photo N°9 and 10).
- Then insert the LED ribbons. CAUTION, addressable LED ribbons have a wiring direction. To reduce wiring, insert the LED strips into the coil. (See picture N°11 for a wiring diagram between the ribbons). The circles correspond to the power inputs. Indeed, a single power input at the beginning of the ribbon is not enough to supply all the LEDs correctly. So I made 4 power inputs as you can see on the diagram. As they all come from the same power source, they have the same voltage references.
- In picture N°11 we do not see the cables between the ribbons because they were passing behind. I finally changed that and connected the tapes with cable on the front, because the front being enclosed afterwards, the cables would not be visible. As there will be a gap between this plate and the visible plate, there will be no problem.
- So I made some welds as shown in picture N°12. Remember to apply hot glue to the welds to protect them. The sealing pads on the tapes are fragile, so any movement of the cable at the seal is prevented. Try to leave the glue hot locally so as not to make problem with the PMMA blocks later. You finally have to make 4 holes to let the power supply and the signal cable in at the START (picture N°11). Remember to test to make sure that all LEDs light up (R,G and B for each LED). If a LED is not working, the rest of the ribbon that follows will not works so this step is essential. If a LED is missing, cut this LED on both sides of the ribbon and change it, the PADs are there to be soldered together.
- The visible side is made of MDF6mm. The goal is to have a nice thickness of 12mm by superimposing 2 plates of 6mm. MDF6mm has the advantage of being very well cut by laser and being inexpensive. This allows me to have a precise cut for passing the PMMA blocks easily. We cut 8 panels of MDF6mm 500mm*500mm that we glue two by two. They are then painted Black like the rest of the counter. This makes it easy to pass the PMMA through the interior to test the LEDs (Photo N°14)
It is now necessary to cut the PMMA according to the form provided in the files. If you do not have a laser cutter, this step will be complicated. You can probably simplify the shape of the PMMA blocks, all you have to do is adapt the file of the visible side.
Once your 80 blocks of PMMA have been cut, we will be able to start the most laborious task, the assembly. The aim here is to block any possible axis of freedom of the PMMA.
Take 2 threaded rods and insert the PMMA blocks into them so that they can be inserted in the grooves on the LED ribbons. On each rod, insert the nuts and then the PMMA blocks so that each block can be locked between two nuts at the desired location. Place the 10 blocks with their nuts loosely. This results in a row of 10 blocks with two threaded rods and 4 nuts per block. By placing the blocks in the front panel, we will be able to lock them with the nuts directly in the right place. (See photo N°15). After using the stand, I think the nuts didn't hold up with the vibrations. I recommend using Threadlocker. The step will be all the more laborious but you will be sure that they will not move. With threadlocker, you will be able to lock your blocks perfectly.
Repeat the operation for the 8 columns
Visible face assembly:
- We already have everything we need: the 8 columns with the PMMA blocks, the 4 panels that will form the visible side which are now 12mm thick thanks to step 3.2
- The purpose is to assemble the columns on the panels and hang the panels together. We will make 2 panels of 1m*50cm by inserting 4 columns in two panels. You have at your disposal small files 3D printing to lock the threaded rods on the panels and to fix the two panels together.
- Make sure to glue the panels together before screwing the parts together. The result should be as in picture N°16. You then obtain two panels of 1m * 50cm. We did not fix these panels together because we added a board on the front between the PMMA on the visible side to solidify everything, but for aesthetic reasons, I advise you to find a solution to fix everything here.
We will now assemble the visible side with the LED panel made in step 3.1. If you have cut your threaded rods to 90cm, the easiest way is to take cleats about 12/13mm thick and aim at the two plates on top. This will allow the front panel to be completely closed.
As we had not cut our threaded rods, we placed a lot of pieces of cleats in various places to solidify the whole thing. To close the panel and make it look good, we put long plastic brackets on it and painted it black. I think that the black painted cleats method will give a much better result. The result of the front panel given in photo N°17 and 18.
Step 4: Electronics & HMI
- Assembly of the HMI. Cut the files provided in this step to mount the display, DMX plug and jack plug. Adapt the file according to the size of your port jack, DMX socket and display.
- To protect the Raspberry Pi, I drilled a hole in the tray to run the cables. The raspberry Pi is placed in a box to protect the electronics outdoors (available in DIY stores).
- Attach the screen block to the stand with brackets so that it can be opened if necessary. The jack port to be taken into account is the microphone input so that the sound can be input for processing. The installation of the DMX socket is not mandatory, see section 7.
- We also made a chest to lock up the power supply. The result of the whole is shown in photo N°19. On the Raspberry Pi, the signal for the LEDs must be connected to GPIO N°18. However, since the GPIOs of the Raspberry Pi are 3.3V, we need a logic level converter to convert the signal to 5V. Refer to the documentation and wiring of the BOB-12009 from Sparkfun.
Step 5: Cable Management
The cables that come out of the panel for power supply are brought along the counter by cable glands, you can see the rendering photo N°20.
Step 6: Code
Everything was coded in python. You can download it in the files provided. To configure the Raspberry Pi, you must set Alsa audio to specify that the USB sound card is taken into account by default. Indeed, our sound input here is the microphone port of the USB sound card. The Raspberry Pi does not have a default audio input, so this is our only option. You must then adjust your Raspberry Pi to use the Waveshare screen, refer to their documentation. Finally, it remains to ensure that the start.sh script starts with the RaspberryPi
Step 7: DMX Feature
DMX is a communication protocol based on RS-485 and is widely used for light control in events. The aim is to add an interface so that the panel can be controlled by a lighting control unit.
We would then have a superb 80 pixel screen that shines throughout your room. Software modifications will be required, but as far as the hardware is concerned, I will leave you the schematic and layout of the PCB to make a DMX-USB converter. This converter can be simplified since,at this moment, it takes into account transmission and reception but only reception is of interest here. The optocouplers are used here to electrically isolate the Raspberry Pi to protect it from possible current leakage from other lights. Please find EAGLE file attached to this step.
Step 8: Conclusion
You now have a full guide to do it yourself. I'm looking to upload a video to demonstrate the last version of the code.