Introduction: Arduino CNC Thermocol Cutter

About: I love to make useful things with the help of Scrap. Creative and Innovative one.

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

Step 1: 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.

 


Step 2: 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.

Step 3: 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.

Step 4: 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.


Step 5: 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.

Step 6: Software Used

Download Arduino IDE

https://www.arduino.cc/


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

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

Step 7: 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...

Step 8: 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

Step 9: 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:

Step 10: STL Files

Step 11: 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.

Build-A-Tool Contest

This is an entry in the
Build-A-Tool Contest