Firmware Speed Limit
Just need a clarification, prusa slicer has default machine speed limits higher then the ones capped in the firmware for example acceleration. In the variant 1_75mm_MK3S-EINSy10a-E3Dv6full.h it is defined below
1- First clarification is if that is the printer defaults within the firmware then whatever is set in the slicer cannot be more then that for it to be effective.
2- The generated Gcode on an example file shows clearly that slicer is outputting what is been set in the slicer as below:
Prusa i3 MK2s MK2.5s Mk3 Mk3s BearPrusa Zaribo 320 - Kit Build - Rc Driver - Tweak freak...
âI know nothing about surpassing others. I only know how to outdo myself.â -Bushido-
RE: Firmware Speed Limit
Your slicer output values look nothing like mine. Here's what I'm getting for a Mk3 using the current Prusa-supplied profile with PrusaSlicer:
M201 X1000 Y1000 Z200 E5000 ; sets maximum accelerations, mm/sec^2
M203 X200 Y200 Z12 E120 ; sets maximum feedrates, mm/sec
M204 P1250 R1250 T1250 ; sets acceleration (P, T) and retract acceleration (R), mm/sec^2
M205 X8.00 Y8.00 Z0.40 E4.50 ; sets the jerk limits, mm/sec
M205 S0 T0 ; sets the minimum extruding and travel feed rate, mm/sec
These values all correspond to what I'm seeing under Printer Settings->Machine limits in PrusaSlicer. Are you using a Prusa printer profile? Where the profile originate?
Using incorrect values in the machine settings tab will definitely throw off print time estimates.
and miscellaneous other tech projects
He is intelligent, but not experienced. His pattern indicates two dimensional thinking. -- Spock in Star Trek: The Wrath of Khan
RE: Firmware Speed Limit
@bobstro
Hi Bob, first of all thank you for the great information put on your website 🙂 Very useful.
In regards to the profile am using my custom profile also testing bondtech, what am after is setting speed prints, from what am seeing in the prusa firmware these values have been capped by prusa, so effectively you cannot exceed those limits defined correct ?
Those values output as per the gcode taken from bondtech profile, just something I spotted.
Prusa i3 MK2s MK2.5s Mk3 Mk3s BearPrusa Zaribo 320 - Kit Build - Rc Driver - Tweak freak...
âI know nothing about surpassing others. I only know how to outdo myself.â -Bushido-
RE: Firmware Speed Limit
As I understand it, the values specified in the firmware setup are defaults that can be over-ridden with the corresponding M20x commands. If you change them, you change the printer's settings until next reset. That doesn't mean you can attain fantastic results using unrealistic settings, but I do exceed those values slightly without any issues. In the same vein, turning the front knob as you print is the same as issuing M220 commands that over-ride the on-board firmware settings, or adjusting filament flow in the Tune menu which is effectively issuing M221 commands.
and miscellaneous other tech projects
He is intelligent, but not experienced. His pattern indicates two dimensional thinking. -- Spock in Star Trek: The Wrath of Khan
RE: Firmware Speed Limit
Okay so, there is actually no need to reflash the firmware, just issue the M20x commands relative to what I need to change and it will be saved to the eeprom, or I can set this as suggested earlier set in the firmware.
Prusa i3 MK2s MK2.5s Mk3 Mk3s BearPrusa Zaribo 320 - Kit Build - Rc Driver - Tweak freak...
âI know nothing about surpassing others. I only know how to outdo myself.â -Bushido-
RE: Firmware Speed Limit
Not 100% sure of how this would work on the Prusas, but you can typically issue overrides, then issue an M500 to save everything to EEPROM. Or just load the appropriate values in startup gcode, which is what PrusaSlicer seems to do. In general, I'd start out with conservative settings, then find some quick benchmark prints and experiment with higher speeds. Keep in mind, if you want to print more quickly -- and not just "faster" -- increasing nozzle size will make more of a difference in many cases that linear speeds.
Glad the notes pages are useful. Let me know if you spot any issues.
and miscellaneous other tech projects
He is intelligent, but not experienced. His pattern indicates two dimensional thinking. -- Spock in Star Trek: The Wrath of Khan
RE: Firmware Speed Limit
Looking at Marlin 2.0, I see the LIMITED_MAX_FR_EDITING feature that limits overrides that can be done with M203 or LCD. This can be used to set max limits. I believe without this feature, you can use whatever values you like with the M20x settings. I'm looking through the Prusa source code and don't see this exact feature (but will keep looking).
and miscellaneous other tech projects
He is intelligent, but not experienced. His pattern indicates two dimensional thinking. -- Spock in Star Trek: The Wrath of Khan
RE: Firmware Speed Limit
According to Prusa configuration.h EEPROM_SETTINGS is NOT defined, so you'd have to reconfigure the settings in gcode with each print to ensure your desired values are used. You can't override the burned in defaults with M500, at least from what I can make of it.
and miscellaneous other tech projects
He is intelligent, but not experienced. His pattern indicates two dimensional thinking. -- Spock in Star Trek: The Wrath of Khan
RE: Firmware Speed Limit
@bobstro
On the following page http://projects.ttlexceeded.com/3dprinting_s3d_gcode.html?highlight=jerk#
Line 65 of your S3d script calls for M83 just a note that default prusa is relative maybe point this out in your foot note so new users dont just copy and paste this by mistake and the extruder does not extrude.
Prusa i3 MK2s MK2.5s Mk3 Mk3s BearPrusa Zaribo 320 - Kit Build - Rc Driver - Tweak freak...
âI know nothing about surpassing others. I only know how to outdo myself.â -Bushido-
RE: Firmware Speed Limit
@bobstro
Correct I did not find this in the configuration.h as I recall it would be found there, but there is reference in the file 1_75mm_MK3S-EINSy10a-E3Dv6full.h folder /variants line 97 onwards as per my earlier post.
Prusa i3 MK2s MK2.5s Mk3 Mk3s BearPrusa Zaribo 320 - Kit Build - Rc Driver - Tweak freak...
âI know nothing about surpassing others. I only know how to outdo myself.â -Bushido-
RE: Firmware Speed Limit
Also in regards to your scripts is it not better to have the scripts wait for the bed temp to reach the target bed temp before proceeding with the Mesh Bed leveling ?
Prusa i3 MK2s MK2.5s Mk3 Mk3s BearPrusa Zaribo 320 - Kit Build - Rc Driver - Tweak freak...
âI know nothing about surpassing others. I only know how to outdo myself.â -Bushido-
Simplify 3D start gcode (relative or absolute extrusion mode)
@bobstro
On the following page http://projects.ttlexceeded.com/3dprinting_s3d_gcode.html?highlight=jerk#
Line 65 of your S3d script calls for M83 just a note that default prusa is relative maybe point this out in your foot note so new users dont just copy and paste this by mistake and the extruder does not extrude.
I've tested that gcode on recent Prusa firmware. I recall that there was a recent change to the default extrusion mode. I ran into a similar issue with Cura start gcode. I'll try to test again to confirm and add some cautionary notes.
and miscellaneous other tech projects
He is intelligent, but not experienced. His pattern indicates two dimensional thinking. -- Spock in Star Trek: The Wrath of Khan
Overriding firmware settings
[...] Correct I did not find this in the configuration.h as I recall it would be found there, but there is reference in the file 1_75mm_MK3S-EINSy10a-E3Dv6full.h folder /variants line 97 onwards as per my earlier post.
Those settings are specified in the header files, but I believe they are defaults that can be overridden with M20x commands but can not be saved with M500. Unless LIMITED_MAX_FR_EDITING (or the pre-Marlin 2.0 equivalent) are enabled, you can set whatever values you want although physics come into play. I have not done any validation on this though. There were people posting high speed testing early on (2018 IIRC) results here that certainly seemed to be pushing the physical boundaries of the Mk3.
and miscellaneous other tech projects
He is intelligent, but not experienced. His pattern indicates two dimensional thinking. -- Spock in Star Trek: The Wrath of Khan
Startup gcode & PINDA warmup
Also in regards to your scripts is it not better to have the scripts wait for the bed temp to reach the target bed temp before proceeding with the Mesh Bed leveling ?
I have implemented a PINDA warmup to 35C. The bed temp is not particularly important (IME) other than as the heater for the PINDA. I set the bed temp to a higher (80C) temp for PINDA warmup to avoid the problem of the PINDA never hitting 35C on cold days. The bed will always warm to 80C for this step. This has the side benefit of warmup up the printer -- particularly the bed -- as a whole prior to printing. I kick off the bed leveling once the PINDA has hit 35C and, in my limited testing, the mesh bed level completes before it drifts independent of bed or nozzle temps.
I set the bed to the final print temp (e.g. 65C for PLA) right as mesh bed leveling starts, so it cools (a bit) during that process. I know some folks very carefully regulate the bed temp throughout this process, but I personally have not had any problems. Similarly, I'm happy to start MBL if the PINDA is 35C or higher, and don't wait for it to drop below 35C and come back up to 35C.
My startup gcode reflects my tolerance for startup delays versus MBL consistency. I hope that clarifies things. Let me know if your testing yields any different results.
and miscellaneous other tech projects
He is intelligent, but not experienced. His pattern indicates two dimensional thinking. -- Spock in Star Trek: The Wrath of Khan
RE: Firmware Speed Limit
Also in regards to your scripts is it not better to have the scripts wait for the bed temp to reach the target bed temp before proceeding with the Mesh Bed leveling ?
I have implemented a PINDA warmup to 35C. The bed temp is not particularly important (IME) other than as the heater for the PINDA. I set the bed temp to a higher (80C) temp for PINDA warmup to avoid the problem of the PINDA never hitting 35C on cold days. The bed will always warm to 80C for this step. This has the side benefit of warmup up the printer -- particularly the bed -- as a whole prior to printing. I kick off the bed leveling once the PINDA has hit 35C and, in my limited testing, the mesh bed level completes before it drifts independent of bed or nozzle temps.
I set the bed to the final print temp (e.g. 65C for PLA) right as mesh bed leveling starts, so it cools (a bit) during that process. I know some folks very carefully regulate the bed temp throughout this process, but I personally have not had any problems. Similarly, I'm happy to start MBL if the PINDA is 35C or higher, and don't wait for it to drop below 35C and come back up to 35C.
My startup gcode reflects my tolerance for startup delays versus MBL consistency. I hope that clarifies things. Let me know if your testing yields any different results.
No different, so far so good, but I need to monitor a little more, am just thinking bed expansion during the heart process and if Pinda takes the readings before set bed temp then maybe there will be some variances in readings (IMHO), as can be seen taking readings via pronterface G80 / G81. Will test and see the results for some time.
Thanks for the input Bob...
Prusa i3 MK2s MK2.5s Mk3 Mk3s BearPrusa Zaribo 320 - Kit Build - Rc Driver - Tweak freak...
âI know nothing about surpassing others. I only know how to outdo myself.â -Bushido-
RE: Firmware Speed Limit
No different, so far so good, but I need to monitor a little more, am just thinking bed expansion during the heart process and if Pinda takes the readings before set bed temp then maybe there will be some variances in readings (IMHO), as can be seen taking readings via pronterface G80 / G81. Will test and see the results for some time.
The PINDA warmup owner's wiki page describes a process that includes a PINDA cool-off (below 30C IIRC) followed by PINDA warm-up. Check out the bit about turning on the cooling fan, etc. For my purposes, the bed will be close to 80C throughout probing. I'm not sure how much difference those results will be compared to a 60-65C bed at print time. My understanding (borne out by my casual testing) is that the main concern is the high variability in the PINDA readings at different temps, so I focused there. It can always be better, but my existing approach can already take 5+ minutes on a cold morning, so I'm hesitant to slow it down any more!
and miscellaneous other tech projects
He is intelligent, but not experienced. His pattern indicates two dimensional thinking. -- Spock in Star Trek: The Wrath of Khan
RE: Firmware Speed Limit
I just noted something in the startup code under prusa slicer you entered the extrude override:
M221 S{if layer_height >= 0.32}90{else}100{endif} ; compensate for thick layer heights
Not really sure how this affects the extrusion multiplier, since I set the extrusion multiplier after re-calibrating
with the new layer width, say I was on 0.45 and now running 0.48 I would redo the extrusion multiplier and set it for
that layer width. If using the M221 would that have an effect on the set extrusion multiplier. ?
Prusa i3 MK2s MK2.5s Mk3 Mk3s BearPrusa Zaribo 320 - Kit Build - Rc Driver - Tweak freak...
âI know nothing about surpassing others. I only know how to outdo myself.â -Bushido-
RE: Firmware Speed Limit
I use Bobs startup (well a close variant of it as I heat my bed to 70 rather than 80) and never have first layer issues. I don't think the bed expansion differs that much between 60 and 70. I also find like Bob says that its more evenly warmed through in the time it takes to get the Pinda up to 35 anyway.
As for the M221 flow rate, ALL the default prusa printer profiles have the rate set to .95 in the start up gcode if the layer height is above a certain value. Apparently they found that value worked as a workaround for some issue they were having with the original slic3r. I'm sure Bob will correct me if I'm wrong 🙂 but I recall mention that he would rather calibrate the filament profile properly for the actual filament width and so makes sure this is set to 100 and not use the workaround. I think its in there as a 'just in case' as the M221 value is not reset between prints unless you turn the printer off. By explicitly adding it to the start code you know that the flow rate is always 100%. I pretty much do the same.
RE: Firmware Speed Limit
I just noted something in the startup code under prusa slicer you entered the extrude override:
M221 S{if layer_height >= 0.32}90{else}100{endif} ; compensate for thick layer heights
A bit of explanation: If you use a default Prusa profile, you'll find this line:
M221 S{if layer_height<0.075}100{else}95{endif}
Basically, that line will use 100% extrusion for layers below 0.075mm and 95% for all other prints. As @neophyl notes, there is a long, misty history associated with this and Prusa has adjusted the line over time. There's a post somewhere here on the forums from Jo Prusa himself in which he explains that the original Slic3r code base tended to over-extrude above a certain layer height, so this was a brute-force fix. I'm surprised Team Prusa hasn't worked on the underlying issue in the code, or haven't removed this line if they have.
I very rarely print below 0.08mm, and found it frustrating to be carefully calibrating settings for fine prints only to find the slicer was overriding them, so I completely removed that line in my early versions. I do switch between slicers (though not much these days as PrusaSlicer has improved), so this was very annoying.
I also print with a wide range of nozzles, often swapping between 0.25 and 0.8mm nozzles in a single day. I find that over-extrusion is a mostly problem with larger nozzles (presumably due to lower back-pressure in the nozzle leading to increased flow). Thus I've gone with my brute-force line:
M221 S{if layer_height >= 0.32}90{else}100{endif} ; compensate for thick layer heights
This just changes it to "if printing big chonky parts where quality isn't crucial, reduce extrusion" and lets me use this printer profile with all my nozzle sizes with good results. I really need to move that line down to "final print adjustments" since it's definitely a user preference. Thanks for the feedback.
Not really sure how this affects the extrusion multiplier, since I set the extrusion multiplier after re-calibrating
with the new layer width, say I was on 0.45 and now running 0.48 I would redo the extrusion multiplier and set it for
that layer width. If using the M221 would that have an effect on the set extrusion multiplier. ?
To answer your question: Unless you're using layer heights of 0.32mm or higher, that line won't have any effect. If you are using thicker layer heights, it will drop extrusion overall by 10% (well, multiply by 0.9), so this will be a reduction in addition to any slicer settings. Think of M221 as a final multiplier applied in addition to all your slicer settings.
I want to stress: My examples are just what I'm using. I'm not pushing these are "magic profiles" or anything of the sort. They work well for me and serve as examples for others. Feel free to comment things out and experiment. Again, thanks for the feedback. I'll expand on the explanations.
and miscellaneous other tech projects
He is intelligent, but not experienced. His pattern indicates two dimensional thinking. -- Spock in Star Trek: The Wrath of Khan
RE: Firmware Speed Limit
I use Bobs startup (well a close variant of it as I heat my bed to 70 rather than 80)
The 80C bed warmup temp is definitely a non-subtle approach. I bumped up the temp after a surprising and unnecessary cold spell we experienced last winter. Unfortunately, there's not timeout on the "wait for temp" gcode commands.
[...] Apparently they found that value worked as a workaround for some issue they were having with the original slic3r. I'm sure Bob will correct me if I'm wrong 🙂 but I recall mention that he would rather calibrate the filament profile properly for the actual filament width and so makes sure this is set to 100 and not use the workaround.
You've got it. It's a historical artifact from way back in the PrusaSlicer/Slic3r timeline.
I think its in there as a 'just in case' as the M221 value is not reset between prints unless you turn the printer off. By explicitly adding it to the start code you know that the flow rate is always 100%. I pretty much do the same.
Oh man, that is a very important point! I was not aware of this starting out and wasted a lot of time because of it. M220, M221 and the corresponding front-panel adjustments will persist between prints. I've added specific resets for all these values to my startup and shutdown gcode.
and miscellaneous other tech projects
He is intelligent, but not experienced. His pattern indicates two dimensional thinking. -- Spock in Star Trek: The Wrath of Khan