Sand Art Plotter

by Deepaksh123 in Circuits > Arduino

1779 Views, 24 Favorites, 0 Comments

Sand Art Plotter

Untitled.jpg
Sand Art Plotter

A Sand Art Plotter is a type of CNC machine designed to create intricate patterns in the sand using a precise, programmable movement system. These machines are commonly used in kinetic sand tables, which create mesmerizing, ever-changing designs using a metal ball that moves through the sand, often controlled by magnets beneath the surface.

Supplies

IMG_6905.JPG
Capture2.PNG
IMG_8467.JPG
Capture6.PNG
IMG_8221.JPG
photo_2024-11-25_08-43-24.jpg
IMG_8295.JPG
IMG_8350.JPG
IMG_8406.JPG
photo_2024-11-25_08-43-20.jpg
IMG_6943.jpeg
  1. 1pcs x Arduino Nano
  2. 2pcs x 28byj-48 Stepper motors
  3. 2pcs x A4988 Stepper motor Drivers
  4. 1pcs x CNC shield V4
  5. 1pcs x Old Wall Clock
  6. 2pcs x Bicycle’s spokes
  7. 1pcs x String / Thread
  8. 2pcs x 18650 Lithium-ion Battery (3.7v).
  9. 1pcs x 18650 Lithium-ion Battery Holder
  10. 2pcs x Tensioner Springs
  11. 1pcs x Cardboard sheet (1.5mm thick)
  12. 1pcs x Metal Ball (10 mm dia.)
  13. 1pcs x Neodymium Magnet
  14. Fine sand (100 grams)
  15. 3D printed parts
  16. Super glue
  17. Black Vinyl Sheet

Tools used

  1. 3D printer
  2. Mini drill machine
  3. Soldering iron
  4. Vernier Caliper Digital
  5. Measuring tape/ scale

Converting a Unipolar 28BYJ-48 Stepper Motor to Bipolar Stepper Motor

IMG_6894.JPG
IMG_6898.JPG

First, remove the blue plastic cover of the motor with a sharp flat screwdriver. After removing the blue plastic you will have access to the path we need to remove. Can you see the cut in the picture above? That is best cut with the tip of a sharp knife. We only need to cut the path in the middle just like shown in the picture. Make sure that the cut is deep enough and there is no contact between its two sides – otherwise the motor will not work as a bipolar one. We just need to put back the blue plastic cap to its place and we are done. The thing you might want to do is to cut the red wire before closing the cap since we will no longer need it.

CNC Shield V4 Clone Fix!

IMG_E7019.JPG
CNC Shield V4 Clone Fix !

On online platforms there are various cloned CNC Shields for the Arduino NANO.

They are cheap and of good value but if you want to set Micro Stepping as they are, you can't.

Whoever made this shield made a mistake and put the pins that should go to Vcc to GND.

As the pins that set the Micro Step Mode are already pulled down to GND internally as default, and to change their state, they need pulling up to Vcc.

Watch this video tutorial to fix this error.

Dismantle Wall Clock

IMG_6905.JPG
IMG_6922.JPG
IMG_6924.JPG
IMG_6917.JPG
IMG_6925.JPG
IMG_6929.JPG
IMG_8287.JPG

First, dismantle all the parts of old wall clock and clean them.

Remove the frame of the wall clock.

Cover the top surface of the clock with black vinyl sheet.

Build Core XY CNC System

photo_2024-11-25_08-43-20.jpg
IMG_8295.JPG
IMG_8298.JPG
IMG_8300.JPG
IMG_8310.JPG
IMG_8317.JPG
IMG_8322.JPG
IMG_8325.JPG

A Core XY system moves a pen or tool in the X and Y directions using two motors and a crossed-belt arrangement. It is lightweight and efficient, making it a good choice for a DIY sand plotter.

Drill holes at the lower left and lower right corners to hold stepper motors with the help of screws.

A 3d printed part drill guide is used to locate the points where to drill holes.

Two 3D printed pulley is attached to the shaft of each stepper motor.

At each corner of LCD writing tab in pair of two idler pulley is mounted on the small rods.

Linear X-axis and Y-axis consists of bicycle’s spokes which moves linearly perpendicular to each other.

A 3D printed slider moves Forward/Backward and Up/Down which carries Magnet.

The Linear Rod Specifications are:

  1. Rod Diameter = 2 mm
  2. X-axis Rod length = 270 mm
  3. Y-axis Rod length = 210 mm
  4. For Pulley Rods: Three Rods length = 10 mm and other three rods length = 15 mm

The thread is bounded over the pulley. This Thread carries X and Y axis rods.

Left Stepper motor controls the X-axis rod and right Stepper motor controls the Y-axis rod.

A neodymium magnet is attached on the top side of Slider with the help of superglue.

This magnet helps in holding the metal ball during the movement of axes controlled by stepper motors.

Assemble All the Parts

IMG_8329.JPG
IMG_8330.JPG
IMG_8334.JPG
IMG_8380.JPG
IMG_8350.JPG
Untitled2.jpg
IMG_E8353.JPG
IMG_8393.JPG

Take a Cardboard sheet (size: 285mm X 225mm) having 1.5 mm thickness.

