Maximum Acceleration vs Acceleration Control
 
Notifications
Clear all

[Solved] Maximum Acceleration vs Acceleration Control  

  RSS
onesixpence
(@onesixpence)
New Member
Maximum Acceleration vs Acceleration Control

Dear Team,

say I set under Printer Settings -> Machine Limits -> Maximum acceleration (X, Z, Y) = 1000 mm/s²

and also set under Print Settings -> Speed -> Acceleration Control -> Perimeters = 1800 mm/s²

does this mean that with these settings I throttled the perimeters acceleration down to 1000 due to the machine limits?

In other words, the Machine Limits prevail over the acceleration control, or the acceleration control overwrite the Machine Limits?

Best regards,

Pen

 

Best Answer by bobstro:

I just did a quick test print to confirm, so I think I've got this right...

The settings you entered under Printer Settings->Machine limits are inserted at the top of the generated gcode. I have a line near the top that looks like this:

M204 P1250 R1250 T1250 ; sets acceleration (P, T) and retract acceleration (R), mm/sec^2

Futher down in the gcode, I see lines inserted that also use M204 to set acceleration based on my settings under Print Settings->Speed that looks like:

M204 S1000 ; adjust acceleration

Looking at the Marlin gcode reference, M204 with the S parameter is a legacy setting that sets both print and move acceleration. 

So what I think is happening is that the machine values are inserted first and provide defaults. Acceleration is changed using brute-force M204 commands by PrusaSlicer before each feature is printed. There's nothing in the printer firmware (based on my understanding) that differentiates between acceleration for different feature types such as perimeters versus infill.

I think the correct answer is "the latest specified value is used" which will be a specific print setting value unless you have those set to 0 (disabled). If you set all of the print settings acceleration values to 0 (disabled), those M204 lines are not inserted. What I'm not sure of is whether a single value set to 0 is specifically set to the machine value or the slicer just leaves the previous set value in play.

 

Posted : 28/11/2020 9:52 pm
Neophyl
(@neophyl)
Illustrious Member
RE: Maximum Acceleration vs Acceleration Control

I think the answer depends on your printers firmware. When you set a max, IF that value is included in the gcode (latest alpha/beta releases has the option not to send it, just use it for time estimates and some firmware flavours don’t send those limits anyway) then the machine will set those limits, overriding the ones configured in the machines eeprom.

If later in the gcode a speed is sent that exceeds those limits then the firmware *should* be bound by that limit, no matter how fast it’s telling it to go. 
IF the printers firmware is programmed correctly. 

Any speed limit values will last until set to something different or the machine is rebooted. On reboot the ones saved to eeprom should be loaded in. Of course if you save any speed settings to eeprom using the appropriate gcode command then the eeprom values will be updated so those new limits become the default inside your machine. 

The first thing many people do when getting a new machine is to connect a terminal type program like Pronterface to the printer and read back the default factory values and write them down somewhere so you can go back to them in the event of an accident over writing them or some other problem. 

Posted : 28/11/2020 11:09 pm
bobstro
(@bobstro)
Illustrious Member
RE: Maximum Acceleration vs Acceleration Control

I just did a quick test print to confirm, so I think I've got this right...

The settings you entered under Printer Settings->Machine limits are inserted at the top of the generated gcode. I have a line near the top that looks like this:

M204 P1250 R1250 T1250 ; sets acceleration (P, T) and retract acceleration (R), mm/sec^2

Futher down in the gcode, I see lines inserted that also use M204 to set acceleration based on my settings under Print Settings->Speed that looks like:

M204 S1000 ; adjust acceleration

Looking at the Marlin gcode reference, M204 with the S parameter is a legacy setting that sets both print and move acceleration. 

So what I think is happening is that the machine values are inserted first and provide defaults. Acceleration is changed using brute-force M204 commands by PrusaSlicer before each feature is printed. There's nothing in the printer firmware (based on my understanding) that differentiates between acceleration for different feature types such as perimeters versus infill.

I think the correct answer is "the latest specified value is used" which will be a specific print setting value unless you have those set to 0 (disabled). If you set all of the print settings acceleration values to 0 (disabled), those M204 lines are not inserted. What I'm not sure of is whether a single value set to 0 is specifically set to the machine value or the slicer just leaves the previous set value in play.

 

My notes and disclaimers on 3D printing

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

Posted : 29/11/2020 6:30 am
onesixpence
(@onesixpence)
New Member
Topic starter answered:
RE: Maximum Acceleration vs Acceleration Control

Thank you for looking into this. I followed up also with some testing:

If you e.g. set Printer Settings->Machine limits @1250 mm/s² and the Print Settings->Speed @1800 mm/s² then the second M204 line in the gcode will be generated as:

M204 S1250 ; adjust acceleration

@bobstro, this means that the configured maximum under "Machine limit" will throttle the M204 command generated by the "Print Settings". So, yes "the latest specified value is used", but that value is capped by the maximum value set under Machine limits.

Pen

Posted : 29/11/2020 10:33 am
bobstro
(@bobstro)
Illustrious Member
RE: Maximum Acceleration vs Acceleration Control
Posted by: @onesixpence

[...] this means that the configured maximum under "Machine limit" will throttle the M204 command generated by the "Print Settings". So, yes "the latest specified value is used", but that value is capped by the maximum value set under Machine limits.

Ah, that makes sense then. So it's all slicer controlled. I thought I'd tried higher values for print settings, but it was late. That means print settings can be used independently of printers. Good to know!

So best practice is probably setting the machine maximums to firmware values or lower, then use print settings to tune. This is likely to benefit 3rd party printer owners more than anybody, as many cheap printers ship with highly optimistic firmware settings.

I'm glad you asked about this as I'd wondered if there was any benefit to having separate printer profiles for QUALITY and SPEED modes. Based on this, I think separate print settings profiles is sufficient.

 

My notes and disclaimers on 3D printing

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

Posted : 29/11/2020 2:34 pm
Neophyl
(@neophyl)
Illustrious Member
RE: Maximum Acceleration vs Acceleration Control

Theres 2 distinct things here.  There's Slicer sending and thereby over riding the machine maximum defaults that are stored in the eeprom. And then it using values in the code that may or may not exceed those.

From your testing it sounds like slicer is using any internally set on the machine limits page and properly using those to limit settings elsewhere in the other profiles.  I think thats good and proper operation.

The other is the firmware type (flavour) selected in Slicer and also the actual firmware of the printer you are sending to.

With 2.2.0 and Marlin selected, Slicer will send and therefore set the machine maximums in a block at the top of the gcode.  So operation is as you have both described.  Other flavours like Reprap it doesnt add those in so the machine maximums wont be set on the printer side.

With the 2.3.0 alpha/beta flavours like reprap still dont include the machine maximums but newly whenyou have Marlin selected theres a new dropdown selection on the top of the machine limits page.  With that you get to choose if they are included or if they should only be used for the time estimates.

Technically with a non Marlin firmware selected you could set high values for all the movements etc which would be higher than the target machines limits (as those limits arent in Slicer).  In that scenario if the firmware has been implemented properly then it should internally limit any received values.  Unfortunately not all firmwares are properly done.

Posted : 29/11/2020 4:51 pm
onesixpence
(@onesixpence)
New Member
Topic starter answered:
RE: Maximum Acceleration vs Acceleration Control

Thank you for adding the firmware factor and providing more clarity.

My tests were with Marlin (1.1.9) and slicer 2.3.0aplha.

Posted : 29/11/2020 5:55 pm
Share: