Please observe the following precautions when using grblShield or any other Arduino or CNC electronics
Rule #1 - DO NOT CONNECT THE POWER BACKWARDS. YOU WILL BLOW OUT THE BOARD.
Having warned that now twice, Here's what to do.
STEP 1: Verify you have adequate power supplies
STEP2: Verify voltage and polarity - twice
STEP3: Power up the board
If it does not, verify that your power supply is delivering the correct voltage and polarity, and that you have not mis-wired the board.
If you have damaged the board contact us about replacement for a re-work charge. All boards are fully tested before shipping.
Remember to disconnect board and Arduino power before plugging onto the Arduino.
 The stepper driver chips will take up to 38 volts DC but the motor capacitors are only rated to 35 VDC. 50 volt capacitors in the same SMD footprint are available and can be retrofitted for 36v operation, but increase the cost of the board significantly, so we didn't use them.
 We love this power supply: Meanwell NES-350-24 --> 24 VDC 14.6A 350W Regulated Switching Power Supply. Can be had for about $50 on eBay and Amazon. There's also a 6 amp little brother for about half that. Don't forget to flip the switch on the side of the supply for 115 volt operation if that's what your mains are.
The stepper connectors are wired to the Reprap/Makerbot standard. If you have motors already wired this way they should be plug compatible.
If for some reason your motors run backwards this can be corrected re-pinning the motor connectors or using the grbl DIRECTION polarity - see grbl settings.
The easiest way to connect your stepper motors to grblshield is to use the Synthetos Stepper Motor Connector Pack.
The first thing you need to do is make sure you know which wires are connected to the same coil.
Bipolar motors have 4 wires (2 pairs), Unipolar motors typically have 6 wires (2 pairs with a center tap). You probably have one of these two types as they are the most common wiring.
Some other motors have 5, or 8, or whatever. 8 wire motors are usually wired as 2 sets of bipolar windings (i.e. essentially 2 bipolars wired together). 5 wire motors are usually in a "star" configuration that has a common ground and cannot be driven by most drivers (including grblshield).
You can find which wires are paired by using an ohmmeter. Most NEMA17 and NEMA23 motors will show a pair resistance of from about 2 to 20 ohms. Find which wire pairs show the resistance.
Unipolars motors (6 wire) are a bit more complicated, but not much. Use an ohmmeter to find the resistance across the outer pair. The resistance between the center tap an an outer tap will be 1/2 the resistance between the outer taps. If you have a unipolar motor use the outer pair wires. Leave the center tap floating (be sure to tape it up so it doesn't short to anything).
Wires are often color coded by convention. Common wire pairings are:
Here's a shortcut to finding wire pairs for a bipolar (4 wire) motor.
Spin your stepper motor with your fingers. Depending on the size / holding torque this could be easy or pretty hard. All you really want from this is to get a feel how the motor spins without any of the wires connected to each other. Now that you know how it "feels" (how hard it is to spin with your fingers) connect 2 wires together. Just pick 2. Try to spin the motor again. If it feels the same then more than likely these are NOT connected to the same coil. Disconnect these wires. Connect one of the other wires to one of the first wire pairs you tried. Try to spin the motors again. This should be much harder. If this is so, you have found your wire pairs. Tape these 2 together (not wired but just taped to group them). Tape the remaining 2 wires together as well.
Some more useful information on wiring steppers can be found here: http://reprap.org/wiki/Stepper_motor;
Each of the 4 motors has an 0.156 four pin header wired as:
|1||Coil A Positive (A1)|
|2||Coil A Negative (A2)|
|3||Coil B Positive (B1)|
|4||Coil B Negative (B2)|
Attach one pair to A1/A2 and the other pair to B1/B2. If the motor spin needs to be inverted you can do this in hardware by reversing one of the pairs (e.g. swap A1 with A2 and vice versa), or in software by using the polarity setting.
Connect the motors to the grblShield, remembering Rule #3:
NEVER CONNECT OR DISCONNECT BOARDS OR MOTORS WHEN ANYTHING IS POWERED.
Please go here for Guidance on grbl Settings.
Motor current for each axis is adjusted with the 3mm trimpot next to that axis.
Clockwise increases current, counter-clockwise decreases current.
Do not over-torque these pots - they are tiny and gentle and will break. The pots have 270 degrees of rotation.
You want the motor current set slightly above the range you need for your application, but not much higher.
Overdriving the motors draws more current and risks overheating or thermal shutdown.
Start by setting current to zero by turning the trimpot all the way counter-clockwise.
Then issue a very long Gcode command for that axis, something like g0x1000
Turn the trimpot clockwise until the motor starts moving reliably.
You can hit the reset button and re-enter the Gcode command to verify that it will start at this current setting.
Mark this lower bound pot setting.
Next continue to turn up the pot until the motor starts to cycle on and off - indicating thermal shutdown is occuring.
Now back off until the cycling stops.
Cycling will occur under thermal shutdown, and only gets more severe as the current goes up - where it appears the motor is stuttering.
Thermal shutdown is, of course, to be avoided, but we've never seen it actually damage the drivers or motors and we've seen some pretty abusive cases!
Mark the spot just below thermal shutdown as the upper limit.
Now read about cooling to increase the upper limit.
You can get more headroom before thermal shutdown by cooling the board. As much of the board as possible is 2 oz. heatsink copper.
Both top and bottom copper provide cooling. But you can only do so much given the limits of the Arduino shield footprint.
Heatsinking the drivers will help. We (will) offer some small heatsinks on the site, or a normal DIP or T0-220 heatsink will fit (if somewhat off-center, due to the caps).
Better still is a fan blowing over the board and through the gap between the shield and the arduino.
Microstepping is "factory" set to 8x, which is the maximum resolution the drivers support. Note: See spec sheet for the TI DRV8811 drivers
If you want to change the factory setting you need to move resistors around (how cheap can you get!) Look for the 4.7k resistors at the upper left hand corner of the board (with the motor connectors facing right). Configs are:
Version 2 grblshield (and beyond)
Version 1 grblshield
Grbl wants to see gcode fed to t over the USB serial port one line at a time. It like to synchronize on the "ok" prompt. Here are a couple of good scripts that do this:
Some python scripts included in the grbl distribution You may need to edit the USB port to agree with what you have. Also, this works fine from a terminal but not as well from the Idle Python IDE.
We are working on some of our own code for this and will post when we release it.
Have fun with your grblShield.
The info above should have given you enough information to get going.
However if you find yourself stuck and need further assistance, have feature ideas or requests, or just want to comment, please feel free to go to the forums.
More information is also available at the grblshsield reference page, and the FAQ .
Back to grblShield Home