GlassCube - 4x4x4 LED Cube on Glass PCBs




Introduction: GlassCube - 4x4x4 LED Cube on Glass PCBs

About: I am a physicist, part time maker and electronics enthusiast. My projects revolve mainly around daily-use items, toys and decoration with a focus on unconventional mechanisms and high standard of design.

My first ever instructable on this website was a 4x4x4 LED Cube using glass PCBs. Normally, I do not like to do the same project twice but recently I came across this video of french maker Heliox which inspired me to make a bigger version of my original cube. In her video Heliox comes up with a much simpler process to manufacture glass PCBs that does not involve etching but instead she uses a plotter to cut the traces from a self-adhesive copper foil which is then transferred to a glass substrate. Since plotters are not that expensive and could also come in handy for other projects I just got one to try the process for myself.

Apart from being a bigger version of my original cube this version also uses a custom PCB based on a SAMD21 microcontroller and a housing made from lasercut acrylic. The cube can be programmed with the Arduino IDE and is also compatible with CircuitPython.

The GlassCube kit is now also available on Tindie.

In case you purchased the kit you only have to do solder the LEDs (step 5), assemble the housing (step 8) and interconnect the layers (step 9).


  • 64 pcs - WS2812B 5050 SMD LEDs (e.g. aliexpress)
  • 4 pcs - 100 x 100 x 2 mm glass plate (I found this really cheap German supplier which only charges 0.20 EUR/pc)
  • 2 pcs - A4 sheets of self-adhesive copper foil (e.g. amazon)
  • 1 roll - plotter transfer paper (e.g. amazon)
  • 1 set - lasercut acrylic (see below)
  • 1 custom PCB (see below)
  • 4 pcs M2x8 screws + nuts

