If you’re having any issues with your SLB, whether that’s understanding its settings or diagnosing a regular problem, you’ll likely find your solution here. This includes:

  • Fixes to common issues
  • Explaining Errors and Alarms
  • Using the lights on the board to pinpoint the problem

You might also find that a couple items are useful to have on hand when troubleshooting, though in most cases none of these are strictly necessary:

  • A small shorting wire, header pins, or something metal to bridge contact
  • Tiny flathead screwdriver to rewire terminal connectors
  • Multimeter

Issues at Setup

The SLB is set up to be automatically compatible with most LongMills by default. If you’re finding this isn’t the case then generally the best approach is to send the “$rst=$” command in the ‘Console’ tab then use the power switch on the back of the board to turn it off then back on again. This will reset your board back to the default values and then you can continue further troubleshooting from there.

  • Firmware settings look funny, don’t have descriptions, changing settings causes unexpected changes to happen: if you’re using gSender, check that you’ve selected ‘grblHAL’ as the firmware when you connect to your machine, not ‘grbl’.
  • Pressing to ‘Zero’ axes isn’t working: ensure “work coordinate offset” is enabled for $10 or that $10 = 511
  • Probing isn’t passing continuity check: ensure the yellow ‘PRB’ light is coming on, if isn’t then check your touch plate wiring, and if it is then ensure “pin state” is enabled for $10 or that $10 = 511
  • Dual Y-axes drifting out of sync: for grblHAL there is a new solution to this which is $37. This is better than the old $1=255 solution because $37 can hold individual motors rather than holding all of them. If you’d like to turn it on to keep your dual Y-axes in sync then turn it on for ‘Y’ or set $37=2.
  • CNC losing location during goto, outlining, probing, or running a job: all of these situations use high-speed ‘G0’ movements where the motors might not be able to keep up if your machine is not mechanically sound. First, confirm this is the problem by manually jogging your machine using the jog arrows and slowly increasing the jogging ‘Speed’ value until you notice any of the axes moving intermittently. Since your machine should be able to handle these speeds, it’s likely there’s some components that you’ve assembled too loose or too tight or misaligned. Check if you can turn your lead screws by hand, if your belts or v-wheels are too tight, if you have a coupler that’s too loose. These will all be the same components you should be looking at during regular machine maintenance. If you still can’t manage to get your machine to run at full speed the other option is to consider lowering the SLBs maximum speed with settings 110, 111, and 112 and maximum accelerations with settings 120, 121, and 122 until the problem goes away.
  • Overriding speed, spindle, or laser doesn’t seem to work on shorter files: this is an outlying grblHAL issue which should only occur on shorter files. If you want to still override, you should still have the option to set the override before starting the job.
  • Homing gets stuck or disconnects: try reducing the homing “seek rate” (25) or increasing the “debounce delay” (26) settings. Depending on your setup or sensors, the default values might be a bit too aggressive.
  • Issues with Independant A-axis homing or hard limits: earlier versions of SLB firmware might exhibit difficulties with this. In this case you’ll have to disable hard limits when doing 4-axis cutting, and if you want to do independent A-axis homing you’ll want to temporarily add it to $44 or 45, then run the independent homing cycle using the button in gSender or sending “$ha”, then remove the A-axis again from $44 or 45.
  • Other unexpected behaviours: sometimes there might be a case where your SLB isn’t doing what you’d expect it to do but you don’t see the solution in our resources. In these cases feel free to report it to us so we can try to investigate it further, but otherwise you might find that the old adage may still hold true where turning it off and back on again with the main power switch on the back resolves your issue.

Bad E-stop

