CNC Instructables PDF
CNC Instructables PDF
Team members
1. Nadim Ahmed, ID-152419
2. Sheikh Montasir Mahbub , ID-152415
3. Shadman Alvy Khan, ID-152439
4. Anik Jawad Evan, ID-152411
5. Kassi Nazim,ID-152301
Step-2:design ---------------------------------------------------------------------------------- 01
Step 2: Design
We have used Solidworks to design the mechanical structures. We are using screw drive method for x
and y axis movement.
1
Step 3 : Electrical Connections
The Driver provides five different step resolutions: full-step, haft-step, quarter-step, eight-step
and sixteenth-step. Also, it has a potentiometer for adjusting the current output, over-
temperature thermal shutdown and crossover-current protection.
Its logic voltage is from 3 to 5.5 V and the maximum current per phase is 2A if good addition
cooling is provided or 1A continuous current per phase without heat sink or cooling.
2
A4988 Stepper Driver Pinout
Now let’s close look at the pinout of the driver and hook it up with the stepper motor and the
controller. So we will start with the 2 pins on the button right side for powering the driver, the
VDD and Ground pins that we need to connect them to a power supply of 3 to 5.5 V and in our
case that will be our controller, the Arduino Board which will provide 5 V. The following 4 pins
are for connecting the motor. The 1A and 1B pins will be connected to one coil of the motor
and the 2A and 2B pins to the other coil of the motor. For powering the motor we use the next
2 pins, Ground and VMOT that we need to connect them to Power Supply from 8 to 35 V and
also we need to use decoupling capacitor with at least 47 µF for protecting the driver board
from voltage spikes.
The next two 2 pins, Step and Direction are the pins that we actually use for controlling the
motor movements. The Direction pin controls the rotation direction of the motor and we need
to connect it to one of the digital pins on our microcontroller, or in our case I will connect it to
the pin number 4 of my Arduino Board. With the Step pin we control the mirosteps of the
motor and with each pulse sent to this pin the motor moves one step. So that means that we
3
don’t need any complex programming, phase sequence tables, frequency control lines and so
on, because the built-in translator of the A4988 Driver takes care of everything. Here we also
need to mention that these 2 pins are not pulled to any voltage internally, so we should not
leave them floating in our program.
Next is the SLEEP Pin and a logic low puts the board in sleep mode for minimizing power
consumption when the motor is not in use.
Next, the RESET pin sets the translator to a predefined Home state. This Home state or Home
Microstep Position can be seen from these Figures from the A4988 Datasheet. So these are the
initial positions from where the motor starts and they are different depending on the microstep
resolution. If the input state to this pin is a logic low all the STEP inputs will be ignored. The
Reset pin is a floating pin so if we don’t have intention of controlling it with in our program we
need to connect it to the SLEEP pin in order to bring it high and enable the board.
The next 3 pins (MS1, MS2 and MS3) are for selecting one of the five step resolutions according
to the above truth table. These pins have internal pull-down resistors so if we leave them
disconnected, the board will operate in full step mode.
The last one, the ENABLE pin is used for turning on or off the FET outputs. So a logic high will
keep the outputs disabled.
4
Circuit Schematics
Here’s the complete circuit schematics. I will use the drive in Full Step Mode so I will leave the 3
MS pins disconnected and just connect the Direction and the Step pins of the drive to the pins
number 3 and 4 on the Arduino Board and as well the Ground and the 5 V pins for powering the
board. Also I will use a 100µF capacitor for decoupling and 12V, 1.5A adapter for powering the
motor. I will use a NEMA 17 bipolar Stepper Motor and its wires A and C will be connected to
the pins 1A and 1B and the B and D wires to the 2A and 2B pins.
5
Current Limiting
Before we connect the motor we should adjust the current limiting of the driver so that we are
sure that the current is within the current limits of the motor. We can do that by adjusting the
reference voltage using the potentiometer on the board and considering this equation: Current
Limit = VRef x 2
On the back of the Drivers you will see the PIN identification. The enable pin must match the EN
pin on the shield.
Now you can fit the heat sinks.
If you do have two step motors on one axis then you can set the jumper to duplicate the
selected axis.
The following jumper setting is set to copy the Y axis on the 4th driver.
Other Pins:
• Limit Switch Pins have been doubled up so that each axis has a “Top/+” and “Bottom/-“. This
makes it easier to install two limit switches for each axis. (For use with a normally open switch)
7
• EStop – These pins can be connected to an emergency stop switch. This does the same as the
RESET button on the Arduino board. (We do advice that an extra emergency button also be
installed that cuts power to all machinery. A REAL EMERGENCY BUTTON)
• External GRBL Command Pins have been broken out allowing you to add buttons
8
Part 4: Software
To send commands to your CNC board you will need a g-code sender.
To download: https://github.com/grbl/Universal-G-Code-Sender
Once downloaded, connect the UNO boards usb to your computer and take note of the COM
port it is connected to.
Select your COM port and the Baud rate and click "Open".
Once connected you can enable the "Arrow key movement" and test the stepper motors.
9
End Stop Configuration
By default GRBL is configured to trigger an alert if an end-stop goes low(Gets grounded). On the
forums this has been much debated and some people requested to have active High end-stops.
The jumpers in the picture provides the option to do both. (To run with default setting on GRBL
the jumper need to be connected like the left shield in the image below)(This Jumper was only
introduced in Version 3.02)
End-stop switches are standard “always open” switches. An End-stop gets activated when the
end-stop pin connects to ground(When setup with default GRBL settings).
10
Configuring Micro Stepping for Each Axis
Each axis has 3 jumpers that can be set to configure the micro stepping for the axis.
In the tables below High indicates that a Jumper is insert and Low indicates that no jumper is
inserted.