Non-Split Flap Digital Clock
I developed a new clock mechanism to address the issues present in existing mechanical clocks. Famous split-flap displays exhibit undesirable parting lines in the text, and their display surfaces cannot be tilted as they rely on gravity. Numechron-type clocks feature a relatively small display area compared to the body size, necessitated by the large wheel inside. This "Non-Split Flap Digital Clock" offers numerous advantages, which include:
- The flip rotating mechanism reduces the number of flaps, making it possible to decrease the size of the wheel while ensuring the display area is sufficiently large compared to the body size.
- The display surface is tilted at 15 degrees for better visibility.
- The motor is installed inside the wheel of the tens place for minutes, ensuring there are no protruding parts on either side or the back.
- A one-way hook (ratchet) mechanism enables the automatic alignment of the ones place for minutes. This alignment is performed every minute.
- Time adjustment is made easy by manually rotating the wheels. Both the hour and 10-minute wheels can be rotated in both directions.
- All essential parts can be printed out with relatively small 3D printers (180x180mm). It does not need support structure at all. Filament change during print enables to give multiple colors for flap parts.
Mar 17, 2024 : Optional parts for skeleton version are now available. Two side frames are modified to be skeleton, and the colored front frame is added. Other parts are identical to the cased version.
Supplies
Material
- 28BYJ-48 geared stepper motor and driver board comes with (around 3USD per unit) . You can find at Amazon, AliExpress
- Assortment of 2mm tapping screws. You can find at Amazon, AliExpress
- Any microcontroller (Raspberry Pi Pico, Arduino nano, ESP32, etc.) All microcontrollers shown above can be programmed using Arduino IDE, and program is compatible except port connection.
- Lubricant (silicone grease)
Tool
- Screw driver
- Soldering iron (if you use microcontroller without pin headers)
- Knife, scraper and/or file to remove debris, smoothen surfaces and chamfer corners of printed matter
- Drill bit set. I used diameter = 1.5, 2.0 and 3.5mm bits for this project
Print Flaps
Change the filament during print to give different color to the numbers.
- The thickness of the flaps is 3mm, and the depth of numbers is 1mm. Therefore, you should change the material before 1mm and after 2mm. I set pause at 0.8mm and 2.2mm from build table.
- If you use Cura Slicer, you should specify the "Pause at height" function in descending order.
- Firstly, confirm your setting works well for your printer, by using "single-flap-for-test.stl".
- For "10min-flaps.stl", you do not need to change the filament twice because these are single sided.
Finish
- Inspect and clean up the axes of flaps at both side. It is very important to make the flap rotating smoothly.
- Chamfer the top edge of the both side of flaps. This edge touches the guide of the flaps that regulate the pose of flaps. The guide is on the frames at both side. It makes the rotation of hour and 1min rotors smooth.
Print Essential Parts
- Print all parts with supplied posture.
- Support structure is not necessary at all.
- Length of "main-axis.stl" exceeds 180mm (Still within 200mm). Therefore, place it diagonal on the build table when you use a small printer.
Finish
- Remove debris and blobs well, especially around the axes, holes and sliding surfaces.
- Especially, inside surfaces of flap guide rails of "left-frame.stl" and "right-frame.stl" should be very smooth to avoid unintentional stack of the clock.
- Clean holes with drill bits. Use 1.5mm drill bit for the holes engaging the tapping screw. 2.0mm for through holes of screws.
- The holes for the axes of flaps can be cleaned using 3.5mm drill bit. Please be careful not to break the parts.
Downloads
Subassembly
- Assemble 3 rotors with screws. Please make sure that 1min rotor is pentagonal shape and screw holes match at certain angle only.
- Flaps can be attached after the assembly by the flexibility of rotor frame. Please make sure that flaps rotate very smoothly, then remove them. See attached video.
- Insert "10min-flaps" (actually these are not flaps but single-sided panel) to the "10min-rotor". If flaps are not well fixed but slide out, use glue.
- Assemble intermediate frames (1 and 2) as shown in pictures above.
Put the All Parts Together
- See assembly guide video above (7min).
- Basically, assemble the clock from left (hour digit) to right (1min digit).
- The rotating flaps can be attached afterwards owing to the flexibility of the flap holder (rotor).
- Most parts are 60degree rotational symmetric and you do not need to care about the position, except 1min rotor because it is pentagonal shape. It has "0" marking at left side.
- Set gears of the carryover mechanism as the status of "just after the carryover". To do it, rotate gears CW direction until gear tooth touches to the driven gear. When the gears are at this position, driving rotors must show "0" facing front.
Adjustment
- To adjust the height of digits, tune the angle of the adjusters at the back of the clock. Stronger force moves the digit lower.
Microcontroller
Circuitry
- You can use any microcontroller. I use Arduino nano and Waveshare RP2040-Zero. See connection in the picture above. This circuit is common for most clock projects of mine, such as "Triaxial Numechron Clock" or "Digital Geneva Clock".
- The accuracy of the clock depends on the type of oscillator on the microcontroller. RP2040-Zero is more accurate than Arduino nano because it has crystal oscillator. (Arduino nano has cheaper but inaccurate ceralock oscillator).
- Housing of Arduino nano and driver board can be found at https://www.thingiverse.com/thing:5145523.
- Housing of Waveshare RP2040-Zero and driver board can be found at https://www.thingiverse.com/thing:6619200.
- I made the modified case to attach it to the back of this clock (see Step 6).
Codes (for Arduino nano connected as shown above)
- "stepper-test.ino" drives the motor continuously. Use to confirm that the motor is correctly connected.
- "forward-back.ino" drives the clock rapidly. The motion is almost as same as clock, but it is fast.
- "clock.ino" is the code for actual use.
- By pressing reset button, it rotate back to perform alignment. If the 1min rotor is at irregular position, press reset button multiple times.
- After reset, it immediately advances the clock 1 minute. Therefore, reset button can be used to adjust the clock (1min advance per one push).
If the motor rotates to the opposite direction, change the source code, from
int port[4] = {4, 5, 6, 7};
to
int port[4] = {7, 6, 5, 4};
If you use Waveshare RP2040-Zero board connected as shown above, please change the source code to
int port[4] = {5, 4, 3, 2};
Optional Files
Cover
- Bottom cover is attached by a screw at center.
- Top cover is just put on the clock. It is convenient for clock adjustment.
- These parts exceeds 180x180mm (Still within 200x200mm).
Skeleton version
- Use two modified side frames, "skeleton-left.frame.stl" and "skeleton-right-frame.stl".
- Print and stick "skeleton-front-frame.stl" using double-sided adhesive tape.
Case to attach the circuitry
- Case for the circuitry is supplied. The case is essentially identical to the following, except extension and screw holes to attach to the clock.
- "Hide-away unit case for Arduino nano and 28BYJ-48 stepper motor"
- "Hide-away unit case for Waveshare RP2040-Zero and 28BYJ-48 stepper motor"
Learn
- The flap rotation mechanism does not depend on probabilistic, inertial, flexible, or friction-based mechanisms. It always functions as intended. As illustrated in the picture above, the tail of the flap (A) is regulated from outside, ensuring that the head of the flap goes outside the guide rail (B). Due to the length of the flaps, both ends are slightly farther from the rotation center than the axis of the flap. Therefore, a fixed structure can slightly rotate the flap, allowing it to be caught by the hook.
- The hook-based alignment mechanism requires backward motion of the rotor, made possible by the difference in rotation angles of the rotors. The 10-minute rotor needs 60 degrees for one step, while the 1-minute rotor rotates 72 degrees (because it has 5 flaps). Therefore, the carryover mechanism can maintain a 12-degree free play (in other words, the gear tooth for carryover is 12 degrees away from touching the driven gear when the 1-minute rotor shows "9").