The E-stop behaviour should be such that all 3 Action buttons light up the Action button lights on the SLB, and the main E-stop button should be illuminated. Once the E-stop button is pressed it should unlight and stay latched closed – this will cause the motors controlled by the SLB to lose power and an Alarm 10 to appear in your g-code sender and halt all motions. Once you untwist the E-stop button it should pop back up and become lit again, then you should be able to clear the Alarm and resume operation. If you experience anything else:

  • E-stop light stays on even after the button is pressed, or SLB doesn’t seem to respond to E-stop being pressed: there’s a backup option on the board which is able to act as the E-stop and it looks like two metal pins sticking out near the back of the board where you plug the power in. Once you find these two pins, grab anything conductive like a flat head screwdriver and insert it between the two pins that are sticking up to ‘connect’ them together electrically. This should activate the E-stop if you weren’t able to activate it before, or if your problem was that it was never deactivating then keep conducting the pins while turning the toggle switch on the board off then back on again and you should see the red lights for the E-stop turn off. If this is successful then you’ve either got a loose E-stop wire (check your connections) or your E-stop button is broken. If neither of these work then your board is likely defective and you can contact us to replace it.
  • E-stop doesn’t latch closed or doesn’t untwist or move: your E-stop button is likely broken and we can replace it if it’s under warranty
  • Unlocking after E-stop press freezes up machine: this is a bug we’ve found to exist in the 5.0.3 version of the SLBs firmware. We’ve implemented a solution in a new firmware version that you should upgrade to since this behaviour can be bothersome. See Firmware Flashing for more.

Common Alarms & Errors

  • Supposed to have multiple Alarms but only one showed up OR after clearing E-stop Alarm there’s no message to remind you to home: this is a current flaw in how grblHAL handles Alarms since they can stack on top of each other but can’t be dismissed selectively so all of them get cleared at once. In these situations just be mindful of what’s happened so, for instance, you can still remember to home your machine on startup.
  • Alarm 3 or 10 take a couple tries to unlock: in the newer versions of gSender (1.4.6 onward) this should be fixed where unlocking just takes some time
  • Alarm 10 on startup: you should be able to “Click to Unlock Machine” in gSender. If this doesn’t work, you can try to:
    • Turn on the board without the E-stop doing anything and the big LED should be Red as well as the small light next to “Halt” on the board which is near the big LED.
    • Rotate to unlock the E-stop, this should turn the smaller red “Halt” light off.
    • Click the Unlock button in gSender.
    • If your machine doesn’t change to ‘Idle’ (white status light), turn the board off then on again and repeat this process until it goes through
  • Alarm 10 when E-stop not pressed: the E-stop signal needs to be safe so it’s designed to be very sensitive. Check if you have any loose wires or have conductive material in contact with the underside circuitry of the E-stop unit, any of these cases could be causing it to trigger unexpectedly
  • Alarm 14 unexpectedly or during spindle setup: this would point to an error in how you’ve set up your spindle, either in the wiring, how you’ve set up the SLB EEPROM values, or how you’ve set up the PD values on your VFD. Double-check that everything is as it should be since if there’s a misalignment in any way then the controller won’t receive proper responses and send an Alarm 14 to protect the machine
  • Error 1 during Homing: make sure $39 is turned on
  • Error 8 or 9 after hitting E-stop: the typical routine after hitting the E-stop will be to first ‘reset’ the board and then ‘unlock’ it, you’ll get either of these errors if a step in this process is missed
  • Error 10 when changing firmware settings: you’re likely trying to turn on a setting that first requires homing ($22) to be enabled before the other setting can be enabled
  • Error 24 in gSender: check that you are not loading up a regular file while in Laser mode

See the meaning of all Alarms here: or type “$eag” into the console

Other Troubleshooting

  • If there’s a problem when you “Import Settings” from an older Firmware version to a new one in gSender’s Firmware Tool, this is expected. Different versions of the SLB have different EEPROM outputs that won’t be compatible with each other, so for the duration of Beta testing you’ll just have to note down your changed settings manually and revert them manually on new Firmware versions
  • If you change a firmware setting and notice that it isn’t taking effect, check if the setting description mentions that you need to “hard reset” your board for the changes to take effect. Some settings need this, and this just means you’ll need to turn your board off and back on again before the change takes effect.
  • If the gSender screen ever goes black, please let us know what happened leading up till that point, then use the toolbar to select ‘View’ -> ‘Reload’, to get refreshed and the screen showing once again
  • If you hear the SLB ‘clicking’ when you change EEPROM settings, this is normal
  • If you’re experiencing any issues with SLB ‘Disconnection’ while running your CNC, try switching from USB over to Ethernet

Troubleshooting Lights

There are several other small ‘status’ lights you’ll notice as you look around on the SLB. We put these in place to help with general troubleshooting anytime you’re not getting the behaviour you expect. These lights directly reflect the hardware they’re attached to, allowing you to check the raw hardware connections before they’re processed by the SLBs firmware or your g-code sender. This means they’re not able to be inverted or changed, they’ll always have the same behaviour.

