Re: 1st layer problems - in depth look at software PINDA problems (and solutions!)
how might we manually write pinda values to the eeprom?
Is there a simple way to write values?
Is there a way to verify they are stored correctly in the eeprom?
The Latest Firmware can be found here https://github.com/prusa3d/Prusa-Firmware/releases
Open Firmware Issues https://github.com/prusa3d/Prusa-Firmware/issues
Re: 1st layer problems - in depth look at software PINDA problems (and solutions!)
Compiled the latest firmware, this is my gcode. The printer is not waiting for the heatup of the PIDNA, any idea why? 😥
G28 W ; home all without mesh bed level
G0 X50 Y50 Z0.15 ; this is a good PINDA heating position
M660 S40 ;wait until PINDA is >= 40C
G80 ; mesh bed leveling
G1 Y-3.0 F1000.0 ; go outside print area
G92 E0.0
G1 X60.0 E9.0 F1000.0 ; intro line
G1 X100.0 E12.5 F1000.0 ; intro line
G92 E0.0
M900 K30
I think your GCODE is wrong. It should be M860 not 660.
Re: 1st layer problems - in depth look at software PINDA problems (and solutions!)
Compiled the latest firmware, this is my gcode. The printer is not waiting for the heatup of the PIDNA, any idea why? 😥
G28 W ; home all without mesh bed level
G0 X50 Y50 Z0.15 ; this is a good PINDA heating position
M660 S40 ;wait until PINDA is >= 40C
G80 ; mesh bed leveling
G1 Y-3.0 F1000.0 ; go outside print area
G92 E0.0
G1 X60.0 E9.0 F1000.0 ; intro line
G1 X100.0 E12.5 F1000.0 ; intro line
G92 E0.0
M900 K30
I think your GCODE is wrong. It should be M860 not 660.
Re: 1st layer problems - in depth look at software PINDA problems (and solutions!)
Covered here:
https://github.com/prusa3d/Prusa-Firmware/releases
---
Gert
Re: 1st layer problems - in depth look at software PINDA problems (and solutions!)
how might we manually write pinda values to the eeprom?
Is there a simple way to write values?
Is there a way to verify they are stored correctly in the eeprom?
For 35C you do nothing: it is the baseline (always 0)
If you want to set 40C offset to e.g. 5 usteps, you send the code:
M861 S5 I0
If you want to set 45C to e.g. 10 usteps you send code:
M861 S10 I1
You can set the values for 40, 45, 50, 55, 60C.
You can set all values to zero with M861 Z
Query the values with M861 ?
I have not tried it yet in the new RC1 firmware - also please know that Prusa has not flipped the sign of the math operation that I have proposed.
Theoretically you could also send NEGATIVE values.
E.G. M861 S-10 I1
The result is a very big offset due to signed/unsigned integer arithmetics. As far as I know (have not tested yet) that does not matter and internally the function calculate correctly with negative values.
So I SHOULD be able to send ONLY negative values into eeprom to archieve the effect that a change of sign would have. So CURRENTLY I guess that I SHOULD be fine with the stock firmware now.
Does that make sense?:-)
And do not forget to enable temp calibration in the settings menu! It is off now by default!
I plan to write a "guide" on how to do a manual temp calibration. But I guess I wait until RC2 when my nozzle does not catch the heatbed anymore:-( It got scratched already:-(
Re: 1st layer problems - in depth look at software PINDA problems (and solutions!)
The reason I asked I3.2.0 RC-1 The Gcode M860 and M861 does not seem to work get error unknown code also the extruder crashes the bed when calibrating xyz, calibrating z, and calibrating PINDA temp also the bed and the PINDA does not center on the circles it is to the left and back of center
The Latest Firmware can be found here https://github.com/prusa3d/Prusa-Firmware/releases
Open Firmware Issues https://github.com/prusa3d/Prusa-Firmware/issues
Re: 1st layer problems - in depth look at software PINDA problems (and solutions!)
Yeah I also have nozzle crashes. I hope for a quick RC2
Re: 1st layer problems - in depth look at software PINDA problems (and solutions!)
Yeah I also have nozzle crashes. I hope for a quick RC2
Is that with or without the swapped symbol modification?
Re: 1st layer problems - in depth look at software PINDA problems (and solutions!)
Yeah I also have nozzle crashes. I hope for a quick RC2
Is that with or without the swapped symbol modification?
Stock firmware - it has nothing to do with that part of the code anyways:-)
Re: 1st layer problems - in depth look at software PINDA problems (and solutions!)
Hello everybody,
so as discussed, Prusa have adopted my 666 and 667 Gcodes to the new firmware - under new codes 860 and 861.
They did NOT adopt the proposed sign change. Currently I think that this MIGHT be OK, because, if the sign is not changed - all that we have to do is to use NEGATIVE offsets.
The firmware is not supporting negative values fully - but as far as I have seen using a few "printf" statements it seems that the most important part of the firmware DOES support negative values.
So if you set the steps offsets negatively, very alarming numbers get displayed (because of signed/unsigned integer maths):
With the proposed changed sign, these values are my optimal values:
0, 40, 5, 12.50
1, 45, 11, 27.50
2, 50, 11, 27.50
3, 55, 14, 35.00
4, 60, 13, 32.50
With the new stock firmware, I set these offsets negatively like e.g. M861 S-14 I3 (for the 55C value). The outcome is:
0, 40, 65531, 163827.50
1, 45, 65525, 163812.50
2, 50, 65525, 163812.50
3, 55, 65522, 163805.00
4, 60, 65523, 163807.50
When I look at the debug output I see that the interpolation seems to work just fine:
With positive offsets, and my changed sign:
35 : 0.00 : 0.00
36 : 0.85 : 0.00
37 : 1.74 : 0.00
38 : 2.70 : 0.01
39 : 3.78 : 0.01
40 : 5.00 : 0.01
41 : 6.38 : 0.02
42 : 7.81 : 0.02
43 : 9.15 : 0.02
44 : 10.26 : 0.03
45 : 11.00 : 0.03
46 : 11.29 : 0.03
47 : 11.26 : 0.03
48 : 11.08 : 0.03
49 : 10.93 : 0.03
50 : 11.00 : 0.03
51 : 11.40 : 0.03
52 : 12.05 : 0.03
53 : 12.79 : 0.03
54 : 13.49 : 0.03
55 : 14.00 : 0.03
56 : 14.21 : 0.04
57 : 14.14 : 0.04
58 : 13.87 : 0.03
59 : 13.47 : 0.03
60 : 13.00 : 0.03
And now, stock firmware, negative offset values (as just described):
5 : 0.00 : 0.00
36 : -0.85 : -0.00
37 : -1.74 : -0.00
38 : -2.70 : -0.01
39 : -3.78 : -0.01
40 : -5.00 : -0.01
41 : -6.38 : -0.02
42 : -7.81 : -0.02
43 : -9.15 : -0.02
44 : -10.26 : -0.03
45 : -11.00 : -0.03
46 : -11.29 : -0.03
47 : -11.26 : -0.03
48 : -11.08 : -0.03
49 : -10.93 : -0.03
50 : -11.00 : -0.03
51 : -11.40 : -0.03
52 : -12.05 : -0.03
53 : -12.79 : -0.03
54 : -13.49 : -0.03
55 : -14.00 : -0.03
56 : -14.21 : -0.04
57 : -14.14 : -0.04
58 : -13.87 : -0.03
59 : -13.47 : -0.03
60 : -13.00 : -0.03
So yeah - it SHOULD work without that last pull request. It looks horrible, but computes fine. I have yet to try it for different PINDA temperatures - so be cautious when trying it out! feedback welcome!
Oh and do not forget to make sure "Temp.cal." is turned "on" in the menu if you do set values other than the new standard (all zero)
Re: 1st layer problems - in depth look at software PINDA problems (and solutions!)
Hi Stahlfabrik,
kudos for your great work.
As 3.2.0 RC1 is prone to ruining the printbed during calibration, I prefer to stick with 3.1.3 for now but like to take advantage of your patches.
Would you mind to post a compiled version based on 3.1.3 with your patches but using the now official 860, 861 gcodes?
And yes including the invert sign patch as it is silly having to compute unsigned ints from negative numbers despite what Prusa says to rectify this as not being a glitch.
Cheers
Pete
Re: 1st layer problems - in depth look at software PINDA problems (and solutions!)
Hi Stahlfabrik,
kudos for your great work.
As 3.2.0 RC1 is prone to ruining the printbed during calibration, I prefer to stick with 3.1.3 for now but like to take advantage of your patches.
Would you mind to post a compiled version based on 3.1.3 with your patches but using the now official 860, 861 gcodes?
And yes including the invert sign patch as it is silly having to compute unsigned ints from negative numbers despite what Prusa says to rectify this as not being a glitch.
Cheers
Pete
Hi Pete,
sorry - no - I do not have the time to offer you that.
But then again, my 666 and 667 gcodes are exactly the same as the new 86x - so why do you care for the number of the Gcodes? I would propose that you use my latest firmware from this thread (somewhere above:-))
The 3.2.0 has not yet the sign switched and I do not expect that Prusa will do so. I tried - but I think some MK3 need the sign this way, others need it that way - that is what I believe happens - and is holding Prusa back.
My MK3 is not in use currently until RC2 is out - also because I do not have much time right now. But I will use the stock RC2 version and push my calculated offsets with the minus sign into the eeprom - as long as it works, I do not care for the looks (in the show command)
But I hope that Prusa will embrace negative offsets fully until the final release - maybe someone (TM) should jump in an do a Pull Request with most of the necessary work done.
Cheers!
Re: 1st layer problems - in depth look at software PINDA problems (and solutions!)
No problem, I can take the one you posted earlier. Of couse I can use your 666 and 667 gcodes. Just any script using these codes will have to be reworked once the firmware 3.2 becomes final.
Cheers
Re: 1st layer problems - in depth look at software PINDA problems (and solutions!)
Finally!
The latest commits on GitHub introduced SIGNED ustep offset support!
Now using negative offset values is not a adventure anymore but fully embraced.
No need for my custom firmware anymore. I cannot wait till RC2 is finished. I need to see that in action. Finally the pinda issue is gone.
Well ok. One still has to preheat to 35C but that is a walk in the park with M860 S35
Re: 1st layer problems - in depth look at software PINDA problems (and solutions!)
You all must have highly nonlinear Pinda probes. Mine is so linear, I can print at nearly any temperature with virtually zero z-height adjustment. The most I adjust is 40 microns, and that is maybe every few days depending on if printing PLA or PETG.
Re: 1st layer problems - in depth look at software PINDA problems (and solutions!)
Hi Reid
No, after the correct calibration for my machine I have to do zero adjustment - never
Cheers
Re: 1st layer problems - in depth look at software PINDA problems (and solutions!)
Hi Stahlfabrik,
Thanks for your hard work on this. I've been having similar problems.
With the new firmware, where do you put the M860 S35 in the starting G-code? Do I need to insert M860 S35 and G80 right after M83 (and remove the second G80 below that)?
Thanks,
Marc
M115 U3.1.1-RC4 ; 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 print area
G92 E0.0
G1 X60.0 E9.0 F1000.0 ; intro line
G1 X100.0 E12.5 F1000.0 ; intro line
G92 E0.0
M221 S95
Re: 1st layer problems - in depth look at software PINDA problems (and solutions!)
Hi Stahlfabrik,
Thanks for your hard work on this. I've been having similar problems.
With the new firmware, where do you put the M860 S35 in the starting G-code? Do I need to insert M860 S35 and G80 right after M83 (and remove the second G80 below that)?
Thanks,
Marc
M115 U3.1.1-RC4 ; 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 print area
G92 E0.0
G1 X60.0 E9.0 F1000.0 ; intro line
G1 X100.0 E12.5 F1000.0 ; intro line
G92 E0.0
M221 S95
Hi Marc,
it depends what you want to achieve.
For my day to day printing, this is the start gcode that I use (snippet):
M83 ; extruder relative mode
G28 W ; home all without mesh bed level
G0 X50 Y50 Z0.15 ; this is a good PINDA heating position
M104 S237 ; set extruder temp
M140 S85 ; set bed temp
M190 S85 ; wait for bed temp
M109 S237 ; wait for extruder temp
M860 S35 ; wait until PINDA is >= 35C
G28 W ; home all without mesh bed level
G80 ; mesh bed leveling
G1 Y-3.0 F1000.0 ; go outside print area
G92 E0.0
G1 X60.0 E9.0 F1000.0 ; intro line
G1 X100.0 E12.5 F1000.0 ; intro line
But if you want to do a manual temp calibration (which I HIGHLY recommend), then you turn off temp calibration (in settings and also with "M861 Z") - it is off by default now in 3.2.0 but only if you did a factory reset or your printer was shipped with 3.2.0. Then you prepare several gcode files: 1 for each of the temperatures 35C, 40, 45, 50, 55, 60. In these files (which must contain a nice (rather big) first layer that you then need to perfectly live adjust Z) you use a different start Gcode:
M83 ; extruder relative mode
G28 W ; home all without mesh bed level
G0 Z50 ; Move Pinda up to not warm it before so that you do not miss the target temperature
M104 S215 ; set extruder temp
M140 S60 ; set bed temp
M190 S60 ; wait for bed temp - play with bed temps to reach higher Pinda temps >45C
M109 S215 ; wait for extruder temp
G0 X50 Y50 Z0.15 ; this is a good PINDA heating position
M860 S35 ; put here the temperature that you want to calibrate
G28 W ; home all without mesh bed level
G80 ; mesh bed leveling
G1 Y-3.0 F1000.0 ; go outside print area
G92 E0.0
G1 X60.0 E9.0 F1000.0 ; intro line
G1 X100.0 E12.5 F1000.0 ; intro line
Make SURE that your pinda is not warmer than the temperature you want to calibrate for - the gcode cannot wait for the PINDA to cool down:-)!!! So if you observe that the printer did not wait for a few seconds/minutes for the PINDA to reach the temperature, abort, and restart this calibration attempt with a cooler pinda.
Use PLA that you can easily live adjust Z for, like the Prusa PLA grey. For each gcode, note down the live adjust Z values that resulted in the perfect first layer. Then use math to calculate the offsets that you then push to EEPROM with the "M861 S[-]xx Iy" gcode. Do not forget to turn on temp calibration after you entered your custom values to EEPROM in the setting menu
Tell me how it went and if you need more input
Best regards
Edit:
Shortly How-to use the new Gcodes:
M860 Sxx - tell the printer to wait until the PINDA has reached the temperature xxC
M861 ? - query and show the stored ustep offsets in the EEPROM
M861 Z - set all offsets for all temperatures to Z (disabling any temp calibration/compensation)
M861 ! - restore the OLD (3.1.3) default values to EEPROM
M861 Sx Iy - store offset x (might also be negative now!) to EEPROM location y. -> y=0 is the offset for 40C, y=1 for 45C and so on.
Re: 1st layer problems - in depth look at software PINDA problems (and solutions!)
Correction: M861 Z sets all to 0 (zeros)
I would edit the previous post if this forum would let me.
Re: 1st layer problems - in depth look at software PINDA problems (and solutions!)
Thank you so much! The RC2 firmware and the modified start code has resolved my first layer issues! I had layer variations all over the bed. Now I have a consistent first layer over nine test points across the bed. I love this open source community! Thank you for your time, effort, and dedication.