Skip to content

Heads-up: 1.3.11 unbundles the Cura plugin

If you rely on the Cura Plugin for your workflow that so far was bundled with OctoPrint, be sure to install the Cura Legacy plugin that's now also available on the plugin repository.

Once installed the Cura Legacy plugin will import the settings and profiles from the former bundled Cura plugin automatically on first start.

Improvements

  • #1938 - Allow slicing parallel to printing on machines with more than one core.
  • #2462 - Also scan and process watched folder on startup, not just during runtime.
  • #2900 - Add new hook octoprint.printer.sdcardupload to allow plugins to override default way to upload files to the printer's SD card.
  • #2904 - Added new command line switches -4 and -6 to restrict binding of the server to IPv4 or v6 respectively.
  • #2905 - Use maximum of communication & temperature timeout as serial timeout to avoid issues if the user has set a longer temperature reporting interval than (busy) communication timeout.
  • #2945 - Adjust default regex for filtering temperature requests and responses to not filter some M115 responses as well. New regex is (Send: (N\d+\s+)?M105)|(Recv:\s+(ok\s+((P|B|N)\d+\s+)*)?(B|T\d*):\d+). If you modified your terminal filters you'll have to update that manually.
  • #2947 - Printer safety check plugin: Disable warning for Monoprice Select Mini V2 with firmware v4.1+.
  • #2953 - GCODE Viewer: Bring back the total number of printed layers.
  • #2962 - Logging: deletion confirmation and bulk delete for log file management.
  • #2965 - Add new hook octoprint.events.register_custom_events to allow plugins to cleanly add custom events by plugins.
  • #2970 - Add configurable list of commands that should never be sent to the printer, and a configurable list of commands on which OctoPrint should pause the current print job. Allows more granular configuration of behaviour of M0, M1 and M25.
  • #2974 - Dedicated checkboxes to enable/disable webcam & timelapse functionality instead of relying on empty URLs.
  • #2976 - Correctly identify v6 representations of v4 networks for auto login. Also correctly identify ::1 as local network.
  • #2978 - Use module name instead of plugin identifier when loading plugins from entry points. Also load bundled plugins under octoprint.plugins.* instead of their identifier.
  • #2982 - Log user activity of who started/paused/resumed/cancelled the current print. Include owner of a print job in event data and log.
  • #2983 - Add clear button to filter box in file list.
  • #2986 - Forcelogin plugin: Make login page responsive.
  • #2988 - Add --disable-pip-version-check to pip calls to stop pip's tendency to confuse people with it's update nag messages.
  • #2997 - Forcelogin plugin: Accept authentication through API key and/or authorization headers.
  • #3010 - Add usage information for all folders to the API.
  • #3014 - Hardening against corrupt language packs.
  • #3023 - Hardening against corrupt preemptive caching configurations.
  • #3030 - Backup plugin: Change name of generated backup file to have an octoprint- prefix. See also #3039.
  • #3033 - Open serial port in exclusive mode. See also #3036.
  • #3038 - Detect Klipper firmware and adjust serial communication settings accordingly.
  • #3040 - Add setting to disable fuzzy estimation display in the UI.
  • #3049 - Workaround for broken PEP440 non-compliant Python version numbers under Debian. See also #3054.
  • #3051 - Always show unfuzzy total print time and print left in a tooltip.
  • #3055 - GCODE Viewer: Add ability to preview the current layer to be drawn.
  • #3057 - Performance improvements in file management operations & more aggressive cleanup of stale metadata.
  • #3066 - Docs: Add missing documentation about state in jobs endpoint on API.
  • #3072 - Hide temperature tab for machines with neither heated bed nor extruders.
  • #3073 - Hide tool section in "Control" tab for machines with no extruders.
  • #3074 - Updated several dependencies to newer versions.
  • Add elapsed time and reason for failure to PrintFailed event.
  • Add trigger_event parameter to Settings.save and PluginSettings.save to trigger SettingsUpdated event on save of settings.
  • Simplify configuration change handling of wizards.
  • Minimum Python version is now 2.7.9.
  • Create a backup of working config.yaml after successful startup.
  • Detect incomplete startups and set safe mode flag for next startup.
  • Always show actual temperature as received from printer instead of "off" for very low temperatures. That way people will hopefully no longer blame OctoPrint for MINTEMP errors triggered by their firmware because it "can't handle temperatures under 10°C".
  • Add full version string OctoPrint <version> to API.
  • Add systemd unit file.
  • Deprecate appkey API in favor of new bundled Application Keys Plugin. AFAIK was never used by anyone anyhow.
  • Take bundle status into account for plugin sorting, bundled plugins should always win before not bundled plugins if no sorting key is provided.
  • Load generic templates after JavaScript assets, making it possible to reference already loaded libraries in any injected generic templates.
  • Hardening against callback errors in decorators on default view.
  • Unbundled the Cura plugin. It lives on as "Cura Legacy" at OctoPrint/OctoPrint-CuraLegacy and will also be available on the plugin repository.
  • Hardening against invalid SD status reports.
  • Cleanup now obsolete metadata.yaml files.
  • Use monotonic_time for relative times everywhere.
  • Support for heated chamber firmware capabilities.
  • Remove UI_API_KEY and API disabling. With the inclusion of the ForceLogin plugin that doesn't serve a real purpose anymore in most cases, and it was only ever more of a rate limiting feature than an actual security measure anyhow. Plus it lead to a ton of false security alarms.
  • More resilience against broken configurations.
  • More resilience against platform startup issues during environment detection.
  • Don't confuse users with current pip's "Python 2.7 is EOL" messages
  • Define empty UI_API_KEY for backwards compatibility with third party plugins
  • Add config flag server.ignoredIncompleteStartup to override incomplete startup detection
  • Hardening against errors triggered during print time estimation
  • Introduce setting to disable exclusive claim on serial port. There might be issues with this out there in the field, so having the option to disable it is a good thing.
  • Docs: Improve docs of connection API to avoid issues as encountered in #3043.
  • Action Command Prompt plugin: Set M876 as default command as discussed in MarlinFirmware/Marlin#12982.
  • Action Command Prompt plugin: Add M876 to EMERGENCY_PARSER compliant commands, if configured accordingly. See also MarlinFirmware/Marlin#12982.
  • Action Command Prompt plugin: Signal support for action command prompts to firmware via M876 P1, if configured accordingly. See also MarlinFirmware/Marlin#12982.
  • Action Command Prompt plugin: Properly handle PROMPT_SUPPORT capability report from firmware and configure action command prompt support accordingly. See also MarlinFirmware/Marlin#12982.
  • Error Tracking plugin: New plugin utilizing sentry.io to track any kind of errors thrown in either backend or the default UI. Will ship disabled by default, has to be enabled by the user. Release Candidates will prompt users to enable it in order to improve on error detection during RC phase.
  • Error Tracking: Severely restrict what gets tracked:
    • we are only interested in handled core exceptions or unhandled exceptions
    • we are not interested at all in SerialException
  • Error Tracking: Further restriction of what gets tracked
  • Forcelogin plugin: Set sorting key to 0 to increase likelihood of coming before alternative UIs.
  • Forcelogin plugin: Add favicon meta tags.
  • Plugin Manager plugin, Softwareupdate plugin: Use scrollables instead of pagination.
  • Printer Safety Check plugin: Add version restriction to Anycubic check.
  • Tracking plugin: Add elapsed time and reason for failure to print_failed event.
  • Tracking plugin: Add elapsed time to print_cancelled event.
  • Tracking plugin: Track firmware/communication errors.
  • Tracking plugin: Track printer safety warnings.
  • Tracking plugin: Track uptime of OctoPrint in ping event.

