Moving Fridge Magnets Make For Unique Clock

We see a ton of clock projects around these parts, and being hackers, we love to feature them all. But every once in a while we stumble upon a great new way to display the time that really gets our attention and requires a closer look, such as this moving fridge magnet clock.

The fridge magnets [Craig Colvin] built this unique clock around are the colorful plastic kinds that have adorned the lower regions of refrigerators in toddler-filled households for ages. Instead of residing on a fridge, [Craig] laminated a sheet of white acrylic to a thin sheet of steel, to give the magnets something to hold onto. Moving the numbers is the job of a CoreXY-style mechanism. The belt-driven Cartesian movement maneuvers a head to to the right location to pick up a number; a servo in the head moves two powerful magnets into position under the number. The head then moves the number to the right spot, releases its magnets, and the number stays put on the board. You can see it in action in the video after the break.

While we love this as it is, it brings to mind some great mods. One can imagine the addition of letters to make a legit word clock, or to just add a calendar display. We’d also love to see these magnets in their natural habitat by building this into the door of a working fridge.

40 thoughts on “Moving Fridge Magnets Make For Unique Clock

  1. Looks amazing, but I just wish it could move multiple magnets simultaneously.
    It’d be much harder logistics, but would definitely look more like the classic ghost or telekinetic show.

  2. Speed up the motion and reduce the noise level by using servomotors instead of steppers. The iHSV motors from China take step/direction/enable input just like stepper drivers. I put them into my sand table and went from driving it unreliably at 500 mm/sec with 2k acceleration with steppers to 2000 mm/sec at 20k acceleration with the servos.

      1. In fact, using a small stepper in place of the servo may be a solution to reduce that noise. You could use an endstop or perhaps the torque-sensing of more advanced drivers to know when it’s reached the end of travel.

    1. The steppers can go 3x faster, the issue is that it looses the magnet during horizontal motions. I’m working on adding stronger electromagnets on the carrier to see if I can get better connection between the carrier and numbers. I can ten speed it up.

      Speeding it up also helps with the noise. I’m also going to increase the stepper voltage to 36v as opposed to 12v which will also make them run quieter.

      1. How about using a neodymium magnet and releasing the letter being moved by lifting the magnet off the back of the board?

        I use a 1″ cube magnet in my sand table and it manages to move a 1/2″ steel ball through the sand at high speed and acceleration even though the bottom of the table is 1/2″ thick plywood.

  3. Awesome project. Trying to build it.
    Having trouble compiling…either tc_callback_t not defined, or, when including ASFcore i get multiple definitions of several declarations between ZeroTimer.h and tc.h.

    Could you help?

    1. Make sure you have no other M0 Timer libraries installed and install the Adafruit_ZeroTimer library.

      I did this directly from Github
      https://github.com/adafruit/Adafruit_ZeroTimer

      Also make sure you are using the avdweb_SAMDtimer.cpp from my Github and not a later version.

      I struggled with this when I was originally building it and I don’t recall exactly how I got it working. I may have to try again on a clean machine.

      Let me know how the two tips above work.

      1. Wow, Thanks for the fast reply!
        yes, I’m using all of those. Specifically it was structures like tc_wave_generation, tc_callback, etc. I also had to change the setCallBack in Zerotimer.c/h to accept the tcmodule function parameters.
        Would have the hex or bin file that I could at least load up to run?

        1. hex file has been added to Github.

          The fact that you had to change setCallback means that is it using the wrong library. If you were using the correct library the parameters would match.

          You are the 2nd person to have this problem. The Arduino IDE is very frustrating when it comes to libraries and debugging problems like this. I’ll work on it and see if I can determine the issue.

          1. Thank you for taking the time, I greatly appreciate it!
            I’m not seeing the hex yet on github(perhaps a push? or public?)

            If you also wanted to include your ASFCore folder and your ZeroTimer folder, I could certainly compare the two with what I have.

      1. Thank you Sir! I’ve got ’em and at a quick glance they do look a little different, also I see the preprocessor folder that is not included with the current ASF Core.
        I’ll be giving this a shot tonight.

Leave a Reply

Please be kind and respectful to help make the comments section excellent. (Comment Policy)

This site uses Akismet to reduce spam. Learn how your comment data is processed.