Arduino CNC Thermocol Cutter
by Deepaksh123 in Circuits > Arduino
23381 Views, 206 Favorites, 0 Comments
Arduino CNC Thermocol Cutter
In this project, I'd like to share how to build a 2-axis thermocol/ polystyrene cutting CNC machine with its frame and supports made of electrical wire casing/duct and 3D printed parts. Basically it is a thermocol cutting tool which can be used to cut different shapes from the thermocol sheet. It can be used as a craft making tool. The idea of using electrical wire casing / duct as linear rails makes the whole machine affordable and of less weight. With this cutter you can easily cut Thermocol / polystyrene, styrofoam or any other similar material.
This machine is made up of easily available parts like 28byj-48 Stepper motors, Arduino nano, old radio antenna rods, string / thread and 3d printed parts. Hope you like this Idea.
Supplies
1pcs x Arduino Nano
1pcs x PWM Motor speed controller
2pcs x ULN2003 Stepper Motor Driver IC
2pcs x 28byj-48 Stepper motors
2pcs x Header pins and IC seat
1pcs x PCB Sheet (6 cm X 6cm)
1pcs x Aluminium composite panel sheet (34 cm X 13.5 cm)
2pcs x String / Thread
2pcs x Electrical wire Casing/duct
2pcs x Springs
2pcs x Old radio antenna.
2pcs x Power Supply 5VDC and 9VDC.
1pcs x Nichrome wire (Length = 6 cm)
2pcs x Female DC Power jack
2pcs x Old gas cylinder washers
2pcs x steel rods (outer dia =1.5 mm and length = 15 mm)
Thermocol / Polystyrene / Foam sheet
3D printed parts
Wires
Some Screws
Super Glue
Double sided foam tape
Tools used
3D printer
Mini drill machine
Mini Hand Saw
Screw driver set
Soldering iron
Vernier Caliper Digital
Measuring tape/ scale
X-axis and Y-axis
The dimensions of casing to be used as linear rail and a Aluminium composite panel sheet (34cm X 13.5cm) used as a Base .
All Other parts like slider for both X and Y axis are made up electrical wire casing.
Total casing/duct parts required:
Linear rail dimensions:
For X-axis = 34.0 cm
For Y-axis = 30.5 cm
For X-axis Slider = 5.0 cm
For Y-axis Slider = 6.0 cm
Old Radio Antenna Rods length = 25 cm each
Outer Diameter of two antenna rods = 6 cm and 7 cm
The Thermocol Cutting Cnc general part includes two 28BYJ-48 stepper motors controlled by Arduino Nano with the help of two ULN2003 stepper motor drivers. The X-axis and the Y-axis of the plotter are made up of electrical wire casing/duct. The making of linear rail from casing/duct came from the idea that the upper part of the casing with small length slides smoothly on the other part of the casing.
X axis move linearly forward and backward relative supported at the ends with the 3D printed stands and Y axis move linearly up and down which carries nichrome wire holding rods.
Preparation of All Parts
Take a aluminium composite panel sheet and cut a piece of size 34cm x 13.5 cm
Drill required holes on the sheet to hold 3D printed stands. These two 3D printed stands supports X-axis.
X-axis consists of an electric duct casing attached with a stepper motor. For the pulley of the stepper motor I have used an old gas cylinder washer attached to a 3D printed pulley. This washer helps in gripping the string.
Make necessary holes on the electric duct casing to hold stepper motor on one side and idler pulley on other side with a mini drill machine.
Also cut a small part of upper duct casing to hold idler pulley as per the dimensions shown in images.
The slider for X-axis made from cutting a 5cm piece of upper part of duct casing.
Similar steps to be followed to built Y-axis but the length for the slider for Y-axis is 6 cm.
The slider of X-axis is attached with the Y-axis casing perpendicularly with the help of super glue.
Attach the pulleys on each stepper motor and tied up the string/thread between the motor pulley and the idler pulley of both axis. Use springs to hold the string/ thread in proper tension.
Nichrome Wire Holder
Nichrome wire holder consists of two antenna rods one inside the other. I got these hollow rods from my old radio set. The outer diameter of these two rods are 6 cm and 7 cm.I designed 3D printed holders to hold these rods apart at a distance of 5cm.
Two 3D printed parts are also designed to hold these rods with the slider of the Y-axis as shown in the images.
One hole is drilled on each rod 1cm far from one end of the rod to take out wires from these holes. A screw is attached at one end of each rod to hold the wires from power supply and Nichrome wire.
The temperature of the Nichrome wire controlled with a PWM motor speed controller powered with 9v DC supply. Adjust the knob of PWM Controller to change the current input to the Nichrome wire.
Assemble all parts together with the help of screws.
NOTE:- This project uses high current and hot wires, so take care of yourself while handling this machine. Also, beware of toxic fumes, and work in a well ventilated area.
Nichrome wire has special properties due to which it provides very high resistance and act as resistive load when connected to the power supply. BE AWARE OF IT.
Assemble All Parts
With the help of screws all final parts are assembled together to form basic structure of the machine. The 28byj-48 Stepper Motors with pulley belt mechanism is used for both x-axis and y-axis.
Attach the X-axis stands on the base plate made up of aluminium composite sheet with the help of screws. Hold the X-axis casing inside the cavity provided in the 3D printed stands.
Attach the pulleys on each stepper motor and tied up the string/thread between the motor pulley and the idler pulley of both axis.
Connect the Y-axis to the X-axis by pressing the slider of X-axis on its casing.
Connect Y-axis slider which holds the Antenna rods with Nichrome wire.
Schematics and Circuit Diagram
The Connection should be made as per the circuit diagram. The motors (28byj-48) are connected to a controller card (Arduino NaNO) that uses the chip ULN2003.
This board is connected to pins A0, A1, A2, A3 for the Y-Axis (IN4->IN1)
2,3,4,5 Digital pins to the X-Axis (IN4->IN1).
To overcome the complexity of the circuit connections I have made a custom PCB with header pins, IC seat, some wires, DC power jack and soldering iron. You can make your own PCB or you can order online.
I have powered this Arduino Nano PCB with 5V DC power supply. You have to use two different power supplies 9V DC for PWM controller and 5V DC for Arduino Nano PCB.
Software Used
Download Arduino IDE
Download Inkscape version 0.92
https://inkscape.org/release/0.92.2/windows/
Download 4xidraw Inkscape Extension
https://github.com/bullestock/4xidraw
Download Universal Gcode Sender
Generate GCODE
We are using INKSCAPE software to make G-code. To generate Gcode, we have to download 4xidraw Inkscape Extension. You can Download 4xidraw Inkscape Extension from this link:-
https://github.com/bullestock/4xidraw
After downloading extract the files and add these files as:
Inkscape directory > Share > Extension folder
Now open inkscape set page size 150mm x 150mm
Drag and drop the particular image in the inkscape
Select image go to Trace Bitmap then convert to path
Then go to extension tab > Click on 4xiDraw tools > Generate pen (Servo) Gcode Tool...
GRBL Firmware and Calibration
Download and install GRBL firmware for Arduino Nano:
https://github.com/ruizivo/GRBL-28byj-48-Servo
This GRBL uses an ugly hack to control two motors unipolar stepper motors as 28byj-48 and also supports a servo motor on pin 11.
GRBL Settings:
X -axis travel resolution ($100) and Y-axis travel resolution ($101) : It is calculated on the stepper motor’s step angle - steps per revolution
To calibrate X-axis and Y-axis we need to know current values of $100 and $101 which denotes steps per mm for each axis.
To get these values we need to open UGS and connect it with Arduino nano. After successful connection enter $$ in commands tab. Note down the current values of $100 and $101.
For Ex:-
Current $100 value = 100
Current $101 value = 150
Enter 10mm to commands to run X-axis and note own the distance travelled by X-axis. In my case
Desired Length = 10mm
Actual Length = 8mm
To Calibrate X-axis use this formula to get the new value of $100 value
New $100 value = (Desired Length / Actual Length )* Current $100 value
(10 / 8 ) * 100 = 125 = New $100 value
Use similar procedure to calibrate Y-axis
Enter 10mm to commands to run Y-axis and note own the distance travelled by Y-axis. In my case
Desired Length = 10mm
Actual Length = 8mm
To Calibrate Y-axis use this formula to get the new value of $101 value
New $101 value = (Desired Length / Actual Length )* Current $101 value
(10 / 8 ) * 150 = 187.5 = New $101 value
Enter these value in command tab:-
$100 = 125
$101 = 187.5
Working
Connect USB Cable to Arduino Nano port, 5V DC power to the power port and 9V DC power to the PWM motor speed controller.
I have used a PVC plastic sheet having 5 nails on it to support thermocol sheet vertically.
Cut a 15cm X 15 cm thermocol / polystyrene sheet and place this sheet on the nails provided on a PVC sheet.
Paste this PVC sheet on the base plate with the help of double-sided tape.
Open UGS, select Port and set Baud to 115200, click on Connect tab.
Set the original coordinates by button Reset Zero. It should be located in the lower left corner.
Click Open > Browse to the G-code file "PLUS.gcode".
Click Send button and Arduino CNC Cutter will start cutting the thermocol / polystyrene sheet.
Some Gcode files attached below:
STL Files
Final Words
I made this project from old scrap materials such as old radio Antenna, electric wire duct/casing, old gas cylinder washer and some 3D printed parts.
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 Arduino CNC Cutter with the help of this tutorial.
Stay tuned to my Instructables channel for more upcoming exciting projects.
Thanks again.