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
Dev Centric Tools for Mkdocs Based Documentation

docutools MkDocs Documentation Tools For Developers This repo is providing a set of plugins for mkdocs material compatible documentation. It is meant

Axiros GmbH 14 Sep 10, 2022
Exercism exercises in Python.

Exercism exercises in Python.

Exercism 1.3k Jan 04, 2023
Sphinx Theme Builder

Sphinx Theme Builder Streamline the Sphinx theme development workflow, by building upon existing standardised tools. and provide a: simplified packagi

Pradyun Gedam 23 Dec 26, 2022
Hasköy is an open-source variable sans-serif typeface family

Hasköy Hasköy is an open-source variable sans-serif typeface family. Designed with powerful opentype features and each weight includes latin-extended

67 Jan 04, 2023
Loudchecker - Python script to check files for earrape

loudchecker python script to check files for earrape automatically installs depe

1 Jan 22, 2022
Members: Thomas Longuevergne Program: Network Security Course: 1DV501 Date of submission: 2021-11-02

Mini-project report Members: Thomas Longuevergne Program: Network Security Course: 1DV501 Date of submission: 2021-11-02 Introduction This project was

1 Nov 08, 2021
Automatic links from code examples to reference documentation

sphinx-codeautolink Automatic links from Python code examples to reference documentation at the flick of a switch! sphinx-codeautolink analyses the co

Felix Hildén 41 Dec 17, 2022
Generate modern Python clients from OpenAPI

openapi-python-client Generate modern Python clients from OpenAPI 3.x documents. This generator does not support OpenAPI 2.x FKA Swagger. If you need

555 Jan 02, 2023
A complete kickstart devcontainer repository for python3

A complete kickstart devcontainer repository for python3

Viktor Freiman 3 Dec 23, 2022
PySpark Cheat Sheet - learn PySpark and develop apps faster

This cheat sheet will help you learn PySpark and write PySpark apps faster. Everything in here is fully functional PySpark code you can run or adapt to your programs.

Carter Shanklin 168 Jan 01, 2023
Convenient tools for using Swagger to define and validate your interfaces in a Pyramid webapp.

Convenient tools for using Swagger to define and validate your interfaces in a Pyramid webapp.

Scott Triglia 64 Sep 18, 2022
Repository for learning Python (Python Tutorial)

Repository for learning Python (Python Tutorial) Languages and Tools 🧰 Overview 📑 Repository for learning Python (Python Tutorial) Languages and Too

Swiftman 2 Aug 22, 2022
Swagger UI is a collection of HTML, JavaScript, and CSS assets that dynamically generate beautiful documentation from a Swagger-compliant API.

Introduction Swagger UI allows anyone — be it your development team or your end consumers — to visualize and interact with the API’s resources without

Swagger 23.2k Dec 29, 2022
level2-data-annotation_cv-level2-cv-15 created by GitHub Classroom

[AI Tech 3기 Level2 P Stage] 글자 검출 대회 팀원 소개 김규리_T3016 박정현_T3094 석진혁_T3109 손정균_T3111 이현진_T3174 임종현_T3182 Overview OCR (Optimal Character Recognition) 기술

6 Jun 10, 2022
Pyoccur - Python package to operate on occurrences (duplicates) of elements in lists

pyoccur Python Occurrence Operations on Lists About Package A simple python package with 3 functions has_dup() get_dup() remove_dup() Currently the du

Ahamed Musthafa 6 Jan 07, 2023
Some code that takes a pipe-separated input and converts that into a table!

tablemaker A program that takes an input: a | b | c # With comments as well. e | f | g h | i |jk And converts it to a table: ┌───┬───┬────┐ │ a │ b │

CodingSoda 2 Aug 30, 2022
This repo provides a package to automatically select a random seed based on ancient Chinese Xuanxue

🤞 Random Luck Deep learning is acturally the alchemy. This repo provides a package to automatically select a random seed based on ancient Chinese Xua

Tong Zhu(朱桐) 33 Jan 03, 2023
✨ Real-life Data Analysis and Model Training Workshop by Global AI Hub.

🎓 Data Analysis and Model Training Course by Global AI Hub Syllabus: Day 1 What is Data? Multimedia Structured and Unstructured Data Data Types Data

Global AI Hub 71 Oct 28, 2022
DocumentPy is a Python application that runs in a command-line interface environment, made for creating HTML documents.

DocumentPy DocumentPy is a Python application that runs in a command-line interface environment, made for creating HTML documents. Usage DocumentPy, a

Lotus 0 Jul 15, 2021
ReStructuredText and Sphinx bridge to Doxygen

Breathe Packagers: PGP signing key changes for Breathe = v4.23.0. https://github.com/michaeljones/breathe/issues/591 This is an extension to reStruct

Michael Jones 643 Dec 31, 2022