@dc42 Thank you very much it works, I had to reread the Documentation to remember to use two double quotes to add a double quote to a string, to set globals in a datetime format.
Best posts made by modl
-
RE: Questions regarding various job time
Latest posts made by modl
-
RE: Duet 3 MB6HC 3.5.2 in standalone mode: trouble connecting to DWC
Hi, I'm having the same problem, except I'm stuck in a reconnecting / /connected / disconnected loop. Refreshing or closing firefox , and deleting all sites data , doesn't work.
It happens after a somehow long operating time (~ 2 weeks)Irecently upgraded everything to 3.5.3
-
[3.4.6][possible bug?]babystepping offset in resurrect.g
Hello everyone
In resurrect.g generated after a power failure something looks weird with the way z height is handled.
Example from a few hours back (but happened a few times before): powerloss during a print at Z22.380 while babystepping is -0.10.
Resurrect.g has G92 Z22.380 in the beginning , then sets babystepping back to -.10, then goes to last print move at 22.280 .Last time i had a hint about this happening, different print, babystepping was set to .30 when power failure occured, I didn't take a look at the details in resurrect this time but the resuming layer was exactly .3 too high and i had to set babystepping back to 0 to compensate.
Let me know if you need more info
Best
-
RE: Handling powerloss while G4 in a macro, during a print
@chrishamm Thank you very much I'll stick with the G4 in the macro then. Will report if the event occurs
-
Handling powerloss while G4 in a macro, during a print
Hi everyone,
I have a question : for my specific porject, I have a macro on every layer change that calculates a dwell timing for the print to take a specific time to complete. I was thinking of a scenario: what happens if the printer is shut down (either accidentally or intentionaly) during the G4 command executed from a macro, called from the print ? Will the frimware be able to generate a proper resurrect.g with the correct parameters ?
If no: I was thinking of three things to mitigate this:
-add a dwell right after the macro call in the print file. Tricky, I have a file currently being printed that will go on for one year, i.e. I can't modifiy the original file. Do we have a way to "dynamically" add gcode to the file being printed ?
-call the dwell from deamon.g using a global, we would be out of a macro, would that pause the print ? Or just the deamon? (can't test right now, printer has been shut off and I won't be able to run such tests confortably as i'll be handling it remotely)
-call M27 and M114 from the macro so I can make a custom reusrrect.g . Will their output get written in the eventlog ? If not can I write the output to a file ?Thank you all in advance
Best -
RE: Gap in printing concentric circles-(CW side)
@JayT In most slicer you can choose where the seam is located. The seam is where an external perimeter starts and end, it usually creates an irregularity at that point
Prusaslicer
-
RE: Dual extruder - Preheat nozzle before tool change
Hi eveyone here is an update on this. So I'm stil lnot able to have Prusa's macro to work, in the meantime I did two things , one is working the second remains to be tested. I needed to implement the first solution in deamon.g to accomodate an ongoing long print (2weeks) that didn't have a single macro called on tool changes.
This assumes that succesive layer times have little variations (successive tool work times are approximately similar) which is the case for me with variations from layer to layer being a couple tens of seceonds at max . The thing is, every tool is going to be preheated regardless of their future usage, which is OK in my case as both tools are used until the last layers
Here is what i have in deamon.g
if state.status == "processing" if exists(global.previousTool) if state.currentTool != global.previousTool ; executes right after tool change G10 P{abs(state.currentTool - 1)} R160 if exists(global.newToolchangeTime) ; intitialize previous tool change time with last know tool change time if !exists(global.previousToolchangeTime) global previousToolchangeTime = global.newToolchangeTime else set global.previousToolchangeTime = global.newToolchangeTime if !exists(global.newToolchangeTime) ; update tool change time global newToolchangeTime = state.time else set global.newToolchangeTime = state.time echo "Last Toolchange time was :", global.previousToolchangeTime ; see if it works as intended echo "New Toolchange time is :", global.newToolchangeTime if exists(global.newToolchangeTime) && exists(global.previousToolchangeTime) echo "Calculating time between last tool changes..." if state.currentTool == 0 if !exists(global.lasttoolworkduration0) global lasttoolworkduration1 = global.newToolchangeTime - global.previousToolchangeTime else set global.lasttoolworkduration1 = global.newToolchangeTime - global.previousToolchangeTime if state.currentTool == 1 if !exists(global.lasttoolworkduration1) global lasttoolworkduration0 = global.newToolchangeTime - global.previousToolchangeTime else set global.lasttoolworkduration0 = global.newToolchangeTime - global.previousToolchangeTime if exists(global.lasttoolworkduration0) echo "It took", global.lasttoolworkduration1, "s between two tool changes from 1 to 0" else echo "Not enough tool changes were sampled" if exists(global.lasttoolworkduration1) echo "It took", global.lasttoolworkduration0, "s between two tool changes from 0 to 1" else echo "Not enough tool changes were sampled" if !exists(global.previousTool) global previousTool = state.currentTool else set global.previousTool = state.currentTool if !exists(global.preheatingoffset) global preheatingoffset = 40 else set global.preheatingoffset = 40 ; start heating up 60 seconds before next layer if exists(global.previousLayerTime) && exists(global.lasttoolworkduration0) && exists(global.lasttoolworkduration1) if state.currentTool == 1 && state.time >= global.newToolchangeTime + global.lasttoolworkduration1 - global.preheatingoffset echo "Preheating extruder ", abs(state.currentTool - 1), "..." G10 P{abs(state.currentTool - 1)} R{heat.heaters[abs(state.currentTool -1) + 1].active} ;G10 P{state.currentTool} R150 elif state.currentTool == 0 && state.time >= global.newToolchangeTime + global.lasttoolworkduration0 - global.preheatingoffset echo "Preheating extruder ", abs(state.currentTool - 1), "..." G10 P{abs(state.currentTool - 1)} R{heat.heaters[abs(state.currentTool -1) + 1].active} ;G10 P{state.currentTool} R150
Now the goal, and second solution will be to execute a macro called preheatextruders.g in prusaslicer tool change custom gcode that will handle the Time globals
and let deamon.g do the regular checksIt's DIY and has a rather narrow scope i know but I hope it can help others in similar situations
-
RE: Troubleshooting print quality issue - frosty effect
So I should have looked closer at the gcode before but it's actually quite messy so there could be this
Anyway I setup a wipe tower for both extruders. Created a 40mm wide, .4mm thick pipe, sliced it in the place i want the wiping to happen with the two extruders separately, extracted the gcode for 1 layer for each, deleting the G1 Zx.xx instructions, and created a macro called wipetower.g executed on every tool changes. In the macro depending on the tool selected it will extrude the corresponding circles (2 lines wide for .2mm nozzle and 1 for .4mm) at the designated place.
Will test and reportI also redesigned the cooling system that i was not really happy with, should be much better
I'll definitely look into having smoother walls for the organic support but I don't think we have much control over this...
-
RE: Troubleshooting print quality issue - frosty effect
@o_lampe said in Troubleshooting print quality issue - frosty effect:
I don't see a reason to add extra PA, because you have PTF tube before the hotend. Unless you also have an inline extruder pushing filament into this tube...
My advice would be to purge after toolchanges. Even when you retract the parked tool 10mm, some filament remains in the nozzle and overcooks.
It's either- active cooling of the unused hotend (watercooled heaterblocks are rare) or
- setup a purge tower in Prusa-slicer (which isn't easy with different nozzle diameters)
- define your own purge corner in the toolchange macros
My thought process was that the added resistance of the long ptfe tubing was adding springiness to the whole extrudion process, a lag. I'll still test it anyway and not just rely on predefined values to be 100% sure.
Active cooling of the hot end: can't do
Purge tower in prusa with two different nozzles is not possible in prusa slicer options indeed. I could set up something in the tool change gcode section (i like the idea that it is embedded in the gcode and doesn't interfere with the purging and tool changes of the resurrect , start, etc... like printing 2 concentric circles in some place of the bed at every tool change. Shouldn't be to hard. Is it what you had in mind ?
Purge corner seems doable too, I'm not familiar with the technical solutions for this but will look into it.
Thank you for your help!
-
RE: Troubleshooting print quality issue - frosty effect
@T3P3Tony Actually i didn't test the PA setting, just used the recommended value for direct drive extruders but that is a mistake as I have this long tubing setup and specific nozzles for each extruder.
So will try testing this after everything else seems correct (iirc PA is the last thing to be set regarding extrusion?)For now retraction distance is 1mm at 30mm/s , i have set deretraction speed to 0 in prusa, maybe i should correct that actually. The retraction on tool change for the parked tool is 10mm. I don't have any "extra length on restart" or "deretraction extra length". Maybe that could help but the print is not stringy so it doesn't seem like some material is dripping during travel moves or when an extruder is on standby.
You also mentionned extrusion factor.
Should i just do single wall small diameter towers to reproduce said small features and test varying settings for all those factors ? Or are there more elaborate benchys you might think of ?
-
RE: Troubleshooting print quality issue - frosty effect
@T3P3Tony thank you , i have tested many temperature settings and did a few temp towers, I think this at least is on point. What other basic tests do you suggest i should run ?