The clock uses two 1:100 geared 15mm stepper motors to move the arms configured in a scara fashion. The motors are located at the base to keep the weight very low on the arms. The tip of the arms contains two solenoids with cylindrical magnets inside them. I initially tried electromagnets but to get the text to be as dark as what is written by the magnet which comes along with the board needed a lot of power. The entire clock is run by a atmega 644p with a arduino bootloader. The motors are run by the standard stepstick and the coils are run by a l293dd dual h-bridge.
The kinematics for the arm was solved by a user on the reprap forum.
http://forums.reprap.org/read.php?185,283327
the only problem that remains is that the board gets scratched only after a day of use. i am looking into covering it with a scratch resistant film or plexiglas.
kinematics
We have x,y and we need two angles: one represents the height and the other the angle
first we need distance from x,y to axis :h= sqrt(x^2+y^2)
now angle between arms with law of cosines: angA= (L1^2+L2^2-h^2)/(2*L1*L2)
the angles of the parallelogram always add up to 360: angB=180-angA
calculate real height of arm: hA=sen(angB )*L2
height of arm's joint: hB=y-hA
ang2=asen(hB/L1)
ang1=angB+ang2
angB=180-ACOS((L1^2+L2^2-x^2-y^2)/(2*L1*L2))
ang2=90-(ACOS((L1^2-L2^2+x^2+y^2)/(2*L1*RAIZ(x^2+y^2)))+(ATAN(x/y))
ang1=ang2+angB
magnets are from aliexpress. I wound the solenoids on a brass core using some magnet wire.