Wiki Search Terms
homingbuttonpin
gpio.2
Controller Board
6x NC v 3.9.7
Machine Description
Gantry router with external DM542T stepper drivers, dual Y motors, NC limit switches on all axis. Spindle is a Bosch router controlled via solid state relay wired directly to io.4. Cycle start & feed hold are presently NO momentary contact switches.
Input Circuits
Configuration file
board: "FluidNC 6x CNC Controller"
name: "Router"
meta: "2025.05.13 05:35"arctolerancemm: 0.002
junctiondeviationmm: 0.01
report_inches: false
enableparkingoverride_control: false
uselinenumbers: false
planner_blocks: 16
not default
verbose_errors: truestart:
must_home: true
deactivate_parking: true
not default
check_limits: truei2so:
bck_pin: gpio.22
data_pin: gpio.21
ws_pin: gpio.17
stepping:
engine: I2S_STREAM
idle_ms: 255
pulse_us: 4
dirdelayus: 0
disabledelayus: 0
segments: 12
not default
axes:
sharedstepperdisablepin: NOPIN
sharedstepperresetpin: NOPIN
homing_runs: 2
not default
x:
stepspermm: 80.0
maxratemmpermin: 2400.0
accelerationmmper_sec2: 50.0
maxtravelmm: 1275.0
soft_limits: true
homing:
cycle: 2
allowsingleaxis: false
positive_direction: false
mpos_mm: 0.0
seekmmper_min: 600
feedmmper_min: 50
settle_ms: 250
seek_scaler: 1.1
feed_scaler: 1.1
# motor block 2
motor0:
limitnegpin: NO_PIN
limitpospin: NO_PIN
limitallpin: gpio.34
hard_limits: true
pulloff_mm: 5.0
standard_stepper:
step_pin: I2SO.5
direction_pin: I2SO.4:low
disable_pin: I2SO.7
y:
stepspermm: 80.0
maxratemmpermin: 2400.0
accelerationmmper_sec2: 50.0
maxtravelmm: 1275.0
soft_limits: true
homing:
cycle: 2
allowsingleaxis: false
positive_direction: false
mpos_mm: 0.0
seekmmper_min: 600
feedmmper_min: 50
settle_ms: 250
seek_scaler: 1.1
feed_scaler: 1.1
# motor block 3 - left side (X home)
motor0:
limitnegpin: NO_PIN
limitpospin: NO_PIN
limitallpin: gpio.39
hard_limits: true
pulloff_mm: 15.8
standard_stepper:
step_pin: I2SO.10
direction_pin: I2SO.9:low
disable_pin: I2SO.8
# motor block 4 - right side (X plus)
motor1:
limitnegpin: gpio.36
limitpospin: NO_PIN
limitallpin: NO_PIN
hard_limits: true
pulloff_mm: 10.0
standard_stepper:
step_pin: I2SO.13
direction_pin: I2SO.12:low
disable_pin: I2SO.15
z:
# steps/mm is 80% of X & Y
stepspermm: 100.0
maxratemmpermin: 1920.0
accelerationmmper_sec2: 25.0
maxtravelmm: 115.0
soft_limits: true
homing:
cycle: 1
allowsingleaxis: false
positive_direction: true
mpos_mm: 0.0
seekmmper_min: 480
feedmmper_min: 40
settle_ms: 250
seek_scaler: 1.1
feed_scaler: 1.1
# motor block 1
motor0:
limitnegpin: NO_PIN
limitpospin: NO_PIN
#35
limitallpin: gpio.35
hard_limits: true
pulloff_mm: 5.0
standard_stepper:
step_pin: I2SO.2
direction_pin: I2SO.1:low
disable_pin: I2SO.0
control:
safetydoorpin: NO_PIN
resetpin: NOPIN
estoppin: NOPIN
# not default
#** when wired w/ new sw remove ':low' 2 places below
feedholdpin: gpio.33:low
cyclestartpin: gpio.32:low
#**
fault_pin: gpio.26
homingbuttonpin: gpio.02
relay:
directionpin: NOPIN
output_pin: gpio.4
enablepin: NOPIN
disablewiths0: false
s0withdisable: true
spinup_ms: 0
spindown_ms: 0
tool_num: 0
speed_map: 0=0.0% 0=100.0% 1=100.0%
offonalarm: true
spi:
miso_pin: gpio.19
mosi_pin: gpio.23
sck_pin: gpio.18
sdcard:
cs_pin: gpio.5
carddetectpin: NO_PIN
frequency_hz: 8000000
Startup Messages
Grbl 3.9 [FluidNC v3.9.7 (bt) '$' for help]
[MSG:INFO: uart_channel0 created][MSG:RST]
[MSG:INFO: FluidNC v3.9.7 https://github.com/bdring/FluidNC]
[MSG:INFO: Compiled with ESP32 SDK:v4.4.7-dirty]
[MSG:INFO: Local filesystem type is littlefs]
[MSG:INFO: Configuration file:router.yaml]
[MSG:INFO: Machine Router]
[MSG:INFO: Board FluidNC 6x CNC Controller]
[MSG:INFO: I2SO BCK:gpio.22 WS:gpio.17 DATA:gpio.21Min Pulse:2us]
[MSG:INFO: SPI SCK:gpio.18 MOSI:gpio.23 MISO:gpio.19]
[MSG:INFO: SD Card cspin:gpio.5 detect:NOPIN freq:8000000]
[MSG:INFO: Stepping:I2S_STREAM Pulse:4us Dsbl Delay:0us Dir Delay:0us Idle Delay:255ms]
[MSG:INFO: Axis count 3]
[MSG:INFO: Axis X (0.000,1275.000)]
[MSG:INFO: Motor0]
[MSG:INFO: standard_stepper Step:I2SO.5 Dir:I2SO.4:low Disable:I2SO.7]
[MSG:INFO: All Limit gpio.34]
[MSG:INFO: Axis Y (0.000,1275.000)]
[MSG:INFO: Motor0]
[MSG:INFO: standard_stepper Step:I2SO.10 Dir:I2SO.9:low Disable:I2SO.8]
[MSG:INFO: All Limit gpio.39]
[MSG:INFO: Motor1]
[MSG:INFO: standard_stepper Step:I2SO.13 Dir:I2SO.12:low Disable:I2SO.15]
[MSG:INFO: Neg Limit gpio.36]
[MSG:INFO: Axis Z (-115.000,0.000)]
[MSG:INFO: Motor0]
[MSG:INFO: standard_stepper Step:I2SO.2 Dir:I2SO.1:low Disable:I2SO.0]
[MSG:INFO: All Limit gpio.35]
[MSG:INFO: feedholdpin gpio.33:low]
[MSG:INFO: cyclestartpin gpio.32:low]
[MSG:INFO: fault_pin gpio.26]
[MSG:INFO: homingbuttonpin gpio.2]
[MSG:INFO: Kinematic system: Cartesian]
[MSG:INFO: BT Started with FluidNC]
[MSG:INFO: Relay Spindle Ena:NOPIN Out:gpio.4 Dir:NOPIN]
Grbl 3.9 [FluidNC v3.9.7 (bt) '$' for help]
[MSG:INFO: ALARM: Unhomed]
ALARM:14
Grbl 3.9 [FluidNC v3.9.7 (bt) '$' for help]
User Interface Software
Fluid Web Installer / Chrome / MacBook Pro / USB
What happened?
When a NC switch is connected to gipo.02 the input seems to be ignored. This happens when gpio.02 is assigned to homingbuttonpin as well as limitallpin on the Z axis. The homebuttonpin function does work when assigned to a different gpio (in this case gpio.35). Voltages at the terminals for io.2 & associated ground are 0v when the NC switch is not pressed & 4.3v when pressed. When gpio.02 is assigned to limitallpin for the Z axis the calibrate page shows a grey “?” for the input.
GCode File
No response
Other Information
No response
评论 (6)
#2 – joel-oo 于 2025-05-13
Switches are from Amazon and have no documentation. Embossed next to terminals are C, NO, NC & I’m on C & NC. When a meter is placed on the first two screw terminals on the board (io.2 & associated ground) the voltage changes from 0 V when not pressed to 4.3 V when pressed. With the board unpowered and an ohm meter on the same two terminals I read 0.4 ohms when not pressed and open when pressed.
The ? command shows
and
Although the calibration page may not be dependable when my Z limit is associated with gpio.35 it is green and turns red when the Z limit roller switch is pressed. When the Z limit is instead associated with gpio.2 I see the grey question mark and no change when the push button switch is pressed. Not perfect diagnostic but indicative of something different between 2 & 35.
#3 – bdring 于 2025-05-13
Remove one of the switch wires from the controller side. Then check the status.
#4 – bdring 于 2025-05-13
I am sorry, but I forgot that gpio.2 needs the pu: attribute. It is a strapping pin and would mess with the bootloader if there was an external pullup resistor.
That is mentioned on the wiki page. I added a little more to that page and added a schematic snippet.
#5 – joel-oo 于 2025-05-13
Adding :high:pu did it (:pu alone does not).
I had read about io2 & :pu so I chose to avoid the issue by not using that pin which worked up until the homing feature was added, I had run out of other pins, and forgotten about the requirement for :pu.
THANKS for the help.
Where’s the appropriate forum to raise an issue with documentation or functionality?
Where either I don’t understand something or the functionality doesn’t seem right or the documentation seems off. Nothing that rises to the level of not working but might be worth looking onto at some point.
Happy to open it here, discord, or keep it to myself – just don’t want to create extra work for you.
#6 – bdring 于 2025-05-13
That’s great to hear.
You can post it the help forum on Discord. You can also follow these instructions to edit the wiki yourself.
#1 – bdring 于 2025-05-13
I don’t use the calibration page on the Web Installer. It is a work in progress and may not be working correctly. It is not showing all of my limit switches.
You can always get the switch status by sending the ? character at the terminal.
– Are you sure you are using the correct pins on that switch.
– Have you verified that with a multimeter?
– Can you send a link to the switch documentation?