Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[BUG] FT_MOTION produces strange sound #27344

Open
1 task done
vovodroid opened this issue Aug 10, 2024 · 30 comments
Open
1 task done

[BUG] FT_MOTION produces strange sound #27344

vovodroid opened this issue Aug 10, 2024 · 30 comments

Comments

@vovodroid
Copy link
Contributor

vovodroid commented Aug 10, 2024

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

Yes, and the problem still exists.

Bug Description

There is different, strange motion sound with FTM enabled (without IS). See also #26848 (comment)

Default:

default.mp4

FTM:

ftm.mp4

Spectrogram:
image

BTT 3.0, TMC 2209

I'll try to take oscillograms later.

Bug Timeline

No response

Expected behavior

No response

Actual behavior

No response

Steps to Reproduce

No response

Version of Marlin Firmware

bugfix-2.1.x 2024-08-07

Printer model

No response

Electronics

No response

LCD/Controller

No response

Other add-ons

No response

Bed Leveling

None

Your Slicer

None

Host Software

None

Don't forget to include

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

Additional information & file uploads

Marlin.zip

@thisiskeithb
Copy link
Member

I'll mark this as confirmed since I was the one who reported the issue in the referenced PR.

cc: @ulendoalex & @narno2202

@narno2202
Copy link
Contributor

On my side no strange sounds (MKS Monster8 V1.0, TMC2226) when FT_MOTION is enabled and the printer idle. When axes are moving as the timings are different from standard motion, the produced sound is also different : normal behavior.

@vovodroid
Copy link
Contributor Author

vovodroid commented Aug 10, 2024 via email

@thisiskeithb
Copy link
Member

When axes are moving as the timings are different from standard motion, the produced sound is also different : normal behavior.

I also run 2209s, 2226s, & 5160s on various machines and the high-pitched whine & crunchy sounds cannot possibly be considered normal. They sound terrible with FT_MOTION.

Motors sound completely fine with standard motion / Input Shaping.

@vovodroid
Copy link
Contributor Author

vovodroid commented Aug 10, 2024 via email

@narno2202
Copy link
Contributor

I'm currently transcoding the recordings

@narno2202
Copy link
Contributor

Here are the two files : 100mm X motion via Octoprint.
First without FTM, seconf with FTM.

17_28.mp4
17_29.mp4

@vovodroid
Copy link
Contributor Author

vovodroid commented Aug 11, 2024

@narno2202 as for me your FTM sounds is the same as without, I can't distinguish. But besides higher pitch my has strange 350 Hz pulses:

image

Is is supposed to be during movement without IS?

@vovodroid
Copy link
Contributor Author

@thisiskeithb could you upload your sound recordings?

@thisiskeithb
Copy link
Member

could you upload your sound recordings?

My phone doesn’t pick up the differences very well and I don’t have any other kind of recording equipment.

@narno2202
Copy link
Contributor

Since the beginning the pitch is slightly higher. @ulendoalex says that is the normal sound as timings are different (but they respect stepper specs).

@vovodroid
Copy link
Contributor Author

that is the normal sound as timings are different

And 300-350 Hz pulsation?

@vovodroid
Copy link
Contributor Author

Here is Z axis move:

No FTM:

znoftm.mp4

FTM:

zftm.mp4

Wave form:

image

I don't think such 3 Hz modulated pulsation (for slow Z axis) is good for printing quality. And frequency is about 200 Hz:

image

@narno2202
Copy link
Contributor

If you change FTM_FS value and FTM_TS accordingly, you'll notice a different sound : the sound is related to the frequency of trajectory generation and to FTM_STEPPER_FS value to.

@vovodroid
Copy link
Contributor Author

vovodroid commented Aug 11, 2024

I'm not familiar with meaning of these parameters, but they are 1000 and 20000 Hz, could it produce 3 Hz modulation?

Which values would you recommend?

@vovodroid
Copy link
Contributor Author

Could it be related to

    // Use this to adjust the time required to consume the command buffer.
    // Try increasing this value if stepper motion is choppy.
    #define FTM_STEPPERCMD_BUFF_SIZE 3000         // Size of the stepper command buffers

?

@narno2202
Copy link
Contributor

