Git Product home page Git Product logo

continuousprint's Introduction

.

continuousprint's People

Contributors

kirk-loeten avatar lopper avatar nukeem avatar smartin015 avatar zinc-os avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

continuousprint's Issues

plugin does not work after update

Hello

The plugin is not working anymore, it is loading the continuous print script when you start the managing procedure to start and the printer goes crazy.

THis is the script I have bellow. What ishappening is that the printer goes to 28 degress, kinda kicks the part ( that is not there), but in the process it mess up the printer motor and belts trying to run on a coordanate that does not exist

M17 ;enable steppers
G91 ; Set relative for lift
G0 Z10 ; lift z by 10
G90 ;back to absolute positioning
G0 X30 Y1 F3600
M190 R28 ; set bed to 25 for cooldown
M190 R28 ; set bed to 25 for cooldown
M190 R28 ; set bed to 25 for cooldown
M190 R28 ; set bed to 25 for cooldown
M190 R28 ; set bed to 25 for cooldown
M190 R28 ; set bed to 25 for cooldown
G0 X30 Y255
G0 Z1v
G0 Y0
G0 X30 Y255
G0 X100 Y255
G0 Y0
G0 X100 Y255
G0 X160 Y255
G0 Y0
G0 X160 Y255
G0 X220 Y255
G0 Y0
G0 Y235
G28 ; home

Problem with G2/G3 Code in continuosprint

Hi,
i try to print gcode with G2/G3 in it. Normal print in Octoprint is ok and prints G2/G3 code, but if i use continuosprint, it doesn´t worked. He prints only G1... code.

Thanks
Florian

queue finished script not kicking off

I added the following code to the "queue finished script"and it is not kicking off. The functionality I need is to raise the print head after the Q finishes so that the hot end does not stick to the last part printed.

M117 All Print Complete
G91 ;Relative positioning
G1 E-2 F2700 ;Retract a bit
G1 E-2 Z20 F2400 ;Retract a bit more and raise Z
G1 X5 Y5 F3000 ;Wipe out
G90 ;Return to absolute positioning

M117 Raising Print head - Turning off
G1 X0 Y{machine_depth} ;Ta Da
M106 S0 ;Turn-off fan
M104 S0 ;Turn-off hot end
M140 S0 ;Turn-off bed

M84 X Y E ;Disable all steppers but Z

Instructions or resources for bed clearing script

Hello, I would love to get this setup, and I will continue doing my own research but it would be handy to include instructions or links to resources where one can learn how to configure a "bed clearing script"

Make sure you have a method of clearing the bed automatically and have set the print bed clearing script or you'll end up messing the first print.

Cheers!

CSS problem in queue list

The height in the CSS is overwritten with 8px.
Bildschirmfoto 2021-06-20 um 16 23 22

The class count-box give the height of 8px.
Bildschirmfoto 2021-06-20 um 16 35 16
In Browser: Safari - Version 14.1.1 (15611.2.7.1.6, 15611)

my extruder cannot hit items off

Hi not a bug really - but my extruder cannot hit items off after it reaches 30 celsius.
I added G4 P1800000 milliseconds after temp reached to wait 30 min more, to see how it will work.

No error message

Hey,
I have to say that I'm still on 1.2.3a0 because of the missing loop function. What I figured out: 'InvalidFileLocation' is not defined because of printfile.gcode does not exist in local storage, cannot select for printing

How to reproduce:
add file to queue, delete file, start print
nothing will happen, even no errors

If it's fixes in the newest version, just close this issue.

Cheers 🥳

Request: Include folders in file search

Love this plugin. Really excited to tune my printers in so they reliably push their prints off of the bed, and require a lot less babysitting from me :-)

