Stabilization - cmuche/octoprint-timelapseplus GitHub Wiki
Without Stabilization a snapshot will immediately captured when a snapshot command is triggered, regardless of the current print head (and heat bed) position. This can result in a 'shaky' timelapse with the print head jumping around in each frame.
When the Stabilization feature is enabled, Timelapse+ will park the print head in a controlled and predefined position before capturing the snapshot. This ensures that, in the final timelapse, only your model moves or grows over time. Additionally, this feature enables certain effects, such as smooth print head animations, which will be explained here. Once the snapshot has been captured, the print will resume. However, please note that this may slightly extend the total print time and could potentially introduce some print artifacts in certain cases. Nevertheless, it will result in much nicer timelapses overall.
To get an idea what a stabilized timelapse looks like, you can have a look at the examples page here.
Concept
In genreral, the process for a stabilized snapshot is this:
- Calculate the parking position for the current snapshot
- Retract (and lift print head)
- Move to the calculated parking position
- Wait a defined amount of time
- Take the snapshot
- Wait a defined amount of time
- Move back to the printing position
- Unretract (and lower print head)
- Continue print
Stabilization Settings
Printer
Here you need to set up your printer's behavior.
G90/G91 Extruder Overwrite
Activate this option if the extruder mode is also determined by G90
/G91
commands. The GCODE Commands G90
and G91
specify whether movement commands should be interpreted as relative or absolute values. In certain firmwares (e.g. Marlin-based firmwares), this setting also applies to the behavior of the extruder, which can only be exclusively set through M82
/M83
commands. This setting is necessary for the stabilization feature to work properly.
Limits
Configure the min/max values for each of your axes here. These values will be used before every stabilization attempt. If the desired parking position is out of the printer's limits, the snapshot will fail and Timelapse+ will perform an unstable fallback snapshot.
Parking Position
In this section you configure the position in which the print head should be parked for the snapshot capturing. Every axis can be controlled individually (with some limitations for the Z-axis).
Fixed
If the value for an axis is fixed, it means that the print head will be consistently parked in that position for every snapshot. The axis remains stationary throughout the final timelapse.
Note: If you set the Z-value to an absolute (non-relative) value, you must ensure that this value is greater than the size of your final model. Otherwise, there is a risk of the print head crashing into your print. Exercise caution and verify the value to avoid any potential damage.
Relative
If you select relative positioning, the value for the axis is calculated relative to the current position when a stabilized snapshot is initiated. This is particularly useful for the Z-axis to ensure that the print head is always positioned above your model, regardless of the current height.
Animation
The Animation type creates an animation of the axis throughout the duration of all the snapshots. When the print starts, Timelapse+ determines the number of snapshots it will capture during the entire print time and dynamically calculates the corresponding position for each snapshot. You need to set a start and end value that define the starting and ending points for the animation. For cyclic animations, you can also specify the number of cycles, which determines how many times the animation should be repeated. A preview graph of your selected animation will also be displayed.
Movement
In this section you define the parameters for moving to the parking position.
Move Speed
This is the speed at which Timelapse+ tries to move to the parking position.
Waiting
Timelapse+ has the capability to introduce small delays before and after capturing the actual snapshot while the print head is parked. This feature helps eliminate minor issues or imperfections that may arise due to limitations of your printer or camera. Adjust these values accordingly if you encounter blurry snapshots (where the head moves back before the snapshot is fully captured) or if the print head hasn't reached its parking position yet (resulting in snapshots taken too early). Additionally, you can try enabling Timelapse+ to wait for the printer's movement by adding an M400 command, ensuring that the printer doesn't execute further GCODE commands until it has finished its movement. But keep in mind that longer wait times may lead to more filament oozing out your nozzle.
Retraction
A retraction (as well as unretraction) will be performed when parking the print head. You can adjust the settings for this operation here. As a starting point, it is a good idea to replicate the retraction settings you have configured in your slicer for your printer.
Infill Look-Ahead
To minimize the impact of the stabilization process on print quality, Timelapse+ attempts to perform stabilized snapshot capturing during the printing of infill rather than perimeters. Your GCODE file will be scanned when a print is started and Timelapse+ tries to identify the locations of infill blocks. Your slicer must include the infill block information in the generated GCODE file. If a snapshot is triggered and requires stabilization, Timelapse+ then attempts to delay the capturing process until your printer reaches the next infill printing stage. If there are no further infill sections before the subsequent snapshot, Timelapse+ will proceed with immediate snapshot capturing.
E.g. Cura and Prusa Slicer will include those information by default. You can check if your slicer does that by looking into your generated GCODE file. It should contain lines like this:
...
;TYPE:Internal infill
...
;TYPE:FILL
...
as well as blocks for other features like
...
;TYPE:SUPPORT
...
Oozing Compensation
While the print head is parked, it is almost inevitable for your nozzle to experience some filament oozing during the movement process. To mitigate this, Timelapse+ has the ability to calculate the expected duration of the parking and capturing process, as well as the amount of filament likely to ooze out during that time. When retracting before parking, this extra filament will be retracted as well. However, exercise caution with this feature: setting the value too high can result in under-extrusion upon resuming after a snapshot. It may require some experimentation to find the optimal value for your printer.