FluidNC icon indicating copy to clipboard operation
FluidNC copied to clipboard

Problem: BUG Fix FluidNC/src/Kinematics/ParallelDelta.cpp Line 291 should read return false; instead of just false;.

Open TmanEdi opened this issue 2 months ago • 3 comments

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

Image

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

TmanEdi avatar Oct 12 '25 01:10 TmanEdi

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.

TmanEdi avatar Oct 14 '25 01:10 TmanEdi

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.

bdring avatar Oct 14 '25 01:10 bdring

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.

bdring avatar Oct 14 '25 16:10 bdring