Introduction: Neopixel Candelabra

The project came about as a means of making use of something that was only partly used and making it more user friendly.

The Candelabra was mainly used as a feature candle holder as the candles were very rarely lit being both a consumable and a pollutant.

As a result of this it occurred to me that it could still function as a usable Candelabra but instead of wax candles I could use light rods.

The light rods would make use of total internal reflection in the same way that fibre optic cables use light to transfer data.

The light source would be provided by Neopixel RGB Mini LED's the light rods would be made of clear resin and the control for the LED's would be provided by a MicroBit microcontroller.







3D Printer


USB cable

USB power adapter


2 part Epoxy Resin

22mm diameter poly tubing - (4 * 30cm lengths)

Lubricant to aid release of cured resin from moulds.

Epoxy resin polish

NeoPixel RGB Mini Button PCB - qty 4

22 Gauge enamelled copper wire or solid core coloured insulation wire.

26 Gauge Ribbon cable

2.54mm sockets, crimp or solder termination.

Right angle pin header strip

Copper strip board


Track cutter or 3.5mm drill bit

Soldering iron + Solder

Wire cutters

Long nose pliers


File or sanding paper

Step 1: Light Rod Adapter Design

In order to enable the Light Rod to be supported in the candle holder and at the same time allow the Neopixel to be mounted at the end of the rod to enable light to be efficiently coupled, an adapter was required.

This could be envisioned in various ways but in my case I decided to 3D print it.

The first step was to measure the candle holder and obtain the required dimensions.

The candle holder is essentially made up of 2 cylinders a 2cm x 1cm candle socket and a wider cylinder 3cm x 1.2cm wax catcher that sits above it.

Using BlocksCad I created these required elements to the measurements previously obtained.

The candle socket element would require a recess for the Neopixel and a way for the wire to be routed.

The wax catcher element would require a hole aligned to the element below it and a recess for the wire, which also serves to make up the slack in the socket for the light rod.

Step 2: Light Rod Adapter 3D Printing

Having created the elements these were then imported into Cura.

At this stage 4 pairs for a total of 8 elements were required and this is achieved with ctrl+M and specifying the number of copies.

The resulting gcode is then loaded in the 3D printer.

As the Candelabra has a golden finish I used Gold Silk PLA filament.

Printer settings for 4 pairs of adapters.

Layer quality - 0.15mm

Wall thickness - 1mm

Infill - Density; 50%,

Pattern; Concentric

Build Adhesion - Brim

No supports.

Weight - 37g

Filament length - 12.4m

Print Time - 4 hour 30 mins

Step 3: Light Rod Adapter Assembly

Having created the Light Rod Adapters these now require assembly including the Neopixel.

Looking at the pad configuration for the Neopixel it was evident that the two 5V pads were connected in series and likewise the two 0V pads too, in order that that these could be connected in a continuous series chain.

However, to simplify the connections in the adapter, I would connect these as a spur off the main trunk.

This would mean that only 4 wires would be required per Neopixel rather than 6 wires.

Be sure to colour code the wires if using enamelled copper with coloured paint or sleeves, alternatively solid core wire with coloured insulation could be used.

With wires attached a 90 degree bend was formed and the wire pushed through the hole to exit the bottom this was then bent back up by 180 degrees inline with the recess.

The wires were then fed through hole in the wax catcher element, bent 90 degrees across the top in the recess and then bent 90 degree down the side..

The 2 elements are now united, a dab of glue will hold the two elements together.

Taking a piece of stripboard measuring 3 holes wide by 7 holes long a length of right angled pin header strip consisting of 3 pins, is inserted and soldered in each end.

At hole co-ordinate 2,6 cut the copper track, either using a track cutter or 3.5mm drill bit.

Having approximately 7cm of wire bend a right angle 1cm from the end of each and remove the enamel to enable the ends to be soldered in to the stripboard.

Ensure consistency of wiring and placement of the wires in the holes to prevent errors.

With this wiring configuration the outer pins at both ends serve as 5V and 0V and the centre pins as Data in and Data out.

The 4 completed Adapter assemblies are then connected together with 7.5 cm, 26 gauge 3 strip ribbon cable with crimp sockets on both ends..

It also makes it easy to add or remove adapters as needed.

Step 4: Light Rod Fabrication

The light rods are made from a 2 part epoxy resin mix.

Not having ready made moulds of the the correct size available, I made them from 22 mm diameter poly pipe.

Ensure the plastic poly pipe and receptacle are capable of withstanding temperature extremes and use insulated tongs, safety glasses and gloves when handle the pipes during filling and removal.

If suitably sized silicone moulds are available they can be substituted for the poly pipe and simplifies the removal process.

Using pipes of 30cm lengths, prior to filling the pipes with resin they need to be prepared.

The ends need to be plugged with a suitable stopper or taped over and a suitable lubricant used to line the inner surface.

Olive oil serves as a suitable lubricant and also add a golden sheen to the light rod.

Approximately,100ml of resin is required per pipe.

Pipes filled and left overnight to cure.

Once cured the stopper/tape is removed from the ends.

After some experimentation the solution for removal of the resin light rods was temperature cycling.

This entailed placing them over night in the freezer and upon removal transferring immediately into boiling hot water.

Removal was then possible by placing one end over a 1 cm diameter, 10 cm length metal rod and holding the pipe with insulated non slip gloves whilst pressing down to extrude the rod.

Once removed using this method they will still be warm and flexible and should be allowed to cool.

After cooling they can be polished and the ends trimmed with a saw to create a flat end.

The flat ends aid contact with the Neopixel to enable efficient light coupling and to provide a neat finish at the other end.

Step 5: Microbit Interfacing

Interfacing and control would be via a Microbit microcontroller.

Its low cost, small footprint and Neopixel libraries already exist.

As only 4 Neopixels will be used and they will operate at 3V3, a voltage that is available directly from the Microbit there is no requirement for a separate supply.

Therefore, only 3 lines are required 3V3, 0V and a Data line.

A couple of other components are recommended a 470R resistor in series with the data line and a 1000uF supply smoothing capacitor.

Further details regarding Neopixels, control and interfacing can be found at the following link:


Step 6: Microbit Coding

The Microbit has 2 buttons which will be made use of in this project to control which lighting effects are selected.

Buttons A and B will be used individually and together.

Button A - Forward stepping through the effects list.

Button B - Reverse stepping through the effects list.

Buttons A + B - Return to start of list and disable the Neopixels.

Due to the limited capability on the default display it was decided to simply show letters of the alphabet to indicate the display pattern selected, giving 26 pattern effects to choose from.

Each effect selected is identified by a letter A through to Z on the Microbit display.

Having, rejected numbers as values >9 cause the display to shift values to the left which adds a delay during the selection process.

While the project will work perfectly well with one Microbit for local manual control.

The local Microbit in conjunction with a second Microbit will enable remote control using BLE.

The code included is configured to work standalone or via remote control without modification.

Adding remote control simply requires adding a second Microbit and the associated code.

The remote controller uses exactly the same button controls as the local controller and displays the pattern letter.

However, the pattern letter displayed on the remote controller is only a reflection of that transmitter by the local controller, simplifying the remote controller as it does not have to keep track of any data.

Code and colour patterns are contained within the supporting documentation.

Hope you find it "enlightening".