IKEA Frame Hack > SLOMO (Slow Motion) Frame



When we first stumbled upon the Slow Dance Frame created by Jeff Lieberman, we were quite astounded to be able to view real-live objects move in what appears to be slow motion with our naked eyes. It is so surreal and mesmerizing.

For those who would like to know more about this magical frame that slows down time, you may visit the following link.


We understand that many people have attempted to replicate this magical frame and Cubic-Print had already put up an instructable to show how they made it. You may check out their instructable in the link below.


We have some pictures framed using one of IKEA's Ribba series frame around our place and they seems to be suitable for hacking them to replicate the SLOW Dance frame. It is smaller than the frames used for the Slow Dance and TimeFrame projects but we hope to work around this frame to replicate the project.

Here, we are also going to show how we hack our IKEA Ribba picture frame to replicate this awesome frame, aptly named as sLOMO (Slow Motion) frame. You may be wondering why yet another similar project.

Here are some of our reasons:
  • The picture frame size used for Slow Dance and TimeFrame is quite huge. We prefer something a bit smaller which is good for light objects such as feathers up to around 17cm long.
  • The exact picture frame should hopefully be easily available for hobbyists to replicate the project.
  • The electro-magnet and LED strips shall be hidden from view as much as possible as we think it makes the frame look more elegant.
  • The electro-magnet required for the project should be available for purchase. It may be quite daunting to hobbyists to hand wind the electro-magnet themselves. Moreover, it is also not cheap to build one.
  • The LED strip light is not recessed to only focus light on the objects placed within the frame but also to light up the back of the frame. The bouncing of lights from a wall seems to accentuate the movements of the objects placed within the frame if it is placed near a light colored wall. Moreover, the back-lighting of the frame makes it a good wall light.
  • LED strip light shall dim or brighten gradually when switching between modes of operation. It makes the frame look more elegant during operation.
We have created a basic JF sLOMO Frame DIY kit which is available at our Tindie store if you are interested to replicate this project.

To build this project, basic electronics component soldering skill and some knowledge on using the Arduino is required.

You may like to view the following YouTube video to see what we are going to build for this project.

How does it Work?

The principle is simple but brilliantly implemented. It is a fusion of art, science and technology.

A device vibrates the objects placed within the frame at one frequency and strobes light on the objects at a slightly offset frequency. The difference between the frequencies called the beat frequency creates an optical illusion.

If the vibration rate is just a little bit faster or slower than the strobe light, then you will get a slow motion effect whose speed is proportional to the beat frequency.
If the objects vibrate at the same speed as the strobe light, then the objects will seem to be motionless.

If the beat frequency is high, you may get seemingly random jumping of the vibrating objects.

For our project, an Arduino Nano/compatible micro-controller is used to excite an electro-magnet to vibrate the objects placed within the frame. It is also used to pulse the LED strips to achieve the strobe light effect.


For a small percent of people with epilepsy, exposure to flashing lights at certain intensities or to certain visual patterns can trigger seizures.

This project requires strobing of the LED strip lights at quite a high frequency which most people will not even realize the lights are flashing. However, if you experience discomfort looking at the lit objects or light from the LED strip, you should stop looking at them immediately.

Step 1: Building the Electronic Circuit Board

 Picture of Building the Electronic Circuit Board

 As with most of our projects, we will be using our favourite Arduino Nano board for this project due to its small form factor and ease of use.
The schematic diagram for our project can be found above. We have used the same Arduino pin assignments as the Cubic-Print TimeFrame project but we are using different components to build our circuit and there are some slight differences in the design.

As the size of the picture frame we are using is much smaller, you may not be able to use the Cubic-Print PCB for our project.

We have designed the electronics DIY kit for this project which is available at our Tindie store if you prefer something easier to work with or you may opt to wire everything up on perfboard yourself.

You may check out the following YouTube video on how to assemble the electronics components onto the PCB board we designed.


