Can't get pinda height and live adjust z calibrated
 
Notifications
Clear all

Can't get pinda height and live adjust z calibrated  

  RSS
Derek
(@derek-8)
Eminent Member
Can't get pinda height and live adjust z calibrated

A few days ago I had a large print fail overnight when the cable for the heated bed came loose, caused the ABS to peel up and hit the nozzle, ruined the whole print and threw the whole thing off of calibration, etc. Thankfully I already had a pinda probe protector on it as it seemed to be OK.

However now I'm not so sure. Getting everything adjusted back again, I just can't seem to get a height for the pinda probe that will require only a small amount of live adjust z. I adjusted the pinda probe height where if I raised it any higher the nozzle tip would hit a single piece of paper during the mesh bed leveling. So then I run the V2 calibration to tune in the live adjust Z, and even after lowering it down 3mm it still wasn't low enough! So I tried raising the pinda probe by just a single 1/6 turn of the nut, and sure enough it was hitting the paper during the mesh bed leveling.

I have no idea what to do. Is the pinda probe suspect? Is my nozzle becoming loose and changing height?

Posted : 10/03/2017 6:22 am
Steve
(@steve-6)
Estimable Member
Re: Can't get pinda height and live adjust z calibrated

I am having the exact same issue today, after upgrading to the latest firmware, so I suspect your PINDA is ok.

I finally have the XYZ calibration completing satisfactorily, without the head dragging on the paper in the first 4 sensing positions, having made some minor adjustments to PINDA height..

When I print the Calibration G code though, the value I enter for live Z makes no difference whatsover. . I just can not get the first layer to stick.

If I play with the PINDA height, the head will either crash into the bed or not pass the XYZ calibration.

I am about to try reinstalling the firmware again in case something is corrupted.

Posted : 10/03/2017 9:51 am
Derek
(@derek-8)
Eminent Member
Topic starter answered:
Re: Can't get pinda height and live adjust z calibrated

Hmm, that's a good idea. I had installed the most recent firmware upgrade myself. I'll try re-installing the most current firmware first, then if that doesn't work I'll try rolling back to the previous version.

Posted : 10/03/2017 2:20 pm
Derek
(@derek-8)
Eminent Member
Topic starter answered:
Re: Can't get pinda height and live adjust z calibrated

steve.j, my printer will pass the XYZ calibration perfectly, with the axes perpendicular. However I just can't seem to get the live adjust Z to do anything.

However in your case where you either can't pass XYZ calibration or the nozzle hits the bed, I did have that specific problem a couple of weeks ago when I was putting the printer back together after some maintenance. What actually was the cause was that when adjusting the axes by moving the nuts that hold the Y-axis threads to the main metal frame, the Y-axis threads weren't sitting all the way down into the grooves on the frame. That meant the whole bed wasn't parallel with X-axis since one end was now higher than the other. After I realized that and fixed it it passed without a problem. It was really hard to figure out because the error messages when failing the XYZ calibration were completely unhelpful: it always indicated that I needed to move the bed forward or backward, when the real cause was that it wasn't level with the frame.

Posted : 10/03/2017 3:08 pm
tom.a3
(@tom-a3)
Active Member
Re: Can't get pinda height and live adjust z calibrated

I cannot get a decent first layer with mine since installing the latest firmware, unfortunately I played about with the PINDA height and other settings trying to make it work instead of just going back to the previous firmware version. So frustrating............

Posted : 11/03/2017 12:40 am
Derek
(@derek-8)
Eminent Member
Topic starter answered:
Re: Can't get pinda height and live adjust z calibrated

OK, I think I figured out the problem, or at least I fixed it even if I don't have a 100% understanding of what caused the problem.

Here was the problem as I understand it. I would run V2Calibration.gcode and change the Live Adjust Z while it was printing until the extrusion looked right. I would normally only lower it by maybe a maximum of 0.1mm during a single print of V2Calibration, and then re-run it several times while I slowly homed in on the right height. However even after running it many, many times and the Live Adjust Z continually going lower and lower, and lower until it was well past 1mm, it still wasn't getting any better. So I ran it again and this time while it was running I lowered the Live Adjust Z all the way down to -0.7mm and then back up to 0mm. I could clearly see in the middle where the nozzle was lower and the printed filament was getting squished out much thinner and wider, in fact it had gone too far to the point where it was hard to peel it off the bed.

So at least I verified that the live Z adjust was actually changing. The next question was, is it actually saving the live Z adjust value I tried printing V2Calibration again, and this time I lowered the Live Adjust Z to -0.5mm during the print, which looked to be about right, and left it there. Then I immediately ran V2Calibration again. The printer was acting as if the Live Adjust Z was back to 0mm, even though it clearly said 0.5mm! What could cause that?

I think the problem stemmed from me running a self-modified version of the V2Calibration.gcode without me understanding everything that I had changed.

I while back on this thread on reddit I found some code for changing the custom start gcode so that it would do the nozzle heating after it did the bed level so that it wouldn't leave melted filament behind during the leveling step. The original code is this:


M115 U3.0.8 ; tell printer latest fw version
M83 ; extruder relative mode
M104 S[first_layer_temperature] ; set extruder temp
M140 S[first_layer_bed_temperature] ; set bed temp
M190 S[first_layer_bed_temperature] ; wait for bed temp
M109 S[first_layer_temperature] ; wait for extruder temp
G28 W ; home all without mesh bed level
G80 ; mesh bed leveling
G1 Y-3.0 F1000.0 ; go outside pritn area
G1 X60.0 E9.0 F1000.0 ; intro line
G1 X100.0 E12.5 F1000.0 ; intro line

And I changed it to this:


M115 U3.0.8 ; tell printer latest fw version
M83 ; extruder relative mode
M140 S[first_layer_bed_temperature] ; set bed temp
M190 S[first_layer_bed_temperature] ; wait for bed temp
G28 W ; home all without mesh bed level
G80 ; mesh bed leveling
G1 Y-3.0 X0 Z10.0 F1000.0 ; move outside the print area and above the bed to heat
M104 S[first_layer_temperature] ; set extruder temp
M109 S[first_layer_temperature] ; wait for extruder temp
G1 Y-3.0 X0 Z10.0 F1000.0 ; move outside the print area and above the bed to heat
G1 E3.0 F1000.0 ; begin extrusion
G1 X20.0 Z0.2 E3.0 F1000.0 ; move down to bed while extruding
G1 X60.0 E9.0 F1000.0 ; intro line
G1 X100.0 E12.5 F1000.0 ; intro line

I like this code because not only does it heat the nozzle after the bed leveling, it extrudes and moves the nozzle during the initial lowering so that it further reduces the chance of melted filament sticking to the nozzle. It worked well and I had used it ever since. Well, since my ABS print failed and screwed up my calibration and everything a few days ago, I wanted a version of V2Calibration.gcode that had the same starting gcode. So the first part of V2Calibration.gcode (up through pre-extrusion at the bottom of the bed) is this:


M107
M104 S210
M140 S55
M190 S55
M109 S210
G87
G88
G28
G92 E0.0
G1 X60.0 E9.0 F1000.0
G1 X100.0 E12.5 F1000.0

In order to change it for ABS but without changing anything else, I just needed to change lines 2-5:


M104 S255
M140 S100
M190 S100
M109 S255

But in order to have the same heating the nozzle after the bed leveling and having the initial extrusion while the nozzle lowers, I changed the first part of the code to this:


M115 U3.0.8 ; tell printer latest fw version
M83 ; extruder relative mode
M140 S100 ; set bed temp
M190 S100 ; wait for bed temp
G28 W ; home all without mesh bed level
G80 ; mesh bed leveling
G1 Y-3.0 X0 Z10.0 F1000.0 ; move outside the print area and above the bed to heat
M104 S255; set extruder temp
M109 S255 ; wait for extruder temp
G1 Y-3.0 X0 Z10.0 F1000.0 ; move outside the print area and above the bed to heat
G1 E3.0 F1000.0 ; begin extrusion
G1 X20.0 Z0.2 E3.0 F1000.0 ; move down to bed while extruding
G1 X60.0 E9.0 F1000.0 ; intro line
G1 X100.0 E12.5 F1000.0 ; intro line

If you look at it closely, you'll see that I was leaving out two commands that were in the original: G87 and G88. I had no idea what these two commands do. A google search took me to the github page with the firmware code.

In the code I found this:


case 86:
calibration_status_store(CALIBRATION_STATUS_LIVE_ADJUST);
break;
/**
* G87: Prusa3D specific: Enable babystep correction after home
* This G-code will be performed at the end of a calibration script.
*/
case 87:
calibration_status_store(CALIBRATION_STATUS_CALIBRATED);
break;

/**
* G88: Prusa3D specific: Don't know what it is for, it is in V2Calibration.gcode
*/

It seems that these are related to the calibration and live Z adjust while printing. So it seems that leaving them out somehow made it so that any live Z adjustment I made during the printing of V2Calibration.gcode wasn't saved by the printer, even though the firmware still output the changed value to the screen. I put those two commands back in my modified V2Calibration.gcode and now my live Z adjust values stay saved and persistent from print to print.

Hopefully this can help someone else that may be having a similar problem. Lesson: don't change gcode commands if you don't know what they do!

Posted : 11/03/2017 6:04 am
Share: