Skip to content
Ryan Jarvis edited this page Jun 28, 2018 · 54 revisions

Quick-Links:


xPro Troubleshooting

This page contains various issues people have had getting their systems to work. Take comfort, if you are here. Most problems are easy to solve and have been seen before.

Please use the forum if this guide does not get you going. And remember, these are systems consisting of mechanical, electrical and software components of which the xPro is just one part. So looking up and down the stack is often very helpful.

When troubleshooting, please always bear the following precautions in mind:

1. NEVER CONNECT OR DISCONNECT COMPONENTS WHILE POWERED
2. CAREFULLY OBSERVE VOLTAGE AND POLARITIES. DO NOT CONNECT THE POWER BACKWARDS
3. DON'T ROTATE CURRENT POTENTIOMETERS BEYOND ROTATION LIMIT (AXIS WILL STOP WORKING)

Settings for Most Common Machines (GRBL V1.1)

  • OX CNC
$0=10 (step pulse, usec)
$1=255 (step idle delay, msec)
$2=0 (step port invert mask:00000000)
$3=6 (dir port invert mask:00000110)
$4=1 (step enable invert, bool)  (Board V1, V2, V3 Matte = $4=0 - Glossy board V3 = $4=1)
$5=0 (limit pins invert, bool)
$6=0 (probe pin invert, bool)
$10=3 (status report mask:00000011)
$11=0.020 (junction deviation, mm)
$12=0.002 (arc tolerance, mm)
$13=0 (report inches, bool)
$20=0 (soft limits, bool)
$21=0 (hard limits, bool)
$22=1 (homing cycle, bool)
$23=3 (homing dir invert mask:00000011)
$24=50.000 (homing feed, mm/min)
$25=1200.000 (homing seek, mm/min)
$26=25 (homing debounce, msec)
$27=5.000 (homing pull-off, mm)
$100=26.670 (x, step/mm)
$101=26.670 (y, step/mm)
$102=199.900 (z, step/mm)
$110=7500.000 (x max rate, mm/min)
$111=7500.000 (y max rate, mm/min)
$112=1500.000 (z max rate, mm/min)
$120=150.000 (x accel, mm/sec^2)
$121=150.000 (y accel, mm/sec^2)
$122=150.000 (z accel, mm/sec^2)
$130=510.000 (x max travel, mm)
$131=770.000 (y max travel, mm)
$132=170.000 (z max travel, mm)
  • C-Beam Machine
$0=10 (step pulse, usec)
$1=255 (step idle delay, msec)
$2=0 (step port invert mask:00000000)
$3=6 (dir port invert mask:00000110)
$4=1 (step enable invert, bool) (Board V1, V2, V3 Matte = $4=0 - Glossy board V3 = $4=1)
$5=0 (limit pins invert, bool)
$6=0 (probe pin invert, bool)
$10=3 (status report mask:00000011)
$11=0.020 (junction deviation, mm)
$12=0.002 (arc tolerance, mm)
$13=0 (report inches, bool)
$14=1 (auto start, bool)
$20=0 (soft limits, bool)
$21=0 (hard limits, bool)
$22=0 (homing cycle, bool)
$23=0 (homing dir invert mask:00000000)
$24=2000.000 (homing feed, mm/min)
$25=1000.000 (homing seek, mm/min)
$26=250 (homing debounce, msec)
$27=1.000 (homing pull-off, mm)
$100=199.100 (x, step/mm)
$101=199.100 (y, step/mm)
$102=199.100 (z, step/mm)
$110=1000.000 (x max rate, mm/min)
$111=1000.000 (y max rate, mm/min)
$112=1000.000 (z max rate, mm/min)
$120=100.000 (x accel, mm/sec^2)
$121=100.000 (y accel, mm/sec^2)
$122=100.000 (z accel, mm/sec^2)
$130=270.000 (x max travel, mm)
$131=270.000 (y max travel, mm)
$132=80.000 (z max travel, mm)
  • C-Beam Machine XL
