Make your own custom Minecraft-inspired Torch lamp from epoxy resin. Embed a strand of fairy lights inside and set it on top of a Circuit Playground Express. The onboard NeoPixel lights provide a lovely, flickery torch effect. This gorgeous lamp glows from the inside out.

Add a piece of shiny copper tape to the base and you can change light modes with a touch of your finger. Capacitive touch control is just like magic! 

We've provided a simple 3d printable base model, or you can get creative and design your own display mount. We made ours look like Viking Dragon Ships to go with our Dragon Wall Sconce, and now we sail into sleep at night with fiery dragonish gargoyles watching over us.


Electronics Build: Easy - This is a great beginner project if you're new to electronics. The wiring is really simple, and there's no soldering required.

Software / Coding: Easy - We've provided code you can drag-and-drop to program your Circuit Playground Express using MakeCode, Microsoft's free online coding program. It's easy to customize our code or come up with your own.

Physical Build: Challenging - Making the resin block is the hardest part of this project. There are a lot of ways it can go wrong, and epoxy resin can get expensive when your first or second pour doesn't go right.

On the other hand, it's really satisfying when it does go right, and you can create something that catches light - and people's eyes - like nothing else.

Adafruit Materials Needed

Circuit Playground Express is the next step towards a perfect introduction to electronics and programming. We've taken the original Circuit Playground Classic and...
Out of Stock
Add sparkle to your project with these lovely silver wire LED strands. These strands are very interesting, they use two silver wires that are coated so they don't short if they...
In Stock

I want my lamp to be stationary, so I'm powering it via its USB port. If you want a mobile torch, you could also easily power it with a battery plugged into the Circuit Playground's JST connector.

1 x USB Cable
Pink and Purple Braided USB A to Micro B Cable - 2 meter long
1 x Battery
Lithium Ion Polymer Battery - 3.7v 2500mAh

I'm using the Circuit Playground's built-in capacitive touch sense ability to act as an on/off switch and mode change switch. In order to make this beautiful and accessible, I'm using a short bit of wire stuck to a band of copper tape. The copper tape will transfer my touch to the Circuit Playground. It's so elegant!

1 x Copper Tape
Copper Foil Tape with Conductive Adhesive - 25mm x 15 meter roll
1 x Wire
Silicone Cover Stranded-Core Wire - 2m 26AWG White

We've included a file for a 3d printed lamp base that holds the Circuit Playground Express just below the resin torch, with a channel for your battery or USB cable. If you want to 3d print the base, you'll need some filament!

1 x Filament
Filament for 3D Printers in Various Colors and Types

Epoxy Resin Shopping List

My torch is 3" x 3" x 9". If you're making a similar sized torch you'll need about 6 cups of deep pour epoxy resin, alcohol inks or resin dye for color, and a piece of high-density polyethylene (HDPE) or melamine to build the mold. You'll also need gloves, mixing cups and stirring sticks and various other accessories. I've made an Amazon shopping cart with everything I use when I'm pouring resin.

Materials for 1 Torch

  • 6 cups of Deep Pour Epoxy 
  • Alcohol ink in your preferred color
  • Graduated mixing cups in quart and half gallon size
  • Lid for the quart sized cup
  • Mixing sticks
  • Protective gloves
  • 36" x 4" strip of HDPE plastic for the mold
  • Copious amounts of hot glue
  • 99% alcohol to release the hot glue during de-molding

We'll connect the fairy lights strand to pins A1 and G on the Circuit Playground Express. We'll also connect a wire to pin A3, which we'll stick to the copper tape to activate the capacitive touch switch.

You can power this project either with a USB cable or a battery plugged into the battery port.

Let's start by getting our code uploaded, so we can test the lights immediately when we connect them later on.

MakeCode is an easy way to get up and running with the Circuit Playground.  No prior coding knowledge is needed, and it's an easy way to experiment and learn to think like a coder. You just drag and drop code blocks, like building with Lego. MakeCode makes coding fun!

Head over to this Intro to MakeCode guide for more info on getting started with MakeCode.

How To Upload the Code

  1. Open the project with the button above and click the blue DOWNLOAD button near the bottom of the project.
  2. Plug your Circuit Playground into your computer via its USB port and click the "reset" button.  All the lights will turn green and your Circuit Playground will appear as a drive on your computer called CPLAYBOOT
  3. Drag the code you just download onto this drive to program the Circuit Playground -- like putting files on a USB stick. That's all you need to do.

Note: If you plug in the board and you see a drive called CIRCUITPY appear, press the reset button again (double-click) to get to CPLAYBOOT.

How To Use It

We'll attach a wire to pin A3 and connect it to copper tape on the outside of the torch. This copper tape will act as our "switch" using the magic of capacitive touch. 

There are 3 modes: Fairy lights only, Fairy lights and Circuit Playground lights, and Off.

The torch will start up with the fairy light strand lit. Touch pin A3 and the Circuit Playground's lights come on, illuminating your torch with an orange flicker animation. Touch it once more and the torch turns off.

How to Customize Your Code

You can add your own modes, give yourself more speed variations, or set it to start up on your favorite mode. The possibilities are endless! Poke around and change some stuff, and if it stops working you can always come back here and start fresh. Make it yours.

Take a look at the green boxes on the left: on start and forever. These are found under the LOOPS tab at the left. Anything in the on start block runs just once, when the board first powers up. Anything in the forever loop runs over and over, forever. 

On Start Block

If you add or remove modes, change numModes to reflect the total number of modes (including mode 0). We have three modes: 0 (fairy lights only), 1 (fairy lights plus CPX), and 2 (off), so we've set numModes to 2. It's a bit confusing, but computers like to count starting with 0!

To select a different start-up mode, change set mode to 0 to the number of the mode you want to appear first. 

You can also change the Circuit Playground brightness by choosing a number between 0 and 255.

Forever Block

Here is where we set up the order of our modes, and turn the fairy light strand on and off. If you want to add more modes you can do it here by clicking the + button at the bottom. Be sure to increment the mode number in each block you make, and don't forget to change numModes in the previous block if you add or subtract modes.

The digitalWrite lines control pin A3, to which we've attached our fairy lights. We turn the light strand on by setting A3 to "high." Easy!

The digitalWrite code blocks are found under ADVANCED > PINS.

NeoPixel Control Function

The blue box in the middle contains our LED function. This is where we're telling the Circuit Playground what we want its onboard lights to do - in this case, flicker like a fiery torch.

The first purple block refers to which NeoPixel we want to light up. There are 10 NeoPixels on the face of the Circuit Playground, so using pick random 0 to 10 will get them all to flicker in a random pattern.

We're using the HSV method to control the lights. HSV stands for Hue, Saturation, and Value. Here's some more info about how HSV works to control lights.

We can choose any hue (color) between 0 and 255. I wanted a range of oranges and yellows so my values are between 5 and 30. If you want your torch to flicker in a different color, change the hue values around until you like what you see.

Saturation I left at 255 so the colors are vibrant and fully saturated. If you want a pastel or white light, you can pull the saturation numbers down to accomplish that.

Value equates to the brightness of the LED. I wanted them pretty bright so I chose a range of values from 225-255, 255 being maximum brightness.

Capacitive Touch Switch Control

This block is where we tell the Circuit Playground to scroll through the modes each time the pad labeled A3 is touched. When it reaches the last mode (defined by the numModes variable from the on start block) it resets to 0.

There are also other triggers available -- you can trigger a mode change or variation when you shake or move the Circuit Playground, or whenever a loud sound is heard, or a whole host of other options. Look under the INPUT tab to see them all.

This is an easy way to make your project react to its environment. Make the torch change color whenever you clap your hands!

Cut the battery pack off the fairy light strand. It's easiest if you cut the thicker shielded wires near the battery pack instead of cutting through the thin copper wires closer to the lights. Those copper wires have a resin coating and they're very tiny, which makes them tricky to solder to (though not impossible! Just scrape the resin off with a utility knife first).

Strip a bit of shielding from your wires. One of these wires will connect to G on your Circuit Playground and the other will connect to A1. Which is which? I have no idea.

We'll figure it out by trial and error. With your code uploaded to your Circuit Playground and a power source plugged in, touch the wires to pins G and A1. If the strand lights up, you've got it right! If not, try them the other way.

