-
Notifications
You must be signed in to change notification settings - Fork 1.9k
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
Wrong printing time estimation. #11672
Comments
Question for you, you mention your printer isn't running Marlin, so even though the M2xx codes are set to be in the output gcode file does your printer actually support them and use them ? |
It does run Marlin 2.1.x, probably my definition wasn't clear, I'll fix it. And it supports M73 command. |
I did a bit of research earlier and found that the biqu printers are based on Marlin, unfortunately they don’t appear to be open source so it’s impossible to tell if they use the m2xx commands. It all depends on if they are implemented in their build. In the past when I had a creality printer which had a similar problem, the only thing was to read back the actual limits from the printer and enter them into PRUSA slicer to ‘accurize’ the time estimates. |
I don't use Biqu firmware, but built original Marlin. |
Anyway real printing time has nothing to do with M73. |
@vovodroid can you post a 3mf? Thanks. |
@lukasmatena actually it happens with any print, but here are two latest examples. Very big print. Estimated time about 14h, real time about 10h: Small print. Estimated time 1:24h, real time 1:05: |
Is your Marlin FW configured to use classic jerk or junction deviation? Our time estimator supports only classic jerks and you have set jerks to quite unusual value (0). If I set jerks to some usual values, the estimate is around 10h. Also I am not sure Marlin works properly with zero jerks (early Marlin versions certainly did not). |
Junction deviation I guess:
Indeed, great! So I can set it to larger value to match real time, printer will ignore M205 with jerk values. Anyway it would be nice to support junction deviation as well. |
Yes, it should give you quite accurate estimates.
There is already FR for it #2115. So I guess we can close this issue? |
Yes, I'm closing it. |
It's still not correct with classic Jerk. I built Marlin with Nevertheless in another project real time is about 3:30 vs 3:10 estimated. Could it be related to With jerk decreased to 4 estimated time is close to real. Also "Emit to G code" and "Use for estimate" produce slightly different results. |
It can be affected for example by linear advance. FW slows down the print automatically (decreases acceleration) to not exceed extruder jerk. This is not emulated by slicer. You can test this either by disabling linear advance (M900 K0 in filament custom g-code) or by increasing extruder jerk a little bit (you would have to emit it to the g-code or change it directly in the fw). |
S_CURVE_ACCELERATION should not be enabled together with enabled linear advance (I believe this combination is not yet supported by Marlin properly) |
It was experimental, but now it's standard in bugfix-2.1.x branch. |
Doesn't LA deal with filament and pressure properties? |
It requires quite violent extruder movements. Since linear advance 1.5 (current), the Marlin firmware logic automatically limits XY print acceleration during the print to never exceed maximum extruder jerk (to prevent skipped steps like it could happen with linear advance 1.0). This can be quite big issue especially on bowden printers, where big K values are usually used (It would need very high extruder jerk values to not slow down the print). |
From LA1.5 changelog: Special notes for v1.5
|
I have direct extruder and LA 0.07-0.08. Which E-jerk value would you suggest? And what do you think about S-curve effect? |
It really depends on what your extruder can really handle without skipped steps and without excessive noise. It will be probably something like 7-10 to prevent any slowdown. S-Curve may also play some role, even though I think it will be smaller than LA. We tried s-curve+LA combination back at the time and LA did not work properly. I know it is now possible to build Marlin with such combination but as far as I know it is still not without issues. |
It can, I set it to 10 just now, will check effect.
At least it is not consider experimental for year MarlinFirmware/Marlin#25238 |
Well, I changed E jerk from 5 to 10, it didn't affect printing time with LA 0.07 To summarize the case: Estimation with jerk 8 was 3:10, actual printing 3:30 (with two objects it was 40 minutes excess). To get correct estimation I needed to set jerk to 4. With real jerk 10 slicer jerk 5 gives correct estimation. Object in question is small (about 65*20mm) and tall (480 layers), non soild with complex geometry, so it demands many small movements. Increasing E jerk from 5 to 10 didn't affect real print time. Open question: while "Emit to G code" and "Use for estimate" produce slightly different results (emit estimates 15 minutes less for 10 hours print)? |
Another finding - when "Use firmware retraction" is enabled, time calculation doesn't take it into account, as if retraction were zero. |
PrusaSlicer does not have any info about FW retractions, therefore it cannot estimate time for it. FW retractions are also very rarely used afaik. Anyway, in general PrusaSlicer takes the generated g-code and then emulates the firmware (except things like linear advance, junction deviation etc.). As far as "emit to g-code" vs "use for estimate" difference, hard to say from top of my head, @enricoturri1966 may have better info regarding this (I don't see any time difference when I tried it). |
Could it use the same approach as for "use for estimate"? |
As far as I know, the only difference between "emit to g-code" and "use for estimate" options is that, when using the first one, lines as the following are added at the beginning of the exported gcode:
From what I see, the estimated time does not depend on the selected option. |
For simple projects it's negligible, but for big complicated models you see this: Not a big deal, but nevertheless it's strange. |
I payed attention, that not especially zero, but just small values (like 1-3) cause to underestimation printing time. |
Description of the bug
I payed attention that PS printing time estimation is about 30-50% larger than real printing takes. I have all limits emitted to G-code
Printer is Biqu B1 SE with flashed latest Marlin (bugfix-2.1.x). I would understand if real time were more than estimated due to printer limits, but not opposite.
Project file & How to reproduce
Slice, print, measure time.
Checklist of files included above
Version of PrusaSlicer
Version 2.7.0-beta1
Operating system
Win10x64
Printer model
Biqu B1 SE
The text was updated successfully, but these errors were encountered: