This is my new smartwatch proof of concept. Based around the esp32 and a colour lcd it seems pretty standard for a maker watch. However, under the frame there are 3 hall effect sensors and through the help of magnets and bearings we end up with an incremental rotary encoder in the shape of a conventional watch’s bezel. Providing an interesting input device for wearables. However we will discuss later why you shouldn’t use this exact design and how you can improve it.
The encoding has been achieved through the use of 3 hall effect sensors mounted under the bezel. 8 magnets are embedded within the bezel that trigger the hall effect sensors as the bezel rotates. The bezel moves in 1/24 increments as a result of 6 magnets embedded in the face. Extra magnets places were given to adjust the strength of incrementing however I find three per side to be the best. 3 magnets per side also means that the strength of the increment wont change as you rotate the bezel as only 1 magnet will be close at a time.
The bezel pivots around the central locking ring. 8 2mm ball bearings are placed with 1/12th spacing between the two to provide a smooth and consistent motion. 4 balls are missing as they would interfere with the placement of the magnets. The centre ring is printed detached and glued on, this allows the watch face to be printed flat on the print bed and sanded more effectively. Friction is an enemy here and it’s almost impossible to effectively sand the area under supports to be smooth.
The encoder is pretty good and fairly reliable, it can handle quick changes in direction and a relatively good rotation speed. However at a certain speed the magnets are moving so fast past the hall effect sensors the average reading they give is above their internal threshold. So it appears that all of them are "on", for the code theres no way to figure the direction or speed so it really freaks out. You could definitely add some more conditions to detect this state and stop it counting to avoid problems but I haven't bothered.
How can you improve your version?I theorise the speed issue can be solved by changing the magnet and hall effect sensor spacing. Changing the hall effect sensors to 1/12th spacing and using 4 magnets. This increases the space between the sensors meaning a higher speed will be needed to create the same problems. I also believe using analog hall effect sensors would be advantageous as it allows you to set the thresholds in software and alter them as you wish.
Please only use this a a proof of concept, the hardware, step files and electronics in the GitHub are plagued by minor issues and problems. I implore you to design your own, better version. If you have any questions don't hesitate to contact me through GitHub.
Comments