Nesting Hive Lights




Introduction: Nesting Hive Lights

About: Professional work in various electrical and mechanical fields, obscure sense of humour and typically willing to help... Currently under contract designing environmental monitoring equipment.

I wanted to create an interactive light display that would allow the individual to draw light pictures in a pixel like fashion. Having grown up with the Lite-Brite I used this as an idea starting point.

The larger size of the lights meant that the physical size of the overall design got to be quite cumbersome, so broke the lights down into individual modules…

I call these Hive Lights. You can greate your own by following these instructions.

Each module features a microcontroller and a LED module that is user adjustable to output a one of 4 colours in the RGBW spectrum.

This style of LED is best viewed in lower level ambient lights, more on this later.

The colour is changed by rotating the light bezel on the top of the module.

The modules have 6 power points which allow it to be connected to additional modules.

One module is changed slightly to allow direct power brick attachments I estimated that only 1 power module is needed to power 24 modules.

This is an early proof of concept version of the finished project.

I have included the .STL files if you wish to create your own, just beware that the cost goes up drastically the more complex the pattern you wish to create.

Step 1: The Parts

I utilized a 3d printer to create the parts needed, my plastic of choice is ABS. All the print files are included here.

Print the 7 unique parts (one piece requires 6 copies) needed for each module. The original shell is not quite the first original. It went through 4 design changes before I came to this one which is quite usable and robust. Inside the module is space for 6 magnets as well as drive gears for the light changing mechanism. The gears have a cover that secures into tracks for proper operation.

There is 2 versions of the ShellBase. One is complete which I found looked cleaner but was an absolute nightmare to fit the contacts into. I split the contact pads in half and created two distinct patterns that made the contact installation much easier but I did sacrifice some of the aesthetic appeal.

The LED window is an opaque square of plastic 22mm square, very easy to cut with a razor knife so that is why the square shape. This is held in place by an outer bezel that acts as a knob to turn the lights from off through all of the colour schemes programmed into the microcontroller.

I used the Arduino neopixel library and simple colour change code for the RGBW LEDs that I acquired from Amazon. The code is in step 6.

Step 2: Attraction

I built a simple tool to help with this process it is the yellow part shown under the inverted module here. Beginning at the top ring magnets are place into the slots in an alternating polarity manner. These are then glued in place.

The module body is placed as shown with the POT gear cutout near the loop on the tool. This will insure that all the modules have the same magnet orientation. this is very important in order to prevent a short circuit.

For the module body, place magnets (12mm x 2mm) in an alternating polarity into the 6 magnet pockets around the perimeter of the outer shell.

The magnets are 12mm X 2mm available online through numerous vendors. In total there are 7 magnets required for each module.

The magnet template print file is attached

Step 3: Module Assembly

Place the potentiometer gear into the small gear track then place the square gear cone part into the larger gear track, with the long part going through the outer shell from the inside.

The potentiometer selected is a mechanically limited 1 turn type. This is attached to the gear cover with adhesive. It is important to have the shaft of the tiny drive gear mate with the potentiometer, the pot limits will prevent the over turning of the light bezel.

Yes this turned out to be not so robust and has been addressed in subsequent builds.

Place the gear cover part with the track side towards the lens opening and secure it with adhesive, Hot glue will work but it is not ideal for long term use.

Position the opaque lens into the square opening at the top of the drive gear piece. Then press the outer bezel in place. I designed these parts to be an interference fit and it will be quite difficult to remove if not positioned correctly.

Finally I used heat set screw inserts to hold the shell base on.

Step 4: Contact

I used spring contacts from DigiKey for the electrical connections between modules.

The bottom shell cover needs to have contacts inserted. This is done with the flat top ones in the hollow and the pointy spring ones on the peaks. Each module has 6 of each contacts. There is only provision for power and ground for each module.

To wire these up you will need to connect the adjacent pads to one another between the pad spaces it is wired peak to valley. Beginning at one of the contact pairs that does not have a screw hole between them, going clockwise, make the first valley ground and the first peak power. Connect this peak to the next contact pad valley, continue connecting peak to valley around until you complete the 6 pads. From here pick the first set of contact wire jumpers and connect it to power then the next set to ground and so on, that way there is alternating power and ground connections. Now all 6 contact points are powered and grounded. Adjacent pads have the reverse polarity.

By wiring all the pads the same (positive bridging the screw holes in the base) for each module and if the magnets were installed correctly, the combination of pad design and repulsion, it will be near impossible to force any 2 modules to maintain short circuit scenario. Future revisions have internal fuses.

The tips of the contact pads were held in place with ABS adhesive.

There is an additional magnet in the base of the shell for attachment to metal surfaces.

Step 5: Power Module

One module has been altered and acts as a power input point. It is meant to be powered by a standard 5V wall wart.

A barrel plug was inserted as a replacement of one of the contact point sets.

The was done by cutting off one of the contact pads and trimming one side of the plug.

It is soldered in series with the other pads on the module.

Step 6: Controller Overview

I used LED modules from Amazon

The code is a little chunky but it works, I have included it here.

These were connected in a 3 module series. The connections had to be soldered using the Arduino NeoPixel format. The row was glued to the bezel gear cover.

I chose to make each module have a brain since the logistics of having serially connected lights and random analog interfaces communicate to a central mind in an expected manner was well the scope of the conceptual design presented here.

In smaller quantities the Arduino Nano type controller seemed like a good choice since it had the built in peripherals that I needed for this task.

The solder connections are Potentiometer power and module power to the 5V port on the Nano. The grounds are connected to the GND port on the Nano. The potentiometer wiper goes to A0 port and the LED data line goes through a 300 ohm resistor to D2 on the Nano. The power contacts were wired red to Vin and white to GND

The basic operation was checked , The potentiometer is turned, a corresponding light activates.

The lights are kind of anemic in this version as I chose to use RGBW modules, subsequent versions uses daylight readable LEDs. The light driving is from the Arduino NEO pixel program catalogue. The potentiometer is read in through the analog input pins and translated to a colour map in the program. This is then output to the serial LED module.

Step 7: Going Beyond

The key to these lights is quantity. The more linked modules, the better the display.

Since these lights are expensive to produce in small quantities, I am initiating a crowdfunding campaign to have these produced on large scale.

The light have been completely redesigned for production.

While the primary mode of operation is direct manipulation, these now have additional central communication for remote access and control to override the local operation

additional features are as follows:

The physical internal structure has been fully updated with Custom circuit boards featuring dedicated microcontrollers, daylight readable lights. Additional features that include unique digital serial numbers, configurable modules, more colours.

Please check out my website for updates and links...

Make it Glow Contest 2018

Participated in the
Make it Glow Contest 2018

Be the First to Share


    • Pocket-Sized Speed Challenge

      Pocket-Sized Speed Challenge
    • Audio Challenge 2020

      Audio Challenge 2020
    • Maps Challenge

      Maps Challenge

    5 Discussions


    Tip 1 year ago

    Just an idea, instead of having the pins next to each other, all on the horizontal plane you could have them one on top of the other, that way all the pins on the bottom (closest to the table) could be ground and the pins closest to the front could be power then it doesnt matter what order you connect them they can never short out. The other thought i had for a central control of all the lights is using something similar to DCC for model trains. so the master puts out modulated DC onto the pins and each module can decode messages and display what the master tells it.


    Reply 1 year ago

    DCC is pretty similar to the I2C it looks like he's using for step 7. The only issue I could see with using DCC is that it is VERY temperamental and power-hungry. True, it does only need 2 wires, but it would also require much thicker wires through the entire circuit.
    Also, the way it is set up, it is in series...which wouldn't work well for DCC setups. They're designed to work in parallel, where setting it up with one pin above and one below would certainly work better.


    Tip 1 year ago

    With how you have them set up, to prevent cross-wiring when you connect the tiles, you could add 2 more pins to each side for a CLK and DAT wire, and set everything up to use I2C, so it would all be controlled from the base, and each tile would have a specific address (Up to 256 total) and then the power-supply tile has the main controller. Using that with a USB connection would allow you to use it as a low-resolution color display.


    Reply 1 year ago

    Check out step 7, That is the next version which has just those features... The lights have individual addressing which is I2C. Due to a failed attempt to get them mass produced, I will be posting this full project in the upcoming months.


    Reply 1 year ago

    I see. I didn't see the 4-pin connection point before. Impressive.