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
Obmovies - A short guide on setting up the system and environment dependencies required for ob's Movies database

Obmovies - A short guide on setting up the system and environment dependencies required for ob's Movies database

1 Jan 04, 2022
Tutorial for STARKs with supporting code in python

stark-anatomy STARK tutorial with supporting code in python Outline: introduction overview of STARKs basic tools -- algebra and polynomials FRI low de

121 Jan 03, 2023
Sphinx Bootstrap Theme

Sphinx Bootstrap Theme This Sphinx theme integrates the Bootstrap CSS / JavaScript framework with various layout options, hierarchical menu navigation

Ryan Roemer 584 Nov 16, 2022
ACPOA plugin creation helper

ACPOA Plugin What is ACPOA ACPOA is the acronym for "Application Core for Plugin Oriented Applications". It's a tool to create flexible and extendable

Leikt Sol'Reihin 1 Oct 20, 2021
Build AGNOS, the operating system for your comma three

agnos-builder This is the tool to build AGNOS, our Ubuntu based OS. AGNOS runs on the comma three devkit. NOTE: the edk2_tici and agnos-firmare submod

comma.ai 21 Dec 24, 2022
Canonical source repository for PyYAML

PyYAML - The next generation YAML parser and emitter for Python. To install, type 'python setup.py install'. By default, the setup.py script checks

The YAML Project 2k Jan 01, 2023
Loudchecker - Python script to check files for earrape

loudchecker python script to check files for earrape automatically installs depe

1 Jan 22, 2022
Credit EDA Case Study Using Python

This case study aims to identify patterns which indicate if a client has difficulty paying their installments which may be used for taking actions such as denying the loan, reducing the amount of loa

Purvi Padliya 1 Jan 14, 2022
OpenAPI Spec validator

OpenAPI Spec validator About OpenAPI Spec Validator is a Python library that validates OpenAPI Specs against the OpenAPI 2.0 (aka Swagger) and OpenAPI

A 241 Jan 05, 2023
Tips for Writing a Research Paper using LaTeX

Tips for Writing a Research Paper using LaTeX

Guanying Chen 727 Dec 26, 2022
A swagger tool for tornado, using python to write api doc!

SwaggerDoc About A swagger tool for tornado, using python to write api doc! Installation pip install swagger-doc Quick Start code import tornado.ioloo

aaashuai 1 Jan 10, 2022
Comprehensive Python Cheatsheet

Comprehensive Python Cheatsheet Download text file, Buy PDF, Fork me on GitHub or Check out FAQ. Contents 1. Collections: List, Dictionary, Set, Tuple

Jefferson 1 Jan 23, 2022
A document format conversion service based on Pandoc.

reformed Document format conversion service based on Pandoc. Usage The API specification for the Reformed server is as follows: GET /api/v1/formats: L

David Lougheed 3 Jul 18, 2022
Elliptic curve cryptography (ed25519) beginner tutorials in Python 3

ed25519_tutorials Elliptic curve cryptography (ed25519) beginner tutorials in Python 3 Instructions Just download the repo and read the tutorial files

6 Dec 27, 2022
💡 Catatan Materi Bahasa Pemrogramman Python

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

0 Oct 10, 2021
A course-planning, course-map rendering and GPA-calculation web service, designed for the SFU (Simon Fraser University) student.

SFU Course Planner What is the overall goal of the project (i.e. what does it do, or what problem is it solving)? As the title suggests, this project

Ash Peng 1 Oct 21, 2021
Generate a single PDF file from MkDocs repository.

PDF Generate Plugin for MkDocs This plugin will generate a single PDF file from your MkDocs repository. This plugin is inspired by MkDocs PDF Export P

198 Jan 03, 2023
Documentation and issues for Pylance - Fast, feature-rich language support for Python

Documentation and issues for Pylance - Fast, feature-rich language support for Python

Microsoft 1.5k Dec 29, 2022
An introduction to hikari, complete with different examples for different command handlers.

An intro to hikari This repo provides some simple examples to get you started with hikari. Contained in this repo are bots designed with both the hika

Ethan Henderson 18 Nov 29, 2022
This tutorial will guide you through the process of self-hosting Polygon

Hosting guide This tutorial will guide you through the process of self-hosting Polygon Before starting Make sure you have the following tools installe

Polygon 2 Jan 31, 2022