This is a list of all the lights and how they function:

NOTE: only LEDs set up for ‘inputs’ like limit switches and E-stop buttons need the hardware to be hooked up to confirm an incoming signal. Otherwise, LEDs for ‘outputs’ like PWM or motor signals will still turn on and off without needing to hook up the components.

Section#Why is it lit up?TypeColour
Power1E-stop pressed or power disruptionInRed
25V power is working on the boardInGreen
33.3V power is working on the boardInGreen
Communication4RS485 TX signals are being sentOutGreen
5RS485 RX signals are being sentInRed
6USB connection is activeComGreen
7CAN bus TX signals are being sentOutGreen
8CAN bus RX signals are being sentInRed
9Ethernet is connected at the standard speed
*Side of board where plug goes in
10Ethernet data is being sent/received (blinking)
*Side of board where plug goes in
Accessory Outputs11Switch 1 output is activeOutGreen
12Switch 2 output is activeOutGreen
13Aux power 1 output is activeOutGreen
14Aux power 2 output is activeOutGreen
Spindle/RS48515Laser PWM output pin is sending signals
Note: this is not dependant on $32 or gSender being in laser mode, this relies on the active ‘spindle’ output being “SLB_LASER” and there being a specified power output while M3 or M4 are on, see the laser section to read about this
16Spindle PWM output pin is sending signals
Note: checks and setup for this is the same as for the laser PWM output above, also only one of these lights will be able to be on at one time since only one ‘spindle’ can be active at once
Limit Switches17Z-axis limit switch is closedInYellow
18Y2-axis limit switch is closedInYellow
19Y1-axis limit switch is closedInYellow
20X-axis limit switch is closedInYellow
Rotary21A-axis limit switch is closedInYellow
22A-axis motor is reaching its stall pointOutRed
23A-axis motor is enabled
Note: depending on what external motor driver you wire up, this light might be inverted and instead light up for ‘disabled’
XYZA Axis Enabled24Z-axis motor is enabledOutGreen
25Y2-axis motor is enabledOutGreen
26Y1-axis motor is enabledOutGreen
27X-axis motor is enabled
Note: all motors will typically light as ‘enabled’ for any movement, unless they’re constantly lit from keeping them energized using $37
XYZA Axis Stalled
28Z-axis motor is reaching its stall pointOutRed
29Y2-axis motor is reaching its stall pointOutRed
30Y1-axis motor is reaching its stall pointOutRed
31X-axis motor is reaching its stall pointOutRed
Main LED Strip32Flood command (M8) is onOutBlue
33Mist command (M7) is onOutBlue
34Door input signal is closedInYellow
35Tool length sensor signal is closedInYellow
36Probe input signal is closedInYellow
37Action button 1 is being pressedInYellow
38Action button 2 is being pressedInYellow
39Action button 3 is being pressedInYellow
40E-stop is pressed (circuit open)InRed

Useful commands

  • $$   lists all Firmware settings
  • $rst=$   resets all your EEPROM settings to the default Firmware values
  • ?   reports any active inputs plus some other useful info
  • $g   lists current active grbl Modals
  • $i   tells you information on your board Firmware Version and Plugins
  • $$=##   will let you know the Name and Description of that Setting
  • $esg   will tell you the Names and Descriptions of all Settings
  • $eag   will tell you the Names and Descriptions of all Alarms

Alarms List

