New Features
- You can now create folders in the file list, upload files into said folders and thus better manage your projects' files.
- New wizard dialog for system setups that can also be extended by plugins. Replaces the first run dialog for setting up access control and can also be triggered in other cases than only the first run, e.g. if plugins necessitate user input to function properly. Added wizards to help configuring the following components in OctoPrint on first run: access control, webcam URLs & ffmpeg path, server commands (restart, shutdown, reboot), printer profile. Also extended the bundled Cura plugin to add a wizard for its first setup to adjust path and import a slicing profile, and the bundled Software Update plugin to ask the user for details regarding the OctoPrint update configuration. Also see below.
- New command line interface (CLI). Offers the same functionality as the old one plus:
- a built-in API client (
octoprint client --help
) - built-in development tools (
octoprint dev --help
) - extendable through plugins implementing the
octoprint.cli.commands
hook (octoprint plugins --help
)
- a built-in API client (
- New features within the plugin system:
- Plugins may now give hints in which order various hooks or mixin methods should be called by optionally providing an integer value that will be used for sorting the callbacks prior to execution.
- Plugins may now define configuration overlays to be applied on top of the default configuration but before
config.yaml
. - New mixin ``UiPlugin` for plugins that want to provide an alternative web interface delivered by the server.
- New mixin
WizardPlugin
for plugins that want to provide wizard components to OctoPrint's new wizard dialog. - New hook
octoprint.cli.commands
for registering a command with the new OctoPrint CLI - New hook
octoprint.comm.protocol.gcode.received
for receiving messages from the printer - New hook
octoprint.printer.factory
for providing a custom factory to contruct the globalPrinterInterface
implementation. - New
TemplatePlugin
template type:wizard
- New Javascript client library for utilizing the server's API, can be reused by
UiPlugin
s.
Improvements
- #1048 - Added "Last print time" to extended file information (see also #1522)
- New central configuration option for commands to restart OctoPrint and to restart and shut down the system OctoPrint is running on. This allows plugins (like the Software Update Plugin or the Plugin Manager) and core functionality to perform these common administrative tasks without the user needing to define everything redundantly.
pip
helper now adjustspip install
parameters corresponding to detectedpip
version:- Removes
--process-dependency-links
when it's not needed - Adds
--no-use-wheel
when it's needed - Detects and reports on completely broken versions
- Removes
- Better tracking of printer connection state for plugins and scripts:
- Introduced three new Events
Connecting
,Disconnecting
andPrinterStateChanged
. - Introduced new GCODE script
beforePrinterDisconnected
which will get sent before a (controlled) disconnect from the printer. This can be used to send some final commands to the printer before the connection goes down, e.g.M117 Bye from OctoPrint
. - The communication layer will now wait for the send queue to be fully processed before disconnecting from the printer for good. This way it is ensured that the
beforePrinterDisconnected
script or any further GCODE injected into it will actually get sent.
- Introduced three new Events
- Additional baud rates to allow for connecting can now be specified along side additional serial ports via the settings dialog and the configuration file.
- Option to never send checksums (e.g. if the printer firmware doesn't support it), see #949.
- Added secondary temperature polling interval to use when printer is not printing but a target temperature is set - this way the graph should be more responsive while monitoring a manual heatup.
- Test buttons for webcam snapshot & stream URL, ffmpeg path and some other settings (see also #183).
- Temperature graph automatically adjusts its Y axis range if necessary to accomodate the plotted data (see also #632).
- "Fan on" command now always sends
S255
parameter for better compatibility across firmwares. - Warn users with a notification if a file is selected for printing that exceeds the current print volume (if the corresponding model data is available, see also #1254)
- Added option to also display temperatures in Fahrenheit (see also #1258)
- Better error message when the
config.yaml
file is invalid during startup - API now also allows issuing absolute jogging commands to the printer
- Printer profile editor dialog refactored to better structure fields and explain where they are used
- Option to detect z-hops during z-based timelapses and not trigger a snapshot (see also 1148)
- File rename, move and copy functionality exposed via API, not yet utilized in stock frontend but available in file manager plugin.
- Try to assure a sound SSL environment for the process at all times
- Improved caching:
- Main page and asset files now carry proper
ETag
andLast-Modified
headers to allow for sensible browser-side caching - API sets
Etag
and/orLast-Modified
headers on responses to GET requests where possible and feasible to allow for sensible browser-side caching
- Main page and asset files now carry proper
- Renamed
GcodeFilesViewModel
toFilesViewModel
- plugin authors should accordingly update their dependencies fromgcodeFilesViewModel
tofilesViewModel
. Using the old name still works, but will log a warning and stop working with 1.4.x. - Make sure
volume.depth
for circular beds is forced tovolume.width
in printer profiles - Support for
M116
- Cura plugin: "Test" button to check if path to cura engine is valid.
- Cura plugin: Wizard component for configuring the path to the CuraEngine binary and for importing the first slicing profile
- GCODE viewer: Added Layer Up/Down buttons (see also #1306)
- GCODE viewer: Allow cycling through layer via keyboard (up, down, pgup, pgdown)
- GCODE viewer: Allow changing size thresholds via settings menu (see also #1308)
- GCODE viewer: Added support for GCODE arc commands (see also #1382)
- Language packs: Limit upload dialog for language pack archives to .zip, .tar.gz, .tgz and .tar extensions.
- Plugin Manager: Adjusted to utilize new
pip
helper - Plugin Manager: Show restart button on install/uninstall notification if restart command is configured and a restart is required
- Plugin Manager: Track managable vs not managable plugins
- Plugin Manager: Allow hiding plugins from Plugin Manager via
config.yaml
. - Plugin Manager: Limit upload dialog for plugin archives to .zip, .tar.gz, .tgz and .tar extensions.
- Software Update plugin: More verbose output for logged in administrators. Will now log the update commands and their output similar to the Plugin Manager install and uninstall dialog.
- Software Update plugin: CLI for checking for and applying updates
- Software Update plugin: Wizard component for configuring OctoPrint's update mechanism
- Timelapse: Better (& earlier) reporting to the user when something's up with the snapshot URL causing issues with capturing timelapse frames and hence making it impossible to render a timelapse movie on print completion.
- Virtual printer: Usage screen for the
!!DEBUG
commands on!!DEBUG
,!!DEBUG:help
or!!DEBUG:?
- Updated frontend dependencies (possibly relevant for plugin authors):
- Bootstrap to 2.3.2
- JQuery to 2.2.4
- Lodash to 3.10.1
- SockJS to 1.1.1
- Various improvements in the GCODE interpreter which performs the GCODE analysis
- Various adjustments towards Python 3 compatibility (still a work in progress though, see also #1411, #1412, #1413, #1414)
- Various code refactorings
- Various small UI improvements
- Various documentation improvements
Bug Fixes
- #1047 - Fixed 90 degree webcam rotation for iOS Safari.
- It's not possible anymore to select files that are not machinecode files (e.g. GCODE) for printing on the file API.
- Changes to a user's personal settings via the UI now propagate across sessions.
- Improved compatibility of webcam rotation CSS across newer browsers (see also #1436)
- Fix for system menu not getting properly reloaded after entries changed
Changes from maintenance
not yet released as part of a stable release
Improvements
- Allow arbitrary frame rates for creating timelapses. Before, the entered fps value was also directly used as frame rate for the actual video, which could cause problems with any frame rates not specified in the MPEG2 standard. Now OctoPrint will use a standard frame rate for the rendered video and render the timelapse stills into the finished movie with the configured frame rate.
- Limit Cura profile importer to
.ini
files and clarified the supported versions - Add support for the
R
parameter forM109
andM190