Introduction: Round LED Matrix - 340x WS2801 Pixels
340 pieces of WS2801 pixels with 12mm RGB LEDs were used to create a simple to assemble RGB LED matrix/screen. While kind of expensive, they are extremely easy to mount, wire, and to control. This type of WS2801 pixel chipset was chosen for this project as they were readily available, was the correct package(resin cast), easy to control, 8-bit(256 levels each color) of color, and has a 2.5KHz PWM frequency. The WS2801 chips are controlled via a data and clock line, which is easily interfaced to the MCU, the WS2801 based pixels can be clocked up to 20 mHz, allowing fast updates(frame rate). Other pixel chipsets could be used, such as WS2811, WS2812, WS2812B, LPD8806, LPD6803, or others. See Pixel Chipset Information
The LEDs were mounted on a 48" diameter HDPE outdoor table obtained from the trash. It was easy to tool and provided rigid support for the LEDs. It was cut in half to make transportation easier, and to support a future center section. The LEDs were also divided into the two sections, that allows them to be used separately if needed.
The round shape of this matrix makes control from most software programs difficult, as the pixels are not in a standard order, as it is round, so each row has a different amount of LEDs in it. To control something like this, the control software must be able to (pixel) patch. Not all software is capable of patching. But the software NLED Matrix, designed and written just for small DIY matrices such as this one, is fully capable of patching and other functions required to control odd-shaped matrices. It supports single color, RGB and RGBW(check current release for support) based matrices.
Please note that the camera(phone) that the original construction images were on was lost before they were backed up. So photos here will appear out of order or have been recreated. Another reminder that everything you expect to keep should be backed up!
Visit the Project Webpage at www.NLEDshop.com/projects/roundmatrix
Step 1: Tools and Supplies
- Substrate to mount LEDs, I used a RubberMaid 48" diameter HDPE table found in a garbage pile
- Optional Hardware to connect the two-halves, used a pair of pad lock latches. And some large eyebolts.
- Matte Black Spray Paint
- Large Eye-Bolts
- WS2801,WS2811/12/B Pixels, Used 340x WS2801 pixels with 12mm RGB LED, resin cast
- LED Pixel Controller - Pixel Controller Ion or Pixel Controller Mini or Arduino
- Wire for Power Distribution, such as 22AWG 2-Strand Twisted Wire - Red & Black - Per Foot
- Wire for data connection, such as 4 Conductor 22AWG Ribbon Cable, 22 AWG, Per Foot
- Power Jacks, used 8-pin High Current DC Chinese type
- 5 Volt @ 20(30 would be better) Amp power supply, Power Supplies
- Safety Glasses
- Power Drill
- 29/64th Drill Bit
- Aviation Snips
- Work Table
Step 2: Prepare the Substrate
Start by cleaning up the surfaces that will be painted. Start with soap, water and a scrub brush. Rinse, dry, use sand paper to rough up the surface, HDPE does not take paint well, but with good surface prep it should hold alright. Then wipe down with acetone or isopropyl.
Mark The Grid:
This was a bit tricky since the substrate is round with no reference. A 2" x 60" ruler was crucial to making this easy and accurate. Started in the center, which had a hole in it for a umbrella(since it was a table) centered the ruler and marked both sides. Then moved the ruler outwards, lining up one side of the ruler to the previous line. Then did the perpendicular lines. So I was left with a 2" x 2" grid.
The design was done in Adobe Illustrator and the LED spacing, amount and positions were adjusted til an optimal design was found. 340 pixels was chosen so it would be 2 DMX universes, or it can run in mirrored on a single DMX universe.
Transfer the Pixel Layout:
The pixel layout was transferred onto the intersections of the grid lines. The underside of the table used, had reinforcing verticals that kept the table rigid. With a general idea of where the pixels were going, a hammer and chisel, an aviation snips and a razor, most of that was cut out to make room for the pixels to be pushed through. Where the pixels are, it has to be completely flat, which is where the chisel helped the most.
Start drilling the holes with a bit suited for the pixels, the resin cast WS2801 worked with a 29/64th, used a drill with an extra handle for added control. The plastic is soft, so it was easy to slip and make non-round holes, especially if some of the reinforcement wasn't properly removed from the underside. This was a tedious process, I would recommend getting it CNC drilled if it is a possibility.
Once all the holes are drilled some of them might be messy, clean them up with a razor or sharp chisel or reamer of some sort.
Last comes paint for the face side, of course HDPE does hold paint very well so it must be sanded well with some low grit paper. It needs to be scuffed pretty good for the paint to hold. Used matte black Krylon Fusion brand, works better than the alternatives. Has to be matte, gloss will be ugly, especially when it starts to scratch. I accidentally used the end of a can of flat and then matte, since they looked the same. And there is a definite difference, don't cut corners, use a matte finish.
Step 3: Install the LEDs, Power, & Mounting
Install the LEDs:
You will need to know what order your LEDs will be in, if you are doing a non-square you will have to snake the pixels around, but that will require the software you are using to be able to Patch where your pixels are so it can send the data in the correct order, and omit data for pixels that aren't patched. So first look into the what software you will use to control it and learn about pixel Patching. NLED Matrix is is utilized here as its good for small DIY matrices.
Once the LED layout is chosen, start pushing them through from the back in the correct order. The drill slipped or cut some of the holes oblong and in a few places the substrate broke and chipped. Best solution found was to use black hot glue round the inside of the hole before pushing the pixel through and add some more from the front. It is noticeable in regular light, since the glue is glossy, but the glued pixels don't look any different when the matrix is on.
The pixel strand can not carry enough current for all the pixels on a strand. So multiple "home runs" were made where possible, usually every 25 pixels a separate +5v and GND wire were ran to the input power connectors.(The red and black wires) The matrix is run on 5 volts, and requires 20A at maximum draw. Some high current connectors were required to safely provide that to the matrix. The matrix is divided in half, each half can be used on its own. Each half has a female connector, and one half has a male one as well. That allows both to be connected together, with one female left to connect to the PSU. Or each half can be connected individually to a power supply.
Mounting and Brackets:
4x eye bolts were installed on opposite sides of the matrix so it can be hung easily. It is more than strong enough to support its own weight and then some.
To hold the 2 halves together, a few things are done. The halves are joined on both sides by a latches, and in the middle with a hose clamp, that squeezes the hole where the umbrella would have gone through when it was a table.
Step 4: Controller and Software
- DMX-512: Common, but each universe supports only 170 pixels, and some controllers only support up to 160 pixels. Requires PC DMX Transmitter and a controller that supports DMX reception.
- Serial Port: USB to Serial Adapter would be used to interface. Baud Rate(transmission speed) and maximum supported pixels is software and hardware dependent.
- TCP/UDP: These are network connections. Either an ethernet enabled controller or a controller with a serial input that a Xbee or similar could be connected to.
- ArtNet: DMX over a network connection.
There are many to chose from factors such as control scheme, amount of pixels, and the pixel control IC type. Current controllers offered by NLED is the NLED Pixel Controller Mini and NLED Pixel Controller Ion. More controllers with various features will be available in the future.
Depending on the software used, other controllers based on Arduinos or similar can also work. NLED Matrix uses a simple serial routine that could be easily interfaced with a simple Arduino running one of the pixel control libraries.
Finding control software for odd shaped LED matrices can be difficult, there are a few options.
- NLED Matrix - Full video mixing with full patch support. Supports video files, images, generated content and DShow camera/screen grab input, which allows a visualizer such as Milkdrop to be used. Java based and a bit glitchy but open source.
- Glediator - Great generated effects, simple snake patching, wide range of data output options.
- PixelController - Many generated effects
- Madrix 2 or 3, by far the best software for controlling LED Matrixes. And is highly recommended. Supports patching and about everything else. It is expensive, but there is a full free trial, with one universe and is compatible with Enttec OpenDMX
Step 5: Software Setup, Patching, and Usage
Described here are the steps to set the the matrix for NLED Matrix software.
Config File: Methods and setups described in the manual.
- Copy a included config file, rename it, open it in a text editor.
- Go through the manual and set the relevent variables. Ensure there is a tab between the text define and the value, any spaces or extra tabs will result in software freeze or error.
- Especially set the matrix width and matrix height, and the patch file name.
- Open config.ini in the main directory and change the path to find your new config file.
Patch: Patching allows the pixels to be positioned out of order or in odd shapes. The software will always render square/rectangle footage, patching allows the software to arrange the order of the data so it ends up on the correct pixel. Also described in the NLED Matrix manual and NLED Matrix Patcher readme, see attached images. This is a crucial step and must be done carefully, missing pixels or setting them out of order will cause varying problems.
Footage: Due to the unique size and shape, video footage has to be created special for the size. Adobe After Effects worked well for making 22x22 sized videos. Videos should have high contrast of colors/levels to produce better results when displayed on the LED matrix. The NLED Matrix software includes several generation feeds, that also work well with small screens.
Step 6: Final Thoughts
Overall a decent project. Took a fair amount of time and effort to prepare the substrate and bust off all the extra supports. But aside from that, everything else went easily. And the results are quite impressive for a low pixel LED matrix, its been used out a few times and people are always fascinated by it.
- Would have used more pixels, and planned to run it on serial only, rather than doing 2 halves of 170 pixels so it could be controlled by DMX as well. As controlling LED screens over DMX can get rather complicated, as it does not offer enough data.
- Would have sanded the substrate more with heavier grit sand paper and ensured only Matte paint was used. As it has chipped and scratched.
Thanks for Reading, please Contact with any questions or comments. Visit our Profile Page for more Instructables. A full line of LED Controllers for both pixels and regular LEDs are available for purchase and more types will be added in the future. Most NLED Controllers are compatible with NLED Aurora Control, the cross platform software used for creating dynamic color sequences that can be designed on a computer and uploaded to a compatible controller for it to run by itself(stand-alone) Great for wearables, infinity mirrors, decorations, stage lighting, art projects, and more.
Please Contact Us with any questions, comments, or bug reports.
NLED is available for embedded programming, firmware design, hardware design, LED projects, product design, and consultation. Please Contact Us to discuss your project. Updates and More Info Can Be Found On The Project Webpage: http://www.nledshop.com/projects/roundmatrix/