Alarm CodeMessageDescriptionExample
1Hard limitHard limit has been triggered. Machine position is likely lost due to sudden halt. Re-homing is highly recommended.Example
2Soft limitSoft limit alarm. G-code motion target exceeds machine travel. Machine position retained. Alarm may be safely unlocked.Example
3Abort during cycleReset while in motion. Machine position is likely lost due to sudden halt. Re-homing is highly recommended. May be due to issuing g-code commands that exceed the limit of the machine.
4Probe failProbe fail. Probe is not in the expected initial state before starting probe cycle when G38.2 and G38.3 is not triggered and G38.4 and G38.5 is triggered. Your bit is likely making contact with the touch plate or the circuit is completed before the bit is moving. Move the bit away from the touch plate.Example
5Probe failProbe fail. Probe did not contact the workpiece within the programmed travel for G38.2 and G38.4. Your bit is too far away from the touch plate. Move the bit closer, it should be within 6-12mm (1/4 -1/2in) away.Example
6Homing failHoming fail. The active homing cycle was reset.
7Homing failHoming fail. Safety door was opened during homing cycle.
8Homing failHoming fail. Pull off travel failed to clear limit switch. The machine is within the limit switches range when it tries to move away. Try increasing pull-off setting or check wiring.Example
9Homing failHoming fail. Could not find limit switch within search distances. Try increasing max travel, decreasing pull-off distance, or check wiring. The limit switch wasn’t triggered in the distances expected. If your z-axis is moving away from the switch when homing, check your firmware and confirm you have the correct profile for your machine.Example
10E-Stop assertedE-Stop asserted. Clear and reset. Untwist your E-stop.
11Homing requiredHoming required. Execute homing command ($H) to continue. Your machine can’t start up until you first Home.
12Limit switch engagedLimit switch engaged. Clear before continuing. A limit switch is on or off when it’s not supposed to, check if you’ve triggered them accidentally or you set them up the wrong way. fixed
13Probe protectionProbe protection triggered. Clear before continuing.
14SaS timeoutSpindle at speed timeout. Clear before continuing. This can also trigger if you’ve set up a VFD that’s not sending back correct signals to the board.
15Homing failHoming fail. Could not find second limit switch for auto squared axis within search distances. Try increasing max travel, decreasing pull-off distance, or check wiring.
16Selftest failedPower on selftest (POS) failed.
17Motor faultMotor fault.
18Homing failHoming fail. Bad configuration.

Errors List

Error CodeMessageDescription
1Expected command letterG-code words consist of a letter and a value. Letter was not found.
2Bad number formatMissing the expected G-code word value or numeric value format is not valid.
3Invalid statementGrbl ‘$’ system command was not recognized or supported.
4Value < 0Negative value received for an expected positive value.
5Setting disabledHoming cycle failure. Homing is not enabled via settings.
6Value < 3 μsecMinimum step pulse time must be greater than 3μsec.
7EEPROM read fail. Using defaultsAn EEPROM read failed. Auto-restoring affected EEPROM to default values.
8Not idleGrbl ‘$’ command cannot be used unless Grbl is IDLE. Ensures smooth operation during a job.
9G-code lockG-code commands are locked out during alarm or jog state.
10Homing not enabledSoft limits cannot be enabled without homing also enabled.
11Line overflowMax characters per line exceeded. Received command line was not executed.
12Step rate > 30kHzGrbl ‘$’ setting value cause the step rate to exceed the maximum supported.
13Check DoorSafety door detected as opened and door state initiated.
14Line length exceededBuild info or startup line exceeded EEPROM line length limit. Line not stored.
15Travel exceededJog target exceeds machine travel. Jog command has been ignored.
16Invalid jog commandJog command has no ‘=’ or contains prohibited g-code.
17Setting disabledLaser mode requires PWM output.
20Unsupported commandUnsupported or invalid g-code command found in block.
21Modal group violationMore than one g-code command from same modal group found in block.
22Undefined feed rateFeed rate has not yet been set or is undefined.
23Invalid gcode ID:23G-code command in block requires an integer value.
24Invalid gcode ID:24More than one g-code command that requires axis words found in block.
25Invalid gcode ID:25Repeated g-code word found in block.
26Invalid gcode ID:26No axis words found in block for g-code command or current modal state which requires them.
27Invalid gcode ID:27Line number value is invalid.
28Invalid gcode ID:28G-code command is missing a required value word.
29Invalid gcode ID:29G59.x work coordinate systems are not supported.
30Invalid gcode ID:30G53 only allowed with G0 and G1 motion modes.
31Invalid gcode ID:31Axis words found in block when no command or current modal state uses them.
32Invalid gcode ID:32G2 and G3 arcs require at least one in-plane axis word.
33Invalid gcode ID:33Motion command target is invalid.
34Invalid gcode ID:34Arc radius value is invalid.
35Invalid gcode ID:35G2 and G3 arcs require at least one in-plane offset word.
36Invalid gcode ID:36Unused value words found in block.
37Invalid gcode ID:37G43.1 dynamic tool length offset is not assigned to configured tool length axis.
38Invalid gcode ID:38Tool number greater than max supported value.