Operation Troubleshooting

From ShapeOko
Jump to navigation Jump to search

Turn the machine on, so that the motors energize, but don't tell it to move. Do not turn the spindle on. Try to wiggle the spindle left and right by hand. Can you move it? If you can, watch carefully to see what moves with it. Does the belt move but the pulley doesn't turn? You have a loose belt. Does the pulley turn too? You have a loose pulley set screw. Does the entire gantry move with respect to the stationary rails? You have loose V-wheels or eccentric spacers. And so on. Repeat for back and forth movement, and up and down too, if that's also causing problems.[1]

Machine won't start

Symptoms: The console window will show the command being sent and a confirmation of "ok". However, the active state goes to "Queue" and never returns to "Idle."[2]

auto cycle start ($14) has been turned off
Note that turning off auto cycle start requires that one begin the machine manually by typing ~.
Another possibility is that one quit from the Communication / Control program w/o disconnecting --- restart the computer system.
USB port has gone into low-power mode
Energy-savings features can interfere w/ sending data to the Arduino. Do not let the controlling machine go into low power mode/[3]
Corrupt Grbl settings
It is possible for a power interruption or other issue to result in invalid data being stored in the EEPROM, making it impossible for Grbl, which has minimal error checking, to process any commands.[4]

Machine jogs, but won't respond to downloaded file

Symptoms: The machine will respond to single commands, but will not accept a downloaded file and will endlessly repeat some statement to the console

Grbl software installation corrupt
Reflash Grbl following the instructions at: the software page on docs.shapeoko.com.[5]
Corrupt Grbl settings
As noted above, it is possible for a power interruption or other issue to result in invalid data being stored in the EEPROM, making it impossible for Grbl, which has minimal error checking, to process any commands.[6]

Machine won't hold position

Step idle delay ($7 in 0.8 and earlier, $1 in 0.9) is the Grbl setting for "step idle delay" in milliseconds. If set to 255 (suggested default) it will always energize the motors so as to hold position. If set to some other value, motors will be turned off after the specified time.[7]

Toolpath Differs from Expected

Basic Principles and Things to Check

Always simulate --- see Previewing G-Code

If the machine's behavior doesn't match what is simulated, then there are only a couple of possibilities:

  • software bug --- Grbl is very reliable, so unlikely to be in the firmware --- Carbide Motion 4 ought to give an error message on any G-Code which it can't properly send on to the machine, and Carbide Create ought not make any code which doesn't work properly
  • file problem --- an example of this would be setting safety / retract height too high, using the wrong post-processor, or enabling a feature such as XY datum in Vectric Vcarve
  • machine misconfiguration / user error --- this can be a lot of things, occasionally overlapping with the above, for example setting safety / retract height and the Z-axis zero so that when the machine lifts to safety height it bumps against and loses steps against the top stop, so that the Z-axis height isn't correct.
  • Electronics --- it's possible for a wire or connector to break or for a lost connection or excessive current generated by the stepper motors or a stray static spark to damage the stepper driver or controller --- if the machine behavior doesn't match what is described at: https://www.shapeoko.com/wiki/index.php/SO3_Function_Test let us know at [email protected] and we'll do our best to help.

Specific Problems

Diagnosing oddities in the cut: http://community.carbide3d.com/t/unwanted-taper-in-my-milled-pieces/783/2

Radius of corners is different: https://www.reddit.com/r/CNC/comments/3z300o/please_help_why_wont_it_square_corners_details_in/

Symptoms: Stairstepped diagonals, jagged circles/curves, loud squealing or 'ker-chunka' thuds, gantry chattering, mis-aligned edges

A useful troubleshooting technique for this is to listen to the machine:

  • If it sounds awful = loose wire. (or the stepper driver going into thermal shutdown)[8]
  • If it sounds normal = loose set screw.[9] (or other mechanical issue such as loose belts)

File worked previously, doesn't work now: Reaching limits of machine.

Either overheating or reaching acceleration limits
Steppers may be entering thermal shutdown, add active cooling.[10]
Machine is operating at the limits of its acceleration. Slow down feed speeds[11] and max acceleration in GRBL.
Endmill no longer sharp, spindle not working properly (rotating in wrong direction)
If the machine is not able to properly cut, then it will not be able to move along the desired path, since it will not be clear.
A spindle which is not working properly may put out EMI which will interfere w/ the movement of the stepper motors. Brushes on a router are a consumable part and must be replaced periodically.

Possible software cause: Lines in G-code file are too long.

Co-ordinates have too many decimals
GRBL is limited in the number of characters per line it can handle, which causes it to ignore the end portions of too-long lines. If your job is previewing correctly, but not running properly, check to see that line lengths are w/in its limits (50 for older versions, 70 for 0.8c dev or later) as discussed in the forums[12] [13].
For those who're using Scite, do a regular expression search for
replace w/:
Or, use one of the G-Code Utilities. Note that there has been one report of truncating to two digits (in imperial) causing errors when calculating arcs[14] --- at least two digits should be preserved for millimeters, four digits when using imperial --- five for either might be a reasonable compromise.[15]

Likely electromechanical cause(s): Steppers are missing steps somewhere. See below for common reasons this happens.

Drivers overheating
If you're running Pololu 4988 or similar drivers, add heatsinks and a fan. The A4988 in particular has a heat via on the bottom of the board, so positioning the fan so that in blows across both the top and bottom of the drivers is important. Airflow does the most, followed by a heatsink on top of the chip. Note that this may also be caused by setting the current too high (say going straight to maximum)[16]
Steppers being run too fast
GRBL has a maximum speed that it can drive stepper motors at. Because the X and Y axis are belt driven while the Z is threaded rod drive, it is very easy to set the x/y Default Feed speed faster than the Z axis can be signaled. Cut your default feed and test.
Feed rate too fast
The harder the material being cut, the more torque the steppers have to resist. If you're feeding too fast, this can overcome the holding torque of your motors.
Axis binding
Check that all of your v-wheels rotate freely when bolted and tightened, as some of the tolerance problems in the v-wheel components (precision washer discussion) can be bad enough to cause the bearings to bind and the v-wheel to be stiff.
If you're not using a drive shaft or dual Y axis steppers and your v-wheels or rails are adjusted incorrectly, the Y axis can bind and overwhelm the rated torque on your steppers
Also check that you've tensioned the eccentric spacers correctly. The v-wheels should be firmly planted on the MakerSlide but should not be so tight that there is any deflection/bowing in the plate, and should be easy to slide along the rails.
Axis stalling
If you're using a drive shaft it is possible to have one pulley slip while the other will continue to drive the machine
Any instance of slippage should be investigated by checking the set screws on the pulleys.
Electrical brownout
The power supply does draw a fair bit of power for the stepper motors --- add in a spindle and vacuum cleaner and computer system and one has a significant current draw. If possible, avoid using the same circuit as a major appliance (refrigerator, freezer, microwave), and try to put the spindle and vacuum[17] on a separate circuit. One solution for this is Catalin Voinescu's Galvanic Isolation and Power Supply Shield (GIPSS).
Electrical interference
The spindle and motors put out quite a bit of electrical interference. This may cause random or irregular deviations in the movement of the machine. Shield the wires.[18]
Loose Idler
Odd distortions, all tending towards a particular direction may be caused by an idler pulley being loose.[19]

Deviations in slots when cutting: The bit is pulled along creating random path deviations which get worse as one gets deeper into a slot.

Spindle is more powerful than the machine can manage
If you've significantly upgraded your spindle and not kept up with the balance of the machine (“The Wonderful One Hoss Shay” problem), then the machine flexing along the Z-axis may flex and allow the bit to rub up against the edge of a slot where the cutting action will then pull the machine further along. Forum discussion in Success and Some Failure milling Aluminum where the solution is noted as making the X-axis more rigid.

Deviations in shapes when cutting: The machine lags behind at changes of direction, distorting shapes and creating flat edge at the extrema of rounded forms.

Backlash/Insufficient belt tension
If your belts are too lose, the machine will shift w/ the cutting forces, distorting shapes.[20] Machines w/ threaded rod will have similar difficulties if nuts do not have anti-backlash features.[21]

This is especially noticeable when cutting PCBS traces: http://www.shapeoko.com/forum/viewtopic.php?f=28&t=5824&p=43992#p43985

Z-axis cuts more deeply than expected: The bit is pulled along going deeper into the material than it should.