The following are to be observed during PCB assembly:
  • Ensure the orientation of the capacitor, 2 MOSFETs and Arduino Nano is correct.
  • Ensure all components are to be soldered onto the TOP side of the PCB except the two potentiometers, push button switch and capacitor which are to be soldered onto the BOTTOM side of the PCB.


 Step 2: Electro-magnet Assembly

For the Slow Dance frame and the TimeFrame, they are using magnet wire wound on an iron core to form the electro-magnet. This kind of electro-magnet configuration will have opposite magnetic poles at the ends of the iron core. It is not easy to find such an electro-magnet for purchase which is suitable for our project. You may need to custom build this electro-magnet yourself.

However, it is quite daunting and time-consuming to wind the electro-magnet. As the electro-magnet is mounted in clear sight for Slow Dance frame and TimeFrame, the electro-magnet must look nice and presentable. It is also not cheap to build these electro-magnets.

For our project, we are using an electro-magnet which is available for purchase. This kind of electro-magnet configuration has both the magnetic poles at one end which is very effective for holding onto ferromagnetic objects. This kind of electro-magnet may not be the best choice for this project but we will be using them as it is available for purchase.

The Slow Dance frame’s electro-magnet has each end activating a spring steel form in which the light-weight object is attached to with O-rings.

For our project, we would also like to be able to attach objects to both ends. Here, we used a U-shaped spring steel form made from drawing board metal clip. Our drawing board metal clip thickness is around 0.5mm at the flat part. The metal clip is bent into an U-shape form and holes are drilled onto the clip to secure the electro-magnet and for mounting onto a support base. We secured one end of our electro-magnet to one side and placed suitable neodymium magnets at the other side of the U-shaped spring form. We are able to get both sides of the U-shaped spring form to vibrate in our project with this setup.

We are using an electro-magnet rated at 3kg for our project. The sLOMO electro-magnet assembly in kit form shall be made available at our Tindie store if there is demand. You may order them if you prefer to use the exact items we used for the project.

You may view the final sLOMO frame assembly YouTube video in Step 7 to see how this electro-magnet assembly module is installed onto the frame.


We have spotted a common mistake DIYers made. The nylon spacer is supposed to be installed between the electromagnet and the U-shaped form spring instead of between the spring and the securing screw. This will narrow the gap between the electromagnet and the neodymium magnets and produce a much stronger vibration of the spring. The visual effect shall be greatly enhanced with this simple correction.


Step 3: Build the Back Mount

At time of writing, the IKEA Group itself owns 277 stores in 21 countries. We used the IKEA Ribba picture frame which hopefully is easily available for anyone looking for it to replicate this project.

Below is some information on the Ribba picture frame from IKEA we used for our project.


RIBBA Frame, 

black Article Number : 101.712.99
Picture without mount, width: 18 cm
Picture without mount, height: 24 cm
Picture with mount, width: 13 cm
Picture with mount, height: 18 cm
Mount opening, width: 12 cm
Mount opening, height: 17 cm
Frame width: 20 cm
Frame height: 26 cm 

For those who may not be able to get hold of this exact picture frame, you will have to look for a similar suitable frame.

You may also look at other Ribba series of picture frame if you are looking for a different size frame to build this project.

You may use the drawings above to build the frame’s back mount for this project. Please note that the back mount dimensions are good for the Ribba frame we are using and may not suit yours if you are not using the exact Ribba picture frame.

If you do not have the equipment, time or skill to build the back mount yourself for the Ribba frame we are using, you may find it at our Tindie Store.

As we mentioned earlier, we wanted the LED strip light to be able to light up the wall behind the frame if it is placed near a wall. This way, the light can bounce on the wall and back onto the objects placed within the frame which accentuates the lighting of the objects. The frame can also act as a back-lit wall lamp if it is hung on the wall.

The back mount is made up of 3mm translucent acrylic sheets cut to size and glued together.

You may view the final sLOMO frame assembly YouTube video in Step 7 to see how the back mount is built.


Step 4: Install PCB Module to Back Mount