$0=10 (step pulse, usec)
$1=255 (step idle delay, msec)
$2=0 (step port invert mask:00000000)
$3=0 (dir port invert mask:00000000)
$4=1 (step enable invert, bool) (Board V1, V2, V3 Matte = $4=0 - Glossy board V3 = $4=1)
$5=0 (limit pins invert, bool)
$6=0 (probe pin invert, bool)
$10=3 (status report mask:00000011)
$11=0.010 (junction deviation, mm)
$12=0.002 (arc tolerance, mm)
$13=0 (report inches, bool)
$20=0 (soft limits, bool)
$21=0 (hard limits, bool)
$22=0 (homing cycle, bool)
$23=0 (homing dir invert mask:00000000)
$24=2000.000 (homing feed, mm/min)
$25=1000.000 (homing seek, mm/min)
$26=250 (homing debounce, msec)
$27=1.000 (homing pull-off, mm)
$100=199.098 (x, step/mm)
$101=199.100 (y, step/mm)
$102=199.100 (z, step/mm)
$110=1000.000 (x max rate, mm/min)
$111=1000.000 (y max rate, mm/min)
$112=1000.000 (z max rate, mm/min)
$120=100.000 (x accel, mm/sec^2)
$121=100.000 (y accel, mm/sec^2)
$122=100.000 (z accel, mm/sec^2)
$130=750.000 (x max travel, mm)
$131=320.000 (y max travel, mm)
$132=60.000 (z max travel, mm)
  • MiniMill
$0=10 (step pulse, usec)
$1=255 (step idle delay, msec)
$2=0 (step port invert mask:00000000)
$3=0 (dir port invert mask:00000000)
$4=1 (step enable invert, bool) (Board V1, V2, V3 Matte = $4=0 - Glossy board V3 = $4=1)
$5=0 (limit pins invert, bool)
$6=0 (probe pin invert, bool)
$10=2 (status report mask:00000010)
$11=0.010 (junction deviation, mm)
$12=0.002 (arc tolerance, mm)
$13=0 (report inches, bool)
$20=0 (soft limits, bool)
$21=0 (hard limits, bool)
$22=0 (homing cycle, bool)
$23=0 (homing dir invert mask:00000000)
$24=25.000 (homing feed, mm/min)
$25=500.000 (homing seek, mm/min)
$26=250 (homing debounce, msec)
$27=1.000 (homing pull-off, mm)
$100=199.100 (x, step/mm)
$101=199.100 (y, step/mm)
$102=199.100 (z, step/mm)
$110=1500.000 (x max rate, mm/min)
$111=1500.000 (y max rate, mm/min)
$112=1500.000 (z max rate, mm/min)
$120=50.000 (x accel, mm/sec^2)
$121=50.000 (y accel, mm/sec^2)
$122=50.000 (z accel, mm/sec^2)
$130=120.000 (x max travel, mm)
$131=120.000 (y max travel, mm)
$132=60.000 (z max travel, mm)

Common Problems

These are some of the most common problems we have seen that may cause any of the specific symptoms in the items below. Please check these first if you are having issues.

  1. Power is not connected or is inadequate. Verify that the board edge both Main power and 5V power indicator LED are lit and that you have between 12v and 30v to the board. Verify when idle and under motor load (if applicable)

  2. Grbl is not loaded or not loaded correctly. Verify that you get the grbl prompt on power up or reset. It should look something like this:

Grbl 0.8c 
'$' to dump current settings 
ok
  1. Grbl is misconfigured. If you have any doubts, set Grbl settings back to these default values:
  • Grbl v0.8
$0=755.906 (x, step/mm)
$1=755.906 (y, step/mm)
$2=755.906 (z, step/mm)
$3=10 (step pulse, usec)
$4=500.000 (default feed, mm/min)
$5=500.000 (default seek, mm/min)
$6=28 (step port invert mask, int:00011100)
$7=255 (step idle delay, msec) or $7=25 (step idle delay, msec)*
$8=10.000 (acceleration, mm/sec^2)
$9=0.050 (junction deviation, mm)
$10=0.100 (arc, mm/segment)
$11=25 (n-arc correction, int)
$12=3 (n-decimals, int)
$13=0 (report inches, bool)
$14=1 (auto start, bool)
$15=0 (invert step enable, bool)
$16=0 (hard limits, bool)
$17=0 (homing cycle, bool)
$18=0 (homing dir invert mask, int:00000000)
$19=25.000 (homing feed, mm/min)
$20=250.000 (homing seek, mm/min)
$21=100 (homing debounce, msec)
$22=1.000 (homing pull-off, mm)
'$x=value' to set parameter or just '$' to dump current settings
  • Grbl v0.9
