Ultimaker Cura 2 Mooraker Upload Plugin

Overview

Klipper & Cura - Cura2MoonrakerPlugin

  • Allows you to upload Gcode directly from Cura to your Klipper-based 3D printer (Fluidd, Mainsailos etc.) using the Moonraker API.
  • Uploading thumbnails via UFP (Ultimaker Format Package) is supported
  • You can also start a print job using the upload process

How to Install

The installation of this plugin is straightforward ... no compiling etc.

  1. Download this repository as zip file (https://github.com/emtrax-ltd/Cura2MoonrakerPlugin/archive/main.zip) and unzip it
  2. Find your Cura plugins directory:
    • Windows:
      • The default installation path is C:\Program Files\Ultimaker Cura [version number]\plugins.
      • The user based installation path is C:\Users\<Your Username>\AppData\Roaming\cura\[version number]\plugins (no admin privileges needed)
    • macOS:
      • Right-click on Ultimaker Cura.app in your Applications folder then click on Show Package Contents. The default installation path is Ultimaker Cura.app -> Contents -> Resources -> Plugins -> Plugins.
  3. Copy the extracted Cura2MoonrakerPluginfolder into the Cura plugins folder you located in step 2. Attention: In the user based windows installation you have to copy the unzipped plugin directory into a parent directory with the same name. Looks like ...\cura\[version number]\plugins\Cura2MoonrakerPlugin\Cura2MoonrakerPlugin.

How to Configure

To configure your Moonraker 3D printer...

  1. Go to Settings -> Printer -> Manage Printers
  2. Select and click on 'Connect Moonraker'
  3. Fill in the URL and select your preferred output format
  4. Click 'Save Config'

How to Upload

  1. Open your STL model in Cura and click Slice.
  2. Click the small up arrow on the right and select Upload to <Your Printername>:
  3. Now you can modify the filename, select the option to create a print job and finally... click Upload :)

Buy Me A Coffee