You may view the final sLOMO frame assembly YouTube video in Step 7 to see how the PCB module is installed onto the back mount.


Ensure the metal securing nuts for the two 50K ohms potentiometers are not in contact with any of the Arduino Nano header pins after securing them in place.


Step 5: Prepare the Picture Frame

You may check out the final sLOMO frame assembly YouTube video in Step 7 to see how the picture frame is prepared for this project.

We do not need the glass panel and the back mount that comes with the picture frame.
The main steps to prepare the frame are:
  • Modify the cardboard front mount to raise the window opening.
  • Drill one 2mm diameter hole inside the frame to secure the electro-magnet support base.
  • Drill three 2mm diameter holes behind the frame for flange screws to hold the back mount in place.
  • Line the sides and top of the inner frame with LED strip light.
The front cardboard mount needs to be modified to raise the window opening higher to hide the electro-magnet when viewing from the front. The bottom of the window opening needs to be 41mm from the base. This is achieved by cutting off the top to attach it to the bottom of the front mount using tape.

As our frame is made from MDF board, it is better to drill a smaller diameter pilot hole before we drive a self-tapping screw into it. You will need a hole for a self-tapping screw to secure the electro-magnet support base to the frame. Ensure that the U-shape spring steel form does not touch any surface when it is vibrating during operation.

We need another three pilot holes at the back of the frame for the flange self-tapping screws to hold the back mount in place.

We used warm white double row LED strip light DC 12V with SMD 5050 LEDs which has 120 LEDs per meter for our project. As our frame is not large, we only need a short LED strip of around 0.56 meters long. You may experiment with other LED strip lights you can get your hands on. In essence, use the brightest LED strip you can find at a price you are willing to pay for this project. The depth of our frame should be able to accommodate three rows of LEDs if you wanted brighter strobe lights which should make the slow motion illusion much better if you intend to place your frame under bright light.


Step 6: Program the Arduino Board

The Arduino code structure for our sLOMO frame is loosely based on the TimeFrame project. 

The TimeFrame project uses the ATmega PWM registers directly to change the frequency and duty cycle of the PWM signals for control of the electro-magnet and LED strip light. 

You may visit https://www.arduino.cc/en/Tutorial/SecretsOfArdui... if you are interested to know how to use the ATmega PWM registers directly.

For our project, instead of using the ATmega PWM registers directly to change the frequency and duty cycle of the PWM signals, we will be using the Arduino PWM frequency library created by runnerup. For details on this library, please visit this thread at the Arduino forums:

The Arduino sketch for our project can be downloaded in the link below:

Click here to download JF sLOMO Frame program

You also need to download and install the Arduino PWM frequency library from 

https://code.google.com/archive/p/arduino-pwm-freq... for the sLOMO frame Arduino sketch to compile successfully.

Finally, upload the program to your Arduino Nano/compatible micro-controller board. We will not elaborate on how to upload the program into your micro-controller here as this information is easily available online.


Step 7: Final SLOMO Frame Assembly

Here, we will attempt to put everything together for the final assembly.

We will need to solder the wires from the electro-magnet to the holes on the PCB labelled as “EM”. We also need 2 wires (Red and Black) of around 22cm soldered to the terminals labelled as “Light” on the PCB.

View the following YouTube video to watch how to carry out the final assembly of all the parts.


Step 8: Be Mesmerized

We will need a 12V DC power adapter to power up our sLOMO frame. For our project, we used one which is rated for 12V DC, 1.5A. You will need to use a suitable power supply if you use different parts or components for the project.

Plug in the 12V DC adapter and power up the frame.

If everything is in place, sit back and be mesmerized by the surreal dance of the light weight objects placed within the frame.

We understand there are people who are concern about the humming sound produced as the electro-magnet is vibrating at around 80Hz. This humming sound do exists but is quite minimal and hardly audible if you are more than 3 feet away. For those who have replicated this project, this may be one of the areas you can look into for improvement to reduce the humming sound as much as possible if this is a concern to you. 