$0=10 (step pulse, usec)
$1=255 (step idle delay, msec) or $1=25 (step idle delay, msec)*
$2=0 (step port invert mask:00000000)
$3=6 (dir port invert mask:00000110)
$4=0 (step enable invert, bool)
$5=0 (limit pins invert, bool)
$6=0 (probe pin invert, bool)
$10=3 (status report mask:00000011)
$11=0.020 (junction deviation, mm)
$12=0.002 (arc tolerance, mm)
$13=0 (report inches, bool)
$14=1 (auto start, bool)
$20=0 (soft limits, bool)
$21=0 (hard limits, bool)
$22=0 (homing cycle, bool)
$23=1 (homing dir invert mask:00000001)
$24=50.000 (homing feed, mm/min)
$25=635.000 (homing seek, mm/min)
$26=250 (homing debounce, msec)
$27=1.000 (homing pull-off, mm)
$100=314.961 (x, step/mm)
$101=314.961 (y, step/mm)
$102=314.961 (z, step/mm)
$110=635.000 (x max rate, mm/min)
$111=635.000 (y max rate, mm/min)
$112=635.000 (z max rate, mm/min)
$120=50.000 (x accel, mm/sec^2)
$121=50.000 (y accel, mm/sec^2)
$122=50.000 (z accel, mm/sec^2)
$130=225.000 (x max travel, mm)
$131=125.000 (y max travel, mm)
$132=170.000 (z max travel, mm)

*Note: Every time your steppers complete a motion and come to a stop, Grbl will disable the steppers by default. The stepper idle lock time is the time length Grbl will keep the steppers locked before disabling. Depending on the system, you can set this to zero and disable it. On others, you may need 25-50 milliseconds to make sure your axes come to complete stop before disabling. OR, you can always keep your axes enabled at all times by setting this value to the maximum 255 milliseconds.

Also, if disabled, keep in mind that some stepper drivers don't remember which micro step they stopped on, so when you re-enable, you may witness some 'lost' steps due to this. In this case, just keep your steppers enabled.

Motor turns in the opposite direction from the way I want it to

  1. Swap ONE of the winding pairs - For example: swap A1 & A2 or B1 & B2 at the motor connector.

  2. Correct this using the invert mask in the Grbl settings:

Invert Axis | v0.8 Grbl Command | v0.9 Grbl Command --------|--------------------|--------- No Inversion | $6=0 | $2=0 Invert X Axis | $6=32 | $2=1 Invert Y Axis | $6=64 | $2=2 Invert Z Axis | $6=128 | $2=4 Invert X and Y Axis | $6=96 | $2=3 Invert X and Z Axis | $6=160 | $2=5 Invert Y and Z Axis | $6=192 | $2=6 Invert X, Y and Z Axis | $6=224 | $2=7 Note: invert clone axis (4th axis) using Method 1

Motors are not locking (shafts can easily turned by hand)

When grblshield, Arduino and motor are all powered up, the motors are not locked-the shafts can still be easily turned by hand. This is a problem especially for Z with heavier weight load, which makes it move freely.

  • You may need to set your "step idle delay, msec" value to 255 - issue a "$$" command to check that "step idle delay, msec" is set to 255

Grbl 0.8

$7=255 (step idle delay, msec)

Grbl 0.9

$1=255 (step idle delay, msec)
  • Pro's and cons of changing this setting:

Pros:

  1. the motors are locked and prevent bumps and vibrations from accidentally moving them
  2. helps with accuracy on machines that have large acceleration values

Cons:

  1. the steppers are always energized, so controller may build up heat
  2. you can't manually move the machine to a 0,0,0 point

Motors won't turn

This is the most common startup problem and could be a number of things. Please check the items below in order

  1. Arduino is not properly set up with grbl. On power up or reset the USB console should respond with a or "grbl 0.8c" prompt. If not, see Updating GRBL Firmware
  2. Power is not applied or properly connected. Are the green power indicator lit? Are you providing between 12 and 30 volts? See Connecting CNC xPRO and Power Supply Requirements
  3. Motors are not wired correctly. See Connecting stepper motors

