Wiki Search Terms
I’m working with an ESP32 Dev board and trying to configure a stepper motor in config.yaml for FluidNC. Due to the limited number of pins on the ESP32 Dev board, I want to use a GPIO pin for the step signal and an I2SO pin for the direction signal. However, I am unable to configure this as FluidNC doesn’t seem to allow both signals to be configured in this way.
I do not want to use the I2SO pins for the step signal, but instead for the direction pin. I would also be willing to assist with setting up the ESP32 S3 if needed, as I am working on a project that requires the increased number of pins on this microcontroller.
Is it possible to configure the stepper motor this way, and if so, how can I achieve this in the config.yaml file?
Thank you for your help!
Controller Board
4-pack
Machine Description
this a project for myself
Input Circuits
Configuration file
board: esp32dev
name: Default (Test Drive no I/O)
meta:
stepping:
engine: RMT
idle_ms: 255
pulse_us: 4
dirdelayus: 0
disabledelayus: 0
segments: 12
i2so:
bck_pin: gpio.27
data_pin: gpio.12
ws_pin: gpio.14
spi:
miso_pin: gpio.19
mosi_pin: gpio.23
sck_pin: gpio.18
sdcard:
cs_pin: gpio.5
carddetectpin: NO_PIN
frequency_hz: 8000000
kinematics:
Cartesian:
axes:
sharedstepperdisablepin: NOPIN
x:
stepspermm: 100.000
maxratemmpermin: 5000.000
accelerationmmper_sec2: 100.000
maxtravelmm: 300.000
soft_limits: false
homing:
cycle: 2
positive_direction: true
mpos_mm: 0.000
feedmmper_min: 100.000
seekmmper_min: 200.000
settle_ms: 500
seek_scaler: 1.100
feed_scaler: 1.100
motor0:
limitnegpin: gpio.36
limitpospin: gpio.39
limitallpin: NO_PIN
hard_limits: false
pulloff_mm: 1.000
standard_stepper:
step_pin: gpio.32
direction_pin: i2so.1
disablepin: NOPIN
y:
stepspermm: 100.000
maxratemmpermin: 5000.000
accelerationmmper_sec2: 100.000
maxtravelmm: 300.000
soft_limits: false
homing:
cycle: 2
positive_direction: true
mpos_mm: 0.000
feedmmper_min: 100.000
seekmmper_min: 200.000
settle_ms: 500
seek_scaler: 1.100
feed_scaler: 1.100
motor0:
limitnegpin: gpio.34
limitpospin: gpio.35
limitallpin: NO_PIN
hard_limits: false
pulloff_mm: 1.000
standard_stepper:
step_pin: gpio.33
direction_pin: i2so.2
disablepin: NOPIN
z:
stepspermm: 100.000
maxratemmpermin: 5000.000
accelerationmmper_sec2: 100.000
maxtravelmm: 300.000
soft_limits: false
homing:
cycle: 2
positive_direction: true
mpos_mm: 0.000
feedmmper_min: 100.000
seekmmper_min: 200.000
settle_ms: 500
seek_scaler: 1.100
feed_scaler: 1.100
motor0:
limitnegpin: NO_PIN
limitpospin: NO_PIN
limitallpin: NO_PIN
hard_limits: false
pulloff_mm: 1.000
standard_stepper:
step_pin: gpio.25
direction_pin: i2so.3
disablepin: NOPIN
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
[MSG:INFO: FluidNC v3.9.4 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:config.yaml]
[MSG:ERR: Validation error at /axes/x/motor0/standard_stepper: Step pin must be an I2SO pin]
[MSG:ERR: Validation error at /axes/y/motor0/standard_stepper: Step pin must be an I2SO pin]
[MSG:ERR: Validation error at /axes/z/motor0/standard_stepper: Step pin must be an I2SO pin]
[MSG:INFO: Machine Default (Test Drive no I/O)]
[MSG:INFO: Board esp32dev]
[MSG:INFO: I2SO BCK:gpio.27 WS:gpio.14 DATA:gpio.12Min 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 (-300.000,0.000)]
[MSG:INFO: Motor0]
[MSG:INFO: standardstepper Step:gpio.32 Dir:I2SO.1 Disable:NOPIN]
[MSG:INFO: X Neg Limit gpio.36]
[MSG:INFO: X Pos Limit gpio.39]
[MSG:INFO: Axis Y (-300.000,0.000)]
[MSG:INFO: Motor0]
[MSG:INFO: standardstepper Step:gpio.33 Dir:I2SO.2 Disable:NOPIN]
[MSG:INFO: Y Neg Limit gpio.34]
[MSG:INFO: Y Pos Limit gpio.35]
[MSG:INFO: Axis Z (-300.000,0.000)]
[MSG:INFO: Motor0]
[MSG:INFO: standardstepper Step:gpio.25 Dir:I2SO.3 Disable:NOPIN]
[MSG:INFO: Kinematic system: Cartesian]
[MSG:INFO: STA SSID is not set]
[MSG:INFO: AP SSID FluidNC IP 192.168.0.1 mask 255.255.255.0 channel 1]
[MSG:INFO: AP started]
[MSG:INFO: WiFi on]
[MSG:INFO: Captive Portal Started]
[MSG:INFO: HTTP started on port 80]
[MSG:INFO: Telnet started on port 23]
User Interface Software
No response
What happened?
Cannot configure stepper motor with GPIO for step and I2SO for direction in config.yaml (ESP32 Dev)
GCode File
No response
Other Information
No response
评论 (3)
#2 – MitchBradley 于 2025-02-02
Dev boards do not have the external shift registers that are necessary for I2SO stepping.
#3 – bdring 于 2025-02-03
We have some work going for an I/O extender. It works for inputs, digital I/O and PWM.
– Discord Discussion
– https://github.com/bdring/FluidNC/issues/1444
#1 – bdring 于 2025-02-02
You cannot use i2so pins with the RMT engine type. You should use all
gpioor alli2sopins for the motors.