We stuck a piece of non-slip rubber mat at the bottom of the frame for cushioning which cuts down the humming sound significantly with our sLOMO frame placed on a table.

If you are going to place your sLOMO frame on a flat surface, you may also need to build a larger base to be attached to your frame for better stability.

Hope you enjoy building the sLOMO frame and amaze your friends with the visual illusions.

Get your JF sLOMO Frame DIY Kit at our Tindie store 


JolliCube (8x8x8 LED Cube) with MD_Cubo library


 JolliCube (8x8x8 LED Cube) with MD_Cubo library


 jolliCube Pyramid.jpg

So far, we have only built 3 LED cubes. Our first cube is a 4x4x4 LED cube and though we managed to successfully complete it without too much difficulty, we did not find much excitement and satisfaction experimenting with it.

Next, we designed, created and built our second cube, an 8x8x8 LED cube driven using the awesome MAX7219 ICs almost a year ago. You may check out our instructable on jolliCube if you are interested.

The main objective of creating jolliCube is to encourage electronics hobbyist looking into building their first LED cube to take a leap of faith to build a larger cube instead of building a small 4x4x4 or 5x5x5 LED cube.

Though building an 8x8x8 cube requires a lot more effort and patience, it is very much more exciting to experiment with it. We are sure that all electronics hobbyists who are able to successfully complete an 8x8x8 LED cube will feel an indescribable sense of satisfaction like we do if that is their first LED cube.

We built our third LED cube which is another 8x8x8 jolliCube but in a different LED color (orange) recently just to refresh ourselves on our building process. We will be using this cube for this project.

We are very encouraged to know that quite a handful of electronics hobbyists have successfully built their jolliCubes. However, once a while we received requests for more animation effects for jolliCube. We understand that it is not an easy task to create new and interesting animation effects for LED cubes. Some may be able to search online for animation effect codes designed for other LED cubes and adapt them for use on jolliCube, however, not all are able to do so.

We are proud of creating the jolliCube hardware but without the software to drive jolliCube would have rendered it useless. For this instructable, we will be introducing the MD_Cubo software library created by Marco Colli to drive jolliCube.

Marco Colli is very well regarded and have contributed very much to the Arduino community. One of his popular contributions is the awesome Parola library to drive LED matrix displays. We have used his Parola library for two of our instructables. You may check them out at https://www.instructables.com/id/Arduino-Parola-Zone-Time-Msg-Display/ and https://www.instructables.com/id/Large-8x8-LED-Matrix-Display/.

The MD_Cubo library comes with some new and interesting animation effects which we did not have in our earlier jolliCube instructable. Here, we will showcase some of the animation effects from the MD_Cubo library example with some additional interesting animation effects we adapted from codes found online which were written for some other LED cubes.

You may view the following jolliCube with MD_Cubo library Demo YouTube video to see what we will be building here.


Step 1: Building jolliCube

Building jolliCube
Solder Components All.jpg

Removed Matrix3.jpg

Single Matrix Layer.jpg

LED Cube separated.jpg

jolliCube Not Lit.jpg

First, you will need to have jolliCube before we proceed later to load our demo program to run the animations. If you have already build jolliCube, you may like to proceed to the next step.

If you are interested in building jolliCube, you may check out our instructable at https://www.instructables.com/id/JolliCube-an-8x8x8-LED-Cube-SPI/

Go through the following steps in that instructable to build the hardware for jolliCube:

Step 1: Design of jolliCube - Arrangement of LEDs
Step 2: Design of jolliCube - Electronic control circuit
Step 3: Build the jigs
Step 4: Assembly Part 1 - Build 8 layers of 8x8 LED Matrix
Step 5: Assembly Part 2 - Complete the LED Cube with control circuit
Step 6: Test jolliCube

The following are the two jolliCube assembly YouTube videos:



Step 2: JolliCube with MD_Cubo library Demo program code

JolliCube with MD_Cubo library Demo program code

Though our jolliCube is not designed to work with any particular microcontroller, we will be using the popular Arduino board in this instructable to drive it via SPI using only 3 signal lines.