Comments
  • 5.0 support

    5.0 support

    I'm really in love with this plugin! Thanks for a great job! Recently Cura released 5.0 beta but looks like they brake something and plugin stopped to work. While loading Cura says that plugin need to be reinstalled

    opened by devolf92 28
  • error: 204 host requires authorisation

    error: 204 host requires authorisation

    Hi there,

    Does anyone know or could help with this issue?

    Screenshot 2021-10-06 at 18 58 35

    Get an error when trying to upload to Klipper from cura. I have added the IP address of my PC to the authorized list of addresses in moonraker.config.

    UPDATE: #7 does not fix it for me!? Where can i find "~/.moonraker_api_key" ??

    One other question is, for the section in the cura config "name of Moonraker power device". i am assuming this refers to the power device such as a TP link smart plug?

    cheers

    opened by Kieraneasdale 12
  • Crash when file upload CURA 5.1

    Crash when file upload CURA 5.1

    Hi, Cura crashed whenever i upload a file.

    Traceback (most recent call last): File "UM\TaskManagement\TaskManager.py", line 142, in event call_event.callFunction() File "UM\TaskManagement\TaskManager.py", line 33, in callFunction self._function(*self._args, **self._kwargs) File "C:\Users\Ludovic\AppData\Roaming\cura\5.1\plugins\MoonrakerConnection\MoonrakerConnection\MoonrakerOutputDevice.py", line 305, in _checkPrinterStatus status = response['result']['state'] TypeError: string indices must be integers

    opened by CrownFlash 10
  • Fix to original PR - Now sends FIRMWARE_RESTART before powering on printer, queries

    Fix to original PR - Now sends FIRMWARE_RESTART before powering on printer, queries "webhooks" printer object, sends model when state == 'ready'

    Before this fix, if the user requested the model to start printing immediately, the plugin might upload the model before the printer was ready to accept the print job. This change should fix that issue -- it now queries the "webhooks" printer object and waits until state == 'ready' before sending the model.

    At the moment, the queries occur every 0.5 seconds for a total of 10 seconds before a timeout occurs.

    Thanks again for a great plugin!

    opened by truckershitch 9
  • [FR] replacing dots and whitespace in filenames with an underscore or dash

    [FR] replacing dots and whitespace in filenames with an underscore or dash

    it would be really nice if the Plug-in could replace dots and whitespaces/spaces with an underscore or a dash instead of cutting/stripping the Filename.

    Examples: i have a .stl file with the filename "test_head_v1.4 (small).stl" current filename handling is like "test_head_v1.[gcode | ufp]" (file extension doesn't really matter in thsi example)

    would i would like is something like this "test_head_v1_4_small.gcode" or "test_head_v1_4-small.gcode"

    EDIT i would really like to inplement it by myself but unfortunately i dont know python that well.

    opened by itCarl 8
  • Upload the plugin to the marketplace.

    Upload the plugin to the marketplace.

    I think this would be much easier to find if this was uploaded to the marketplace! You can do that via https://contribute.ultimaker.com

    Even if you don't want that, you can use it to generate .curapackage files which can be drag & dropped into Cura, making installing it a lot less error prone.

    opened by nallath 7
  • Unable to save configured plugin settings

    Unable to save configured plugin settings

    Unable to save configured plugin settings

    Despite typing text in all fields, "Connect Moonraker" window shows only "Close" button, and no "Save Config" button at all. In Cura, printing buttons show "Moonraker Plugin", and clicking it displays message to Configure Moonraker in Preferences.

    System information:

    Gentoo Linux Python 3.8 Cura 4.9.1

    opened by agrohn 6
  • Upload timeout too short

    Upload timeout too short

    Hello,

    Thank you again for the "Fire and Forget" feature. Is it possible to adjust the time before error? When I first send a file, the printer turns on via relay and the firmware loads. That take longer than the current delay before an error is displayed, and load is cancelled. This could either be longer or a configurable option. Other than this minor inconvenience, the plugin has worked very well.

    Best, Mujeeb

    enhancement 
    opened by mujeebbasit 5
  • Cura 5.2.1: object of type settingfunction is not json serializable

    Cura 5.2.1: object of type settingfunction is not json serializable

    when i upgrade cura i get: object of type settingfunction is not json serializable

    in old version all is fine

    2022-10-30 17:11:17,530 - ERROR - [MainThread] UM.Qt.Bindings.OutputDeviceManagerProxy._writeToDevice [163]: Exception: Unable to write to file CFFFP_Peppa_Wutz: Object of type SettingFunction is not JSON serializable 2022-10-30 17:11:17,531 - ERROR - [MainThread] UM.Qt.Bindings.OutputDeviceManagerProxy._writeToDevice [163]: Traceback (most recent call last): 2022-10-30 17:11:17,532 - ERROR - [MainThread] UM.Qt.Bindings.OutputDeviceManagerProxy._writeToDevice [163]: File "UM\Qt\Bindings\OutputDeviceManagerProxy.py", line 150, in _writeToDevice 2022-10-30 17:11:17,532 - ERROR - [MainThread] UM.Qt.Bindings.OutputDeviceManagerProxy._writeToDevice [163]: device.requestWrite(nodes, file_name, limit_mimetypes, file_handler, **kwargs) 2022-10-30 17:11:17,533 - ERROR - [MainThread] UM.Qt.Bindings.OutputDeviceManagerProxy._writeToDevice [163]: File "C:\Users\phil2sat\AppData\Roaming\cura\5.2\plugins\MoonrakerConnection\MoonrakerConnection\MoonrakerOutputDevice.py", line 94, in requestWrite 2022-10-30 17:11:17,533 - ERROR - [MainThread] UM.Qt.Bindings.OutputDeviceManagerProxy._writeToDevice [163]: if not meshWriter.write(self._stream, None): 2022-10-30 17:11:17,534 - ERROR - [MainThread] UM.Qt.Bindings.OutputDeviceManagerProxy._writeToDevice [163]: File "cura\Utils\Threading.py", line 31, in _call_on_qt_thread_wrapper 2022-10-30 17:11:17,534 - ERROR - [MainThread] UM.Qt.Bindings.OutputDeviceManagerProxy._writeToDevice [163]: return func(*args, **kwargs) 2022-10-30 17:11:17,535 - ERROR - [MainThread] UM.Qt.Bindings.OutputDeviceManagerProxy._writeToDevice [163]: File "C:\Program Files\Ultimaker Cura 5.2.1\share\cura\plugins\UFPWriter\UFPWriter.py", line 88, in write 2022-10-30 17:11:17,535 - ERROR - [MainThread] UM.Qt.Bindings.OutputDeviceManagerProxy._writeToDevice [163]: json.dump(self._getSliceMetadata(), setting_textio, separators=(", ", ": "), indent=4) 2022-10-30 17:11:17,536 - ERROR - [MainThread] UM.Qt.Bindings.OutputDeviceManagerProxy._writeToDevice [163]: File "json\__init__.py", line 179, in dump 2022-10-30 17:11:17,536 - ERROR - [MainThread] UM.Qt.Bindings.OutputDeviceManagerProxy._writeToDevice [163]: File "json\encoder.py", line 431, in _iterencode 2022-10-30 17:11:17,537 - ERROR - [MainThread] UM.Qt.Bindings.OutputDeviceManagerProxy._writeToDevice [163]: File "json\encoder.py", line 405, in _iterencode_dict 2022-10-30 17:11:17,537 - ERROR - [MainThread] UM.Qt.Bindings.OutputDeviceManagerProxy._writeToDevice [163]: File "json\encoder.py", line 405, in _iterencode_dict 2022-10-30 17:11:17,538 - ERROR - [MainThread] UM.Qt.Bindings.OutputDeviceManagerProxy._writeToDevice [163]: File "json\encoder.py", line 405, in _iterencode_dict 2022-10-30 17:11:17,538 - ERROR - [MainThread] UM.Qt.Bindings.OutputDeviceManagerProxy._writeToDevice [163]: File "json\encoder.py", line 438, in _iterencode 2022-10-30 17:11:17,539 - ERROR - [MainThread] UM.Qt.Bindings.OutputDeviceManagerProxy._writeToDevice [163]: File "json\encoder.py", line 179, in default 2022-10-30 17:11:17,539 - ERROR - [MainThread] UM.Qt.Bindings.OutputDeviceManagerProxy._writeToDevice [163]: TypeError: Object of type SettingFunction is not JSON serializable

    opened by phil2sat 4
  • "Could not find plugin UFPWriter" error when attempting to use "UFP with Thumbnail" option

    Cura version: 4.13.1

    When I select the "UFP with Thumbnail" option in the "Connect to Moonraker" settings, and then attempt to send a sliced model to my printer, it just results in an error pop-up at the bottom of the Cura window that says: "Error

    Could not find plugin UFPWriter"

    Changing the Moonraker option to send GCODE instead makes it work just fine. Might be due to breaking changes in Cura 4.13 as seems to be implied by https://www.reddit.com/r/Cura/comments/s5i0bg/cura_413_fails_to_loaf_plugin_ufpwriter/.

    opened by scramsby 4
  • Display not large. And port number is required for connect to printer.

    Display not large. And port number is required for connect to printer.

    Using CURA 4.8 Fluidd with Klipper

    For the display image The button cropped. but i already adjust actionDialog.minimumHeight = screenScaleFactor * 320; and it seams fit nicely. image

    IP address need to put including port number. If only IP address without port, the file cant be uploaded.

    http://192.168.9.112:7125/

    Anyway thanks for great plug-in!

    opened by rexstor 4
  • Cura 5.2 uses a different plugin directory

    Cura 5.2 uses a different plugin directory

    Hello,

    It seems, that in the current Cura 5.2, a different plugin directory is used. In Cura 5.x or newer, the default installation path is Ultimaker Cura.app -> Contents -> Resources -> share -> cura -> plugins.

    But this Plugin-Directory seems to be for bundled Plugins only. Cura can´t find additional Plugins here.

    I had to put the plugin in the directory: /Library/Application Support/cura/5.2/plugins to get it to work.

    There is a readme file in the old plugins directory that points this out. Maybe the correct directory will be added here in the readme from Cura 5.2

    Greetings, Daniel

    opened by daniel-volz 1
  • Unknown command:

    Unknown command:"SDCARD_PRINT_FILE"

    Hi

    I was unable to connect Moonraker by using URL http://192.168.1.69/, was timing out I can however connect using http://192.168.1.69:7125

    However, when I send a gcode to Klipper, Cura advises 'succesfully completed and job started', but in Klipper i get the error:

    Unknown command:"SDCARD_PRINT_FILE"

    Originally suspected an unknown character but happens even if filename is 'test6' for example

    opened by ryangillett1 0
  • Thumbnail not showing up

    Thumbnail not showing up

    I did a fresh install of Klipper and Mainsail using KIAUH V5 and followed all the instructions on this page, but no matter what, I can't get the thumbnail to display.

    I'm using Cura 5.2.1 klipper v0.10.0-615-g96ea871b moonraker v0.7.1-747-g779997c mainsail v2.3.1

    Can anyone help

    opened by larie438 0
  • UFP

    UFP

    upload with UFP was working, then when I tried uploading a file, it would pause for a moment and i would get the following error: "object of type SettingFunction is not JSON serializable"

    if i change it to Gcode it works fine. This issue just started happening last night.

    opened by Roho81 9
  • Timeout-all the time

    Timeout-all the time

    Installed plugin in Cura 5.0.0 on a Windows 11 system with plenty of resources. Configured as instructions. Uploaded successfully on the first try, then failed to upload with a timeout error on each subsequent occasion. Uninstalled plugin, rebooted, checked IP allocation, reinstalled, reconfigured and it continues to time out each time. Thanks for the work on this plugin.

    enhancement 
    opened by andycrane 3
  • Cancel the changed information when closing or pressing Escape

    Cancel the changed information when closing or pressing Escape

    Not sure if this is possible using the close button of the dialog.

    I would like to see another dialog asking if you want to discard the changed settings whenever you try to close the dialog or when pressing Escape.

    This FR is the result of #46 after figuring out pressing Escape saves the settings.

    enhancement 
    opened by GerdonAbbink 2
A python package to import files from an adjacent folder

EasyImports About EasyImports is a python package that allows users to easily access and import files from sister folders: f.ex: - Project - Folde

1 Jun 22, 2022
A Python validator for SHACL

pySHACL A Python validator for SHACL. This is a pure Python module which allows for the validation of RDF graphs against Shapes Constraint Language (S

RDFLib 187 Dec 29, 2022
A Python library for setting up projects using tabular data.

A Python library for setting up projects using tabular data. It can create project folders, standardize delimiters, and convert files to CSV from either individual files or a directory.

0 Dec 13, 2022
YAML metadata extension for Python-Markdown

YAML metadata extension for Python-Markdown This extension adds YAML meta data handling to markdown with all YAML features. As in the original, metada

Nikita Sivakov 14 Dec 30, 2022
An awesome Data Science repository to learn and apply for real world problems.

AWESOME DATA SCIENCE An open source Data Science repository to learn and apply towards solving real world problems. This is a shortcut path to start s

Academic.io 20.3k Jan 09, 2023
Easy OpenAPI specs and Swagger UI for your Flask API

Flasgger Easy Swagger UI for your Flask API Flasgger is a Flask extension to extract OpenAPI-Specification from all Flask views registered in your API

Flasgger 3.1k Jan 05, 2023
Loudchecker - Python script to check files for earrape

loudchecker python script to check files for earrape automatically installs depe

1 Jan 22, 2022
A Sublime Text plugin to select a default syntax dialect

Default Syntax Chooser This Sublime Text 4 plugin provides the set_default_syntax_dialect command. This command manipulates a syntax file (e.g.: SQL.s

3 Jan 14, 2022
Main repository for the Sphinx documentation builder

Sphinx Sphinx is a tool that makes it easy to create intelligent and beautiful documentation for Python projects (or other documents consisting of mul

5.1k Jan 02, 2023
sphinx builder that outputs markdown files.

sphinx-markdown-builder sphinx builder that outputs markdown files Please ★ this repo if you found it useful ★ ★ ★ If you want frontmatter support ple

Clay Risser 144 Jan 06, 2023
Openapi-core is a Python library that adds client-side and server-side support for the OpenAPI Specification v3.

Openapi-core is a Python library that adds client-side and server-side support for the OpenAPI Specification v3.

A 186 Dec 30, 2022
💻An open-source eBook with 101 Linux commands that everyone should know

This is an open-source eBook with 101 Linux commands that everyone should know. No matter if you are a DevOps/SysOps engineer, developer, or just a Linux enthusiast, you will most likely have to use

Ashfaque Ahmed 0 Oct 29, 2022
Jupyter Notebooks as Markdown Documents, Julia, Python or R scripts

Have you always wished Jupyter notebooks were plain text documents? Wished you could edit them in your favorite IDE? And get clear and meaningful diff

Marc Wouts 5.7k Jan 04, 2023
Demonstration that AWS IAM policy evaluation docs are incorrect

The flowchart from the AWS IAM policy evaluation documentation page, as of 2021-09-12, and dating back to at least 2018-12-27, is the following: The f

Ben Kehoe 15 Oct 21, 2022
Documentation for the lottie file format

Lottie Documentation This repository contains both human-readable and machine-readable documentation about the Lottie format The documentation is avai

LottieFiles 25 Jan 05, 2023
Service for visualisation of high dimensional for hydrosphere

hydro-visualization Service for visualization of high dimensional for hydrosphere DEPENDENCIES DEBUG_ENV = bool(os.getenv("DEBUG_ENV", False)) APP_POR

hydrosphere.io 1 Nov 12, 2021
💡 Catatan Materi Bahasa Pemrogramman Python

Repository catatan kuliah Andika Tulus Pangestu selama belajar Dasar Pemrograman dengan Python.

0 Oct 10, 2021
Python Advanced --- numpy, decorators, networking

Python Advanced --- numpy, decorators, networking (and more?) Hello everyone 👋 This is the project repo for the "Python Advanced - ..." introductory

Andreas Poehlmann 2 Nov 05, 2021
Make posters from Markdown files.

MkPosters Create posters using Markdown. Supports icons, admonitions, and LaTeX mathematics. At the moment it is restricted to the specific layout of

Patrick Kidger 243 Dec 20, 2022
A collection of lecture notes, drawings, flash cards, mind maps, scripts

Neuroanatomy A collection of lecture notes, drawings, flash cards, mind maps, scripts and other helpful resources for the course "Functional Organizat

Georg Reich 3 Sep 21, 2022