One axis turns but another does not

Check if this is an axis problem or a motor problem by swapping the motors to different axes.

  • If the same axis is still not working it's probably an axis problem. Set the current pot to the mid-point and try again. Almost any motor will run from the mid-point setting. If the motor energizes but still doesn't turn, bump the current setting up a bit. Be sure not to force the current setting pot past its 270 degree limit. If this is the case you should either replace the surface mount pot (p/n: 23AR10KLFTR) available from Digikey, or contact us to return the board
  • If the same motor is still not working it's probably a motor problem. Check the current setting and the wiring on your motors. See Connecting stepper motors

Motors turn once, but then not again

This may be because you are issuing the same Gcode command twice in a row. Issuing G0x100 once will move X to 100. Issue it again and X is already at 100, so it doesn't move (when in G90 absolute mode, which is the the default). Issue a G0x0 and it will move back from 100 to 0.

Motor turns, but travels way too much or too little

This is almost always a grbl settings issue. The xPro "factory" default is 8x microsteps on each axis

Motor only turns one direction

This usually indicates that only one winding is getting power.

  • Check your motor connections. This is sometimes accompanied by erratic motor movement at low RPMs

Motors turn, but drop steps (grinding noise), stop and start, stall, cut out, or other motion problems occur

If the motors are running but drop steps or otherwise do not run reliably when under load there are a number of possible issues. These are listed in "root cause" order (more or less). Earlier items should be verified first or the later items can only compensate for problems in the earlier items. Otherwise you might be able to get the machine to work for you but it won't be optimally tuned. Some of these topics are also covered in Connecting the xPro

  1. Problems in the mechanical system: If one or more axes has too much friction or resistance to motion then the motors may not run reliably at high speeds or under load. Steppers lose torque as the speed goes up, so some symptoms show up as the speed increases.

    Issue Diagnosis / Solution
    Too much cutting load If you try to take out too much material in a cut or a plunge (Z axis) the machine can't handle it. Solution: reduce feed rates, use cutting oil.
    Too much friction in travel Mechanically disconnect the motor from the shaft and test if the axis is too hard to move by hand. May be an alignment problem, an anti-lash nut being too tight, or it just needs oil.
    Uneven friction over travel Axis travels OK in the middle but gets tighter towards one or both ends. Could be shaft coupler runout (i.e. not concentric). Fix by getting better shaft couplers or possibly shimming (yuk).
    Shaft couplers are loose If slippage occurs under load or in part of the travel be sure all shaft couplers are tight. We've seen this on many home-assembled machines.
    Belts slip Overloading a belt-driven machine can cause the belts to slip. This is usually a symptom of one or more of the above problems.
  2. Motor torque problems: If the mechanical system is working well the next place to look is the motors. Stepper motors lose torque as they increase speed (as we've said before). It's also common (but not a given) for motors to lose torque as the microsteps are set to higher values. These problems are often highly dependent on settings, so see that section, too. 

    Issue Diagnosis / Solution
    Motor current set too low If motor current is set too low the motors will stall at speed, or even refuse to turn. Turn the motor current trimpot up (clockwise) until you get reliable motor operation.
    Motor current set too high If motor current is too high the stepper driver chips will go into thermal cycling, turning on and off slowly or even very rapidly. Back off the current until this stops.
    Motors draw too much current If you can't get motor current just right the motors may require more current than the drivers can supply. Use lower power motors. You can run unipolar motors (6 wire) in lower-power mode by using the end taps and leaving the center tap floating.
    Microsteps set too high If you have the microsteps set to 8 (factory default value) you may get more power by dropping to a lower value. see uStep Jumper Settings
    Power supply is insufficient If you draw too much current some power supplies will simply offer less; others will throw their internal circuit breaker. You may be experiencing either case. Use smaller motors or a bigger power supply.
    Voltage can be increased Higher voltages provide better motor performance as current ramps faster. Ironically, the chips run cooler at higher voltages. Try increasing motor voltage from 12v to 19v, 24v or 30v (commonly used values)
  3. grbl settings problems: If both the mechanical system and motors are working well the next place to look is the grbl settings.