Jyers / Marlin

Marlin is an optimized firmware for RepRap 3D printers based on the Arduino platform. | Many commercial 3D printers come with Marlin installed. Check with your vendor if you need source code for your specific machine.
http://marlinfw.org
GNU General Public License v3.0
2.14k stars 386 forks source link

Issue with Pause and Change Filament #1906

Open johncarlson21 opened 2 years ago

johncarlson21 commented 2 years ago

Description

Jyers 2.0.1 BL touch HS 5 x 5 Ender 3v2 Controller flashed Controller Pause to do a filament change.

I slice and start printing a model, I choose when I want to do a filament change, once i've finished the filament change and the head moves back and starts printing, it seems that the Z is up just a hair and the print starts and it prints, but it seems like the adhesion is no good and you can just break the part at the filament change.

Original ender 3v2 firmware does not move Z up when you click "Pause"

Steps to Reproduce

  1. Slice in Cura
  2. Start Print
  3. Wait till specific level
  4. Press "Pause" on the controller and change the filament
  5. Press "Resume"

Expected behavior: Print should resume just fine and get good adhesion.

Actual behavior: Print resumes and adhesion is not good, part breaks, and sometimes there are gaps in the outer walls. Especially if you do not check the "Outer before Inner Walls" option in Cura. Also doesn't seem to matter if I use "Pause" or go into "Tune -> Change Filament"

FullSizeRender

johncarlson21 commented 2 years ago

@tititopher68-dev I understand they are managed by Gcode, but somewhere it is changed to that it lifts the head to home to the corner on pause which makes me think that something changed in the firmware or there is a setting in the config files. Like I said the Ender 3v2 firmware did not do the Z up, it just moved XY to the corner and worked every time. As for compiling myself, I've never done this and would love to if I had some good instructions etc, based on the BLTouch 5x5 HS release.

I use Cura 4.12.1 and do use Z-Hop when retracted, but that shouldn't affect manually using the "Pause" on the controller should it? Any help is greatly appreciated.

johncarlson21 commented 2 years ago

@tititopher68-dev I'm not using Cura pause script etc. I slice it like I'm going to print it in one color, and I use the "Pause" on the controller. So it is using the firmware/machine pause. Just like if I wanted to stop a print I would use the controller and choose the "Stop" option.

Again, I'm using the 2.0.1 4.2.2 BLTouch 5x5 firmware from Jyers and flashed the controller with the firmware for it also. Just using the Controller no other scripts to do the pause.

That picture was from before we turned on Outer before Inner walls option. It fixed it some, but still gaps and very fragile at the filament change.

johncarlson21 commented 2 years ago

I haven't updated to 4.13 yet as I seen some stuff about a few bugs. I will give this a try, but I also noticed that this is happening on on machine but not another, so it leads me to believe there is something else maybe going on.

sergejbubko commented 2 years ago

Hi. I also have this or similar issue, but I gave up trying to solve it. This is a Jyerses answer closing my issue in October.

https://github.com/Jyers/Marlin/issues/1347#issuecomment-950262232

Unfortunately I don’t know what he means by ‘set your slicer to layers not height’. I am using PrusaSlicer and never heard about it or be able to google this. Colour change worked for me when I had stock fw maybe even without BL touch. After I updated to Jyers or/and added BL touch or/and started using OctoPrint I can not resume correct print height after filament change or pause print using M600 or M125 in PrusaSlicer or using filament change option from printer menu.

@tititopher68-dev do you have any idea, what was Jyers talking about? Thank you!

johncarlson21 commented 2 years ago

So I've since left using Jyers and went to Mriscoc Firmware because I wasn't getting the answers. I found that the issue is because of a config of minimum Z height. in the Configuration.h file this was the answer:

define NOZZLE_PARK_Z_RAISE_MIN 0

Jyers has the same config with a value of 5mm

define NOZZLE_PARK_Z_RAISE_MIN 5 // (mm) Always raise Z by at least this distance

so if you change that to 0 save it and compile your own firmware it will give you the ability to change the z height when using M600

so M600 Z0.00 will actually stay at 0

however if you are using Cura like I was, you actually need to change the plugin script, because if it sees 0, it doesn't put the value in.

johncarlson21 commented 2 years ago

I'm guessing that is quite a larger size of text. And that isn't on the side

johncarlson21 commented 2 years ago

Whoops thought I was on a different thread. Yeah it does work. Just not as good for what we are trying to do

johncarlson21 commented 2 years ago

Again, yes this is in the firmware as you see above you will notice what I changed

sergejbubko commented 2 years ago

I made a simple cylinder 20x20x15 mm in PrusaSlicer and add colour change M600 at height 5 and 10 mm. This is the result:

IMG_20220331_211621 IMG_20220331_211330

I am adding gcode for this model (PETG 225/75) Shape-Cylinder_PETG_24m_3g_2022-3-31.gcode.txt

If it's a slicer issue, I guess that @tititopher68-dev gets the same result as me. Could you try it, please?

johncarlson21 commented 2 years ago

I will try to do this a little later tonight.. but for me, my main problem was Retract at Layer Change, which I'm not seeing in your code, maybe a .75mm but mine was after the M600, and then the fact that it lifted the Z height and then went back to the Z height..

johncarlson21 commented 2 years ago

so I had to change just a few things in your file for my temp settings and my bed leveling but I ran yours and I would say mine does not look as bad as yours, however, I notice yours is doing some type of wipe between layers and a bit of retraction right before it resumes the print over the part. Leaving no outer walls.

I use Cura and like I said one of my main issues was the Retract at Layer Change which would put a retraction after the M600 and cause it to not have filament in the nozzle. I think yours does retractions before the M600 but I think it is affecting it. My other issue was when it would resume it just wouldn't stick right on the filament change layer, leading me to believe that something was up with the whole Z up and park, then move back and Z down. The adhesion wasn't good.

If you have Cura I can send you a profile I use for Pro PLA and you can test the filament change there. Also what filament are you using? Those are some high temps.

IMG_2090

IMG_2089

ims21 commented 2 years ago

I am using M600 in script in Simplify3D for changing filament on layer without any problem...

johncarlson21 commented 2 years ago

@ims21 yes I have it figured out on my end for the big issue in the slicer but I still wanted the ability to set the Z when running the M600 but you can only set it at 2mm or above. I like it at 0 so I can wipe the nozzle when it moves back.

sergejbubko commented 2 years ago

I will try to do this a little later tonight.. but for me, my main problem was Retract at Layer Change, which I'm not seeing in your code, maybe a .75mm but mine was after the M600, and then the fact that it lifted the Z height and then went back to the Z height..

I think that the main issue here is also the lifting. As I mentioned Jyerses comment, Jyers have closed my issue, but I didn't solve anything. After resume from M600 or M125, the nozzle prints in mid air, which causing this gap.

If you have Cura I can send you a profile I use for Pro PLA and you can test the filament change there. Also what filament are you using? Those are some high temps.

I am not very familiar with Cura. I've tried to slice the same model in Cura (it was 4.1.0 version) just to prove it is not a slicer issue and have the same results. It was PETG Sunlu.

If I understand correctly, you recommend to build my own version with #define NOZZLE_PARK_Z_RAISE_MIN 0. Retractions are default values from PrusaSlicer. It happens every time layer changes. Also before the printer resumes from M600 it primes the nozzle.

johncarlson21 commented 2 years ago

@sergejbubko yes you would need to build your own firmware changing that, and also if using cura you have to update the post script file for filament change and I'm not sure if putting it in prusa is manually or not.

Hologos commented 2 years ago

Isn't this issue caused by the fact, that when you do a filament change and you do the purge, although the extruder stops feeding more filament, the filament is still oozing from the nozzle so there is now a gap? I takes some time to prime the nozzle again.

Try to print the model with inside to confirm. Or at least print couple of layers before the filament change and couple of layers after.

When I do the filament change in my project, I add what's called a wipe tower. Immediately after the the change, the very first layer I print is the wipe tower one. This ensures the nozzle is primed well for the actual part.