When you increase FTM_STEPPERCMD_BUFF_SIZE, motion is smoother. The values for FTM_STEPPER_FS and FTM_STEPPERCMD_BUFF_SIZE are based on experiments, limitation is the RAM size and the MCU.

@vovodroid
Copy link
Contributor Author

I doubled these parameters:

  #if DISABLED(COREXY)
    #define FTM_STEPPER_FS          40000         // (Hz) Frequency for stepper I/O update

    // Use this to adjust the time required to consume the command buffer.
    // Try increasing this value if stepper motion is choppy.
    #define FTM_STEPPERCMD_BUFF_SIZE 6000         // Size of the stepper command buffers

Still axis Z 3Hz pulsation I can't consider as normal

image

@narno2202
Copy link
Contributor

Try to change FTM_FS value and FTM_TS accordingly. On a 0.2mm layer high, what is the consequence?

@vovodroid
Copy link
Contributor Author

Try to change FTM_FS value

Increase or decrease?

On a 0.2mm layer high,

This 3Hz pulsation is not during printing, but just while moving Z axis up or down.

@narno2202
Copy link
Contributor

On a 0.2mm layer high, what is the consequence?

On print quality

Try to change FTM_FS value and FTM_TS accordingly

you can try both (increase or decrease)

Have you tried to disable Babystepping? Does the pulse change?

@vovodroid
Copy link
Contributor Author

Have you tried to disable Babystepping?

How does it affect motion? I even didn't home the printer, just moved Z after turning on.

@vovodroid
Copy link
Contributor Author

vovodroid commented Aug 14, 2024

I've tried

#define FTM_FS                     2500 // default 1000
#define FTM_TS                     (1.f/FTM_FS)

Sounds and looks better, but still not as default planner:

dc1b-798e-4e0e-aac9-48d73a37a249.mp4

image

It seems that pulsation frequency is proportional to FTM_FS. Is it "by design" or points to issue?

Homing still is a problem - sensitivity 110 causes false triggering or Marlin error, and 105 causes no triggering grinding to the frame.

@narno2202
Copy link
Contributor

As the pulse frequency is directly related to frequency of trajectory generation (as I said in previous post), it's by design.
Have you change the homing speed? (Klipper is a good basis but it's not Marlin)

@vovodroid
Copy link
Contributor Author

Have you change the homing speed?

Not yet. What will be safe speed?

@narno2202
Copy link
Contributor

Let Marlin default's homing speed : 50mm/s and don't set the homing current too low (no less than half axis current).

@vovodroid
Copy link
Contributor Author

Klipper is a good basis but it's not Marlin

But driver is the same driver.

Let Marlin default's homing speed : 50mm/s

This default speed is for switch homing without crashing into frame. 50 vs 20 means 6.25 time more kinetic energy, end more current means more force.

What is the reason for FTM to demand such harsh conditions for censorless homing?

@narno2202
Copy link
Contributor

narno2202 commented Aug 15, 2024

This is my setting since i've set sensorless homing for the first time (with standard motion system) and homing is smooth and not violent.
For testing purpose , I've changed some parameters. Decreasing home speed for X to 40mm/s with same current and sensitivity, produce slight grinding. For Y axis sensorless homing, I have some unreliability with FTM. Keeping the same speed and sensitivity and decreasing motor current, solve this intermittent issue, homing is also fine with standard motion.
Sensorless homing is a subtle mix between these 3 variables : speed, current and sensitivity.

@vovodroid
Copy link
Contributor Author

I think about making HOMING_FEEDRATE_MM_M configurable via menu. Will such PR be welcome?

@thinkyhead
Copy link
Member

I think about making HOMING_FEEDRATE_MM_M configurable via menu. Will such PR be welcome?

@vovodroid — It definitely would. Anything that makes a commonly-adjusted constant into something runtime-configurable is welcome (even if it is only added to MarlinUI at first). And in this case it also fills in a missing piece.

You'll first want to implement the G-code M210 and add a slot in the EEPROM for axis homing feedrates. If you want you can also add an F parameter to G28 to specify an immediate homing feedrate override for XY. The homing bump will still be based on a divider to the given feedrate, but M210 could be extended with extra parameters to set homing bump dividers and distances.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

4 participants