MarlinFirmware / Marlin

Marlin is an optimized firmware for RepRap 3D printers based on the Arduino platform. Many commercial 3D printers come with Marlin installed. Check with your vendor if you need source code for your specific machine.
https://marlinfw.org
GNU General Public License v3.0
16.04k stars 19.15k forks source link

[FR] (Practical algorithm provided) Vibration compensation #16531

Closed nalimcos closed 1 year ago

nalimcos commented 4 years ago

Hello!

'Ringing' (wavy surface pattern) is a common problem when attempting higher printing speeds; vibration compensation has been brought up here before, but this approach seems new, and I believe it would require little enough processing power to comfortably run even on 8-bit controllers.

Quick description

<some math here, check the article for details>

By cutting each corner with an additional segment, along which the speed vector is the average of the speed vector for the previous and next segments, and starting T/4 before reaching the initial corner, and ending T/4 after when it would have been reached (i.e. T/2 after the start of the corrective segment), we can replace the usual oscillation by two waves which cancel each other, resulting in strongly reduced artefacts. output This image was output by a simple simulator I wrote to test my idea.

Full explanation with lots of math in attached PDF: vibcomp.pdf . Old work in progress so a bit messy though.

A simple acceleration-induced-vibration correction method as a by-product While extending this approach to compensate for linear-acceleration-induced vibrations is not as easy, acceleration can be replaced by segments of movement at varying velocities, such that each segment has the duration of half a vibration period of the uncorrected system. Incidentally, this requires much less processing power than even true linear acceleration.

I will add more information and further ideas later on, time for bed here!

Milan

EDIT:

jrabkid commented 1 year ago

Hey folks, I don't suppose there has been any update on this project by any chance? Seems this one is the only project that seems to be focusing on this topic.

AapoTahkola commented 1 year ago

https://github.com/MarlinFirmware/Marlin/commit/232a104a927988c63f8c0c53a8c2e26005166e2d fixed lin advance + s curve combo :) @tombrazier I salute you!

thisiskeithb commented 1 year ago

See https://github.com/MarlinFirmware/Marlin/pull/24797

github-actions[bot] commented 1 year ago

This issue has been automatically locked since there has not been any recent activity after it was closed. Please open a new issue for related bugs.