Matrix LED Candle Light Using Arduino

Matrix LED Candle Light (1)


in this instructable you will learn how to build a very long lasting LED-Matrix-Candle.Matrix LED Candle Light (1)










It looks very modern, doesn’t smoke 😉 and can be reloaded with your smartphonecharger.

The yellow light gives you a very good expression of a real flame.

To be exact: it is a video of a real flame which is converted into led-commands.

I came across this idea on several maker-faires and by watching “flame pendent” on adafruit.

While the adafruit is nearly perfect, it doesn’t look elegant or at least like something i would put into my livingroom. And adafruit isn’t the cheapest way to build something.

The ones on the maker-faires where kits. Nothing against kits, but you have to solder every SMD-LED by hand.

And it was quite expensive, too.

You can buy ready-build candles from Ingo Maurer … if you have the money.


A bright, modern looking LED-Candle on a budget. Can’t be that hard to build…

Step 1: What You Need

 You Need (2)

















  • 3D-printer (or printed parts)
  • quickcrete, (concrete)
  • arduino pro micro 16Mhz (8Mhz doesn’t work)
  • TP4506 LiPo-loader
  • Adafruit LED-Matrix (yellow) and PWM Driver
  • some 1.5mm aluminium sheets (and a way to bend it)
  • double-sided gluetape
  • thin wire
  • small switch
  • one 18650 batterie with soldertips (no cheap ones, choose samsung or panasonic)
  • spraypaint (black matt recommended)

The soldering is quite easy.

If you can’t get the aluminium or the 3D printed parts, you can contact me.

I still have some of them. This project didn’t work on the first or even the third try. I’ve changed a lot while building and have some spare parts.

To give you an idea of the construction, have a look at the animation.

Step 2: Print the PartsPrint the Parts (1)








You don’t have to print many parts.

It’s the inner housing and the bottom plate (which contains the switch).

At least 4 little helpers, which will be needed to guide the wire through the aluminium.

After printing you should try if everything fits in. Or at least the Arduino and the TP4506.

If you dont want to use aluminium and may have a better idea, you can change the files, too.

All Fusion360 files are included.

Step 3: The LED-Matrix

The LED Matrix (1)

Every solderpoint is printed on the modules, so you can’t make many mistakes.

But you need to be carefull. Don’t solder the pins without numbers.

You should solder only one side on the last pins to get the black placeholder on both sides.

So: solder this Pin to the PWM but not to the LED-Matrix.

Have a look at the picture 3. The matrix will be placed on top of the aluminium and “stands” on the placeholders.

I’ve tried several methods. Solder it before adding the shaft? After adding it? None is better.

Cut the pins as short as possible AFTER soldering to get a nice finish.

(This pictures are a little bit older. You don’t need screws anymore)

Step 4: The ShaftThe Shaft (1)











Two bended parts. One of them has to be 5mm longer than the other one. 1.5mm aluminium (very important)

Mine are about 185mm high, 28mm width (important). The bended part is about 18mm long.

That way it fits perfectly between the LED-Matrix and the PWM-Controller.

To fit the cables between those parts, you have to glue the little helpers with double-sided tape on the longer one.

Just mark it with a knife. They should be placed about 3cm higher, so the helpers do reach into the display.

On the bottom they can reach into the housing. That way the hold the batterie in place, too.

But don’t let them get too long into the housing. It’s not much room in there.

Put the wire between the helpers and place the other shaft. As written before: 5mm difference.

You can place the display on top to get a perfect match.

Cut the double-sided tape just under the display and glue the second shaft on the helpers.

Congratulations. This was the first part where everything could have been gone terribly wrong.

Use some thicker double sided tape on the “feets” and peel the siliconpaper of.

Now you have to use some force to push the shafts through the housing. It does fit, but it’s as tight as possible.

Step 5: Molding the Base

Molding the Base (1)










I’m a big fan of quick drying concrete. You can mix it quite liquid and it still works very good.

To build the mold, i’m using waterresistant plywood. In Germany they are called “Siebdruckplatte”.

10mm around and 15mm on top of the housing is enough concrete.

Prepare the housing by sealing the USB-Port and with very thin (tesafilm) tape, the shafts.