The demo program code for the LED Cube used here is based largely on the demo example that comes with the MD_Cubo library created by Marco Colli with a few additional interesting animation effect codes we found online.

For this project, you will need to install the MD_Cubo library from https://github.com/MajicDesigns/MD_Cubo

The jolliCube MD_Cubo Demo V1.0 example can be downloaded here.

Upload the demo program to your Arduino Nano/Uno. Then connect it to jolliCube. See the picture above for the connection of the Arduino Nano/Uno to jolliCube.

Power up jolliCube via your Arduino Nano/Uno. Any USB port/adapter which is able to supply at least 500mA should be suitable. 

If your jolliCube build is good, you may sit back and Enjoy the Show!



Step 3: Building the Enclosure

Building the Enclosure
jolliCube Base.jpg


You will want to protect your investment after putting in all these hours building the 8x8x8 LED Cube by building an enclosure for it.

We will not delve into the detail on how we build our enclosure here. We are fortunate to find 6 x 8-inch clear acrylic sheets (2mm thick) at one of our local Art Shop which is just the right size to make a protective case for our LED Cube. We just need to shorten the length of each acrylic sheet using the simple scrape and break method which is fast and produces acceptably nice edges. We also found acrylic glue which is a solvent for ‘welding’ acrylic at the Art Shop. Using a syringe, we glued the acrylic sheets together to form the protective case. We also designed a simple base for our enclosure and have it 3D printed out. You may want to check out our STL file for 3D printing of our base below.

Click here to download our jolliCube base STL file for 3D printing.

We found a 6 x 6 x 6 inches clear acrylic box display case at http://www.collectingwarehouse.com which looks suitable for our LED cube. You may like to check it out if you are looking for a more professional and ready-made protective case instead of building it yourself.

Step 4: What's next?

What's next?
LED Matrix EnclosedMod.jpg


We hope you like the animation effects we have for jolliCube here with a BIG thanks to Marco Colli for contributing the wonderful Md_Cubo library.

You may explore to add more animation effects for jolliCube, maybe add useful functions to make jolliCube display date and time or make jolliCube react to music. Let your creative juice flow and think of new ideas for jolliCube. 

Did you happen to see our instructable in which we split jolliCube into two parts and re-arrange it to create a stereo audio spectrum visualizer? If you are interested, you may check it out here.

Below is the YouTube video of our audio spectrum visualizer.

Get jolliCube DIY Kit from our Tindie Store 


Arduino Based Mini Audio Spectrum Visualizer


Arduino based Mini Audio Spectrum Visualizer

For our last project, we built a 3D Stereo Audio Spectrum Visualizer. We are delighted that it attracted quite a bit of interest with suggestions on how we could have built the display differently. Some argued that it is not a true 3D audio spectrum visualizer and we totally agree with them. We should have titled that project more appropriately. If you are interested, you may check out the project here.

Following that last project, we have made the stereo audio spectrum visualizer board into a basic DIY kit which is now available at jolliFactory's Tindie store.

This audio spectrum visualizer kit is also suitable for use in our other Arduino based Bi-color LED Matrix Audio Spectrum Visualizer project.

These two audio spectrum visualizer projects use SPI for connections to the more elaborate bi-color LED Matrix and 3D LED Matrix displays for visualization. For this instructable, we will be building yet another audio spectrum visualizer but we will be using a 0.96 inch 128x64 I2C OLED graphic display instead. This is quite a tiny display but that is all we have lying around. You may want to use a larger screen OLED display for your project. This is a much simpler project if you just like to experiment with audio spectrum visualizers and do not want to spend too much time and money on the display.

You may find the 0.96 inch I2C OLED display from Adafruit or as an add-on module with our JF Stereo Audio Spectrum Visualizer DIY kit.

You may view the following YouTube video to see what we are building.


Step 1: Building the Audio Spectrum Visualizer Board

Building the Audio Spectrum Visualizer Board
Part List.png

