classicrocker883 / MRiscoCProUI

This is optimized firmware for Voxelab Aquila & Ender3 V2/S1 3D printers.
https://classicrocker883.github.io/
Other
74 stars 17 forks source link

When FT_Motion enabled Print doesn't start and Homing failure [BUG] #113

Closed Weresk closed 1 month ago

Weresk commented 5 months ago

Did you test the latest release build?

Yes, and the problem still exists.

Bug Description

When enable FT motion with command M493 S11 A37 B37 D0 P1 K0.18 homing failure (as if he doesn't see endstops)

Printer Model

Voxelab Aquila

Model Type

No response

Your Mainboard

Aquila GD32

Other Mainboard Type

No response

Add-ons that could be involved

No response

ProUI?

NoPro

Bed Leveling

MM - Manual Mesh Bed Leveling

Did you include your own configuration files?

Additional information & file uploads

Configuration_adv.zip

classicrocker883 commented 5 months ago

I'm not familiar with FT_MOTION at all. I do know it is Experimental.

I would try using this without PROUI_EX enabled and see if that changes anything.

Also, what about Linear Advance or Input Shaping? do these need to be enabled or disabled?

You can try testing the Marlin source code, and transfer over your configuration files (*Configuration.h, Configuration_adv.h**).

if you get the same issue using that, post a new Issue over there and copy the link to this one if you can. I'm betting this is more a Marlin issue rather than to do with ProUI

classicrocker883 commented 5 months ago

you can also check the Frequency for stepper motors, any of the variables you can change, such as FTMDEFAULT*_MODE ftMotionMode_t/dynFreqMode_t

Weresk commented 5 months ago

I'm not familiar with at all. I do know it is Experimental.FT_MOTION

I would try using this without enabled and see if that changes anything.PROUI_EX

Also, what about Linear Advance or Input Shaping? do these need to be enabled or disabled?

You can try testing the Marlin source code, and transfer over your configuration files (Configuration.h*, Configuration_adv.h).

  • where you find in the first config , just change that to or whatever so it's not pre-compiled.#if ENABLED(DWIN_LCD_PROUI)``#if 0
  • you may have to change to .#define HEATER_0_MAXTEMP 315``275

if you get the same issue using that, post a new Issue over there and copy the link to this one if you can. I'm betting this is more a Marlin issue rather than to do with ProUI

I get an error when compile Marlin\src\lcd\e3v2\proui\dwin.cpp: In function 'void setZOffset()': Marlin\src\lcd\e3v2\proui\dwin.cpp:2118:22: error: 'PROBE_OFFSET_ZMIN' was not declared in this scope setPFloatOnClick(PROBE_OFFSET_ZMIN, PROBE_OFFSET_ZMAX, 2, applyZOffset, liveZOffset); ^~~~~ Marlin\src\lcd\e3v2\proui\dwin.cpp:2118:41: error: 'PROBE_OFFSET_ZMAX' was not declared in this scope setPFloatOnClick(PROBE_OFFSET_ZMIN, PROBE_OFFSET_ZMAX, 2, applyZOffset, liveZOffset);

classicrocker883 commented 5 months ago

I get an error when compile Marlin\src\lcd\e3v2\proui\dwin.cpp: In function 'void setZOffset()': Marlin\src\lcd\e3v2\proui\dwin.cpp:2118:22: error: 'PROBE_OFFSET_ZMIN' was not declared in this scope setPFloatOnClick(PROBE_OFFSET_ZMIN, PROBE_OFFSET_ZMAX, 2, applyZOffset, liveZOffset);

using Marlin source code? this is because things are a bit different. I requested a change to be made regarding this error, hopefully the PR can go through. so this is what you'd have to do.

in Marlin\src\inc\Conditionals_LCD.h line ~1490

/**
 * Conditionals based on the type of Bed Probe
 */
...
  #undef PROBE_OFFSET_ZMIN
  #undef PROBE_OFFSET_ZMAX

PROBE_OFFSET_ZMAX/MIN is disabled when !HAS_BED_PROBE / when MESH_BED_LEVELING (-MM).

just comment out those two #undef from that line

edit:

I wanted to point out in your configuration files you should update them, compare yours to the current ones and youll see. another thing you have FT_MOTION_MENU enabled. unfortunately this doesnt work on ProUI, for this to work a menu function would need to be made, it shouldn't be too difficult to create, just need to know which parameters.

Weresk commented 5 months ago

comment out

The same error or I misunderstood what to change. Снимок экрана 2024-02-19 001935

classicrocker883 commented 5 months ago

no that is the right #undef to comment out. i dont get why its not defining either. you can just do this in Configuration.h line ~1670

-//#define PROBE_OFFSET_ZMIN -20   // (mm)
-//#define PROBE_OFFSET_ZMAX  20   // (mm)
+#define PROBE_OFFSET_ZMIN -20   // (mm)
+#define PROBE_OFFSET_ZMAX  20   // (mm)


because in src/inc/Conditionals_post.h it is:

#if ANY(MESH_BED_LEVELING, HAS_BED_PROBE)
  #ifndef PROBE_OFFSET_ZMIN
    #define PROBE_OFFSET_ZMIN -20
  #endif
  #ifndef PROBE_OFFSET_ZMAX
    #define PROBE_OFFSET_ZMAX  20
  #endif
#endif

meaning since you have MESH_BED_LEVELING and if its not defined already, it should define itself.

however, in my repo I have changed this to:

#if ANY(BABYSTEPPING, PROBE_SELECTED)
  #define HAS_ZOFFSET_ITEM 1
#endif

#if ANY(PROBE_SELECTED, HAS_ZOFFSET_ITEM)
  #ifndef PROBE_OFFSET_ZMIN
    #define PROBE_OFFSET_ZMIN -20
  #endif
  #ifndef PROBE_OFFSET_ZMAX
    #define PROBE_OFFSET_ZMAX  20
  #endif
#endif

you can copy this snippet over if you'd like and see if that works

Weresk commented 5 months ago

no that is the right #undef to comment out. i dont get why its not defining either. you can just do this in Configuration.h line ~1670

-//#define PROBE_OFFSET_ZMIN -20   // (mm)
-//#define PROBE_OFFSET_ZMAX  20   // (mm)
+#define PROBE_OFFSET_ZMIN -20   // (mm)
+#define PROBE_OFFSET_ZMAX  20   // (mm)

because in src/inc/Conditionals_post.h it is:

#if ANY(MESH_BED_LEVELING, HAS_BED_PROBE)
  #ifndef PROBE_OFFSET_ZMIN
    #define PROBE_OFFSET_ZMIN -20
  #endif
  #ifndef PROBE_OFFSET_ZMAX
    #define PROBE_OFFSET_ZMAX  20
  #endif
#endif

meaning since you have MESH_BED_LEVELING and if its not defined already, it should define itself.

however, in my repo I have changed this to:

#if ANY(BABYSTEPPING, PROBE_SELECTED)
  #define HAS_ZOFFSET_ITEM 1
#endif

#if ANY(PROBE_SELECTED, HAS_ZOFFSET_ITEM)
  #ifndef PROBE_OFFSET_ZMIN
    #define PROBE_OFFSET_ZMIN -20
  #endif
  #ifndef PROBE_OFFSET_ZMAX
    #define PROBE_OFFSET_ZMAX  20
  #endif
#endif

you can copy this snippet over if you'd like and see if that works

Updated to the latest Marlin firmware, Exactly the same behavior, after enabling M493 S11 A37 B37 D0 P1 K0.18 failure homing and rattling motor sound, as if it doesn't see endstops.

classicrocker883 commented 5 months ago

you can try commenting out OLD_ADAPTIVE_MULTISTEPPING from Configuration_adv.h

-#define OLD_ADAPTIVE_MULTISTEPPING 1
+//#define OLD_ADAPTIVE_MULTISTEPPING 1

or if its not there or enabled, try with it.

edit:
or even disable ADAPTIVE_STEP_SMOOTHING, I think there may be an option in the Control advanced settings in the menu. if not then in the same _adv.h file


[!IMPORTANT] I think this is the fix or you can go to src/module/stepper.cpp: under void Stepper::ftMotion_stepper() - line ~3540

  // Check endstops on every step
 -IF_DISABLED(ENDSTOP_INTERRUPTS_FEATURE, endstops.update());
 +TERN_(ENDSTOP_INTERRUPTS_FEATURE, endstops.update());

if that doesnt change anything then you should post the issue on their issues tab
someone might know more about this

Weresk commented 5 months ago
TERN_(ENDSTOP_INTERRUPTS_FEATURE, endstops.update());

Oh my God! Did everything written above except disabling ADAPTIVE_STEP_SMOOTHING. Checked homing, it works. Now need to find the calibration instructions, how to calibrate new LA and Shaping.

Weresk commented 5 months ago

I was happy early, the same problem, it dont start printing https://github.com/MarlinFirmware/Marlin/issues/26614?ysclid=lsw70odr9u441942616

classicrocker883 commented 5 months ago

I was happy early, the same problem, it dont start printing MarlinFirmware/Marlin#26614

did you try each thing seperately?

classicrocker883 commented 5 months ago

I notice what standard is zv was enabled, and maybe because of it, ft_motion did't work properly.

We don't prevent Input Shaping & Fixed-time-based Motion Control from being compiled together & made available at the same time, but maybe more testing needs to be done around these.

Originally posted in https://github.com/MarlinFirmware/Marlin/issues/26614#issuecomment-1874383844

it was recommended to uncomment/disable EDGE_STEPPING from Configuration_adv.h from this post here: https://github.com/MarlinFirmware/Marlin/issues/26683

im not sure what else the problem is, so it Homes okay now but it just wont start print?
I wonder, what if you removed G28 from the start gcode, and manually auto home before the print. or vice-versa. try not auto home before print.

Weresk commented 5 months ago

I notice what standard is zv was enabled, and maybe because of it, ft_motion did't work properly.

We don't prevent Input Shaping & Fixed-time-based Motion Control from being compiled together & made available at the same time, but maybe more testing needs to be done around these.

Originally posted in MarlinFirmware/Marlin#26614 (comment)

it was recommended to uncomment/disable EDGE_STEPPING from Configuration_adv.h from this post here: MarlinFirmware/Marlin#26683

im not sure what else the problem is, so it Homes okay now but it just wont start print? I wonder, what if you removed G28 from the start gcode, and manually auto home before the print. or vice-versa. try not auto home before print.

Experimentall way I understood if insert in starting Gcode M400 before M493 S11 D0 printing starts... Update And if #define FTM_DEFAULT_MODE enabled, no need to insert pause M400 in Gcode and ftmotion mode and values we can change without freezing and other problems.

Weresk commented 4 months ago

I'm tired of trying out the new firmware, I can't adjust the LA because values no usable, https://github.com/MarlinFirmware/Marlin/issues/26642 I printed test Ringing Tower STL and I can't see the differences( Maybe ft motion doesn't work... photo_2024-02-24_03-06-32 photo_2024-02-24_03-06-38

classicrocker883 commented 4 months ago

I do not even know how FT_Motion works. is it supposed to replace Linear Advance + Input Shaping?

it says this PR-FT_MOTION : M493, reporting now shows the same values as is in the menu changing

-if (dynamic) SERIAL_ECHO(" scaling: ", p_float_t(ftMotion.cfg.dynFreqK[X_AXIS], 8), F("Hz/"), z_based ? F("mm") : F("g"));
+if (dynamic) SERIAL_ECHO(F(" scaling: "), p_float_t(ftMotion.cfg.dynFreqK[X_AXIS], 2), F("Hz/"), z_based ? F("mm") : F("g"));

i do not understand this change precision from 8 to 2.
p_float_t(ftMotion.cfg.dynFreqK[X_AXIS], 8 -> 2

meaning 8 decimal places to 2. so should K value be like K0.000006 or K0.6? because normal linear advance K0.6 is fine, but FT_Motion is different?

Weresk commented 4 months ago

// Check endstops on every step -IF_DISABLED(ENDSTOP_INTERRUPTSFEATURE, endstops.update()); +TERN(ENDSTOP_INTERRUPTS_FEATURE, endstops.update());

What should I do? Leave this line (IF_DISABLED(ENDSTOP_INTERRUPTS_FEATURE, endstops.update());) ?

classicrocker883 commented 4 months ago

// Check endstops on every step -IF_DISABLED(ENDSTOP_INTERRUPTSFEATURE, endstops.update()); +TERN(ENDSTOP_INTERRUPTS_FEATURE, endstops.update());

What should I do? Leave this line (IF_DISABLED(ENDSTOP_INTERRUPTS_FEATURE, endstops.update());) ?

I think it should be TERN_ inplace of IF_DISABLED.

because it doesnt make. why would there be endstops.update() if ENDSTOP_INTERRUPTS_FEATURE is disabled.

KimmoHop commented 3 months ago

I'm tired of trying out the new firmware, I can't adjust the LA because values no usable, MarlinFirmware/Marlin#26642 I printed test Ringing Tower STL and I can't see the differences( Maybe ft motion doesn't work...

What was FTM mode in those tower tests? 11? Enabled (1) just means it uses FT motion for stepping, but no input shaping.

I tried printing with FTM once. Start G-code enabled shaping right after after homing, but printer skipped next line - going back to front-left corner - before printing purge line :/ It was some time ago, though it should had been fairly usable and working, but I have better things to do (Tinkercad, doomscrolling FB stories :) ) in my life ;)

