Sand Clock Kit Assembly Manual
SKU: 20679
Notice
This kit is designed for individuals with intermediate experience in electronics and mechanics assembly. If you find the kit too complex for your skill level, please do not attempt assembly. Allow approximately 1.5 to 2 hours to complete this kit. Ensure your workspace is well-lit (daylight preferred) and clean. Assemble the Sand Clock in the order specified in these instructions, reading and understanding each step before proceeding.
Tools and Materials Required:
- A set of pozidrive screwdrivers or a cordless screwdriver with pozidrive bits.
- Long nose pliers ?
- Tweezers ?
- A pencil sharpener ✏️
- A computer with the Arduino IDE installed ?
- A micro-USB power supply 5V/1.5A ⚡
Commands in this manual are printed in bold, e.g., svml 1800 (Servo move left, 1800 microseconds). The position of a servo motor is determined by the pulse width of the controlling PWM signal, expressed in microseconds (μs).
Disclaimer: All pictures are for illustration purposes only. Actual product may vary due to product enhancement.
Assembly
Assembling and testing the electronics and servos
Step 1: Attach Raspberry Pi Pico and Servos
Attach the Raspberry Pi Pico to the baseboard and connect the three servo motors. The brown wire goes to 'G' (Ground), and the yellow/orange wire goes to 'D' (Digital pin). Insert the CR2032 3V lithium coin cell into the battery holder on the baseboard.
Visual Description: The image shows the clear acrylic base with the Raspberry Pi Pico board, a small coin cell battery, three micro servo motors (MG90S), and associated wiring.
Step 2: Connect Power and Upload Software
Connect a micro-USB power supply to the baseboard and connect the Raspberry Pi Pico to your PC using the included USB cable. You will need to install the "Raspberry Pi Pico/RP2040" boards package via the Arduino IDE's "boards manager" and then select the connected Raspberry Pi Pico and its port.
Library Installation: Install the library "RTCLib by NeiroN by JeeLabs" from https://www.arduino.cc/reference/en/libraries/rtclib-by-neiron/.
Download the Sand Clock program from the Elektor website (https://www.elektor.com/20679) and open it in the Arduino IDE. Compile and upload the program to the Raspberry Pi Pico.
Upon starting, the sketch checks for calibration data in the EEPROM. If none is found (typical for the first use), it will move all three servo motors to a middle position (1500 μs pulse width).
Checking Servo Positions: You can verify servo positions by opening the Arduino IDE's serial monitor. Select a non-empty character sequence as the line ending (e.g., carriage return, newline, or both) and send the command svd. The response should confirm all three servo channels are at 1500 μs. If not, you can manually move them using svml 1500, svmr 1500, and svmp 1500.
Turn off the power and disconnect the servo motors before proceeding.
Visual Description: The Arduino IDE shows the "Select Other Board and Port" dialog with "Raspberry Pi Pico" and a COM port selected. Another image shows the Arduino IDE's Library Manager with installed packages like "Raspberry Pi Pico/RP2040" and "RTCLib".
Step 3: Mechanical Assembly - Base and Frame
Remove the protective film from both sides of the bottom plate (A). Stick 4 adhesive rubber bumpers [1] to the corners. Ensure the bottom plate is oriented correctly, as repositioning the bumpers can be difficult.
Mount the 4 standoffs [2] for the sandbox using M3x10 machine screws [3] and M3 plastic washers [3]. Hand-tighten only.
Remove the protective film from both sides of the side panels (B1, B2) and the rear panel (C) of the frame. Screw these panels together at a right angle using M3x10 machine screws [3] and M3 nuts [3]. Do not over-tighten screws, as this can crack the acrylic.
Visual Description: Images show the acrylic parts labeled (A), (B1), (B2), (C) along with hardware. Another image illustrates the bottom plate (A) with rubber bumpers [1] and standoffs [2] attached using screws [3].
Step 4: Attach Lift Servo Mechanism
Remove the protective film from both sides of the acrylic parts. Attach the lift servo to the lift servo panel (D) using two M2x10 machine screws [3] and M2 nuts [3]. Attach the servo arm to the servo shaft using the M2.5 machine screw provided with the servo accessories.
The servo arm should point approximately 90 degrees upright. Minor deviations due to servo shaft teeth are acceptable. The acrylic lift servo lever (E) has two holes; attach it to the servo arm using the smallest hole and a self-tapping plastic screw from the servo accessories bag. Ensure the lever moves freely with minimal slack. The distance between the servo shaft center and the lever's mounting point should be around +/- 13 mm (typically the second or third hole from the end on the servo arm).
Visual Description: Images show acrylic parts and hardware. A servo motor (MG90S) is shown with its accessories, including a servo arm (D) and lever (E). Another image depicts the servo arm positioned at a 90-degree angle.
Step 5: Mount Baseboard and Frame
Attach the lift servo mechanism to the frame using an M3x10 machine screw and an M3 nut.
Mount the baseboard to the baseplate using M2.5x8 machine screws and 3 mm plastic spacers. Tighten these screws loosely to allow the board some movement.
Note that the screws are tapped into the baseplate, so nuts are not required for this step.
Now, attach the frame with the lift servo mechanism to the baseplate using two M3x10 machine screws and an M3 nut. Finally, tighten the baseboard mounting screws.
Visual Description: Images show the lift servo mechanism being attached to the frame. Another image shows the baseboard being mounted to the baseplate with screws and spacers. The final image shows the frame with the lift servo mechanism attached to the baseplate, and the baseboard mounted.
Step 6: Assemble Pantograph Servo Mount
Remove the protective film from both sides of the acrylic parts (F), (G), and (H). Attach the hinges (H) and (G) to the pantograph servo motors mounting plate (F) using M3x10 machine screws and M3 nuts.
Mount both servo motors onto this plate using M2x10 machine screws and M2 nuts.
Visual Description: Images show acrylic parts (F), (G), (H) and hardware. Another image shows two servo motors being mounted onto a clear acrylic plate.
Step 7: Attach Pantograph Mechanism to Base
Attach the pantograph servo mechanism to the base of the clock using 2 M3x10 machine screws and 2 M3 lock nuts. Tighten the screws so the mechanism can rotate freely with minimal slack.
Route the servo wires under the lift servo and connect them to the baseboard, ensuring correct polarity. Turn the pantograph servo mechanism upright and attach it to the lift servo lever using an M3x10 machine screw and an M3 lock nut. Tighten so the mechanism operates freely with minimal slack.
Visual Description: Images show the pantograph servo mechanism being attached to the clock base. The baseboard with the Raspberry Pi Pico and servos is also visible.
Step 8: Assemble Pantograph Arms
Remove the protective film from both sides of the acrylic parts (I), (J), (K), and (L). Assemble the pantograph arms: Screw part (J) onto one of the parts (I) using an M3x8 machine screw. Then, screw part (K) onto part (J) using an M3x8 machine screw. Finally, screw the other side of part (K) onto the second part (I), with the round acrylic disc (L) in between, using an M3x10 machine screw. Ensure part (J) is oriented as shown in the photo.
Tighten screws so the arms rotate freely with minimal slack. Be gentle to avoid cracking the acrylic. Finish by attaching the servo arms. Temporarily fit an M2.5x8 machine screw through the holes in the acrylic and servo horns. Secure the servo arms to the acrylic arms (I) using 2 plastic screws supplied with the servo motors.
Carefully sharpen the plastic M4x30 machine screw with a pencil sharpener and fit it with an M4 nut to the pantograph assembly.
Attach the pantograph mechanism to the pantograph servo motors using M2.5x8 machine screws. Mount the arms to form a 90-degree angle. Minor deviations due to servo shaft teeth are acceptable and will be compensated during calibration.
Visual Description: Images show acrylic parts (I), (J), (K), (L) and hardware. An assembled pantograph arm structure is shown, as is the pantograph mechanism attached to servo motors.
Step 9: Assemble Sandbox Panels
Remove the protective film from both sides of the acrylic sandbox parts (M), (N), and (O). The part with the widest rim (O) goes on top. Screw the panels together using 6 M2.5x12 machine screws. Ensure the panels are firmly secured against each other without over-tightening.
Visual Description: Images show the sandbox panels (M), (N), (O) and hardware (M2.5x12). A diagram shows the assembled sandbox structure.
Step 10: Calibration Procedure
The calibration procedure involves sending commands to the clock. Connect a micro-USB power supply to the baseboard and connect the Raspberry Pi Pico to your computer with the USB cable. All servos should initially be at 1500 μs (unless previous settings were saved to EEPROM).
Open the serial port using Arduino IDE's Serial Monitor. Select a non-empty character sequence as the line ending (carriage return, newline/linefeed, or both). You are now ready to send commands.
During calibration, you can query current settings with sed and servo positions with svd.
Calibration Steps:
- Move the left servo motor to its vertical position (approx. 1000 μs), e.g., svml 1080. Adjust the value until the most accurate position is found. Store the setting: svslv.
- Move the right servo motor to its vertical position (approx. 2000 μs), e.g., svmr 2050. Adjust the value. Store the setting: svsrv.
- Move the left servo motor to its horizontal position (approx. 2000 μs), e.g., svml 1940. Adjust the value. Store the setting: svslh.
- Move the left servo motor back to its vertical position using svml with the previously determined value. Query the correct value using sed.
- Move the right servo motor to its horizontal position (approx. 1000 μs), e.g., svmr 1080. Adjust the value. Store the setting: svsrh.
- Move pen up: svmp 2000.
- Set pen position: ps 0 40.
- Place the partially assembled sandbox on the standoffs, ensuring it lies perfectly flat. If it wobbles, twist it slightly diagonally until it lies flat.
- Move the pen servo motor to the down position (approx. 1500 μs), e.g., svmp 1525. Adjust the value. The pen should hover approximately 1-2 mm above the sandbox bottom when writing. Mechanically adjust the pen height if necessary and lock with the M4 nut. Store the setting: svspd.
- Check pen down position: Pen position 1: ps 0 30. Pen position 2: ps 0 55. Adjust pen servo if needed.
- Set pen to neutral position: ps 0 40.
- Move the pen servo motor to the middle position (approx. 1800 μs), e.g., svmp 1700. Adjust the value. Store the setting: svspm.
- Move the pen servo motor to the top position (approx. 2100 μs), e.g., svmp 2150. Adjust the value. Store the setting: svspu.
- Set vibration period (seconds), e.g., vms 5.
- Review settings with sed. Modify if needed. Ensure start-up program mode is set to 'command' for now.
- Store settings in EEPROM: sew.
- Set date and time in the real-time clock, e.g., cw 2024 08 27 18 40 00. A CR2032 battery must be installed.
- Check date and time with cr.
- Lift pen up with plu.
- Power off the sand clock.
Visual Description: An image shows the assembled sandbox structure.
Step 11: Mount Vibration Motors
Mount the plastic clips on the bottom side of the sandbox using 2 M3x6 machine screws and 2 M3 steel washers. Do not fully tighten these screws yet.
Slide the vibration motors into the clips and position them as shown. Now, tighten the screws until the motors are firmly in place and the clips cannot rotate easily. Experiment with different alignments to observe their effect on sand distribution during vibration.
Visual Description: Images show the bottom of the sandbox with vibration motors attached, and the hardware used.
Step 12: Connect Vibration Motors and Test
Connect the wires of the vibration motors together and attach them to the connector on the baseboard, checking polarity.
Place the sandbox on top of the standoffs. Ensure wires do not touch the rotating parts of the vibration motors; rearrange if necessary. Test the clock without sand to confirm all components function correctly.
Visual Description: An image shows the wires of the vibration motors.
Step 13: Add Sand
Add sand to the sandbox, creating a layer of 4-5 mm and spreading it evenly.
You can color the sand using food coloring. Place sand in a small jar, add a few drops of coloring, and shake vigorously until evenly colored. Repeat until the desired color intensity is achieved. Ensure the sand is completely dry before pouring it into the sandbox.
Step 14: Final Calibration
Power on the Sand Clock. It will start in command mode.
Calibrate the pen further if needed. The following commands draw an "8" in the sand:
ps -10 25
pg 8 1 1
Select the start-up mode, which takes effect on each power-up or reset:
- Send command msa for autonomous mode (normal clock behavior).
- Send command msc for command mode (control via serial monitor).
Send command sew to program the selected start-up mode and other settings into EEPROM.
Send command ma if you want to immediately switch from command mode to autonomous mode.
Congratulations, your Sand Clock is now finished!
For more information and software downloads, visit:
Visual Description: A QR code is displayed, linking to the Elektor and JOY-it websites.