You can solder the wires in place if you've got a soldering iron handy. Otherwise, grab your bolt-on kit and pull out two screws and two bolts. 

I find it easiest to loop the wires down through the holes on the Circuit Playground and then push the screw in on top, and then secure it all with the bolt on the back of the Circuit Playground.

Next we'll attach a short 3-4" wire to pin A3. This wire will get stuck to our copper tape and transfer the capacitive touch signal from your finger to the board.

You can solder or use another screw and bolt from your bolt-on kit.

Strip a lot of shielding from the far end of the wire. Touch the bare wire and watch your lights go on and off.

Build the Mold

I have a specific size and shape in mind: I want a lamp that's 3"x3" and 9" high. I also want a shiny smooth surface right out of the mold, so I don't have to do any sanding. 

There are a lot of commercially available resin molds, but I couldn't find anything in this exact size, so I decided to build my own mold.

Uncured resin is wickedly sticky, and it will stick and bond to just about everything. There are a few substances resin won't stick to, so that's where we'll look to find mold materials. This very short list includes:

  • HDPE (high-density polyethylene) plastic
  • Clear packing tape
  • Hot glue
  • Melamine (plastic veneered plywood)
  • Silicone

I'm using HDPE (high density polyethylene) and hot glue. The HDPE plastic seems to give the smoothest finish, and is fairly inexpensive and easy to work with, and they had it available at my local Tap Plastics, so that's what I used to build my mold.

I cut three pieces to 10" x 4" for the sides and bottom of the mold. I cut two end pieces 3" x 4". 

I'm making them an inch larger than the desired size of the finished piece to allow for the thickness of the plastic and give myself plenty of room to add hot glue on the outside of the mold, to hold it all together.

To help with alignment and make things fit tightly, I used my table saw to cut very shallow dado cuts 1/2" from the ends of the side pieces, and on all 4 sides of the bottom piece. This is an optional step but it really helped! The first mold I built did not have the dado cuts and it was really tricky to get all the pieces squared up evenly. I also had a lot more problems with leaks when I didn't use the dado cuts.

Align all the pieces and glue the mold edges together with hot glue on the outside. Use a lot of glue. A LOT of glue. This resin is thin and will seep right out of any cracks it can find.

Once all your edges are glued and secured, fill your mold with water. If there are any drips or leaks, go back and add more glue. I also found it helpful to re-melt my glue with a heat gun and really press the wet glue down into the cracks and corners with a cotton swab.

Repeat your leak-test until your mold is water tight.

Once you've got a water-tight mold, you can use it to measure the exact amount of resin you'll need. Fill your mold with water to the desired depth, and then pour the water out into a graduated container. My mold holds exactly 6 cups of water when I filled it to 3" deep, so that's how much total resin I will mix up.

Gather Supplies

  • Deep Pour Epoxy Resin
  • Alcohol Ink or Transparent Resin Dye
  • Graduated mixing cups
  • Stirring sticks
  • Gloves
  • Heat gun

Prepare the Resin

There are 3 basic categories of epoxy resin: casting resin, tabletop resin, and deep pour epoxy resin. For this project we're using deep pour epoxy. The epoxy I'm using can be poured up to 2" deep. My finished torch will be 3" deep, so that means I'll need to do two separate pours.

I'm using Pourable Plastic resin. This resin is a 2:1 mix type - I'll need twice as much of part A. My earlier water test determined that I need 6 cups of resin total to fill the mold. That works out to 4 cups of part A and 2 cups of part B.

Since I can only pour up to 2" deep, let's cut that in half for our first pour. That means we'll be using 2 cups of A and 1 cup of B this time.

Double Check your Math

If you're using 2:1 epoxy:

Total Measurement / 2 = First Pour Measurement
  First Pour Measurement / 3 = Part B Amount
    Part B Amount x 2 = Part A Amount

For a 6 cup mold:

6 / 2 = 3 (First Pour Measurement)
  3 / 3 = 1 (Part B Amount)
   1 x 2 = 2 (Part A Amount)

If you're using 1:1 epoxy it's a bit easier - just divide your total measurement by 4 to get the required amount of each part for the first pour.

