Problem: BUG Fix FluidNC/src/Kinematics/ParallelDelta.cpp Line 291 should read return false; instead of just false;.
Wiki Search Terms
Delta, Config, Homing
Controller Board
Any, FluidNC 6x CNC Controller, I'm using a MKS DLC32 for this project.
Machine Description
Parallel Delta
Input Circuits
Configuration file
board: MKS-DLC32
name: My Delta yaml
meta: 9-27-2025 Edi Murway
stepping:
engine: I2S_STATIC
#Static only, Stream Produces a second "ghost line" when doing engraving/Filling
idle_ms: 255
pulse_us: 6
dir_delay_us: 10
disable_delay_us: 0
kinematics:
parallel_delta:
crank_mm: 250.000
base_triangle_mm: 70.8
linkage_mm: 340.36
end_effector_triangle_mm: 44.45
kinematic_segment_len_mm: 0.500
homing_mpos_radians: 0.0
soft_limits: false
max_z_mm: -300
use_servos: false
start:
must_home: true
deactivate_parking: true
check_limits: true
axes:
shared_stepper_disable_pin: I2SO.0
homing_runs: 1
x:
steps_per_mm: 100
max_rate_mm_per_min: 1000
acceleration_mm_per_sec2: 250
max_travel_mm: 40
soft_limits: false
homing:
cycle: 1
positive_direction: true
mpos_mm: 0
feed_mm_per_min: 100
seek_mm_per_min: 500
settle_ms: 500
seek_scaler: 1.100
feed_scaler: 1.100
motor0:
limit_pos_pin: gpio.36:low
hard_limits: false
pulloff_mm: 2.000
stepstick:
step_pin: I2SO.1
direction_pin: I2SO.2:high
y:
steps_per_mm: 100
max_rate_mm_per_min: 1000
acceleration_mm_per_sec2: 250
max_travel_mm: 40
soft_limits: false
homing:
cycle: 1
positive_direction: true
mpos_mm: 0
feed_mm_per_min: 100
seek_mm_per_min: 500
settle_ms: 500
seek_scaler: 1.100
feed_scaler: 1.100
motor0:
limit_pos_pin: gpio.35:low
hard_limits: false
pulloff_mm: 2.000
stepstick:
step_pin: I2SO.5
direction_pin: I2SO.6:high
z:
steps_per_mm: 100
max_rate_mm_per_min: 1000
acceleration_mm_per_sec2: 250
max_travel_mm: 40
soft_limits: false
homing:
cycle: 1
positive_direction: true
mpos_mm: 0
feed_mm_per_min: 100
seek_mm_per_min: 500
settle_ms: 500
seek_scaler: 1.100
feed_scaler: 1.100
motor0:
limit_pos_pin: gpio.34:low
hard_limits: false
pulloff_mm: 2.000
stepstick:
step_pin: I2SO.3
direction_pin: I2SO.4:high
i2so:
bck_pin: gpio.16
data_pin: gpio.21
ws_pin: gpio.17
spi:
miso_pin: gpio.12
mosi_pin: gpio.13
sck_pin: gpio.14
sdcard:
cs_pin: gpio.15
card_detect_pin: gpio.39
control:
safety_door_pin: NO_PIN
reset_pin: NO_PIN
feed_hold_pin: NO_PIN
cycle_start_pin: NO_PIN
macro0_pin: NO_PIN
macro1_pin: NO_PIN
macro2_pin: NO_PIN
macro3_pin: NO_PIN
coolant:
flood_pin: NO_PIN
mist_pin: NO_PIN
delay_ms: 0
probe:
pin: NO_PIN
check_mode_start: true
user_outputs:
analog0_pin: NO_PIN
analog1_pin: NO_PIN
analog2_pin: NO_PIN
analog3_pin: NO_PIN
analog0_hz: 5000
analog1_hz: 5000
analog2_hz: 5000
analog3_hz: 5000
digital0_pin: NO_PIN
digital1_pin: NO_PIN
digital2_pin: NO_PIN
digital3_pin: NO_PIN
Startup Messages
$SS
[MSG:INFO: FluidNC v3.9.9 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:INFO: Machine My Delta yaml]
[MSG:INFO: Board MKS-DLC32]
[MSG:INFO: I2SO BCK:gpio.16 WS:gpio.17 DATA:gpio.21Min Pulse:2us]
[MSG:INFO: SPI SCK:gpio.14 MOSI:gpio.13 MISO:gpio.12]
[MSG:INFO: SD Card cs_pin:gpio.15 detect:gpio.39 freq:8000000]
[MSG:INFO: Stepping:I2S_STATIC Pulse:6us Dsbl Delay:0us Dir Delay:10us Idle Delay:255ms]
[MSG:INFO: Axis count 3]
[MSG:INFO: Shared stepper disable I2SO.0]
[MSG:INFO: Axis X (-40.000,0.000)]
[MSG:INFO: Motor0]
[MSG:INFO: stepstick Step:I2SO.1 Dir:I2SO.2 Disable:NO_PIN]
[MSG:INFO: Pos Limit gpio.36:low]
[MSG:INFO: Axis Y (-40.000,0.000)]
[MSG:INFO: Motor0]
[MSG:INFO: stepstick Step:I2SO.5 Dir:I2SO.6 Disable:NO_PIN]
[MSG:INFO: Pos Limit gpio.35:low]
[MSG:INFO: Axis Z (-40.000,0.000)]
[MSG:INFO: Motor0]
[MSG:INFO: stepstick Step:I2SO.3 Dir:I2SO.4 Disable:NO_PIN]
[MSG:INFO: Pos Limit gpio.34:low]
[MSG:INFO: Kinematic system:parallel_delta soft_limits:0]
[MSG:INFO: Z Offset:-222.449]
[MSG:INFO: Connecting to STA SSID:Edis WAP]
[MSG:INFO: Connecting.]
[MSG:INFO: Connecting..]
[MSG:INFO: Connected - IP is 192.168.1.147]
[MSG:INFO: WiFi on]
[MSG:INFO: Start mDNS with hostname:http://Edis-DeltaBot.local/]
[MSG:INFO: HTTP started on port 80]
[MSG:INFO: Telnet started on port 23]
ok
User Interface Software
UI 2
What happened?
No mater what I do When sending $H The stepper motors won't move. Devin has reviewed my config file and it passes muster, also When I use the same config file configured for Cartesian kinematics it homes and moves just fine. Please make this patch ASAP as I don't have the skills to compile the package. As I don't monitor git hub please notify me by email at: [email protected] or 775-849-2632
Devin Says: Your configuration reveals the critical bug I mentioned earlier. The issue is in FluidNC v3.9.9's ParallelDelta::kinematics_homing() function. ParallelDelta.cpp:288-291
The Bug: Line 291 is missing the return keyword. It should be return false; but instead just says false;. This means the function always returns true (the implicit return value from line 305), telling FluidNC that the kinematics system is handling homing itself (like it does for servos).
GCode File
No response
Other Information
No response
I'm sorry it seems that the AI did not identify the real issue. After you fixed the apparent bug, I have successfully completed a compile and flashing of the board and still have the same issue and now I don't even get an OK when Sending $H or G0 Z20 and nothing moves. I have lost a man week on this issue alone. I would really like some help with this.
The parallel delta is just an experimental demo of kinematic. The wiki page should have set your expectations.
I do not think I have a delta, I can probably simulate this with some loose motors tomorrow. It is going to take some time though, so please be patient.
It is not working for me either. The stepper motor version was never fully completed and documented. The wiki clearly states that.
The servo version does not need to homed because the servos have an absolute encoder. They just go to the commanded position.
At one time I did have access to a servo based parallel delta. Without access to one it is unrealistic to work on this. Even with one, it would probably take a dozen+ hours to get it working.
Sorry about the confusion. This is just an open source project done by volunteers. We do get some donation, but my last new donor was over a month ago for $5/month.