Cover this cardboard sheet with black vinyl sheet.

Place the cardboard sheet on the top of the wall clock and enclosed it in the frame of the clock with the help of screws.

However, you can use glass of the clock at the place of cardboard sheet, but my wall clock glass had been broken so I used a Cardboard sheet as a drawing surface.

Mount a strong magnet under the moving carriage i.e. Slider with the help of superglue.

Make a rectangular boundary using 3D printed parts to hold sand.

Attach these 3D printed parts on the cardboard surface with the help of superglue.

Circuit Connections

Capture2.PNG
Capture5.PNG
Capture4.PNG
IMG_8388.JPG
IMG_8385.JPG
IMG_8406.JPG

The Sand Art Plotter general parts includes two 28BYJ-48 stepper motors controlled by CNC shield V4. The CNC Shield includes Arduino Nano with two A4988 stepper motor drivers.

The motors (28byj-48) are connected to X and Y terminals of CNC Shield V4.

The RGB LED Light strip is connected to 5V and GND terminals of CNC Shield V4.

Don’t forget to adjust your A4988/DRV8825 driver current to the minimum. These motors cannot take more than about 100mA per phase. Forgetting to do that will burn or even melt the motor. You can also decrease the resolution of the driver to half step.

Place the CNC Shield V4 at the bottom surface of the wall clock.

make some cutting on the bottom part of the wall clock to hold CNC Shield V4.

Make proper connections of stepper motors, A4988 stepper drivers and RGB LED Light strip with the CNC Shield V4 as per the circuit diagram.

Four 3D printed supports are attached at the bottom part of the wall clock to provide heat dissipation from the motor drivers.

All the components is powered with an external power supply of two 18650 Lithium-ion Batteries (each 3.7v).

The Assembly of electronic parts is done.

Final Assembly

IMG_8406.JPG
IMG_8412.JPG
IMG_8413.JPG
IMG_8411.JPG
IMG_8419.JPG

RGB LED Lights are attached on the wall of 3D printed Rectangular boundary.

Spread the fine sand on the drawing surface uniformly.

Place a metal ball on the sand surface—it will follow the magnet’s path.

Connect the batteries and power it ON.

Connect Arduino Nano to the PC/ Laptop via USB Cable.

Software Required

Download Arduino IDE

https://www.arduino.cc/

Download Inkscape version 0.92

https://inkscape.org/release/0.92.2/windows/

Download Universal Gcode Sender

https://winder.github.io/ugs_website/download/

Download Grbl 0.9i with Servo motor support

https://github.com/robottini/grbl-servo20

Download 4xiDraw Inkscape Extension

https://github.com/CodersCafeTech/Large-CNC-Plotter/blob/main/InkScape%20Extension.zip


Download the library file > unzip it and load to arduino as:

File > Example > grbl upload compile and upload code to arduino nano.


GRBL Settings:

X axis and Y axis travel resolution : It is calculated on the stepper motor’s step angle - steps per revolution

You have to change only these values in UGS by typing $$ in the command section.

$100= 100.000 (x, step/mm)

$101= 100.000 (y, step/mm)

$110= 400.000 (x max rate, mm/min)

$111= 400.000 (y max rate, mm/min)

Generate Gcode

How to Upload GRBL and Generate Gcode for Sand Art Plotter
  1. I used Inkscape software to Generate Gcode file.
  2. Download all the above mentioned software along with 4xidraw Extension.
  3. Extract and install all the software.
  4. Open Inkscape file location > copy all the files of 4xidraw Extension to the extensions folder of Inkscape.
  5. After adding 4xidraw extension to Inkscape follow these steps to create Gcode file:
  6. Open Inkscape > File tab > Document Properties > set page size as 120mm x 100mm
  7. Drag and drop the particular image of your choice, adjust the image size accordingly and place it on the page.
  8. Select the image > Go to Trace Bitmap > convert to path
  9. Delete the previously inserted image.
  10. Then go to Extensions tab > Click on 4xidraw Tools > Save the parameters as shown in images > a pop-up box appear > adjust the values on the pop-up box > Click Apply Button > Gcode generated.


Working

IMG_8419.JPG
IMG_8442.JPG
IMG_8416.JPG
Untitled.jpg

Connect USB Cable to Arduino Nano port and and switch ON the DC power (5V to 9V) supply.

Open UGS, select Correct COM Port and set Baud to 115200, click on Connect tab.

Click Open ‣ Browse to the G-code file "infinity.gcode" that is generated by Inkscape.

Click on Send button and Sand Art Plotter will start drawing the image.

The image below shows a infinity symbol drawn by a Sand Art Plotter machine.

After each drawing you need to spread the sand on the drawing surface uniformly.

STL Files and Sample Gcode

Conclusion

I made this project from old scrap materials such as bicycle’s spokes, Old Wall Clock, string/thread and 3D printed parts to make a budget friendly Sand Art Plotter.

If you have any query regarding this tutorial, feel free to ask in comments section.

Hope you enjoyed this session of Instructables. Thanks for reading my work. I feel glad if you make your own Sand Art Plotter with the help of this tutorial.

Stay tuned to my Instructables channel for more upcoming exciting projects.

Thanks again.