I do have one request: can you include the folder names in the file search? (ex. the folder is "Calibration" and the file is "Benchy.gcode", I'm hoping that "Benchy.gcode" will show up when I search "Calibration")

Another idea would be to include a little "add to queue" button for each file in the existing OctoPrint file manager.

Great work on this!

Pause Feature

It sounds like you are supposed to able to pause. I have updated the completed print code to show both @Pause and [PAUSE] but the queue doesn't pause for human intervention.

I wanted to use this feature, like a todo list so i wouldn't have to track manually.

feature request: add support for granular access control / permissions

I have read and upload access for some users currently they have the ability to change settings on the queue which isn't ideal.
It'd be great if the new fine-grained permissions could be added.
The specific permissions I have use-cases for are:

  • add to queue
  • start queue
  • remove from queue
  • toggle looping
  • stop queue

Is this plugin abandoned?

Hi Louis,

I sent an email ~10 days ago asking for your thoughts on upstreaming a substantial refactor I made in my fork of your plugin, after opening up #41 in mid-July as a heads up that I'd be doing some work to incorporate further print automation. I haven't heard back from you in either case.

Every other open issue indicates you're not actively working on this plugin:

  • #44, opened 2021-09-11 and never responded
  • #43, opened 2021-07-20 and never responded
  • #42, opened 2021-07-15 and never responded
  • #33, opened 2021-05-25 and autoclosed twice with no response
  • #27, last interaction 2021-06-12 (reopen from autoclose)
  • #22, last interaction 2021-02-28
  • #13, last interaction2 2021-03-02 (reopen from autoclose)

I'd be happy to adopt the plugin and continue to make improvements, including the ones I've already made in my fork:

  • Status of continuous print automation describing current state
  • Queue items expand to show individual item completion state, number of retries, time it took etc.
  • Triple-dot menu allows clearing all prints or just the successful ones (allowing for retries of failed prints)
  • File list is moved up and collapsable, so that clicking to add a file to the queue doesn't cause the whole UI to shift down
  • Split out logic for the print queue into a separate python module, and unit tested it
  • Split out business logic of handling print actions into a separate module and unit tested it
  • The frontend relies more upon bootstrap.js for dynamic value updates, so JS doesn't need to be injected into the DOM as a string (simpler frontend code.
  • Better handling of the spaghetti detective plugin for automated failed print detection - if SD pauses a print before a configurable time limit, the print restarts (else it pauses as usual and waits for manual input)
  • There is a limit on retries, so if a print fails repeatedly (maybe because it's not set up correctly for good bed adhesion) it'll move on to the next print after clearing the bed again.

Please let me know your thoughts - if I don't hear back in another 10 days (i.e. by 2021-11-20) I'll open an abandoned plugin ticket and begin the process of migrating ownership. If you'd prefer to keep ownership but would prefer not to merge in my changes, I'll gladly publish my edits as a new plugin.

(Feature Request) skip job in queue

Hi,
I'd like to disable some jobs in the queue without crossing them out. I thought I just can set the amount to 0 (zero). But it will still print.
But the way, I can't move the job wich is on the top of the list.
cheers

Bug in Cleaning Script

After a fresh install the cleaning script shows:
M17 ;enable steppers
M91 ; Set relative for lift
G0 Z10 ; lift z by 10
G90 ;back to absolute positioning
M190 R25 ; set bed to 25 for cooldown
G4 S90 ; wait for temp stabalisation
M190 R30 ;verify temp below threshold
G0 X200 Y235 ;move to back corner
G0 X110 Y235 ;move to mid bed aft
G0 Z1v ;come down to 1MM from bed
G0 Y0 ;wipe forward
G0 Y235 ;wipe aft
G28 ; home

M91 is wrong. G91 is correct: https://marlinfw.org/docs/gcode/G091.html

REST API Call to add File to queue

Hi to all,

i like this Plugin very much, i am using it in my printer farm for all printers.
Is there a way to add files to the queue by an API Call or can it be added to the plugin?

Greetings Wolfgang
3D Maker Lab

Chromium Virtual Keyboard issues

Hello,

I really love this plugin because it works perfectly the way I want it.
There is only one issue for me, I am using a raspberry pi with a 10'' touchscreen running in Kiosk mode to open the octoprint server for my 3D printer. In chromium I have installed the Virtual Keyboard plugin which works great to adjust the temperature or changing the feed/flow rate.
Unfortunately this keyboard only doesn't work with this plugin. When I press the ''search'' button of the plugin the keyboard will pop up, but when I press the ''1'' area to change the value the keyboard doesn't pop up.

Do you thing it is possible to fix this issue? otherwise I have to use a separate numpad keyboard to change the value.

Thanks in advance!

Merijn

Problems with clearing script after update

I dont know why im having issues all of a sudden by both of my printers that are using a bed clearing script in the past have both started running into the print and cause the printer to shut down due to binding issues. I am also having issues with the printer waiting until the bed temperature reaches it's cooling temp. It always tries to clear 5 to 10 degrees hotter than what is assigned.

M140 S0 ; set bed temp

M17 ;enable steppers

G91 ; Set relative for lift

G0 Z30 ; lift z by 30

G90 ;back to absolute positioning

M106 ; turn fans on

G0 X0 Y235

G0 X75

G0 Y230

G0 Z10v ;come down to .1MM from bed

G4 S600
M300 S400 P1000
G4 P1200 ; Pause for 900ms
M300 S400 P1000

M140 S35 ; set bed temp
M190 R35 ; wait for bed temp

M140 S35 ; set bed temp
M190 R35 ; wait for bed temp

M140 S35 ; set bed temp
M190 35 ; wait for bed temp

M190 R35 ;verify temp below threshold

M300 S400 P900
G4 P1200 ; Pause for 900ms
M300 S400 P900
G4 P1200 ; Pause for 900ms
M300 S400 P900
G4 P1200 ; Pause for 900ms
M300 S400 P900
G4 P1200 ; Pause for 900ms
M300 S400 P900

G0 X0 Y230 ;move to back corner

G0 Z10v ;come down to .1MM from bed

G0 Y0 F6000 ;wipe forward

G0 X185 Y0

G0 x0 Y230

G0 X215

G0 Y0

G0 x0 Y0

G0 X200

G0 X0 Y230

G0 Z25 ; lift z by 10

M300 S400 P400
G4 P800 ; Pause for 400ms
M300 S400 P400

Add CR-30 Bed cleaning script to wiki

Here's a very simple script for bed clearing for the Creality CR-30

M17 ; enable steppers
G91 ; Incremental Positioning
G1 Z75 F200 ; advance z-axis by 50 to account for printhead overhang + 25 for purge line
; G1 Z550 F200 ; advance z-axis by 550 to clear the belt
G90 ; Absolute Positioning
G28 ; home

The default Bed cleaning script causes the CR-30 to try to print over the previous print, this one just advances the belt by 50 and then the next job can start... I'm a total noob, so there very well should be addtional things done, but hopefully others from the community can build off this.

Submitting this as an issue because Wiki is restricted to collaborators only, so I couldn't edit it.

Looks like a bug to me

In continuousprint.js, self.files.addtoqueue()....
var sd="true";
if(data.origin="local"){
sd="false";
}

Shouldn't the if() use a double equals?

Wait for bed cooldown not consistent between printers.

The G-Code command M190 (Wait for Bed Temperature) does not always wait for the bed to meet the target temperature. This is dependent on your printer, and often results in the clear bed routine running before the bed has cooled down fully causing the print to not eject from the bed or at worst damage to the printed part.

I have created a PR for a bed cooldown routine that can be set by either a target temperature or a timeout being met.
This change has been tested by me and has been run on my printers since october.

#46

API changes in new version

The new version ( >= 1.3.0 ) has changed the API. My plugin called the old resumeQueue function from the API. This now returns a 404 error.
What is the new API to use for this plugin, or where can I find it?

How I use to call it:

self.resumeQueue = function() {
			$.ajax({
				url: "plugin/continuousprint/resumequeue",
				type: "GET",
				dataType: "json",
				headers: {
					"X-Api-Key":UI_API_KEY,
				},
				data: {}
			});
		}

Thanks.

Is this possible with continousprint?

Hi. I've not tried using the plugin yet but I just wanted to see if this is possible.

I want to manually remove objects from the print bed myself but I want to be able to hit a button on the printer or somewhere and trigger the next item in the queue to print. Is it possible to set up continuousprint to work like this?

Feature request: auto-retry a print when retriable failures detected

I use Spaghetti Detective to monitor my CR30 belt printer via webcam and detect whenever my prints start turning into spaghetti. I think it'd be really neat to tie that failure detection together with continuous printing and retry prints when they spaghettify.

A few ideas I've had so far:

  1. configurable retry limit so it's not just creating infinite spaghetti if the print actually has a non-transient problem
  2. threshold of printing time/filament beyond which it still waits for manual input (prevent hours of lost productivity if the print is almost complete)
  3. detect when the printer pauses due to e.g. running out of filament, and staying paused when manual intervention is a known requirement.

I've implemented 1 and 2 in my latest commit to https://github.com/smartin015/continuousprint/tree/auto_retry. 3 I think could be done with a bit more custom gcode (Marlin has M412 to get status of filament runout sensors).

Current settings page:
image

Before I got too far along, I wanted to check to see if this is a feature the plugin maintainers would bless and allow to be upstreamed, or if I should just make it work enough for my own purposes :) Let me know either way; happy to shape it up into a PR if you want it.

Is this project abandoned?

Hey @Zinc-OS ,

I really appreciate your work on this plugin!
I would kindly like to ask if you still wish to maintain this project?

There are several issues piling up and I have had a PR open since October of last year. #46

I know myself and @smartin015 would love to be set as collaborators so we can share the workload.

If I don't hear back in 14 days so 2/28/22 I will open an abandoned plugin request with octoprint.

Of course, I would love for you to continue to maintain this plugin if that is what you want!

Respectfully,

Will

wont work after update 1.2.0

Hi,
I updatetd the plugin today and now I can't add any files to teh queue. I hit the + Symbol an nothing happen? How can I find a solution?
Best regards

Bed homing after a print instead of clearing the bed

Hi

I am having a problem clearing the bed after a print.

For some reason the printer is trying to home after the print and coaching in to the print, instead of running the clearing script.

I had this working fine a few months ago but cant seem to get it to work now and I have 108 identical parts to print.

The printer is an ender-3 running a SKR Mini E3 V2 and a BL Touch (I dont know if that makes a difference)

The script is below:

M17 ;enable steppers
G91 ; Set relative for lift
G0 Z10 ; lift z by 10
G90 ;back to absolute positioning
M190 R25 ; set bed to 25 for cooldown
G4 S90 ; wait for temp stabalisation
M190 R30 ;verify temp below threshold
G0 X200 Y235 ;move to back corner
G0 X110 Y235 ;move to mid bed aft
G0 Z1v ;come down to 1MM from bed
G0 Y0 ;wipe forward
G0 Y235 ;wipe aft
G28 ; home

The Cura finishing script is:
G91; set coordinates to relative
G1 F1800 E-3; retract
G1 F3000 Z10; lift nozzle off the print 10mm
G90; change to absolute
G1 X0 Y220 F1000 ; prepare for part removal
M106 S0 ; turn off cooling fan
M104 S0 ; turn off extruder
M140 S0 ; turn off bed
M84 ; disable motors

I really hope you can help as I really need to automate printing these as if I am not running the printer overnight I won't get it printed in time.

Kind Regards
Ryan

Request: Tweak/option to tweak queue logic.

I would like to use this as a way to queue prints so others can clear the plate and just hit "continue" or "print". I can't find a way to get the printer to send an unpause/continue unless there's a currently paused print, but I can send a host start.

Currently, after the print finishes, and during the in-between gcode, the old print is left loaded.

If you can make it (or make it an option/checkbox) so the next file to print is loaded before running between-print code, or when [PAUSE] is called, or a special [PREPARE] is called, this would work, as then after this is triggered (currently after a [PAUSE]), it could just be started with host start, and continue through the queue. Otherwise I'll be looking into a physical button for octoprint.

Edit: Alternatively, expose the resume function for this plugin (it has to be the resume in the continuous print tab, correct?) to action commands, so I can call it from a custom M118 menu option, easy enough in marlin.

Edit2: This seems simpler for you to implement? I'm only a script kiddie, but I'll try to contribute.

As an example..
to load the action receiver, in your init add to

388  global __plugin_hooks__ 
389 __plugin_hooks__ =  { 
390	"octoprint.plugin.softwareupdate.check_config": __plugin_implementation__.get_update_information,
391	"octoprint.comm.protocol.action": __plugin_implementation__.resume_action_handler 
392   } 

and then add the handler:

def resume_action_handler(self, comm, line, action, *args, **kwargs):    # not sure if we need all of the args
        if not action == "queuego":    # listen for your command here
            return    # end if it doesn't match
        if self.paused == True:    # only run if we're actually paused
            self.paused = False    # unpause
            self.start_next_print()    # start the print

Then I can hopefully send a M118 //action:queuego from the printer and it'll start the next print.
I'd keep the command short, it seems some firmwares cut off the sent text after a certain length.

Edit3: looked more into it, cleaned up code above, and implemented it, while removing update section to prevent getting overwritten. plugin loads, will get back to you in morning (after first print finishes) to let you know if it's good as-is. Custom marlin command was easy to implement, I can probably make a section to add to your readme for it.

Edit4: That was easy, 8 line change! It works fine. Let me know if you implement, I'll delete my modified copy and get back on updates.

Marlin details: in Configuration_adv.h

// Custom Menu: Main Menu
#define CUSTOM_MENU_MAIN //enable custom menu
#if ENABLED(CUSTOM_MENU_MAIN)
  #define CUSTOM_MENU_MAIN_TITLE "ContinuousPrint" //something other than "custom commands"
  //#define CUSTOM_MENU_MAIN_SCRIPT_DONE "M117 User Script Done" //no feedback
  //#define CUSTOM_MENU_MAIN_SCRIPT_AUDIBLE_FEEDBACK //NO AUDIO
  #define CUSTOM_MENU_MAIN_SCRIPT_RETURN   // Return to status screen after a script
  #define CUSTOM_MENU_MAIN_ONLY_IDLE         // Only show custom menu when the machine is idle

  #define MAIN_MENU_ITEM_1_DESC "Resume Queue" //name here
  #define MAIN_MENU_ITEM_1_GCODE "M118 //action:queuego" //command here

#endif 

Feature request: Counter for the whole queue or for single file

Hey,
I really love the counter. Is it possible to add an counter for the whole queue?
For example:
Option 1
Queue
File A count: 3
File B count: 5
File C count 2

Option 2
Queue count: 6
File A
File B
File C

In the second option I'll get 6x A. B and C. That would help alot.

Cheers

See total + per-item print times

Huge fan of this plugin!

Something that I'd love to see would be more information about print times, since the main Octoprint UI only shows timing for the current print, and the duration column currently only shows time for prints already complete.

I'm not a designer, but here's a screenshot of a quick edit I did to try and capture the idea:

image

Note the "Time remaining" added to the header, the duration values populated in the table (could maybe gray/fade times for prints that haven't started yet?), and the elapsed / total times shown in the progress bar of the active print file

Design cleanup suggestions

Love this plugin! Had some ideas from using it that might make it clearer + easier to use, especially for new users

  1. In the print queue hamburger menu on the top right, change "Clear all completed items" to just "Clear all items". Completed and successful sound too similar to me. I'd also suggest removing the divider between the two, since other dropdowns in Octoprint (like the user menu in the top right) don't have dividers
  2. Change the red minus to be an X (fa-times), which can't be confused with the concept of reducing quantity
  3. Change the quantity input to be type number, which means the browser can be smarter about how it treats it (showing +/- increments on desktop, changing the keyboard to be a numpad on mobile) - right now it's type=text
  4. Streamline the UI by
  • remove the File List section (since it's duplicative of the main Octoprint file menu)
  • divider bar and "Print Queue" header
  • move the hamburger icon to be next to the Start / Stop Managing button
  • add a bit of padding between the top right action buttons
  • on the queue list div, change overflow-y: scroll to auto, to hide the scroll bar when not needed
  • on the file names, change overflow-x: scroll to auto, to hide the scroll bar when not needed
  • add a touch of padding to the table (td, th {padding: 0 3px;})

Screenshot of a quick mockup:

image

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.