If you miss this part, the concrete will pour into the shaft. Looks terrible and the concrete will tend to tear apart at exactly that position.

Put good double-sided tape on the bottom plate of the housing. This way the hole thing will stay in place while pouring the concrete into the mold.

Let it dry at least twice the time you think it should have been enough time.

If the base doesn’t look perfect enough you can file the edges or use some sandpaper.

It doesn’t have to be perfect. It’s concrete. It has to have some “errors”.

You need to peel the double-sided tape of the bottom plate. Use a spatula to get it of the wood.

Step 6: Put Color on It

Put Color on It (1)

The aluminium should be cleaned with some kind of alcohol.

Using isopropanol is allways a good way to start. You don’t have to grind/sand the surface before spraypainting it.

Just cover the concrete as precise as possible at the entrypoint of the shaft.

And cover the wires and little helpers on top.

Spray two or three very thin layers to get a perfect finish.

Let it dry twice the time as noticed on the spraycan.

At this point i let it cure over night in a warm room before getting to the next steps.

The concrete will change the colour over night.

Step 7: Electronics (in the Box)

Electronics in the Box (1)










Flash the Arduino with the added code. You can try the code from adafruit, but it will not fit. Just a little bit to big.

EDIT: I’ve added another code. It’s one frame smaller. Just in case.

EDIT 2: I’ve added a data.h with rotated frames.

I’ve deleted just one frame and recompiled the code with the python script. Using 99% of space.

28664 bytes … just 6 bytes left.

While you flash you will see three LEDs. One in constant red and two blinking. The constant red LED (near to the usb-Port) should be destroyed with a very small plier. Well, you could change the code, so the LED doesn’t light up, but you can destroy it, too. And i don’t think that there is enough space left for the code. Or you have to delete another frame.

The connections are quite easy.

Arduino -> Display

D2 -> SDA

D3 -> SDL


Ground -> Ground

TP4506 -> Arduino

Out – -> Ground

Out + -> /Switch -> RAW

TP4506 -> Battery

self explaining

Just make sure all wires are long enough. I’m using 10cm long wires.

Solder every solderpat before soldering the wires on them. You don’t want to push the wires through the pinholes.

Just solder them on the pinholes and think of the way the wires will bend, when you have to put all parts together.

Step 8: Electronics and the Display

Electronics and the Display (1)

If you bend the pre-soldered endings from the wires just a little bit, those endings will just slip into the pinholes from the display.

This is the most annoying part in this instructable. You may pull the wires from within the housing to get a better position.

Trust me, it will fit. I’ve made three of them, but couldn’t find a real good solution.

Check your connections twice.

First test. Finally. You will be amazed.

If the display just gives you one random pattern (see picture 1), your batterie is to low.

Now you can peal off the upperpart from the siliconpaper on the helpers and put the display right in place.

As gently as necessary. Everything in place and it still works? Fine. To fix the display finally, you should pour some clear glue from top through the Matrix and the PWM-Driver. Just where the wires where soldered.

The glue will find a way through the wires and glues the Display onto the helpers.

Step 9: Final AssamblyFinal Assambly (1)











You should bring the Arduino first into position, followed by the TP4506.

There may be too much space for the TP. If thats the case, you can glue it.

You should be able to push a USB-cable into it without moving the TP inside the housing.

Now bring the isolated batterie into it. It’s getting quite full in here. Try to bring the wires down.

All in place, try to put the bottom plate on it. If it doesn’t fit, you can use a plier to break the noses away.

They are just an extra support to the batterie.

Put some feet under it, if you like.

Step 10: Final Thoughts

The candle lasts 29 hours until it has to be reloaded.

You can even get a little bit more runtime by using a adafruit trinket. But it’s quite expensive.

I’ve made some tests with several Arduino-like-systems:

WEMOS D1 mini: starts at 3.3 V and draws 0.15A

Pro Micro: starts at 3.2V and draws 0.1A

Original Trinket: starts at 3V and draws 0.08A

A nano doesn’t work because it needs 4.4 V to start (drawing 0.11A)

A 8MHz pro micro gives you about 12 frames per second. That will drive you crazy. So don’t even try.

Read more: Matrix LED Candle Light

Leave a Comment

Your email address will not be published. Required fields are marked *