Skip to content
Justin Clift edited this page Nov 15, 2019 · 34 revisions

gShield v5

Precautions

Please observe the following precautions when using grblShield or any other Arduino or CNC electronics

  • NEVER PLUG OR UNPLUG COMPONENTS WHEN THEY ARE POWERED.
  • CAREFULLY OBSERVE VOLTAGE AND POLARITIES. DO NOT CONNECT THE POWER BACKWARDS.
  • DO NOT FORCE THE CURRENT SETTING POTENTIOMETERS BEYOND THEIR 270 DEGREE ROTATION LIMIT. THEY WILL BREAK AND THAT AXIS WILL STOP WORKING

...and remember to disconnect the USB plug from USB powered Arduinos.

Connecting Power and Power Supply Requirements

Rule #1 - DO NOT CONNECT THE POWER BACKWARDS. YOU WILL BLOW OUT THE BOARD. Having warned now twice, here's what to do.

STEP 1: Verify you have an adequate power supply

  • GrblShield uses the Arduino's power supply for the digital logic so it only requires motor power to be provided. You can power the Arduino from its DC input connector, or more commonly we just power it from the USB port, i.e. no DC power supply.
  • The power supply must have adequate current to drive the total number of motors in your setup. Most NEMA17's take 1-2 amps, NEMA23's take 2 amps or more. The stepper drivers can source up to 2.5 amps (with cooling). Since the motors do not draw maximum power at the same time it's adequate to provide about 2/3 of the total rated current. So if you have three 1.2 amp motors you can provide about 2.5 amps and be fine. A 4.5 amp supply is sufficient for almost all NEMA17s we have encountered, whereas 6 amps or more is recommended for NEMA23s.
  • At higher current levels cooling becomes the biggest issue. See Cooling section.
  • Motor voltage can be from +12 VDC to +30 VDC. We recommend using a 24 volt supply for good motor performance. The motors are more snappy, have more torque at speed, and (ironically) run cooler than with a 12v supply. Also, many 24 volt supplies have an output adjustment potentiometer that lets you go up as high as 30v. [We love the Meanwell NES-350-24 (24 VDC @ 14.6 Amps). About $50 on eBay or Amazon. See the 6 amp little brother for somewhat less. Flip the switch on the side of the supply for 115 volt operation]

A note about the rated voltage of stepper motors: Ironically, the motor voltage rating is irrelevant. Any stepper motor rated at any voltage will work, regardless of the power supply voltage provided. The rated motor voltage just states what the max voltage would be if you applied a direct DC voltage to the winding and wanted to stay in the rated current of the motor. Since the stepper drivers regulate the current the voltage doesn’t matter.

STEP 2: Verify voltage and polarity - twice

  • Verify the voltage and polarity with a voltmeter before wiring the power lines to the board. In a standard ATX power supply ground will be black and +12v will be yellow. But ALWAYS double check any voltage and polarity before connecting and powering the board (as we have seen this violated by some supplies). Also, if you are using an ATX (PC) power supply you should check that you have modded it correctly for use as a general power supply. There are zillions of articles on the web about how to do this. Better yet, get a 24v supply.
  • Connect the power supply ground to the GND terminal and the positive voltage to the + terminal. **(FYI: The motor ground will be connected to the Arduino ground at the GND terminal in a single-point ground)U
  • Double check your connections before applying power.

STEP 3: Power up the grblShield

  • Before you plug the grblshield board onto the Arduino - apply power to the grblshield.
  • The BLUE power LED should light.

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.

STEP 4: Power down the grblShield and connect to the Arduino

  • Plug the grblShield onto an Arduino. Remove all power and the USB connector before you do this. Be sure no pins are broken or sticking out.
  • Now you are ready to power up the entire unit.

Wiring the Motors

The stepper connectors are wired to the Reprap 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.

Find the Coil Pairs

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:

  • Green goes with Black. Yellow is often used for the center tap in a unipolar
  • Red goes with Blue. White is often used for the center tap in a unipolar

Here's a shortcut to finding wire pairs for a bipolar (4 wire) motor.

Making sure none of the wire ends are touching, 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.

Some more useful information on wiring steppers can be found here: http://reprap.org/wiki/Stepper_motor;

Connector Pinouts

Each of the motors has a 4 terminal screw-down block wired as:

Pin | Motor Phase (Output) | Description
----|--------------------- |-------------
1 | A1 | Coil A Positive
2 | A2 | Coil A Negative
3 | B1 | Coil B Positive
4 | B2 | Coil B Negative

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.

grbl Settings

Please go here for guidance on grbl 0.8 Settings

Setting Motor Current

Motor current for each axis is adjusted with the 5mm 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 occurring. 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. Realize that sending more power to the motors than they need will not only reduce their life, but they will not perform as well. Find the right spot for the current by running a few jobs. Too much current is just as bad as too little.

Cooling

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, but it's far better to fan cool the board. Realize that most of the heat is radiated off the bottom of the board, so be sure that the fan blows both over the board and through the gap between the shield and the Arduino.

Microstepping

The microstepping setting shipped from Synthetos is all set to 8x (unless you got a "Shapeokomod" added on to your order), which is the maximum resolution the drivers support. Note: See spec sheet for the TI DRV 8818 Spec Sheet for more information.

If you want to change the the jumper settings you need to add or remove standard .100 jumpers to 4 pin male headers. See Image Below: grblShield v4 The image above does not show 8x micro stepping configuration. However, if you want 8x just remove all jumpers from the board.

Streaming Gcode to grbl

Grbl wants to see gcode fed to it over the USB serial port one line at a time. It like to synchronize on the "ok" prompt. The officially supported software for doing this is gcodeSender.

You can download gcodeSender here.

Use and Enjoy!

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.