Skip to content

v0.4.0

Compare
Choose a tag to compare
@FormerLurker FormerLurker released this 08 Jun 00:10
· 57 commits to master since this release

At long last, V0.4.0 is ready for release! This is a major update, and a lot of things have changed, so be sure to read the Getting Started Guide before using this version.

Important Note for Users Upgrading from V0.3.4 or Before: Due to some major settings changes, your Stabilization, Trigger (formerly snapshot), Rendering, and Logging (formerly debug) profiles will be removed and replaced with the default settings. A copy of your previous settings will be saved into the plugin's data folder if you ever decide to downgrade.

Summary

This release covers 650 commits since V0.3.4 was released, so I will try to touch on all of the main enhancements and bug fixes applied since the last update. These are in no particular order. See the readme.md file for a list of highlights.

Enhancements Since V0.3.4

  • Added support for OctoPrint 1.4.0.
  • Added support for Python 3
  • Added Automatic Slicer Settings Extraction
    • It is no longer necessary to manually enter your slicer settings before using Octolapse! When using supported slicers, Octolapse will automatically extract all of the required settings directly from your Gcode file.
      This should improve quality by eliminating data entry errors!
    • Currently supported when using Slic3r, Slic3rPE, PrusaSlicer, Simplify3D, and Cura. Note: Cura doesn't include the settings by default and therefore requires a minor amount of extra work to get this feature working (totally worth the minimal effort IMHO).
    • If you are not using one of the supported slicers, this version still makes setup easier by reducing the number of slicer settings necessary to use Octolapse. This was accomplished by removing Feature Detection, which was causing a lot of problems for people anyway and could never be made to work 100%..
  • Added new Smart Triggers
    • A new type of trigger that examines your entire Gcode file before any commands are sent to the printer, allowing Octolapse to more intelligently trigger snapshots.
    • Preview your timelapse before your print starts. You can even animate the preview to get a good sense of what your timelapse will look like when it is completed! Octolapse will also warn you about possible missing frames or potential print quality issues, and it will give you information to help you solve common problems. If you don't like what you see, you can cancel and change your settings without running to your printer. There is even an Auto-Close setting that will automatically accept the snapshot preview in case you are printing remotely or using a third party application.
    • Reduce print time by choosing to trigger when the extruder is closer to the desired snapshot location.
    • Increase quality both by reducing the travel distance and by picking better places to start any travel movements. Since Octolapse now supports Automatic Comment Based Feature Detection, which allows Octolapse to choose better places to take snapshots with no configuration changes.
    • For even faster prints with even higher quality in most cases, use the Snap To Print option. This will prevent your extruder from leaving the print which totally eliminates all travel distance added by Octolapse! It even works well with vase mode. Optionally, you can disable stabilization entirely when using Snap To Print for an interesting wandering extruder effect. Image capture must be fast (preferably under 100MS) for this mode to work properly, so it is not recommended for DSLR cameras or with long camera delays.
    • See an estimate of travel distance saved by using the Smart Layer Trigger versus the Classic Layer Trigger.
    • When using the Smart Layer Trigger, you will be able to see, via the new Snapshot Plan Information info panel on the Octolapse tab, when, where, and, how your next snapshot will be taken.
    • Because the Gcode is pre-processed when using any of the 'Smart Layer Trigger' presets, significantly less CPU time will be used during the print, reducing stuttering to a degree in some cases.
    • If you like triggering Octolapse with GCode, I've also added a Smart Gcode Trigger that gives you a full preview before starting your print.
  • Improved Octolapse UX:
    • Removed or altered any icons that appeared to be buttons but were not.
    • Improved the Timelapse Preview display, controls, and indicators.
    • Added Shortcut Links to all Octolapse settings and profile pages within the Octolapse tab.
    • Includes Snapshot Error Count if any snapshots are missed.
    • Added tooltips to profile drop down boxes on the Octolapse tab showing the description.
    • Removed many error popups completely, including the dreaded position error popup.
    • Separated Test Mode from the Logging Profile (formerly the debug profile) to reduce confusion.
    • Added a Timelapse File Browser that allows you to download, delete, and sort all of your timelapse files. This browser can be configured to display any folder you want (defaults to the Octoprint timelapse folder) and includes paging and page size controls.
  • Improved Rendering Reliability and Usability:
    • Added an Unfinished Rendering dialog that allows you to re-render, delete, or download any snapshot files that have failed or were not completed. This is similar to OctoPrint's timelapse recovery feature. Note that an attempt has been made in this release to add any unfinished renderings generated by previous versions of Octolapse.
    • Added a Rendering Progress screen that shows all pending renderings, including a real-time progress bar. It's nice to know that something is happening!
    • Added the ability to Archive (zip) Snapshot Images after rendering. An archive is created by default when rendering is disabled. You can also browse, download, delete, or render any saved archive.
    • Import Zipped Snapshots into Octolapse via the Saved Snapshot Archive (.zip) import tool. Once imported, you can render the images into a timelapse. If your rendering settings are included, Octolapse will use those unless you override them in the unfinished rendering dialog.
    • Made rendering more fault-tolerant and overlays more accurate in cases where snapshots are missed.
    • Octolapse now supports H.264 and H.256 rendering, though most Raspberry Pis don't have enough memory to actually use these features for high resolution images.
    • Chose which folder your timelapses and snapshots will saved to.
    • New Text Outlining and Rendering Overlay Tokens are available, including: {layer}, {height}, {x}, {y}, {z}, {e}, {f}, {x_snapshot}, and {y_snapshot}
  • Enhanced Custom Image Preferences
    • The Raspberry Pi Camera (V2 tested) is now fully supported! Some configuration is required.
    • The custom image preferences are now created dynamically, which will enable new controls that are available on some cameras but not others. It also will remove controls that are not supported by your camera.
    • Some camera models have an optimized custom control page, which is available for some Logitech and Raspberry Pi cameras. If you are using a supported camera , the controls will be customized, making adjustments easier.
    • See your changes happen almost instantly via an integrated camera stream preview.
    • Restore the camera default settings if you get into trouble.
    • Cancel your changes and revert to the previous settings.
    • Stabilize your extruder right from the camera controls, which makes adjusting the focus much easier.
    • A camera image preferences shortcut has been added to the Octolapse tab, which gives you a simplified screen dedicated to adjusting your camera settings.
  • Profile Import, Export, Download, and Auto-Update
    • Export all of your settings or individual profiles for backup purposes or to share settings with a friend.
    • Import settings from a single profile or all of your settings all at once either from a file or by pasting settings text.
    • Download settings from a new Octolapse-Profiles repository when creating or editing an existing profile and optionally customize these profiles. All profile types are supported.
    • Configure your printer by choosing the Make and Model (available for some printers, and the list is growing)!
    • Profiles imported from the Octolapse-Profiles repository can be automatically upgraded (with confirmation) when newer profiles are available.
  • Added support for new @OCTOLAPSE Gcode commands, including:
    • @OCTOLAPSE STOP-SNAPSHOTS - used to prevent Octolapse from taking any snapshots. Very useful in the start/end Gcode to prevent Octolapse from taking snapshots while priming/purging/homing.
    • @OCTOLAPSE START-SNAPSHOTS - enable snapshots. Can be used to re-enable snapshots after the start Gcode is finished.
    • @OCTOLAPSE TAKE-SNAPSHOT - Used within the Gcode and smart Gcode triggers to initiate a snapshot. Note that the legacy snap command is also supported, and the common G4 P1 command has been added as the default custom snapshot command for better compatibility.
  • Added Beta Support for Multi-Material/Multi-Extruder printers. This is an Alpha feature, as I've never actually tested multi-extruder prints with extruder offsets. I don't have access to a true multi-extruder machine, so I'd appreciate help testing the stabilization and extruder tracking. I have tested my shared extruder setup.
  • Improved Camera Scripting
    • New Before and After GCode Scripts have been added, allowing you to send Gcode to your printer.
    • Test Buttons have been added for all camera scripts and include logic to (in many cases) report success or failure of the script itself. This should make debugging DSLR problems much easier.
    • A new On Print End script has been added as well.
  • Ultra-fast C++ Gcode parsing and position processing
    • The Gcode parsing and position processors are orders of magnitude faster than in the previous version of Octolapse. This greatly speeds up Gcode preprocessing when using the new Smart Layer Trigger and lowers CPU utilization when running the Classic triggers.
    • A reduced CPU load means Octolapse is less likely to impact print quality by causing stuttering. It will also run better on slower hardware (but maybe not perfectly).
  • Built-in Help System
    • All help links within the Octolapse settings now open a popup box and will display formatted help information written in Markdown (rendered via the excellent showdown.js library). No more switching browser tabs to get help!
    • Get help for common issues that can occur when starting a print, even if more than one problem exists.
    • Links to a newly versioned Octolapse wiki, including much more comprehensive guides.
  • Printer Profile Enhancements
    • The redesigned print and build volume settings now match OctoPrint's printer profile, giving you a familiar interface when configuring a new printer that does not exist in the new profile repository.
    • Restrict snapshot positions to a smaller volume if you desire. This can be used to prevent snapshots while priming or to prevent Octolapse from taking snapshots on the first or last few layers.
    • Experimental - By disabling Snapshot Gcode Axis Compatibility Mode, you can reduce the number of Gcodes generated by Octolapse by preventing Octolapse from changing the axis modes via M82/M83 or G90/G91. This can also help some plugins (like current layer detection plugins) that don't completely support relative axis modes.
  • Logging Profile Enhancements
    • The Logging profiles (formerly the Debug profiles) now use module level logging, making it look a LOT like the built-in OctoPrint logging scheme.
    • Control the log level on a per-module basis.
    • Snapshot Gcode is now tagged by both snapshot phase (initialization, snapshot, return, and end), and by Gcode phase (queuing, sent, etc.), making it easier to interpret the log file.
    • Added the ability to clear your log files and download the most recent log file right inside of the logging profile
  • Enhanced Layer Detection
    • Octolapse can now detect layer changes before any extrusions have occurred, reducing, in many cases, the number of retractions required to take snapshots.
    • The improved layer detection has allowed some improvement in the Classic triggers that existed in all previous versions of Octolapse.
  • Faster Snapshots
    • Reduced snapshot capture time means less time added to your print and higher quality prints.
    • All image processing now happens on a background thread, so using image transformations and generating thumbnails from high quality snapshots now has almost no effect on image acquisition time.

