Mini Plotter V2
In this session of Instructables, I'd like to share a budget friendly Mini Plotter. This project is based on Arduino nano and runs on GRBL firmware. It consists of two 28byj-48 Stepper motors converted to Bipolar stepper motors, one servo motor and 3D printed parts that provide movement in two axes. The materials used for this project are Arduino nano, 28byj-48 Stepper motors, servo motor, bicycle’s spokes, Old LCD Writing tablet, string/thread and 3D printed parts. The 3D printed parts are designed in such a way that the whole machine become budget friendly, easy to build, compact, light in weight and looks cool. Let’s make it!
Supplies
- 1pcs x Arduino Nano
- 2pcs x 28byj-48 Stepper motors
- 2pcs x A4988 Stepper motor Drivers
- 1pcs x Servo Motor
- 1pcs x CNC shield V4
- 2pcs x Bicycle’s spokes
- 1pcs x Old LCD Writing tablet
- 1pcs x String / Thread
- 2pcs x 18650 Lithium ion Battery (3.7v).
- 1pcs x 18650 Lithium ion Battery Holder
- 2pcs x Tensioner Springs
- Double sided foam tape
- 4pcs x Magnets
- Color Pens
- 3D printed parts
- Super glue
Tools used
- 3D printer
- Mini drill machine
- Soldering iron
- Vernier Caliper Digital
- Measuring tape/ scale
Converting a 28BYJ-48 Stepper Motor From Unipolar to Bipolar
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
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.
Build Linear X-Axis and Y-axis
Remove the broken lcd screen from the tab. 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 Servo motor whose arm attached with a pen.
Rod Diameter = 2mm
X-axis rod length = 23.5 cm
Y-axis rod length = 17.0 cm
For Pulley Rods:
3 Rods length = 10 mm and other 3 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. You can download STL files of 3D printed parts provided at the end of this tutorial. Both stepper are attached at the back of the LCD pad with the help of super glue.
Build Z-Axis (Pen Holder)
Z-axis consists of a servo motor having a 3D printed arm to hold color pen. No need of other parts to lift pen up and down.
Assembly and Connection
The Mini CNC Plotter general parts includes two 28BYJ-48 stepper motors and a servo motor controlled by CNC shield V4. The CNC Shield includes Arduino Nano and two A4988 stepper motor drivers. It consists of X axis and Y axis moves linearly perpendicular to each other and Z axis (servo motor) move linearly up and down to carry out lift a pen up/down.
The motors (28byj-48) are connected to X and Y terminals of CNC Shield V4.
The servomotor connected to pin Z- 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.
Assemble all parts together. Make proper connections of stepper motors, A4988 stepper drivers and servo motor with the Arduino nano as per the circuit diagram.
The whole circuit consisting CNC shield V4 along with Arduino Nano and two A4988 motor drivers are attached at the back side of the lcd pad with the help of double sided tape. 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.
Software Required
Download Arduino IDE
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 MI-GRBL-Z-AXIS-Servo-Controller
https://github.com/ikae/MI-GRBL-Z-AXIS-Servo-Controller
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= 1000.000 (x, step/mm)
$101= 1000.000 (y, step/mm)
Inkscape to Generate Gcode
I used Inkscape software to generate G-code.
Steps for generating Gcode in Inkscape:
- Download older version of Inkscape i.e. Inkscape 0.92.4 and download MI-GRBL-Z-AXIS-Servo-Controller extension.
- MI-GRBL-Z-AXIS-Servo-Controller extension helps in creating the G-code files from texts or images.
- After downloading MI-GRBL-Z-AXIS-Servo-Controller extension, copy the files of this extension and paste these files inside the extensions folder of Inkscape.
- In my computer system the location of Extensions Folder as shown below:
- C:\Program Files\Inkscape\share\extensions
- Open INKSCAPE.
- Click on File tab > Document properties > Width equals to 140mm and Height equals to 80mm.
- Drag and drop the particular image in Inkscape > Select Image > Convert to Path > Delete the original image > Path tab> Object to path
- Go to Extensions tab > Click on MI-GRBL-Z-AXIS-Servo-Controller extension > a pop-up box appear > adjust the values on the pop-up box. > Click Apply Button. My settings is shown in the picture:
Working
Connect USB Cable to Arduino Nano port and and switch ON the DC power supply.
Cut a 14cm X 18cm paper sheet from a A4 white paper sheet and place this sheet on the lcd pad of Mini CNC Plotter.
Hold this paper sheet on the tab with the help of paper 2 magnets.
Put color pen in the pen holder of the plotter.
Open UGS, select Port and set Baud to 115200, click on Connect tab.
Click Open ‣ Browse to the G-code file "owl.gcode" that is generated by Inkscape.
Click Send button and Mini CNC Plotter will start drawing the image.
The image below shows a owl drawn by a Mini CNC machine.
STL Files
Sample Gcodes
Conclusion
I made this project from old scrap materials such as bicycle’s spokes, Old LCD Writing tablet, string/thread and 3D printed parts to make a budget friendly Mini CNC 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 Mini CNC Plotter with the help of this tutorial.
Stay tuned to my Instructables channel for more upcoming exciting projects.
Thanks again.