grblHAL Alarm 9

grblHALAlarmPosition isn't set yet: home first

During homing an axis travelled as far as it's allowed to and never found its limit switch.

Position isn't set yet: home first. Homing didn't finish. (Hamrun's reading)
What to do
  1. Watch which axis keeps moving without stopping: that's the switch to check.
  2. Press that switch by hand and watch the pin state in your sender. No change means wiring or a dead switch; always on means the switch setting is inverted ($5).
  3. Check the axis really reaches the switch: loose pulley, binding axis, or max travel ($130–$132) set shorter than the machine.
  4. If the machine has no switch on an axis, don't home that axis (homing cycle settings) instead of forcing it.
  5. Settings sent by another program can be the culprit: compare the controller's $$ settings with the machine maker's.
What users reported CLAIMED · forum and issue reports, not official
  • The limit switches were inverted (optical switches that output high when triggered). Setting $5=1 to invert them fixed homing. (confirmed in the thread; reported on GRBL machines) LightBurn forum, Feb 2023
  • A rotary attachment has no home or limit switch (it can turn round and round). The fix given: turn off Auto-Home, set $22=0 and $20=0, and use Current Position. (stated in the thread; reported on GRBL machines) LightBurn forum, Mar 2026
Official grblHAL message: “Homing fail. Could not find limit switch within search distances. Try increasing max travel, decreasing pull-off distance, or check wiring.” source

Got a different message?

Paste it into the decoder. Hamrun's editor checks your G-code before you run it, so a toolpath that leaves the machine's travel or a missing feed rate is caught before the machine stops.

Related codes

  • GRBL 1.1 Alarm 9: During homing an axis travelled as far as it's allowed to and never found its limit switch.
  • FluidNC Alarm 9: During homing an axis travelled as far as it's allowed to and never found its limit switch.
  • grblHAL Alarm 6: Homing was interrupted by a reset before it finished.
  • grblHAL Alarm 7: The safety door was opened during homing.
  • grblHAL Alarm 8: After touching a limit switch, the machine backed off but the switch still read as pressed.
  • grblHAL Alarm 11: The controller is set to require homing before anything else.
  • grblHAL Alarm 15: On a machine with two motors on one axis, the second limit switch wasn't found when squaring.
  • grblHAL Alarm 18: Homing is set up in a way the controller can't run.

Official text copied from the grblHAL source on 2026-11-01. Steps and the position answer are Hamrun's reading unless marked “firmware says”. User reports are labelled CLAIMED.