The ports of FluidNC can all be freely defined and allocated through the YAML file, so there is no fixed PinMap.
Our current definition is based on the test YAML we use.
When applying it to your machine, you will need to define the pins yourself.
| Channel | Physical Port | Pins (Test YAML) | Typical Use |
|---|---|---|---|
| UART0 | Main USB 17 | — | Firmware flashing, gcode sender |
| UART1 | RS485 terminal 2 | TX: GPIO.12 · RX: GPIO.11 | Modbus VFD |
| UART2 | RJ12 port 5 | TX: GPIO.0 · RX: GPIO.35 | Pendant / IO Expander |
| UART3 | Second USB 24 | USB-Host (usb_host) | USB pendant / HID device |
:low parameter.| Terminal | Test YAML Function | Terminal | Test YAML Function |
|---|---|---|---|
| GPIO.42 | X limit − | GPIO.37 | A limit − |
| GPIO.41 | X limit + | GPIO.36 | B limit − |
| GPIO.40 | Y limit − | GPIO.48 | C limit − |
| GPIO.39 | Y limit + | GPIO.47 | Probe |
| GPIO.38 | Z limit − | GPIO.3 | Toolsetter (jumper-selected, see ⑩) |
M64 P0/M65 P0, M64 P1/M65 P1).ModbusVFD section of the test YAML.M3 S24000), if the output voltage does not reach 10V.io.4-MOS-GND and io.5-MOS-GND (Vmot-Main).io.4-MOS-GND and io.5-MOS-GND ports serve as GND.24V input is strongly recommended.>12V to generate proper signals.24V is recommended.3.3V when using SPI-type (TMC) stepper drivers.5V for external drivers requiring 5V logic signals.3.3V (jumper on right). Choose according to your specific driver requirements.NULL on the switch panel — MS3 must be configured in the YAML via I2SO outputs (see ⑫).MS0/MS1/MS2 — set according to actual pin functions.CS) signal.| Axis | MS3 / CS | YAML IO |
|---|---|---|
| X | X.MS3 / CSX | I2SO.3 |
| Y | Y.MS3 / CSY | I2SO.6 |
| Z | Z.MS3 / CSZ | I2SO.11 |
| A | A.MS3 / CSA | I2SO.14 |
| B | B.MS3 / CSB | I2SO.19 |
| C | C.MS3 / CSC | I2SO.22 |
EN / STP / DIR signals directly to external stepper drivers. Simple — no jumper configuration needed.| Axis | EN | STP | DIR | Axis | EN | STP | DIR |
|---|---|---|---|---|---|---|---|
| X | I2SO.0 | I2SO.2 | I2SO.1 | A | I2SO.15 | I2SO.13 | I2SO.12 |
| Y | I2SO.7 | I2SO.5 | I2SO.4 | B | I2SO.16 | I2SO.18 | I2SO.17 |
| Z | I2SO.8 | I2SO.10 | I2SO.9 | C | I2SO.23 | I2SO.21 | I2SO.20 |
M8 on / M9 off), GPIO.15 = coolant mist (M7 on / M9 off).2B 2A 1A 1B coil pairs — the onboard driver outputs go to the motors through these terminals.CS) signal.VCC and GND, as some OLED modules have different pin arrangements.usb_host, baud 115200).$USBCDC/Enable=Off before using this port for the first time.Clicking the file name .yaml in the upper left corner allows you to download it.
############################################################################## ## THIS EXAMLE ONLY FOR IOTEST, DO NOT USE FOR YOUR MACHINE BEFORE MODIFY ########## ############################################################################# board: PiBot V588 name: PiBot V588 IO Test YAML stepping: engine: I2S_STATIC idle_ms: 254 pulse_us: 4 dir_delay_us: 1 disable_delay_us: 0 ###################################START TEST UART################################### ## uart0 main usb port ## uart1 RS485 tx rx ## uart2 RJ12 TX rx ## uart3 second usb port ##################################################################################### ## Begin expansion port uart and channel setup (test the rj12 port) uart2: txd_pin: gpio.0 rxd_pin: gpio.35 baud: 1000000 mode: 8N1 uart_channel2: report_interval_ms: 75 uart_num: 2 ## End expansion port set up. ## Start USB-HOST FIRST TIME NEED SET $USBCDC/Enable=Off (test the second usb port) uart3: usb_host: baud: 115200 # the baud almost=115200 uart_channel3: report_interval_ms: 0 uart_num: 3 message_level: Verbose ## Start USB-HOST ###################################END TEST UART#################################### spi: miso_pin: gpio.2 mosi_pin: gpio.1 sck_pin: gpio.21 sdcard: card_detect_pin: NO_PIN cs_pin: gpio.9 i2so: bck_pin: gpio.16 data_pin: gpio.17 ws_pin: gpio.18 ## Begin OLED i2c0: scl_pin: gpio.13 sda_pin: gpio.14 oled: i2c_num: 0 i2c_address: 60 width: 128 height: 64 radio_delay_ms: 1000 ## END OLED probe: pin: gpio.47:low toolsetter_pin: gpio.3:low check_mode_start: true hard_stop: false coolant: flood_pin: gpio.10 mist_pin: gpio.15 user_outputs: digital0_pin: gpio.4 digital1_pin: gpio.5 ##M64 P0 / on -- M65 P0 / off // M64 P1 on -- M65 P1 off start: must_home: false axes: shared_stepper_disable_pin: NO_PIN x: steps_per_mm: 800.000 max_rate_mm_per_min: 5000.000 acceleration_mm_per_sec2: 100.000 max_travel_mm: 300.000 soft_limits: false homing: cycle: 2 positive_direction: false mpos_mm: 150.000 feed_mm_per_min: 100.000 seek_mm_per_min: 200.000 settle_ms: 500 seek_scaler: 1.100 feed_scaler: 1.100 motor0: limit_neg_pin: gpio.42:low limit_pos_pin: gpio.41:low limit_all_pin: NO_PIN hard_limits: false pulloff_mm: 1.000 standard_stepper: step_pin: I2SO.2 direction_pin: I2SO.1 disable_pin: I2SO.0 y: steps_per_mm: 800.000 max_rate_mm_per_min: 5000.000 acceleration_mm_per_sec2: 100.000 max_travel_mm: 300.000 soft_limits: false homing: cycle: 2 positive_direction: false mpos_mm: 150.000 feed_mm_per_min: 100.000 seek_mm_per_min: 200.000 settle_ms: 500 seek_scaler: 1.100 feed_scaler: 1.100 motor0: limit_neg_pin: gpio.40:low limit_pos_pin: gpio.39:low limit_all_pin: NO_PIN hard_limits: false pulloff_mm: 1.000 standard_stepper: step_pin: I2SO.5 direction_pin: I2SO.4 disable_pin: I2SO.7 z: steps_per_mm: 800.000 max_rate_mm_per_min: 5000.000 acceleration_mm_per_sec2: 100.000 max_travel_mm: 300.000 soft_limits: false homing: cycle: 2 positive_direction: false mpos_mm: 150.000 feed_mm_per_min: 100.000 seek_mm_per_min: 200.000 settle_ms: 500 seek_scaler: 1.100 feed_scaler: 1.100 motor0: limit_neg_pin: gpio.38:low:pu limit_pos_pin: NO_PIN limit_all_pin: NO_PIN hard_limits: false pulloff_mm: 1.000 standard_stepper: step_pin: I2SO.10 direction_pin: I2SO.9 disable_pin: I2SO.8 a: steps_per_mm: 800.000 max_rate_mm_per_min: 5000.000 acceleration_mm_per_sec2: 100.000 max_travel_mm: 300.000 soft_limits: false homing: cycle: 2 positive_direction: false mpos_mm: 150.000 feed_mm_per_min: 100.000 seek_mm_per_min: 200.000 settle_ms: 500 seek_scaler: 1.100 feed_scaler: 1.100 motor0: limit_neg_pin: gpio.37:low limit_pos_pin: NO_PIN limit_all_pin: NO_PIN hard_limits: false pulloff_mm: 1.000 standard_stepper: step_pin: I2SO.13 direction_pin: I2SO.12 disable_pin: I2SO.15 b: steps_per_mm: 800.000 max_rate_mm_per_min: 5000.000 acceleration_mm_per_sec2: 100.000 max_travel_mm: 300.000 soft_limits: false homing: cycle: 2 positive_direction: false mpos_mm: 150.000 feed_mm_per_min: 100.000 seek_mm_per_min: 200.000 settle_ms: 500 seek_scaler: 1.100 feed_scaler: 1.100 motor0: limit_neg_pin: gpio.36:low limit_pos_pin: NO_PIN limit_all_pin: NO_PIN hard_limits: false pulloff_mm: 1.000 standard_stepper: step_pin: I2SO.18 direction_pin: I2SO.17 disable_pin: I2SO.16 c: steps_per_mm: 800.000 max_rate_mm_per_min: 5000.000 acceleration_mm_per_sec2: 100.000 max_travel_mm: 300.000 soft_limits: false homing: cycle: 2 positive_direction: false mpos_mm: 150.000 feed_mm_per_min: 100.000 seek_mm_per_min: 200.000 settle_ms: 500 seek_scaler: 1.100 feed_scaler: 1.100 motor0: limit_neg_pin: gpio.48:low limit_pos_pin: NO_PIN limit_all_pin: NO_PIN hard_limits: false pulloff_mm: 1.000 standard_stepper: step_pin: I2SO.21 direction_pin: I2SO.20 disable_pin: I2SO.23 # Begin PWM pwm: pwm_hz: 5000 # direction_pin: NO_PIN output_pin: gpio.45 enable_pin: NO_PIN disable_with_s0: false s0_with_disable: true # spinup_ms: 0 # spindown_ms: 0 tool_num: 0 speed_map: 0=0.000% 10000=100.000% off_on_alarm: false # Begin Laser Laser: pwm_hz: 5000 output_pin: gpio.46 enable_pin: NO_PIN disable_with_s0: false s0_with_disable: true tool_num: 1 speed_map: 0=0.000% 255=100.000% off_on_alarm: true ## Start 0-10V 10V: forward_pin: gpio.7 reverse_pin: gpio.8 pwm_hz: 5000 output_pin: gpio.6 enable_pin: NO_PIN direction_pin: NO_PIN disable_with_s0: false s0_with_disable: true spinup_ms: 0 spindown_ms: 0 tool_num: 2 speed_map: 0=0.000% 1000=0.000% 24000=100.000% off_on_alarm: false ## Start only for test the RS485chip communication uart1: txd_pin: gpio.12 rxd_pin: gpio.11 rts_pin: NO_PIN baud: 9600 mode: 8N1 ModbusVFD: uart_num: 1 modbus_id: 1 debug: 0 poll_ms: 250 retries: 5 spinup_ms: 6000 spindown_ms: 6000 tool_num: 3 speed_map: 0=0.00% 24000=100.00% off_on_alarm: false atc: m6_macro: s0_with_disable: false disable_with_s0: false model: Huanyang min_RPM: 6000 max_RPM: 24000 cw_cmd: 03 01 01 > echo ccw_cmd: 03 01 11 > echo off_cmd: 03 01 08 > echo set_rpm_cmd: 05 02 rpm*100/60 > echo get_min_rpm_cmd: 01 03 0b 00 00 > 01 03 0B minRPM*60/100 get_max_rpm_cmd: 01 03 05 00 00 > 01 03 05 maxRPM*60/100 get_rpm_cmd: 04 03 01 00 00 > 04 03 01 rpm*60/100