unfortunately this doesnt work on ProUI, for this to work a menu function would need to be made, it shouldn't be too difficult to create, just need to know which parameters.

I wrote some bad menu code for setting FTM parameters. Selecting values from discontinuous (uncontinuous? incontinuous? noncontinuous) range (0, 1, 10, 11 etc for FTM mode - I wonder why on earth they did it that way) is not quite easy, even less if you want to show labels :D ProUI (and probably E3V2 in general?) has kind of weird menu/parameter system, where starting values, shown values and values to be saved all have separate handlers. Plus best parts of menu value handling is in closed source, though same things should be possible with public interface and some elbow grease.

Weresk commented 3 months ago

I'm tired of trying out the new firmware, I can't adjust the LA because values no usable, MarlinFirmware/Marlin#26642 I printed test Ringing Tower STL and I can't see the differences( Maybe ft motion doesn't work...

What was FTM mode in those tower tests? 11? Enabled (1) just means it uses FT motion for stepping, but no input shaping.

I tried printing with FTM once. Start G-code enabled shaping right after after homing, but printer skipped next line - going back to front-left corner - before printing purge line :/ It was some time ago, though it should had been fairly usable and working, but I have better things to do (Tinkercad, doomscrolling FB stories :) ) in my life ;)

unfortunately this doesnt work on ProUI, for this to work a menu function would need to be made, it shouldn't be too difficult to create, just need to know which parameters.

I wrote some bad menu code for setting FTM parameters. Selecting values from discontinuous (uncontinuous? incontinuous? noncontinuous) range (0, 1, 10, 11 etc for FTM mode - I wonder why on earth they did it that way) is not quite easy, even less if you want to show labels :D ProUI (and probably E3V2 in general?) has kind of weird menu/parameter system, where starting values, shown values and values to be saved all have separate handlers. Plus best parts of menu value handling is in closed source, though same things should be possible with public interface and some elbow grease.

S11 mzv shaping

github-actions[bot] commented 1 month ago

This issue has had no activity in the last 60 days. Please add a reply if you want to keep this issue active, otherwise it will be automatically closed within 10 days.

yrabbit commented 1 month ago

I felt that there was something very simple there - like forgetting to check endstops :smile:

https://github.com/MarlinFirmware/Marlin/pull/27179

classicrocker883 commented 1 month ago

I'll close the issue since that PR was merge which should fix the issue here.

I felt that there was something very simple there - like forgetting to check endstops 😄

MarlinFirmware/Marlin#27179

I will be merging this and other updates for the June release so look out for that soon