Skip to content

[BUG] FT_MOTION build fails with multiple extruders #28151

@oliof

Description

@oliof

Did you test the latest bugfix-2.1.x code?

Yes, and the problem still exists.

Bug Description

When EXTRUDERS is set >1, building with FT_MOTION errors out.

Bug Timeline

new bug as of PR 28115

Expected behavior

It would be great if FT_MOTION could be compiled for machines with multiple extruders.

Actual behavior

Compilation fails

Steps to Reproduce

  1. set #define EXTRUDERS 2 and #define DISTINCT_E_FACTORS in Configuration.h and the appropriate values for E1
  2. enable FT_MOTION
  3. compile with platformio
Marlin/src/module/ft_motion/stepping.cpp: In member function 'void Stepping::reset()':
Marlin/src/module/ft_motion/stepping.cpp:32:54: error: call of overloaded 'set(<brace-enclosed initializer list>)' is ambiguous
   32 |   delta_error_q32.set(LOGICAL_AXIS_ARRAY_1(_BV32(31))); // start as 0.5 in q32 so steps are rounded
      |                                                      ^
In file included from Marlin/src/module/ft_motion/../../inc/MarlinConfigPre-6-type.h:30,
                 from Marlin/src/module/ft_motion/../../inc/Conditionals-6-type.h:33,
                 from Marlin/src/module/ft_motion/../../inc/MarlinConfig.h:41,
                 from Marlin/src/module/ft_motion/stepping.h:24,
                 from Marlin/src/module/ft_motion/stepping.cpp:27:
Marlin/src/module/ft_motion/../../inc/../core/types.h:865:13: note: candidate: 'void XYZEval<T>::set(const T (&)[4]) [with T = long unsigned int]'
  865 |     FI void set(const T (&arr)[LOGICAL_AXES])                { LOGICAL_AXIS_CODE(e = arr[LOGICAL_AXES-1], x = arr[0], y = arr[1], z = arr[2], i = arr[3], j = arr[4], k = arr[5], u = arr[6], v = arr[7], w = arr[8]); }
      |             ^~~
Marlin/src/module/ft_motion/../../inc/../core/types.h:870:15: note: candidate: 'void XYZEval<T>::set(const T (&)[5]) [with T = long unsigned int]'
  870 |       FI void set(const T (&arr)[DISTINCT_AXES])             { LOGICAL_AXIS_CODE(e = arr[LOGICAL_AXES-1], x = arr[0], y = arr[1], z = arr[2], i = arr[3], j = arr[4], k = arr[5], u = arr[6], v = arr[7], w = arr[8]); }
      |               ^~~
*** [.pio/build/STM32F407VG_btt_USB/src/src/module/ft_motion/stepping.cpp.o] Error 1

Version of Marlin Firmware

bugfix-2.1.x

Printer model

RatRig V-Minion with dual input hotend

Electronics

SKR V3 rev B

LCD/Controller

FYSETC 1284 Mini 2.1

Other add-ons

none

Bed Leveling

ABL Bilinear mesh

Your Slicer

Cura

Host Software

OctoPrint

Don't forget to include

  • A ZIP file containing your Configuration.h and Configuration_adv.h.

Additional information & file uploads

Configs.zip

These are the Configuration files disabling the second Extruder. Re-enabling it and its settings (including DISTINCT_E_FACTORS) will break the build again. The settings for dual extruders are left in as comments.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions