Wiki Search Terms
Hi, I have build a HW-Board based on ESP32-wroom-32E, using SW FluidNC v3.9.8.
Pin-control for stepper motors enable and direction is based on a PCA9555, step controlled via direct i/o pis of the ESP.
For I2C setup and control I found some hints, but none of them is working, include them int my config.yaml and tested it with no success.
My question now is:
Is I2C supported in the actual release and if, is there any working sample I can use for implementation ?
Hint: the commented config items in the config.yaml file shows the various configurations I have tried.
Controller Board
6-pack
Machine Description
new designed hardware board
Input Circuits
Configuration file
board: None
name: Default (Test Drive no I/O)
meta:
stepping:
engine: RMT
idle_ms: 255
pulse_us: 4
dirdelayus: 0
disabledelayus: 0
segments: 12spi:
misopin: NOPIN
mosipin: NOPIN
sckpin: NOPIN
i2c0:
sda_pin: gpio.13
scl_pin: gpio.15
frequency: 250000
#pca9555:
address: 0x20:
pins:
0: input
1: input #inverted
2: input
3: input
4: input
8: otput
9: otput
10: otput
11: otput
12: otput
13: otput
14: otput
15: otput
#gpio_interrupt:
pin: 25 # FluidNC pin connected to PCA9555 INT pin
type: falling # Example interrupt type (falling edge)
handler: pca9555interrupthandler # Function to handle the interrupt
extenders:
pinextender0:
pca9555:
interrupt0: gpio.5
#extenders:
i2c0:
i2c_extender:
device: pca9555
device_id: 0
interrupt: gpio.35
pinextender0:
i2c_extender:
device: pca9555
device_id: 0
interrupt: gpio.16
sdcard:
cspin: NOPIN
carddetectpin: NO_PIN
frequency_hz: 8000000kinematics:
Cartesian:
axes:
sharedstepperdisablepin: NOPIN
sharedstepperresetpin: NOPIN
homing_runs: 2
x:
stepspermm: 80.000000
maxratemmpermin: 1000.000000
accelerationmmper_sec2: 25.000000
maxtravelmm: 1000.000000
soft_limits: false
motor0:
standard_stepper:
step_pin: gpio.16
direction_pin: i2c0.12
disable_pin: i2c0.8
y:
stepspermm: 80.000000
maxratemmpermin: 1000.000000
accelerationmmper_sec2: 25.000000
maxtravelmm: 1000.000000
soft_limits: false
motor0:
standard_stepper:
step_pin: gpio.22
direction_pin: I2C0.13
disable_pin: I2C0.9
z:
stepspermm: 80.000000
maxratemmpermin: 1000.000000
accelerationmmper_sec2: 25.000000
maxtravelmm: 1000.000000
soft_limits: false
motor0:
standard_stepper:
step_pin: gpio.17
direction_pin: I2C0.14
disable_pin: I2C0.10
control:
safetydoorpin: NO_PIN
resetpin: NOPIN
feedholdpin: NO_PIN
cyclestartpin: NO_PIN
macro0pin: NOPIN
macro1pin: NOPIN
macro2pin: NOPIN
macro3pin: NOPIN
faultpin: NOPIN
estoppin: NOPIN
coolant:
floodpin: NOPIN
mistpin: NOPIN
delay_ms: 0
probe:
pin: NO_PIN
toolsetterpin: NOPIN
checkmodestart: true
hard_stop: false
macros:
startup_line0:
startup_line1:
Macro0:
Macro1:
Macro2:
Macro3:
after_homing:
after_reset:
after_unlock:
start:
must_home: false
deactivate_parking: false
check_limits: true
parking:
enable: false
axis: Z
targetmposmm: -5.000000
ratemmper_min: 800.000000
pulloutdistancemm: 5.000000
pulloutratemmpermin: 250.000000
user_outputs:
analog0pin: NOPIN
analog1pin: NOPIN
analog2pin: NOPIN
analog3pin: NOPIN
analog0_hz: 5000
analog1_hz: 5000
analog2_hz: 5000
analog3_hz: 5000
digital0pin: NOPIN
digital1pin: NOPIN
digital2pin: NOPIN
digital3pin: NOPIN
digital4pin: NOPIN
digital5pin: NOPIN
digital6pin: NOPIN
digital7pin: NOPIN
user_inputs:
analog0pin: NOPIN
analog1pin: NOPIN
analog2pin: NOPIN
analog3pin: NOPIN
digital0pin: NOPIN
digital1pin: NOPIN
digital2pin: NOPIN
digital3pin: NOPIN
digital4pin: NOPIN
digital5pin: NOPIN
digital6pin: NOPIN
digital7pin: NOPIN
arctolerancemm: 0.002000
junctiondeviationmm: 0.010000
verbose_errors: true
report_inches: false
enableparkingoverride_control: false
uselinenumbers: false
planner_blocks: 16
Startup Messages
rst:0x1 (POWERONRESET),boot:0x13 (SPIFASTFLASHBOOT)
configsip: 0, SPIWP:0xee
clkdrv:0x00,qdrv:0x00,ddrv:0x00,cs0drv:0x00,hddrv:0x00,wpdrv:0x00
mode:DIO, clock div:1
load:0x3fff0030,len:1184
load:0x40078000,len:13260
load:0x40080400,len:3028
entry 0x400805e4
[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 spiffs]
[MSG:INFO: Configuration file:config.yaml]
[MSG:ERR: Ignored key extenders]
[MSG:ERR: Skipping key pinextender0 indent 2 this indent 0]
[MSG:ERR: Skipping key pca9555 indent 4 this indent 0]
[MSG:ERR: Skipping key interrupt0 indent 6 this indent 0]
[MSG:ERR: Validation error at /axes/x/motor0/standard_stepper: Step pin must be configured.]
[MSG:ERR: Validation error at /axes/y/motor0/standard_stepper: Step pin must be configured.]
[MSG:ERR: Validation error at /axes/z/motor0/standard_stepper: Step pin must be configured.]
[MSG:INFO: Machine Default (Test Drive no I/O)]
[MSG:INFO: Board None]
[MSG:INFO: I2C SDA: gpio.13, SCL: gpio.15, Freq: 250000, Bus #: 0]
[MSG:INFO: Stepping:RMT Pulse:4us Dsbl Delay:0us Dir Delay:0us Idle Delay:255ms]
[MSG:INFO: Axis count 3]
[MSG:INFO: Axis X (-1000.000,0.000)]
[MSG:INFO: Motor0]
[MSG:INFO: standardstepper Step:NOPIN Dir:NOPIN Disable:NOPIN]
[MSG:INFO: Axis Y (-1000.000,0.000)]
[MSG:INFO: Motor0]
[MSG:INFO: standardstepper Step:NOPIN Dir:NOPIN Disable:NOPIN]
[MSG:INFO: Axis Z (-1000.000,0.000)]
[MSG:INFO: Motor0]
[MSG:INFO: standardstepper Step:NOPIN Dir:NOPIN Disable:NOPIN]
[MSG:INFO: Kinematic system: Cartesian]
[MSG:INFO: Connecting to STA SSID:APK_5G]
[MSG:INFO: Connecting.]
[MSG:INFO: Connecting..]
[MSG:INFO: Connected - IP is 192.168.50.56]
[MSG:INFO: WiFi on]
[MSG:INFO: Start mDNS with hostname:http://fluidnc.local/]
[MSG:INFO: HTTP started on port 80]
[MSG:INFO: Telnet started on port 23]
Grbl 3.9 [FluidNC v3.9.7 (wifi) '$' for help]
[MSG:ERR: Configuration is invalid. Check boot messages for ERR's.]
User Interface Software
No response
What happened?
GCode File
No response
Other Information
No response
#1 – MitchBradley 于 2025-08-11
We do not support I2C for motor control pins. Step, direction, and enable must all be controlled either via direct GPIO pins or via I2S through shift registers. The only supported usage of I2C is for OLED displays, and we discourage even that because pendants through UART channels are much more flexible.