Skip to content

0.4.0rc1.dev3

Pre-release
Pre-release
Compare
Choose a tag to compare
@FormerLurker FormerLurker released this 17 Feb 23:43
· 166 commits to rc/devel since this release

Summary

At long last a new development release candidate is available. Of course, I didn't follow my feature freeze rule, but I received so many reports of issues involving the rendering engine, camera scripts (especially DSLR problems), C++ library compilation, multi-material/extruder problems, and other issues that I was forced to make some changes. Additionally I learned that Octolapse was not compatible with OctoPrint 1.4.0, so several additional major changes were required. However, I believe this has led to some huge increases in usability and stability, so the delay was well worth it in my opinion.

The UI has been redesigned so that anything that previously looked like a button but was not a button has been re-skinned. Several complicated UI animations have also been removed in addition to many other improvements and simplifications. I think this all leads to better UX. (Thank you, Derek73, for the UX advice!)

Please give me some feedback here! Tell me what you hate, what you like, if it installed correctly, if it fails, if it works, etc. All feedback is welcome and greatly appreciated!

Enhancements

  • Added support for OctoPrint 1.4.0.
  • Added beta support for Python 3.7.
  • 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 Renderings - In 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.
  • 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 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 view any folder you want (defaults to the Octoprint timelapse folder) and includes paging and page size controls.
    • Simplified all info panel displays.
  • 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 G1 P0 command has been added as the default custom snapshot command for better compatibility.
  • Added a new Smart Gcode Trigger that includes a snapshot plan preview, making gcode triggers easier to debug.
  • Added 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.
  • More cameras now have a custom image preferences page, including the Logitech C250.
  • Added a custom PLUGIN_OCTOLAPSE_MOVIE_DONE event that can be used to trigger interesting things, such as automatic YouTube upload (requires additional setup, which I do not support).
  • Added Snapshot Plan Preview Autoclose to the snapshot preview popup. This is necessary if you attempt to start a print without access to the OctoPrint web page (for example, when using a custom touch screen or mobile app).
  • Added Print Quality Issues Detection within the snapshot plan preview for all smart triggers.
  • Add Missed Snapshot on Layer indicator to the snapshot plan preview.
  • Add Custom Help Messages for common issues. The new error help popup supports multiple problems at the same time and offers help for each error.
  • Many Logging Enhancements were added, especially related to camera scripts, snapshot plans, and snapshot gcode.
  • Add Test Script Buttons for all scripts within the camera profile. They have been made as accurate and useful as possible but are not yet perfect. They are very useful for testing DSLR Scripts.
  • Add On Print End script to the list of camera scripts.
  • Add Before/After Snapshot Gcode Scripts to camera profile. This could be useful for turning on lighting.
  • Added a Camera Name Tag to the rendering file template to make it easier to tell which camera generated your timelapse when using multiple cameras.
  • Allow custom folder locations for the temporary, timelapse, and snapshot archive files, which can be changed without requiring a restart.
  • Added H.265 (HEVC) Encoding to support resolutions above 4096x2048 (up to 8192x4320). This will only work if your installed version of ffmpeg or avconv supports the libx265 encoder. This encoder is definitely beta at the moment, but it uses far less memory than the H.264 codec, so if you're having malloc errors, you might want to give this codec a try.
  • Added a Default Font that can be used with rendering text overlays on Linux installations (octopi) if fontconfig is not installed.
  • Added new rendering overlay tokens: {layer}, {height}, {x}, {y}, {z}, {e}, {f}, {x_snapshot}, {y_snapshot}.
  • Added text outlining to rendering overlays. (There is a bug when using this feature in Raspbian Stretch which has been fixed in a recent pull request. See this issue for details.)
  • Added Wait for Moves To Finish option to stabilization profile. When disabled, the resulting timelapse will look like an OctoPrint timelapse. No retraction or lift is applied when this option is disabled. Additionally, before and after snapshot scripts will be executed asynchronously.
  • Increase file/snapshot download speed by adding a custom tornado route that runs in a separate thread.
  • Removed maximum value for camera timeout.
  • Add Clear Log and Download Log buttons to the logging profile to make it easier for me to explain to people how to download logs and to create clean logs.
  • Replace the Welcome to Octolapse image in the timelapse preview with a sensible message that explains what the timelapse preview is and when snapshots will start to appear.
  • Autodetect whether or not M114 is supported before a print starts, since some printers do not support this required gcode.
  • Added many improvements and updates to the built-in help files.
  • All axis modes default to absolute for all printer profiles and other default settings. This should eliminate a pain point for many users.
  • Lots of code cleanup and reorganization.

Bug Fixes

  • Fixed a huge issue with the G90/G91 influences extruder setting that was creating incorrect snapshot gcode. This bug has existed in ALL versions of octolapse that I'm aware of up until this release and may be responsible for a lot of retraction (blobbing/stringing/corralling) issues.
  • Rewrote the rendering process, which seems to have fixed most of the errors that were reported. Now, if rendering fails, you should be able to try again or download your snapshots through the GUI which allows you to render the timelapse manually.
  • Fixed GUID mismatch issues within a few of the default Octolapse profiles. These were causing incorrect settings to be used and preventing updating/delete of the affected profiles.
  • Fixed many settings migration issues for various slicer settings, especially Cura.
  • Fixed C++ compilation issues by adding better compiler detection and parameters.
  • Prevented M400+M114 from being sent within the snapshot gcode routing if no snapshot gcodes were sent.
  • Fixed display problems when increasing browser zoom level.
  • Fixed warning/danger text display when using themeify, which was muting the colors.
  • Fixed a situation where the End Gcode command within the snapshot gcode was not suppressed if it was in the list of suppressed commands for test mode.
  • Fixed various bugs for profile auto update.
  • Fixed many client side validation issues.
  • Fixed migration issues when expected settings keys may be missing.
  • Fixed many issues with non-admin display (still could be some issues here).
  • Fixed an issue with the timelapse preview that was preventing the preview animation from completing if a new snapshot was discovered mid-animation.
  • Added detection for changes to the OctoPrint FFMPEG path, so that the rendering processor always uses the current path to FFMPEG.
  • In some cases, custom camera image preferences failed to apply when OctoPrint rebooted. I believe this happened because mjpeg-streamer had not fully started when the settings were applied. Octolapse will now retry over a period of approximately 60 seconds before it gives up.
  • Fixed problems with H.264 rendering that prevented playback in some viewers.

Known/Unsolved Issues

  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.
  2. 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.
  3. 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/deretraction may be off.
  4. 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.
  5. Snapshot archiving has failed for at least one user when a LOT of ultra high resolution DSLR images were archived (over 3K).
  6. 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 amount 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 1000s of frames, so I'm not sure.
  7. H.265 isn't working properly on OctoPi. Still diagnosing this, but it works fine on windows.
  8. Custom image preferences sometimes revert on reboot. I've investigated this, but it's difficult to reproduce.