Add Color

We want the color to be exactly the same for both pours. If we just add color willy-nilly to each pour, it'll be very hard to get an exact match.

The torch on the right was my first try. I carefully counted the number of color drops in each pour to get it as close as I could, but as you can see, the two halves don't match very well.

The torch on the left uses the pre-mix color method below, and the seam between pours is much less obvious.

Had I been thinking even further ahead, I could have mixed the color for all four pours so that both torches match each other as well. 

To guarantee a color match, we'll add our color to all 4 cups of part A, then mix up half (2 cups) of the colored resin to 1 cup of part B right before each pour.

Add color until your part A is a bit richer and darker than you want the finished torch - remember, it will get diluted a bit when you add the B part.

Mix it up really really well. Unmixed color can leave streaks in your finished torch.

Pour half the colored resin into another container. Cover up the rest and keep it out of the way until you're ready for the second pour.

Add in your part B resin. Mix it up according to the directions - this resin wants to be stirred for five full minutes. 

Stir slowly and thoroughly, scraping the sides of the container and occasionally scraping off your mixing stick as well. Unmixed resin can leave sticky or soft spots in your final project.

Also, don't mix too fast! I watched a lot of YouTube videos and saw professionals making resin river tables using a hand-drill based mixer. I tried this at home with disastrous results - the fast-mixed resin got so many bubbles whipped into it that it turned an opaque white and ruined my project. Be patient and mix slowly!

First Pour

Arrange your fairy light strand artfully inside your mold, with the end of the wire coming out near the bottom. I used a small clamp to hold the wire in place on the bottom of the mold.

Pour the resin in and wait a minute or two, then pop any small bubbles that arise by waving a heat gun above the surface. Don't over-heat the resin. It will do some more out-gassing on its own.

Put your mold someplace that's comfortably within the recommended temperature range on your resin bottle. My room was a bit warm, so I turned a fan on to help keep the temperature down and slow the curing process. 

If the resin gets too hot or the pour is too deep, things can get weird.

Second Pour

Wait until your resin is fully cured -- in my case the wait was 48 hours. Mix up the second half of your colored resin with the second half of your part B, and pour it right on top of your first pour. Make sure the lights are fully submerged. Wait another 48 hours. This is taking FOREVER! Be patient.. with luck, it'll all be worth the wait.

Use 99% alcohol to release the hot glue from the mold and pop out your beautiful torch. 

I had quite a journey of mishaps while working on this project. I ruined two Circuit Playground boards and wasted about $150 worth of resin. This resin is expensive, both in money and in time wasted, and mistakes can really hurt! In hopes that you will benefit from my mistakes, here are some things to try and avoid.

Don't Embed your Circuit Playground

I had success a few years back embedding a Trinket inside a resin necklace, so I thought I'd give a try to embedding a Circuit Playground and induction coil. Long story short: this was a huge failure. The resin seeped into the battery port and USB port, and into all the delicate nooks and crannies in the board. After two resin pours and 96 hours of cure time, I was left with a useless hunk of plastic that had eaten my careful electronics build. No bueno. 

Be Careful with the Wires

The spot where the delicate fairy light wires go into the resin is very, very vulnerable. I was letting my Circuit Playground dangle while I messed around with the resin, and the light strand broke right off. 

This happened to me TWICE with this project. The first time, both strands broke and I gave the project up for lost. The second time, just one strand broke and I was able to dig the second wire out of the resin using a soldering iron (sporting a tip I don't care about). I carefully melted the resin around the wire, then scraped it out and was able to re-solder the broken wire. I reinforced it with a plug of hot glue and am now being extremely careful lest it break again.

Don't Get Sloppy with the Mold

For one attempt, I added a "hockey puck" sized pile of hot glue to the bottom of my mold. The idea was to make a cutout for the Circuit Playground built right into the resin, so I wouldn't need to use a base underneath. This really didn't turn out well. The resin is clear enough that all the misshapen lumps are very visible, and the Circuit Playground doesn't quite fit in there anyway despite my best efforts. I would have preferred to just leave it smooth on the bottom.

Sanding the Resin Surface

For this attempt, I shaped the lights into a fairy shape and then embedded the fairy-light fairy in the resin as though she were trapped in amber. I still think this is a neat idea, and may develop it further, but this one didn't really work out.

With this attempt, I used a chop saw to roughly shape the resin and used sandpaper to smooth off the corners and edges and get that rounded amber look. 

No matter how much I sanded and polished (I went down to 2000 grit sandpaper) I could not get the resin to look clear again. It does appear to be possible to get your resin to look clear - lots of people on the internet seem to be able to manage it. I couldn't get there without investing another $100 in an electric buffer, buffing pads and polishing compound. 

Mix Up All your Color At Once

As I mentioned on the resin pour page, it's really a good idea to colorize ALL your part A epoxy in one go, so all your layers match each other. Counting drops or eyeballing color will never result in an exact color match.

Stay Away from Mica Powders

Mica powders are opaque pigments that can produce absolutely gorgeous results when mixed into resin. However, if you're adding lights to the resin, do not use mica powder in your mix. Not even a little bit! The mica powder blocks the light entirely, and when used with deep pour epoxy it gives a dull, matte look to your project.


Bubbles in the resin are a very common issue. If your resin cures at too low a temperature, the bubbles don't escape as well. Teeny tiny bubbles are usually not a problem.. unless you put lights inside your resin. Then, the light strands seem to point out every single bubble or flaw in your piece.

My pieces have bubbles despite all my best efforts. I'm living with it. If you're a perfectionist, the way to fix this is to get yourself a vacuum chamber and let your resin cure inside it. 2-5 gallon vacuum chambers are commercially available (I don't own one, yet. So I don't have a specific recommendation). They'll suck all the bubbles right out of the resin, while giving you a dust-free and temperature controlled environment. If you want to do a lot of resin work, this seems like a very good investment.

This 3d printable base will fit a 3" x 3" torch, with space underneath for the Circuit Playground Express and a channel for a USB cable or battery cable.

I printed with 15% infill in PLA. 

This is a large enough piece that my first print curled up at the edges, so be sure you have a nice warm heated bed and a good strong layer of glue stick if you're printing on glass. For my second print, I also printed a raft to help with bed adhesion.

If you're printing in ABS, a fresh layer of blue painter's tape will help the edges stay stuck down firmly to the bed.

If your torch is a different size you'll want to modify the base so it fits your dimensions. It's fun and easy to edit 3d designs in TinkerCad. 

TinkerCad is a free online 3d modeling program that's designed to be simple and intuitive for beginners to 3d modeling. Models are made in a very organic way, by dragging shapes onto the workspace and squishing them together. They have a great Lessons section that teaches users to jump right in and get started with 3d modeling.

If your torch is larger than 3" across, you can simply scale the whole base up until it's the right size.

If your torch is smaller, you'll need to ungroup the pieces and shrink down just the square section. If you make the whole design smaller, the Circuit Playground will no longer fit in its hole and the USB cable may not fit through its channel.

Torches in 3d printed bases

For the 3d printed base version, I added a strip of copper tape around the base of my torch to act as my capacitive touch plate. I started at the back and wrapped the tape carefully all the way around the base. Then I placed the bare wire from pin A3 on top of the tape and added another layer, smoothing it down as much as possible.

The tape will carry a signal from your fingertip to the Circuit Playground, through the magic of capacitive touch. Cool!

Nestle the Circuit Playground inside the cutout in the base, being careful with the tiny copper wires. Plug in your USB cable or battery and nestle the torch into place.

For my final Viking Dragon Sconce version, I added the copper tape to the platform on the sconce instead of the torch itself. I used a dremel to rout out a space in the wooden platform to nestle the Circuit Playground Express into so that the torch sits flat on the platform. Then, I drilled a hole in the back of the sconce to run my USB cable through into the wall, and pulled it back out again near my power outlet.

The wooden sconce is made from a pre-cut plaque and pine board I found at Michael's. I stained it, and screwed together from the back with wood screws. 

The dragon is sculpted from air-dry clay over crumpled aluminum foil, and painted with acrylic paints and then rubbed with a blue iridescent pigment to give that metallic gunmetal sheen. 

This guide was first published on Aug 26, 2020. It was last updated on Aug 26, 2020.