Acceleration / movement too fast
The Z-axis is limited in its acceleration and top speed by the torque of the motor. If it is able to move down okay, but will not move up reliably, then the acceleration or movement may be too fast or high[22]. Some G-code senders have an option to limit the Z-axis speed.
Spindle is loose in its mounts, Z-axis plunge rate too fast causing the machine to go deeper than it ought.
Always check to ensure the spindle is secure. Always be cautious with Z-axis plunge rates, especially when using CAM tools which lack spiral or ramp Z-axis moves.
Z-axis motor is over-heating, causing the machine to fail to move up on negative moves (it's more difficult to lift the spindle than to lower it) causing it to cumulatively go deeper than it ought.[23]
Adjust the current (See Motor Current and the following section under Fine Tuning), consider adding heat sinks and/or a fan to cool the stepper drivers.
End mill loose in collet --- this can also cause other path deviations as the needed cutting forces are increased beyond the machine's capabilities.
Tighten collet.[24]

Z-axis cuts at odd angles when cutting thin stock: The bit is pulling the material up or twisting it as it cuts.

Switch to a down-cutting spiral bit --- check and ensure the bit is sharp.[25]

Lines are not straight, circles not round, dog bone pattern at corners, cut quality poor

DC spindle wired to run backwards.[26]
It may also be a damaged or dull end mill, or the milling direction may be wrong.

Repeating curve/wobble

Bad bearing[27] or V-wheel[28]

Pulley set screws

Image on checking these at Carbide 3D forums: http://community.carbide3d.com/t/new-shapeoko-xxl-x-axis-not-moving-at-all/2698/12

Machine cuts/moves at wrong size/scale

The distance the machine moves for a given value is governed by several things:

- unit mode, determined by whether or no G20 or G21 has been sent --- see G-Code
- # of steps per mm defined in Grbl for $100, $101, and $102: http://docs.carbide3d.com/article/45-machine-is-moving-cutting-at-half-size
- microstepping --- hard-wired in newer boards, but for older: http://docs.carbide3d.com/article/21-what-should-the-dip-switches-be-set-to-on-my-shapeoko3-controller-board
- scaling in the CAD/CAM file --- see Software

Material Stock Melting or Burning

Symptoms: Smoke, fire, running around in a panic, material build-up on tooling, poor cut edges (plastic) or burn marks (wood)

Likely Cause(s): RPM too high / Feed rate too low The surface of your tooling is moving too fast relative to the material. This leads to 'dwell', where the tooling rubs against the material to create a significant amount of heat.

Increase your feed rate (higher mm/minute)
Increasing your feed rate decreases the speed difference between the edge of your tooling and the material, reducing friction. GRBL has some limitations on feed, especially in smaller parts and curves, so this is not always possible.
Slow your spindle (lower RPM)
If your router or dremel has variable speeds, turn it down. This, however, usually reduces the available torque, which can in turn lead to stalling your spindle during the cut.

Persistent Ridges

One possible cause is an endmill which is either bent or deflecting.[29]

Bit Chatter

Symptoms: Loud chattering, jagged cut edges, snapped tooling

Likely Cause(s): Feed rates too high, loose frame

Slow the feed
If your tooling is trying to bite too much material, it will be under much higher stresses, pushing away or into the material much more than usual. Slowing down your feed rate can reduce this.
Tighten the frame
Especially if you did not use loctite when assembling, bolts can work loose over time (or never having been tightened sufficiently), greatly reducing the rigidity of the frame - this rigidity is what a CNC uses to move the tool where it is supposed to be. Tightening everything up will help this.

Another possibility is the spindle carriage plate is running off the bottom of the rail, esp. w/ the new style plate.

Machine Chatters/Vibrates

Symptoms: Chattering, buzzing

Likely Cause(s): Natural stepper motor function, Loose wheels

Adjust wheels

Technique for checking V-wheels: http://community.carbide3d.com/t/king-color-core-set-up-plunge-rate-shapeoko-xl-newbie/6031/13

GRBL Errors

error: Expected command letter

In at least one instance, a program used commas as a decimal separator when generating G-code.[30] Replacing the commas w/ periods allows the file to run.

error: Attempting to complete a command that doesn't exist

Grbl's line length limitation can cause various syntax errors, including this. See above

Invalid gcode in handleGCode: 38.2

Probe connection is shorted or probe is touching endmill.

Other Errors / Issues

It is also possible to corrupt the EEPROM storage. This sketch when downloaded and run will erase that storage area.[31] Please note that one will then have to reload Grbl.

One Axis Quits Working or Works Intermittently

Or makes an odd noise, or randomly reverses[32]....

https://github.com/synthetos/grblShield/wiki/Troubleshooting [33]

First, cut the power.

Second, check continuity --- if you don't have it, restore it and re-try. One possibility is a wire which is fastened by its jacket/covering.[34] The DIP switches on the Carbide Motion Control Board add another possible poor connection --- toggle the switch on a misbehaving axis several times to improve the connection.[35]

Another possibility is a poor connection between the gShield and the Arduino --- if all other connections are good, then try unplugging/replugging.[36]

A further possibility is a small piece of errant metal causing an intermittent short --- clean all electronics w/ compressed air or some other suitable technique.[37]

Ensure adequate cooling and/or adjust current.

Test for a bad stepper driver by swapping the motor connections or gShield.[38]

X- or Y-axis

Next, check to see if the pulley set/grub screw has come loose --- if it has, tighten it and re-try. Also test the belt tension to make certain that it's taut enough (and on the Y-axis equal for both belts).

Last, (assuming continuity was good and the pulley was okay), swap wiring around to test for either a bad motor or a blown stepper driver --- that should let you know what needs to be replaced --- if everything tests out as good and it's only the one axis w/ a problem you probably have a bad gShield.


Note that most of this applies to a threaded rod (or Acme screw) Z-axis --- for belts, see above.

Belt (SO3)

  • belt skipping due to too strong springs --- increase belt tension (careful not to bend motor shaft) and either replace the springs w/ less powerful ones (they're a commodity part from a hardware store) or remove one
  • stepper driver is overheating --- shouldn't happen w/ the new board and heat sink
  • intermittent wiring connectivity --- check all the connections
  • loose pulley set screw (or tight set screw which doesn't mate up fully w/ the flat on the shaft) --- check and tighten http://docs.carbide3d.com/shapeoko-faq/shapeoko-3-how-to-check-the-pulley-set-screws/

Threaded rod or Acme or Trapezoidal screw

Check to make certain that the Delrin nut is secure and hasn't become loose/canted. (SO2) Check the belt tension(SO3)

If the machine is unable to complete plunges into the material, or seems to be lifting up as you are working, it may be missing steps because your plunge rate is too high --- this should be kept low, and one should also limit the speed of all Z-axis moves, since it's easy to stall the threaded rod in comparison to the belts.

Limiting this to no more than 10 in/min or 250 mm/min is a good guideline for a Z-axis w/ M8 threaded rod.[39]

If the machine seems to increase the depth of the Z-axis during operation (it descends, but doesn't lift), then you may be losing steps when trying to ascend due to the acceleration being set too high, or current for the Z-axis not being properly adjusted, or the stepper driver overheating (holding a position generates more heat than movement). Another possibility is that the endmill is working itself loose in the collet.[40]

Inconsistent operation may be caused by the flexible coupler being loose. Remove the set screws, rotate it 90 degrees or so and then replace the set screws.[41]

- check Grbl's step settings and the board's microstep and current setting
- Z-axis motor driving overheating --- adjust current and/or add fan
- Z-axis coupler set screw loose
- bit is pulling loose in collet --- must be more than hand-tight
- spindle getting pulled down --- tighten the mount, use a thicker or all-metal one
Z axis only turns one way

Check the wires again.

Assuming you have a gShield or a similar board, check the connection between it and the Arduino -- specifically, pin D7. If that's not inserted properly, the Z could turn in the same direction regardless of what you tell it to do. If your shield has removable driver modules, check that the DIR pin on the Z driver module is making contact. With some driver modules, if you ever put the module in backwards, the DIR pin gets fried, but the rest of the driver continues to work -- except it always turns the motor in the same direction...

Also check that the commands you issue are supposed to move the Z in both directions. Many people are initially confused by the fact that G-code works, by default, with absolute coordinates.[42]

Computer Cursor is Jittery

Symptoms: Computer cursor moves uncontrollably when the machine is plugged in over USB.

Likely Cause(s): Electrical interference from the machine

Break the electrical connection between the Arduino circuit board and the body of the machine using non-conductive posts or other mounting.
Electrical and grounding issues can cause a myriad of problems. It is important not to create any circular paths.[43]

Replacing a blown stepper driver

If the machine is operated w/ a loose wire, then the stepper driver chip may be damaged. In that event, it can be replaced, merely by unplugging and replacing on a board w/ socketed stepper drivers, by desoldering/resoldering a new chip on other boards.[44]

Motor oddly snaps after finishing a movement

This is caused by disabling motor holding.[45]

Electronics Troubleshooting Checklist

List what you've done, what documentation you used, how you checked your efforts for accuracy.

Explain what you tried, what you expected and what actually happened.

Note any searches, or troubleshooting, or variations tried.


Worn motor brushes may cause sparking resulting in EMF which causes hard to diagnose problems.[46]

Arduino refuses to connect

http://arduino.cc/en/Hacking/DFUProgramming8U2 [47]

Note that USB handshaking can be problematic. Bluetooth is a wireless alternative.[48]

Controller Loses Connection

See: Electronics: USB Disconnection and the thread: Also see the thread: http://www.shapeoko.com/forum/viewtopic.php?f=4&t=6545&p=58014#p58014

Troubleshooting techniques: http://www.shapeoko.com/forum/viewtopic.php?f=7&t=7835&p=62050#p62050

Shielding and Grounding

From: http://www.shapeoko.com/forum/viewtopic.php?f=4&t=6561&p=55393#p55393

1. Connect trim router/ shop vac to a different breaker.

2. Use an anti-static mat http://www.amazon.com/dp/B00009XT3H/ref=cm_sw_su_dp & clip the mat to the ground on the board.

3. Remove aluminum shroud.

4. Use a galvanic USB isolator http://www.saelig.com/MFR00151/UBUSB1001.htm. Support, however, hasn't gotten feedback from users on this item. Please post your experiences if you've used this item.

5. Clamp ferrite beads along trim router & USB cable.


Diagnosing using an oscilloscope


Forum Discussions

Anatomy of a failure