You may wire up the audio spectrum visualizer board using perf-board yourself according to the wiring diagram above. We will not go into detail on how to wire them up here.

For this project, to save time from having to wire up the circuit, we will be using the JF Stereo Audio Spectrum Visualizer kit set available on Tindie. For this project, we assume you have some basic electronics and soldering skills and is familiar with using the Arduino board. The kit set is quite simple to complete. So, we will not be going into the detail on assembling the JF Stereo Audio Spectrum Visualizer board here.You will need to ensure the MSGEQ7 ICs and the Arduino Nano are placed in the correct orientation.

Our audio spectrum visualizer shall be driven by an Arduino Nano. We will basically be using two MSGEQ7 IC chips made by Mixed Signal Integration to separate the audio into bands. The MSGEQ7 IC is a single channel seven band Graphic Equalizer Display Filter. By feeding an audio signal to it, it will filter out seven frequency bands centered around 63Hz, 160Hz, 400Hz, 1,000Hz, 2,500Hz, 6,250Hz, and 16,000Hz. The seven frequencies are peak detected and multiplexed to the output to provide a DC representation of the amplitude of each band. All we need is to read these DC values with the microcontroller analog input and output the spectrum to the OLed display. We need two MSGEQ7 ICs here, one for the left and another for the right audio channel. 


Step 2: Wiring Connections

Wiring Connections
The main objective of this project is for experimentation on audio spectrum visualization. To keep it as simple as possible, we will be using an off-the-shelf mini 0.96 inch I2C OLED graphic display instead of building elaborate displays. This display requires only 2 signal lines and 5V DC for power. See the photos above on how the I2C OLED is connected to the JF Audio Spectrum Visualizer board.

The I2C OLED display is available at Adafruit or as an add-on part if you purchase the JF Stereo Audio Spectrum Visualizer kit which will be made available soon.

We have also connected a momentary push button switch to SW1 on the PCB board which is connected to D8 and GND of the Arduino board. This switch shall be used for selection of different display effects.


Step 3: Programming the Arduino Board

Programming the Arduino Board

The Arduino board needs to be loaded with the Arduino sketch to drive the Audio Spectrum Visualizer.

Download jolliFactory_I2C_OLED_AudioSpectrumVisualizer.ino

You will need to install the support library for the OLED graphics display which is available for download below.

Download Adafruit SSD1306 Library
You will also need to install the Adafruit GFX library.

Download Adafruit GFX Library

You may need to change the I2C device address in the sketch for it to work with your OLED display. Our OLED display is using I2C address 0x3C by default.

If you are not sure what is your I2C device address, you can download an Arduino I2C scanner sketch to determine the address. Check out I2C Scanner page at Arduino playground for more information.

We have only designed three effects for the audio spectrum visualizer. Let your creative juice flow and enhance the program with more interesting effects.


Step 4: Testing the Audio Spectrum Visualizer

Testing the Audio Spectrum Visualizer

We will not delve into the details on how to test if our audio spectrum visualizer is performing correctly here. You may check out Step 4 in our last project to see how to conduct a similar test. 


Step 5: Building the Enclosure

Building the Enclosure
If you are just building this project for experimentation, you may not want to invest time and money to build an enclosure for your visualizer.

However, we have some time on our hand while working on this project and so we decided to build a simple enclosure.

See the photos above for our enclosure. We will however not delve into the details on how we build it here.


Step 6: Let in the music and ENJOY

Let in the music and ENJOY

Though the OLED graphic display used for this project is small, it is still quite mesmerizing to watch the display dance to the music.

For this project, we have created 3 different display effects for visualizing the audio spectrum. You may create you own unique display effects for your audio spectrum visualizer project. You may also try out using different types and form of displays for audio visualization.

The JF Stereo Audio Spectrum Visualizer kit is also suitable for use in our Arduino based Bi-color LED Matrix Audio Spectrum Visualizer instructables project as well as the 3D Stereo Audio Spectrum Visualizer instructables project. You may check them out if you are interested.