18. Machine design

Arduino CNC Machine Foam Cutting

Assignments for week 17 :

File Download

  1. DRV8825 driver module datasheet

  2. GRBL firmware

  3. Universal G-code Sender

  4. 3D printed and modified parts

The idea behind the machine :

Arduino CNC Machine Foam Cutting Mechanical part :

In this week we worked on a CNC Foam Cutting Machine, with 3-axis, where the machine moves in two axis forward and backward, and rotate around the Z-axis.

degrees_of_freedom

This machine can cut 2D shapes, as well as 2.5D shapes or 3D symmetrical shapes.

Arduino CNC Foam Cutting Machine :

We based our design on Arduino CNC Foam Cutting Machine, because the machine uses aluminum extrusion profiles 2020 easier to assemble, also reduces the time building the machine because of the COVID-19 pandemic and lockdown.

And made some upgrades on the machine rail system to be more rigid, where the new design has one more rail on each side and the 3D files were changed also to be adjusted to the new design.

Original design !! :

Overall, in terms of construction and rigidity the design is probably not that good, but In my opinion making a function machine with minimum parts possible and still to be able to get the job done.

Original design

Modified design !!:

In this design we wanted the machine to be more rigid so we have made those changes :

Bill of material for screws :

Screw type Qty
M3x30 14
M4x25 10
M4x30 10
M5x10/12 46
M5x15 14
M5x25 10
M5x30 10

Bill of material for 3D printed files :

Screw type Qty
Foam tightener 4
Shaft clamp 8mm 4
X-axis bracket 3 (v2 for 5mm pulleys).STL 1
X-axis stepper mounting bracket 1
Z-axis motor mounting bracket 1
Z-axis platform 1
Micro switches holder 1
Sliding Block side 1- X-axis 1
Sliding Block side 2- X-axis 1
Y-axis bracket bearing 1
Y-axis bracket motor 1
Y-axis sliding block 2
Arduino case 1
Extra parts
corner for profile 2020 2
spacer 4

Challenges :

We have faced some challenges while making this machine and here is a list of what we have faced :

Arduino CNC Machine Electronics part :

In this part we will build Arduino CNC Foam Cutting Machine. The machine is inspired by the work found here.

This is a team working task and different students will be working on different parts. My part and my colleague Aziz is to work on electronics and softwares, including drivers, boards, motors, hot wire and control programs.

Electronics BOM

Item Qty. Source
ARDUINO UNO - R3 1 pcs. Local market
ARDUINO CNC SHIELD V3 1 pcs. Local market
DRV8825 STEPPER MOTOR DRIVER MODULE 4 pcs. Local market
STEPPER MOTOR 1.8° PER STEP, 1.7 A, 0.36 N.M (NEMA17) 3 pcs. Local market
DC-DC STEP DOWN15A CONVERTER 4-32V 12V TO 1.2-32V BUCK ADJUSTABLE 1 pcs. Local market
MICRO NORMALLY OPEN CLOSE LIMIT SWITCH 2 pcs. Local market
Hot wire 2 m Local hardware store
ADAPTER 12V 5A POWER SUPPLY AC/DC 1 pcs. Local market

Circuit Diagram :

Driver Resolution :

Arduino CNC machine Software :

GRBL Firmware :

GRBL is a firmware for Arduino board running on ATmega328P microprocessor. GRBL accepts g-code as inputs and generates outputs at Arduino board pins. Compared to industrial CNC machines, when GRBL is used there is no need for any ports to control the machine, only the USB port connected to Arduino board. In other words, when GRBL firmware is installed to Arduino board, it will read g-codes and control the machine accordingly. To know more about GRBL, check the project page.

// NOTE: Defaults are set for a traditional 3-axis CNC machine. Z-axis first to clear, followed by X & Y.
#define HOMING_CYCLE_0 (1<<Z_AXIS)                // REQUIRED: First move Z to clear workspace.
#define HOMING_CYCLE_1 ((1<<X_AXIS)|(1<<Y_AXIS))  // OPTIONAL: Then move X,Y at the same time.
// #define HOMING_CYCLE_2                         // OPTIONAL: Uncomment and add axes mask to enable

// NOTE: The following are two examples to setup homing for 2-axis machines.
// #define HOMING_CYCLE_0 ((1<<X_AXIS)|(1<<Y_AXIS))  // NOT COMPATIBLE WITH COREXY: Homes both X-Y in one cycle.

// #define HOMING_CYCLE_0 (1<<X_AXIS)  // COREXY COMPATIBLE: First home X
// #define HOMING_CYCLE_1 (1<<Y_AXIS)  // COREXY COMPATIBLE: Then home Y

and change it to

// NOTE: Defaults are set for a traditional 3-axis CNC machine. Z-axis first to clear, followed by X & Y.
//#define HOMING_CYCLE_0 (1<<Z_AXIS)                // REQUIRED: First move Z to clear workspace.
//#define HOMING_CYCLE_1 ((1<<X_AXIS)|(1<<Y_AXIS))  // OPTIONAL: Then move X,Y at the same time.
// #define HOMING_CYCLE_2                         // OPTIONAL: Uncomment and add axes mask to enable

// NOTE: The following are two examples to setup homing for 2-axis machines.
// #define HOMING_CYCLE_0 ((1<<X_AXIS)|(1<<Y_AXIS))  // NOT COMPATIBLE WITH COREXY: Homes both X-Y in one cycle.

#define HOMING_CYCLE_0 (1<<X_AXIS)  // COREXY COMPATIBLE: First home X
#define HOMING_CYCLE_1 (1<<Y_AXIS)  // COREXY COMPATIBLE: Then home Y

GRBL Controller Software (g-code Sender) :

This software will generate g-codes according to job and send those codes to Arduino board (which knows how to read g-codes now!). We will use Universal G-code Sender.

Testing System Component :

Steppers and Limit Switches :

Hot wire :

Hero Shoot for Machine Electronics part :

Arduino CNC Machine Foam Cutting Designing part :

Settings for the 3D printed parts :

Quality
Layer Height: 0.15 mm


Shell
Wall Thickness: 0.7 mm
Top/Bottom Thickness: 0.75 mm

Infill
Infill Density: 18%
Infill Pattern: Grid

Material
Printing Temperature: 200 °C
Build Plate Temperature: 60 °C

Speed
Print Speed: 45 mm/s

Travel
Enable Retraction: Yes
Travel speed : 150


Cooling
Enable Print Cooling: Yes
Fan Speed: 100%


Build Plate Adhesion
Build Plate Adhesion Type: Skirt

Arduino CNC Machine Foam Cutting Assembling :

Here you can see how we assembled the machine :

- First we started with the profile : - Next we started to hold the motors : - And here you can see the final Assemble :

### Manually moving the machine : - Here you can see how we started to test manually if the machine is moving properly :

- Here you can see how we put the belt and started to test if its moving properly :

### Automatically moving the machine : - Here you can see how the machine is moving automatically :

### Testing the hot wire : - Here you can see how we tested and measured the right voltage in order to cut the foam :

### Cutting the foam using the hot wire :

## Hero shots for this week assignment : - Here you can see the X axis moving :

- Here you can see the Y axis moving :

- Here you can see the Z Axis moving :

- And here you can see how to connect the Hot wire it must has been connected using springs, however the available strings are not flexible enough therefore we connected them directly to the screws : - Finally me, Hani, Aziz and Faisal completed the machine and successfully managed to run the machine and cut a mickey mouse shape, Here is a video showing the way the machine cut :