Magnet Viewing Clock

by mosivers in Circuits > Clocks

2493 Views, 5 Favorites, 0 Comments

Magnet Viewing Clock

IMG_3592.JPG
Magnet Viewing Clock
IMG_3576.JPG
IMG_3593.JPG

I recently came up with a new idea for an unconventional display by using a magnetic viewing film that changes color in a magnetic field. In contrast to some other magnet viewing films this one shows a variety of colors depending on the magnetic field strength and also changes back to the original color when the magnetic field disappears.

Naturally, this was going to be another clock project. Behind the viewing film numbers made of magnetic material are arranged on four wheels. The numbers are hidden behind a thin foil so they are only visible when they are viewed through the magnetic film.

The clock design was inspired by Moose408's Slide Clock but instead of linear rails I used wheels to make the clock more compact so that it fits on a table.

Supplies

Materials

  • 6 x 4 inch magnetic field viewing film (amazon)
  • A4, 0.4mm thick self-adhesive magnet foil (ebay)
  • 4 pcs, 28BYJ-48, 12V stepper motors
  • Arduino Uno + CNC shield + stepper drivers
  • DS3231 RTC module
  • 4 pcs, KY-003 hall sensors
  • DC power jack
  • 12 V power supply
  • A4 vinyl foil, black

Tools

  • 3D printer
  • vinyl plotter

3D Printing

All parts of the clock were 3D printed from black and white PLA. This includes the four wheels the housing (two parts) and the stand. The top and bottom wheel needs to be printed twice. You can find the files on my github.

Assemble Wheels

IMG_20221212_203035.jpg
IMG_20221124_224239.jpg
IMG_20230105_144249.jpg

The numbers (dxf files on my github) were cut from self-adhesive magnet foil with a plotter (Silhouette Portrait 2). The foil is rather thick so it needed 4 passes at the highest blade length and pressure. The numbers were then attached to the 3D printed wheels which have grooves so that the surface is flush. Finally the wheels were covered with matte black vinyl foil so that the numbers are completely hidden. To trigger the hall switch I added a strip of the magnetic foil to the back of each wheel at a random position.

Prepare Magnet Viewing Film

IMG_20221211_165122.jpg
IMG_20221211_201535.jpg
IMG_20221211_165808.jpg

There magnet viewing film is marked with 4 rectangles and 2 dots. These were also cut from matte black vinyl foil. To attach them in the right position I first made a jig with my plotter from paper. All dxf files can be found on my github.

The film was then glued to the 3D printed bezel with double sided tape. In the end, I also added a 1mm thick sheet of transparent PC in front of the film. Otherwise the film is not pressed flush against the wheels and some of the numbers are hardly visible.

Prepare Electronics

IMG_20221208_203145.jpg
IMG_20221208_203229.jpg
IMG_20230105_144222.jpg

Similar to the instructions in Moose408's Slide Clock you have to set 2 jumpers on the CNC shield, swap the yellow and pink wire on the stepper cable and solder a cable to power the arduino from 12V. Contrary to his instructions the RTC can be connected to the SDA, SDL pins on the CNC shield.

KY-003 hall sensors are used for homing the wheels, they are attached to the front plate and connected to the X,Y, Z limit switches and the SpnEn pin on the CNC shield.

Assemble Clock

IMG_20221209_172031.jpg
IMG_20221209_172034.jpg
IMG_20221209_172036.jpg
IMG_20221211_203822.jpg

The Arduino is attached to the housing using M3 bolts and nuts, the RTC is attached with M2 bolts and nuts and finally the stepper motors are attached with M4 bolts and nuts. The wheels are press fitted onto the motor shaft then the bezel is attached to the front plate using M2.2 self-tapping screws. Next the stand is attached using M3 screws and nuts. Finally the the housing is closed with M3 screws from the back.

Upload Code

The code is a modified version of that by Moose408 and can be found on my github. Before connecting the USB cable plug in the 12V power supply so that the steppers do not get powered by USB. When first uploading the code you have to set the RTC to the current time by uncommenting a line in Clock.cpp at RTCInit(). Also the "xxx_OFFSET" variables in the stepper.h file have to be adjusted according to the position of the magnetic strips that trigger the hall sensors. This can be done by moving the clock manually to 00:00 after homing using key inputs and noting down the position.

Concluding Remarks

I am not completely happy with the clock mainly because the numbers have a bad contrast on the viewing film. Also some numbers are not completely flush with the screen so they are hardly visible.

When I started this project I wanted to put a matrix of PCB coils behind the magnet viewing film but the magnetic field was simply not strong enough. I also tried solenoids which work but then abandoned the idea because for once I wanted to build something which has not an excessive power consumption.

Honestly, this clock may look nicer when you replace the viewing film with a transparent screen and make the numbers on the wheels simply visible. You can also put the numbers in a random order or make a cryptic version similar to what Moose408 did.