.
zinc-os / continuousprint Goto Github PK
View Code? Open in Web Editor NEWThis project forked from nukeem/continuousprint
Octoprint plugin to allow the creation of a print queue that prints, clears the bed and then prints again
This project forked from nukeem/continuousprint
Octoprint plugin to allow the creation of a print queue that prints, clears the bed and then prints again
.
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
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
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
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!
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.
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 🥳
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!
Hello.
I reinstall like 3 times the plugin, and when I start the continuous print queue , it starts with the cleaning bed script.
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.
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:
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:
I'd be happy to adopt the plugin and continue to make improvements, including the ones I've already made in my fork:
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.
Hi,
can you add a option to deactivate bed clearing after the last job.
Best regards
Andi
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
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
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
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
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
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.
In continuousprint.js, self.files.addtoqueue()....
var sd="true";
if(data.origin="local"){
sd="false";
}
Shouldn't the if() use a double equals?
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.
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.
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?
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:
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).
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.
As the newest version works, I'm missing the loop button.
I use this with a sand table and would like a way to delay between prints so the drawing can stay for a while, then draw the next, etc...
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
The plugin stop after the first print
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
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
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
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
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:
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
Love this plugin! Had some ideas from using it that might make it clearer + easier to use, especially for new users
Screenshot of a quick mockup:
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.