PiBot V5.77 Carrier — Pin Definition Overview
FluidNC / grblHAL · 6 Dedicated + 2 Configurable Axes · Plug-in ESP32-S3 Module · Up to 8 Axes
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.
Quick Reference — UART Channels
| Channel | Physical Port | Pins (Test YAML) | Typical Use |
| UART0 | Main USB 16 | — | Firmware flashing, gcode sender |
| UART1 | RS485 terminal 4 | TX: GPIO.12 · RX: GPIO.11 · DE/RE: GPIO.15 | Modbus VFD |
| UART2 | RJ12 port 6 | TX: GPIO.0 · RX: GPIO.35 | Pendant / IO Expander |
| UART3 | Second USB 17 | USB-Host (usb_host) | USB pendant / HID device |
Key to the Circled Numbers
💡 Tip: If you find the following section challenging, don't worry. You can complete the checklist steps first and then come back — it will make much more sense.
Inputs
Outputs
Power
Drivers
Interface
1 Input Terminals Inputs
- 10 input channels arranged along the top edge, each a 3-pin header: signal / GND / SW-VCC.
- Compatible input types: standard ON/OFF switches, 5V signal switches, or industrial 12V/24V PNP/NPN switches — match the switch supply with the SW-VCC jumper (see ⑤).
- NPN/PNP trigger mode: configure in YAML by adding or removing the
:low parameter.
- The GPIO.38/48 terminal is routed through a selection jumper first (see ②).
| Terminal | Test YAML Function | Terminal | Test YAML Function |
| GPIO.42 | X limit − | GPIO.36 | B limit − |
| GPIO.41 | X limit + | GPIO.10 | C limit − |
| GPIO.40 | Y limit − | GPIO.47 | Probe |
| GPIO.39 | Y limit + | GPIO.3 | Toolsetter |
| GPIO.38/48 | Z limit − (jumper-selected, see ②) | | |
2 GPIO.38 or GPIO.48 Selection Inputs
- Why this jumper exists: early ESP32-S3 modules use GPIO.48 for the on-board RGB LED (leaving IO38 free); the latest modules use GPIO.38 for the LED (leaving IO48 free).
- Function: selects which of the two pins reaches the input terminal, excluding the one occupied by the LED on your module.
- Options: GPIO.38 (jumper on left, default) OR GPIO.48 (jumper on right).
- Test YAML: uses IO38 as the Z limit − input. If your module's LED sits on GPIO.38, move the jumper to GPIO.48 and change the pin in your YAML accordingly.
3 PWM 5V Outputs
- Header: GPIO.4 / GPIO.5 / GPIO.45 / GPIO.46 / GND — 5V PWM or 5V switching signals for spindles, lasers, servos, etc. Connect any GND on the board to complete the circuit.
- Test YAML: GPIO.45 = spindle PWM (tool 0), GPIO.46 = laser (tool 1).
- MOSFET linkage: GPIO.4 and GPIO.5 also drive the onboard MOSFET channels (see ⑨) — in the test YAML they are the coolant outputs (
M7 / M8).
- Boot note: GPIO.45 and GPIO.46 are ESP32-S3 strapping pins. Make sure external circuitry does not hold them firmly high or low during power-up, or the module may fail to boot.
4 RS485 Outputs
- Pins (UART1): TX: GPIO.12, RX: GPIO.11, DI (DE/RE): GPIO.15; terminal: +3V3 / +5V / RS485_A / RS485_B / GND.
- Interface type: standard on-board RS485 transceiver (non-isolated) for Modbus RTU devices such as VFDs.
- A/B polarity: if A and B are reversed, simply swap them. Reversed connections will not cause device damage.
- Configuration reference: see the
ModbusVFD section of the test YAML (Huanyang VFD commands, 9600 baud).
5 SW-VCC Voltage Selection Inputs
- Function: selects the supply voltage on the SW-VCC pin of every input terminal (see ①).
- Options: 5V (jumper on left, default) OR Vmot-Main (jumper on right).
- Usage: keep 5V for standard switches and 5V sensors; select Vmot-Main for industrial 12V/24V switches. Your industrial switch voltage must match Vmot-Main.
- Voltage limit: never exceed 24V on Vmot-Main (see ⑩).
6 To Expander or Pendant (RJ12) Interface
- Function: this port provides UART signals for a pendant or an IO expander module.
- Pins: UART2 — TX: GPIO.0, RX: GPIO.35 (test YAML baud: 1,000,000).
- Compatibility: the RJ12 port and the OLED (⑪) use independent pins — they can be used at the same time.
- Boot note: GPIO.0 is the ESP32-S3 boot strap pin. If a connected device holds it low during power-up, the module enters download mode and will not start normally.
7 Variable Resistor for 10V Adjustment Outputs
- Function: adjusts the maximum voltage of the 0–10V output.
- Calibration scenario: when issuing maximum output commands (e.g.,
M3 S24000), if the output voltage does not reach 10V.
- Adjustment method: fine-tune this variable resistor until the output voltage reaches exactly 10V.
8 0–10V Output Group Outputs
- 0–10V: GPIO.6 provides the analog output for frequency converters — connect the 0–10V pin and GND to the VFD analog input.
- Optocoupler switches: GPIO.7 (Out1/Fwd) and GPIO.8 (Out2/Rev) with
out Common form switch pairs (both ends of optocouplers), usable as standard digital outputs to signal frequency converters.
- Start/stop function: for frequency converters requiring start/stop control, use these forward/reverse optocoupler outputs as the control signals.
9 MOSFET Outputs Outputs
- Two channels:
io.4-MOS-GND and io.5-MOS-GND (Vmot-Main).
- Output capability: can output the same voltage as Vmot-Main or switch it off; used to drive small inductive loads such as solenoid valves.
- Maximum current: 1.5 A per channel. The onboard channels are for light loads.
- Control principle: controlled via GPIO.4 or GPIO.5 by switching the GND connection to complete the circuit (low-side switching).
- Flyback protection: onboard flyback diodes are provided for inductive loads.
- Test YAML: GPIO.4 = mist (
M7), GPIO.5 = flood (M8) — M9 switches both off.
⚠ For heavier loads, use these outputs to drive an external relay, SSR or suitable power driver instead of connecting the load directly. Overloading can burn the MOSFET. Reverse connection of the load will damage the device — always verify with a multimeter before use.
10 VIN Main Power 12–24V Power
- Function: the main power input for the whole board — logic, RS485, the 0–10V amplifier, and the input circuits are all powered from here.
- Terminal:
+ / − / GND. Verify polarity with a multimeter before connecting.
- Recommended voltage:
24V input is recommended.
⚠ Never exceed 24V — the onboard amplifier and input circuits are designed for a maximum of 24V.
11 OLED Interface Interface
- Pins: GND / 3V3 / GPIO.13 (SCL) / GPIO.14 (SDA) — I2C address 0x3C, 128×64.
- Pinout caution: please note the positions of
VCC and GND, as some OLED modules have different pin arrangements.
- Compatibility: the OLED can be used at the same time as the pendant/expander port (⑥).
12 I2SO Logic Voltage Selection Drivers
- Function: selects the signal level of the I2SO outputs that carry EN / STP / DIR to your external drivers (see ⑬).
- Options: 5V (jumper on left, default) OR 3.3V (jumper on right).
- Usage: keep 5V for typical external stepper drivers with optocoupler inputs; select 3.3V only if your driver requires 3.3V logic.
13 EN / STP / DIR — Direct to External Drivers Drivers
- PH2.0 connectors along the bottom edge output
EN / STP / DIR (plus GND) for all six main axes directly to your external stepper drivers — the V5.77 has no on-board driver sockets.
- The signals are generated by an I2S shift-register chain (
I2SO); the signal level follows the I2SO jumper (⑫).
| 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 |
14 Extra I/O / Reserved I2SO Output Outputs
- Header pins: I2SO.3 / I2SO.6 / I2SO.11 / I2SO.14 / I2SO.19 / I2SO.22 / GND — six configurable Extra I/O shift-register signals.
- Two possible uses: use these six signals as ordinary outputs, or configure them as two additional Step / Dir / Enable motor groups, increasing the controller from six dedicated axes to a maximum of eight axes. The same signals cannot be motor-control signals and ordinary outputs at the same time.
- Configuration: the exact motor-group assignment must be defined in the machine-specific FluidNC configuration or compatible grblHAL board map/build.
- Test YAML: mapped to user digital outputs 0–5 —
M64 P0 on / M65 P0 off, up to M64 P5 / M65 P5.
- Signal level: follows the I2SO jumper (⑫).
15 TF Card Slot Interface
- Pins (test YAML): MISO: GPIO.2, MOSI: GPIO.1, SCK: GPIO.21, CS: GPIO.9.
- Compatibility warning: avoid using high-speed or high-capacity TF cards, as some may not be compatible with the ESP32 library.
16 Main USB Interface
- Function (UART0): used for firmware flashing, configuration, and gcode sender connection.
17 Secondary USB (USB-Host) Interface
- Function (UART3): native USB port that can be configured as USB-Host (
usb_host, baud 115200).
- First-time setup: set
$USBCDC/Enable=Off before using this port for the first time.
- Power note: the controller cannot be powered through this USB port.