My Pressure Advance Calibration
-
Hi,
i am very interested in adjust my pressure in advance... and this method looks promissing....
But....
How i can use it? I see its mandatory use FW3.x
I see the gcode has variables.... i never have used....
-
@peirof Yes, you have to have firmware 3.x installed. All you need to do is copy the code to a file (I suggest a .gcode extension) and edit the values to the right of the equals sign. So for example, if you use an extrusion width of 0.44 instead of my 0.48, just change var Width = 0.48 to var Width = 0.44.
StartX & StartY set the front left corner's position on your bed. LinesPerTest controls the Y height of each band so you can make it larger (more lines) to see it better; be aware that the bands have double this many lines in them, because there are this many reference lines, and then this many test lines PALow and PAHigh are the starting and ending pressure advance k values to test, and PAIncrement is the amount to change the k value for each band as it moves back (up in the picture). Together these 3 variables control the Y height of the bands. LinesBetweenTests controls the blank space between the bands.
It's up to you to make sure the combination of lines, spaces between bands, and number of bands created by PALow, PAHigh and PAIncrement don't run out of bed space if they start at (StartX, StartY). Each line is "Width" wide (in the Y direction). So the way I have it set up, the print will be 21 bands (PA 0.05 to 0.25 by 0.01 increments) and each of those 21 bands will be 8 lines (4 reference and 4 test), for a total of 168 lines of bands. Between the bands will be a total of 20 spaces of 4 lines, for a total of 80 lines of space. The grand total is 248 lines, each of which is 0.48mm wide, for a total Y height of about 119mm. So my print went from Y=50 to Y = 169.
The lines are 140mm long (in the X direction). So my print went from X=50 to X=190.
TempBed sets your bed temperature and TempTool sets your hot end temperature. ToolNum would be 0 for most people; I was using my secondary hot end. Height is your layer height. Retract is retraction distance; Prime is how much to prime the hot end with filament before starting to print the raft.
The speeds are probably OK as they are; they're in mm/min. The idea is to have a much faster SpeedFast than SpeedSlow, and compare the results to the reference lines in the band, which print at SpeedSlow. You can set the retraction speed, but for this, you're probably OK leaving it alone.
Once the file looks good just upload and print it just as you would with a file your slicer produced. Alternatively, you can upload it as is without printing it and then edit it in the web interface, then print it.
Does that help?
-
This looks really good. Thanks for sharing. I'm going to give it a try.
Do I need to disable the PA setting in my config.g or will the script set it as the gcode runs?
-
Very interesting.
Can you post a closeup of what you are seeing which tells you what row is the best?
Thanks.
Frederick
-
@donstauffer tried your Code and works perfectly!!!!!
Thank you!
-
@fcwilt Essentially there are two areas along the test lines where the speed is changing. When PA is too low, the one on the left looks too thinly extruded. When PA is too high, the one on the right looks too thinly extruded. Where PA is perfect, the best lines in the band look exactly the same as the reference lines.
-
Hi, what a great tool. I only have one question. I have a Delta printer and I have to set the starting point to X-70 and Y-70. Unfortunately, after the printer has been driven into the home, I only get error messages and the printer stops.
Error: in GCode file line 129 column 9: M117: string too long Cancelled printing file 0:/gcodes/pat.gcode, print time was 0h 3m Error: G0/G1: target position not reachable from current position Error: in GCode file line 115 column 9: M117: string too long
I then tried it with starting point y0 and x0, it starts to print but of course the print does not fit on the bed. Could this be a problem with the negative values?
Maybe you still have an Idea wath i could try elsegreetings Phil
-
@flipps The line that moves the carriage into position for the raft is:
G1 X{var.StartX + var.Width} Y{var.StartY} F{var.SpeedTravelXY}
The line to move into position for the second layer is similar:
G1 X{var.StartX} Y{var.StartY} F{var.SpeedTravelXY}
I don't see anything in the documentation of the G1 command that says it can't be negative, and I think I've even done it in the past.
Documentation for that error message says:
"Usually this means you have a delta printer and your homedelta has a move to position the print head at center. However, it can't reach that point because it would require moving one of the carriages up further than it physically could. The solution is to lower the print head first in Z and then command it to center in X Y."
This seems to suggest that reversing the moves for X & Y with the move for Z might work.
-
@flipps said in My Pressure Advance Calibration:
Error: G0/G1: target position not reachable from current position
On a delta that typically means that the head is very high, close to the homed position, so that movement to the specified XY position isn't possible unless you lower the effector somewhat first.
Error: in GCode file line 115 column 9: M117: string too long
That's a known bug in RRF 3.3. It's fixed in the 3.4beta series, or you can workaround it by using M400 before M117.
-
@dc42 @DonStauffer I added
G1 Z10
before the line
G1 X{var.StartX + var.Width} Y{var.StartY} F{var.SpeedTravelXY}
This workes perfect
Thank you -
Just tried running this.
RRF 3.3.0 and get this messageError: floor((floor(139 / var.Width) - 1) / 3) + 1Expression nesting too deep of PA.g
Is this because I am not running the Beta?
I am not a coder, so not competent in code!My file
PA.gRegards,
Paul