The total costs of all materials including the lasercut service and PCB manufacturing is about 100 EUR.


  • Silhouette Portrait 2 plotter (e.g. amazon)
  • laser cutter or online lasercut service (I am using
  • soldering iron
  • heat plate or reflow oven for SMD soldering (or advanced hand soldering skills

Step 1: CAD Design

The housing and PCB dimensions of GlassCube were designed in Fusion360, I have attached the design below.

The edge columns and top plate are made from 3 mm thick transparent acrylic. The layers with the LEDs are made from 2 mm thick float glass. The bottom plate is a custom made PCB.

Step 2: LED PCB Design

I used Eagle to design the layout of the glass PCBs. Since cutting the traces with a plotter is not as accurate as etching them with the toner transfer method the minimal trace width is limited. I tried different trace widths and found that 32 mil was the minimum size I could use as thinner traces often peel of during plotting.

In order to be able to cut the traces from the copper foil the board layout had to be converted to dxf. I took me a while to figure out how to do this correctly so let me go through the steps in detail

  1. open board layout in Eagle
  2. hide all layers except top layer
  3. click File->Print then select Print to File (pdf)
  4. open pdf in Inkscape
  5. use the path slection tool to mark a single trace then click Edit->Select Same->Stroke Style this should mark all traces (but not the pads)
  6. click Path->Stroke to Path this converts the path outlines to new paths
  7. mark all paths (including pads) by selecting the path selection tool and then pressing ctrl+a
  8. click Path->Union this should combine all paths and remove any cut-lines inside "filled" areas
  9. click File->Save As and select *.dxf as file format

The dxf file can be found here on my GitHub.

Step 3: Cutting the Copper Foil

The dxf file was cut from A4 sheets of self-adhesive copper foil with a Silhouette Portrait 2 plotter. The copper sheets were first attached to the included self-adhesive cutting mat. The software settings that I used for cutting can be seen in the attached picture.

After cutting the excess foil has to be carefully removed. In order not to damage the cut foil I left the whole A4 sheet on the cutting mat for the following steps.

Step 4: Transferring the Copper Foil

The cut foil was transferred onto the glass plate using transfer paper which is just another self-adhesive foil. The transfer paper is attached onto the copper foil and then slowly peeled off so that the copper foil keeps sticking to the transfer sheet. Then it gets attached to the glass substrate and the transfer paper is slowly peeled off so that this time the copper foil sticks onto the glass plate.

The board layout has two markers in the upper left and right corners which help to correctly align the foil on the glass plate. After attaching the markers can again be removed from the glass plate.

Step 5: Soldering the LEDs

The SMD LEDs were soldered onto the glass plate by hand. I also tried to attach them by using a heat plate (actually my stove) but as the picture shows this turned out to be not a good idea. If you have a proper reflow oven it might be worth a try but depending on the type of glass that is used there is a serious risk that it will break during heating.

Concerning the orientation of the LEDs there are two different layouts. For the first and third layer of the cube the orientation will be different than for the second and fourth layer. In this way it is easier to interconnect the layers later.

Step 6: Microcontroller PCB

Instead of relying on a commercial development board like the Arduino Nano, I designed a custom PCB in Eagle for controlling the LEDs. The adavantage is that I could shape the board so that it fits nicely into the cube. The board is based on a ATSAMD21E18 microcontroller which is the same one that is used in Adafruit's Trinklet M0. I selected this MCU because it has native USB and does not require an FTDI chip for programming. Also Adafruit provides bootloaders that are compatible with the Arduino IDE as well as CircuitPython.

One note about the board is that it works with 3.3V logic while WS2812B should be used with 5V, however, many people have shown that operation with 3.3V is also possible.

I got my PCBs from the Gerber Files and BoM can be found on my GitHub account.

With some skills the SMD components on this PCB can be soldered by hand although a heat plate or reflow oven will of course work better.

Step 7: Flashing the Bootloader

I used the UF2 bootloader provided by Adafruit for their Trinket M0 boards. The MCU was flashed with the help of a J-Link tool. Detailed instructions on how to flash the bootloader can be found on the Adafruit website. The great thing about Adafruits UF2-SAMD bootloader is that after first installation, the MCU appears as a flash drive and you can just drag a UF2 file onto the removable drive to flash it again. This makes it very easy to e.g. switch between the Arduino IDE and CircuitPython.

Step 8: Lasercut Housing

The housing of the cube was cut from 3 mm thick transparent acrylic. I used an online laser cutting service ( The corresponding dxf files can also be found on my GitHub account. The housing consists of 4 posts and a top plate. The posts are attached to the main PCB on the bottom using 4 pcs of M2x8 screws and nuts.

Step 9: Connecting the Layers

After the housing was assembled I connected the layers by soldering wires onto the pads on the glass PCBs. This turned out to be quite a delicate procedure and there is a risk of burning the acrylic or ripping of the copper pads. Note that the GND and VCC pins switch positions on every layer so the wires have to be crossed. To avoid that the wires ripp off the copper pads I fixed them with a small drop of hotglue after soldering. The first layer was connected to the bottom PCB with a Dupont connector but the wires can also be soldered directly to the PCB.

Step 10: Uploading the Code

I used CircuitPython (version 4.x) to program the cube. Once you have installed the CircuitPython bootloader you can just run code by saving it directly to the MCU flash drive. There is no compiling necessary also you can e.g. reopen the code and edit it.

So far I have just created some basic animations but it should be relatively easy for anyone to extend the code. The code can be found on my GitHub, to run it needs the Adafruit Neopixel and fancyLED libraries found here.

Step 11: Finished Cube

I am quite happy with the look of the cube, the glass PCBs and acrylic housing work nicely together. It was also fun to create my own MCU board for the first time and I am almost surprised that it worked out on the first try. Since I have some spare PCBs and acrylic parts I would like to make this cube available as a DIY kit on Tindie. So if you are interested keep looking out for it or just write me a private message.

Also if you like this instructable please vote for me in the Make It Glow Contest.

Make it Glow Contest

Runner Up in the
Make it Glow Contest

Be the First to Share


    • Toys & Games Contest

      Toys & Games Contest
    • Big vs Small Challenge

      Big vs Small Challenge
    • Fix It Challenge

      Fix It Challenge



    1 year ago

    Hi, I've just built this using the kit on Tindie. It's almost a success :-) I found the LEDs difficult to keep in position, so I actually used tiny pieces of bluetak to hold them in place. Most of it's working, but I stupidly soldered one LED in the wrong orientation (oops...). I'm hoping that I can remove it and replace it - luckily the Tindie kit contained 65 LEDs :-) Watch this space... and thanks for the design and kit, it's really nice.


    Reply 1 year ago

    To solder the LEDs I found that its easiest to first tin the solder pads on one side of the PCB then hold the LED in place with tweezers and attach it by remelting the solder. I hope you manage to get the kit working. Just let me know if there are any problems.


    Reply 1 year ago

    Hi, the bottom 3 layers are working, but the top one isn't. Any clues how to debug? The power supplies look good, I guess I've either destroyed an LED, or got a bad connection somewhere. The fact the whole layer doesn't work seems suspicious. Assuming I'm not working from home (safe from Covid-19), I might be able to borrow an oscilloscope at work. If not, is it possible to measure any voltage across the DIN/DOUT connections? Thanks for your help.


    Reply 1 year ago

    I will write you a private message to help with the debugging


    Reply 1 year ago

    Just to follow this up - with some advice on debugging (thanks!) and a replacement LED, it's all working now :-)


    1 year ago

    Wow, this version looks even more gorgeous than the smaller version. :D

    Wish you best of luck in the contest!


    1 year ago

    (This comment is a bit off-topic)
    I love see-through electronics. The less materials used, the better. For this reason I personally prefer the traditional wireframe led-cubes. But this is still quite amazing to see. Maybe it would've looked better in a closed glass box instead of using the spacers in the corners, but yet again, this is a personal preference.
    Anyways, I wasn't aware of glass PCBs. I can only imagine how amazing some things could look if the PCBs were see-through. I have to thank you for that.

    I just got an idea. What if you make a glass box around the cube as suggested above, but instead of just using the glass as is, you'd put a reflective foil over it which gives it an infinity-cube-look :o


    1 year ago

    This is a beautiful project! I may yet make this although my not-done-projects list is quite large. I've been wanting to build an LED cube for a long time but the spindly wire designs aren't quite as aesthetic as your glass plate type. That's a stroke of genius!

    Regarding the heat flow method breaking the glass. One could purchase a 3D printer heat bed which is made from borosilicate glass and have it cut to the desired size. The edges would have to be sanded/diamond-honed to reduce the chance of cuts, but that's a minor complication.

    I've done copper PCB etching in the past. Wouldn't it be possible to attach the copper foil to the glass, mask and etch it in a similar manner? I realize now that the etching solution would probably dissolve the adhesive.

    Even though you have a custom circuit for control, I'm inclined to go the Arduino route for a bit more on-the-go flexibility for programming. I don't see that as a complication, as it could be easily housed in a compartment under the bottom layer.

    Congratulations on a great instructable.


    Reply 1 year ago

    Thank you.
    In my first instructable I also used copper etching to make glass PCBs. The advantage is that you can make much smaller tracks. There are adhesives which easily survive the etching.