Bug fixes

  • #1881 - Another attempt at fixing the hard to intentionally reproduce issue where all API endpoints start returning 403 responses. Caching headers have been adjusted and API key handling has been changed, which might fix things.
  • #2859 - Fix for used port and baudrate to not be properly reflected on the UI.
  • #2916 - Possible workaround for a rare issue with the bundled Tornado dependency when running OctoPrint under Windows.
  • #2954 - Backup plugin: Fix an issue with calculation of available free space.
  • #2955 - Fix handling of action:resume or action:resumed received during PAUSING and handling of action:pause or action:paused received during RESUMING. Fix PAUSING state not allowing a resume to proceed. See also MarlinFirmware/Marlin#12982.
  • #2959 - Enforce max height smaller than available viewport for notifications so that they cannot scroll out of the screen.
  • #2967 - Tracking plugin: Fix exception caused on printer events when tracking is disabled and no UUID is thus set.
  • #2971 - Forcelogin plugin: Fix "remember me" not working as advertised. See also #2973.
  • #2992 - Backup plugin: Use shutil.move instead of os.rename and thus avoid issues with certain filesystem configurations. See also #2993.
  • #2996 - Use non-blocking writes on serial communication to avoid select blocking issues under certain conditions. See also #3004.
  • #3001 - Fix a race condition in SD printing detection.
  • #3012 - Fix a unicode vs ASCII bug in translating plugins.
  • #3024 - Fix inconsistent behaviour of CORS support on the API regarding static routes and the socket.
  • #3029 & #3045 & #3061 - Fix issues in the German translation
  • #3053 - GCODE Viewer: Fix an issue with multi extruder files where only a higher extruder index is actually used and all prior ones are undefined.
  • #3080 - Virtual Printer plugin: Fix tracking of negative movements and homing.
  • #3071 - Application Keys plugin: Fix appkeys not working when access control is disabled.
  • #3088 (regression) - Fix 500 error on index rendering in case of plugins that use unicode in plugin vars.
  • #3089 (regression) - Fix missing _chamberTemp definition
  • #3090 (regression) - Fix missing method causing an exception on /api/printer/tool endpoint
  • #3091 (regression) - Printer Safety Check: Fix unicode errors in certain communication scenarios.
  • #3092 - Fix invalid tool parameter detection on /api/printer/tool endpoint.
  • #3098 - Backup: Exclude temporary timelapse files as well if timelapses are excluded from backup.
  • #3105 (regression) - Virtual printer: Fix an encoding issue
  • #3108 (regression) - Fix bug in port detection
  • #3111 (regression) - Refresh port list after disconnect to detect vanishing ports
  • #3115 (regression) - Fix extra newlines in serial.log and empty lines on terminal
  • #3116 - Fix potential division by zero
  • Fix a typo in an error message during startup.
  • paused action command must not trigger any local processing. See also MarlinFirmware/Marlin#12982.
  • Only use page size from local storage in ItemListHelper if configured.
  • Fix caching headers on main view.
  • Fix missing default value for self._errorValue in comm layer.
  • Don't read return code on async system commands, it won't work.
  • Fix wrong textual representation of STARTING state
  • Fix some potential encoding errors in the comm layer
  • Fix for the file list in the UI not getting refreshed after an SD list refresh from the printer.
  • Docs: Fix documentation for firmware info & capability plugin hooks.
  • Docs: Fix a formatting issue in the event docs, making it seem like events were deprecated when it was only payload entries that are deprecated.
  • Forcelogin plugin: Never handle the UI if ACL is disabled.
  • Tracking plugin: Fix tracking not starting fully if enabled during runtime.
  • Tracking plugin: Fix handling of missing print time. See also #3063.

Special thanks to all the contributors!

Special thanks to everyone who contributed to this release, especially @agrif, @akraus53, @AndyQ, @CapnBry, @DanielJoyce, @devildant, @Fabi0San, @fake-name, @fieldOfView, @gloomyandy, @HarlemSquirrel, @hgross, @jubaleth, @melgish, @rgriebl and @tedder for their PRs.

More information

Assets 2
You can’t perform that action at this time.