Bug Fixes

So much has changed since V0.3.4 that it is almost impossible to list all of the bug fixes. I've put a few of the big ones in here:

  • The G90/G91 Influences Extruder setting in the print profile was broken in V0.3.4 and in all previous versions. This is probably the biggest problem fixed from the previous version. If your printer's E axis is affected by G90/G91 (if you are using Marlin 2.0 or Smoothieware, perhaps other firmwares), this could have caused big quality issues depending on how your code was sliced.
  • Camera Script Logging has been fixed, which should make debugging DSLR issues easier. I've added a dedicated logging profile for DSLR problems, and that should help too.
  • Failed Renderings used to be totally deleted. In this new version, you will have an opportunity to re-render them. If any old failed timelapses are still on your Pi before you upgrade (they are typically erased after the rendering fails, but this depends on your rendering settings), they will appear in the new Unfinished Timelapses popup for you to download or re-render.

I'm sure a LOT more was fixed. So much of the code was replaced, it's difficult to figure out exactly what has been fixed, and what has simply been improved.

Known/Unsolved Issues

There are a few known issues in Octolapse. Some of these will be very difficult to correct, and others I will try to solve ASAP once this release is out the door.

  • If you Pause your print and Restart it while using one of the Smart triggers, Octolapse will fail. Use the Cancel button instead as a workaround. This is on my shortlist of things to fix for V0.4.1.
  • Sometimes the Octolapse install appears to fail but works properly after a reboot. This has been reported a couple times, but I have not been able to replicate it.
  • There are compatibility issues when trying to use the custom image preferences with some plugins, including OctoPrint Anywhere and The Spaghetti Detective*. It is still possible to use Octolapse while these plugins are enabled, but some configuration settings changes may be required.
  • Octolapse is not fully compatible with plugins that modify the Gcode stream. Specifically, there are issues with plugins like the Exclude Region and Cancel Object plugin. Octolapse may miss snapshots when using the Smart Triggers with these plugins, and retraction/de-retraction may be off.
  • The default Make/Model printer profiles are designed for Manufacture Issued Firmware and may not be configured correctly if you flashed your own firmware. This is especially true if you've flashed your own build of Marlin to your printer. Specifically, the G90/G91 Influences Extruder setting has been giving me lots of grief. When using the default Marlin configuration, this setting should be true, but for the majority of stock firmware installations it should be set to false. I am working on a feature to auto-detect this setting, but it's not ready yet.
  • Snapshot archiving has failed for at least one user when a LOT of ultra high resolution DSLR images were archived (over 3K).
  • H.264 will run out of memory quickly when trying to render very high resolution videos (4k, DSLR, etc). My Pi3B+ with 1GB ram cannot render videos with a reasonable number of frames with the available memory. I have not yet had a 1080P video fail due to a lack of memory, though I have not recorded thousands of frames, so I'm not sure.
  • H.265 isn't working properly on OctoPi. I'm still diagnosing this, but it works fine on Windows.
  • Can't import any file archives larger than 1GB.
  • Some videos made with lossless JPG formats fail in some players.
  • Some reports indicate that zip archives can't be opened in some instances. I have not been able to replicate this.
  • Some reports indicate that very large files fail to download, but I can't replicate this. See issue #464 if you encounter this issue.
  • If timelapse files are deleted from the stock timelapse tab or the Octolapse timelapse browser, they go out of sync. Not a huge deal (just refresh), but it will be difficult to fix 100%, at least for files deleted from the OctoPrint timelapse tab.
  • The Size column isn't reported accurately for script cameras if the images aren't downloaded before rendering starts. This is not 100% solvable, but I plan to update the file size as soon as it is known in a future enhancement.