tuning LW-PLA
-
@Phaedrux
thank you.; Configuration file for Duet 3 Mini 5+ (firmware version 3) ; executed by the firmware on start-up ; ; generated by RepRapFirmware Configuration Tool v3.2.3 on Thu Jul 01 2021 17:21:30 GMT+0100 (British Summer Time) ; General preferences G90 ; send absolute coordinates... M83 ; ...but relative extruder moves M550 P"BLV MGN Cube" ; set printer name M669 K1 ; select CoreXY mode M80 C"nil" ; ATX PS_ON on ; Network M552 S1 ; enable network M586 P0 S1 ; enable HTTP M586 P1 S1 ; enable FTP M586 P2 S0 ; disable Telnet G4 S1 ;wait for expansion boards to start ; Drives M569 P0.0 S0 D2 ; X motor runs forwards M569 P0.1 S1 D2 ; Y motor runs forwards M569 P0.2 S1 D2 ; physical drive 0.2 goes backwards M569 P0.3 S1 D2 ; physical drive 0.2 goes backwards M569 P0.4 S1 D2 ; physical drive 0.2 goes backwards M569 P121.0 S1 D2 ; physical drive 121.0 goes backwards M584 X0.0 Y0.1 Z0.2:0.3:0.4 E121.0 ; set drive mapping M671 X0:290:290 Y155:62:255 S3 ; leadscrews at rear left, front middle and rear right M350 X16 Y16 Z16 I1 ; configure microstepping with interpolation M350 E16 I0 ; configure microstepping with interpolation M92 X200.00 Y200.00 Z3200.00 E700 ; set steps per mm M566 X2000.00 Y2000.00 Z150.00 E150.00 ; set maximum instantaneous speed changes (mm/min) (Jerk) M203 X30000.00 Y30000.00 Z300.00 E2000.00 ; set maximum speeds (mm/min) M201 X9000.00 Y9000.00 Z200.00 E200.00 ; set accelerations (mm/s^2) M906 X1400 Y1400 Z900 E800 I30 ; set motor currents (mA) and motor idle factor in per cent M84 S30 ; Set idle timeout ; Pressure advance ;M572 D0 S0.30 ; Axis Limits M208 X-3:305 Y0:305 Z0.0:500.0 ; set axis limits ; Endstops M574 X1 S1 P"121.io1.in" ; configure active-high endstop for low end on X via pin io0.in M574 Y2 S1 P"io6.in" ; configure active-high endstop for HIGH end on Y via pin io6.in M564 H1 ; allow jog without homing ; Z-Probe M950 S0 C"^121.io0.out" ; create servo pin 0 for BLTouch M558 P9 C"^121.io0.in" H3 F120 T10000 ; set Z probe type to bltouch and the dive height + speeds G31 P500 X0 Y66 Z2.30 ; set Z probe trigger value, offset and trigger height (-0.15) M557 X-10:293 Y65:300 P8 ; define mesh grid ; Heaters M308 S0 P"temp0" Y"thermistor" T100000 B3950 ; configure sensor 0 as thermistor on pin temp0 M950 H0 C"out0" T0 ; create bed heater output on out0 and map it to sensor 0 M307 H0 R0.291 C1127.4 D26.90 S1.00 ; Set PID for bed values M140 H0 ; map heated bed to heater 0 M143 H0 S100 ; set temperature limit for heater 0 to 100C M308 S1 P"121.temp0" Y"thermistor" T100000 B4725 C7.06e-8 ; configure sensor 1 as thermistor on pin 121.temp0 M950 H1 C"121.out0" T1 ; create nozzle heater output on 121.out0 and map it to sensor 1 M307 H1 B0 R3.089 C258.2:154.4 D5.95 S1.00 V23.7 ; Set PID for hotend values M143 H1 S280 ; set temperature limit for heater 1 to 280C ; Fans M950 F0 C"121.out2" Q80 ; create hotend fan 0 on pin toolboard out1 and set its frequency M106 P0 S0 H1 T45 C"Hotend Fan" ; set fan 0 value. Thermostatic control is turned on M950 F1 C"121.out1" Q250 ; create cooling fan 1 on pin toolboard out1 and set its frequency M106 P1 S0 H-1 B1 C"Part Cooling Fan" ; set fan 1 value. Thermostatic control is turned off ; Tools M563 P0 D0 H1 F1 ; define tool 0 G10 P0 X0 Y0 Z0 ; set tool 0 axis offsets G10 P0 R0 S0 ; set initial tool 0 active and standby temperatures to 0C ; M563 P1 D0 H1 F1 ; define tool 1 G10 P1 X0 Y0 Z0 ; set tool 1 axis offsets G10 P1 R0 S0 ; set initial tool 1 active and standby temperatures to 0C ; Accel M955 P121.0 I10 ;Input shaping ;M593 P"ei3" F90 ; use EI3 input shaping to cancel ringing at 90Hz ;M593 P"ei3" F50 ; Screen M575 P1 B57600 S1
extruder is an nf-sunrise.
https://3dprintbeginner.com/mellow-nf-sunrise-review/ -
You may want to try altering your extruder settings for speed, jerk, and acceleration as follows and then retuning again.
M566 E3000
M203 E6000
M201 E2000 -
Am I assuming correctly, that this LW-PLA is meant to foam up while extruded?
That would explain why the long retraction is necessary. It not only oozes out of the nozzle, but also expands.
But it only expands once and after a retract/unretract you miss some material.
So I guess you're on the right path.
Our regular PLA settings won't work here.What does the manufacturer say about settings? They must have testet this stuff before selling it.
-
@o_lampe said in tuning LW-PLA:
Am I assuming correctly, that this LW-PLA is meant to foam up while extruded?
That would explain why the long retraction is necessary. It not only oozes out of the nozzle, but also expands.
But it only expands once and after a retract/unretract you miss some material.
So I guess you're on the right path.
Our regular PLA settings won't work here.What does the manufacturer say about settings? They must have testet this stuff before selling it.
Yes and no, There are two types of foaming PLA.
from the manufacturers website;
FAQ
What is the difference between active foaming and passive foaming?PolyLite LW-PLA is not an active foaming filament, which means it will not foam when extruded from the nozzle depending on the temperature. PolyLite LW-PLA is already pre-foamed.
What are the pros and cons between active and passive foaming?
Active foaming:
You need to heavily modify your printing settings depending on the temperature and setup to compensate the foaming expansion of the material when printing.
You need to print at very high temperature to achieve light weight results (~250_), these high temperatures will create a lot of defects on the print such as stringing and blobs.
At very high temperature, active foaming can achieve lighter print than passive foaming however the print may suffer of serious stringing defects.Passive foaming:
You do not need to change any settings from your regular PLA settings (slight increase retraction) as PolyLite LW-PLA will offer light weight results even when printing at very low temperature (~190_C).
The lower the temperature the higher quality the print. -
Unfortunately those settings seem to have some undesirable effects;
Left is ;
M566 E3000
M203 E6000
M201 E2000Right is;
M566 E150
M203 E2000
M201 E200 -
what were the rest of the settings from that test? PA, retraction, etc?
-
I've decided to start from scratch. It's been some time since I've printed anything, so I think a combination of firmware, and slicer updates have broken something.
I've reinstalled a fresh copy of prusa slicer, configured a generic printer, with the generic pla profile, with my original start and end gcode. The only thing I changed was retraction from 2mm to 0.4mm.
;Start M104 S[first_layer_temperature] ; set extruder temp M140 S[first_layer_bed_temperature] ; set bed temp M109 S[first_layer_temperature] ; wait for extruder temp M190 S[first_layer_bed_temperature] ; wait for bed temp M557 X{first_layer_print_min[0]}:{first_layer_print_max[0]} Y{first_layer_print_min[1]}:{first_layer_print_max[1]} S20 ; define probe area M98 P"bed.g" ; perform bed leveling G92 E0 ; reset extruder ;End G91 ; Switch to relative mode for the rest of end.g G1 F2000 Z5 ; move bed down G28 XY ; move head to home on XY M104 S0 ; turn off extruder, M140 S0 ; turn off bed, M84 ; disable motors M107 ; turn off part cooling fan M81 S1 ; shutdown after all thermostatic fans have turned off
I'm also using standard pla now.
This is how a single wall cylinder prints; -
@nick9one1 could you upload that exact print file (gcode)? Thanks!
-
@sebkritikel sure, here you go.
-
@nick9one1 Thanks! File looks good - no tricks with coasting, no retraction etc.
Off topic perhaps, but why do you have interpolation disabled on the extruder?
M350 E16 I0 ; configure microstepping with interpolationHere is something quick I would do to start troubleshooting the extruder (specifically that gap). For now, I think keep pressure advance at 0
- Do a print, changing the extruder max speed to M203 E6000. Check if there are any changes.
- If there are NO changes to the print quality, keep the max speed at M203 E6000. Change acceleration from M201 E200 to M201 E3000. I'm going to guess you'll see a physical change to the print once you change the extruder acceleration.
- Depending on how things are looking, try extruder jerk at M566 E3000 again.
I think we want to eliminate that gap (partly), adjusting extruder jerk/accel, then play around again with PA.
I have some python post-processing scripts that can simultaneously tune things like pressure advance + jerk, etc. Can share them later.
-
Thanks, Things are looking a little better...
I found a config.g for my printer here https://github.com/FYSETC/FYSETC-BLV-MGN-CUBE/blob/main/Firmware/config3.x/sys/config.g although I think that version uses a V6 clone.
After updating my config.g with those settings my print is looking a little better.
config.gThis is printed with the above config.
The first 10 layers are normal, after later 10 I sent M203 E6000 in the console while it was printing. Then after another 10 I sent M201 E3000, then after another 10 I sent M566 E3000.I can't really see any discernible change in the print.
this is the cylinder gcode. Shape-Cylinder (1).gcode
-
I also came across this that may help. This is my exact printer and extruder (although volcano), with settings for klipper.
https://www.blvprojects.com/post/klipper-ultra-fast-printing-9000acc-500mm-s
-
@nick9one1 Cool! So looking at the new config.g, I see a few changes.
- M566 changes, jerk was reduced for X, Y, Z, and increased slightly for E. I would go back and increase the Z jerk, as a low Z jerk can cause issues with X-Y travel moves (stuttering) if you use mesh bed compensation.
- Max speeds were reduced for X and Y, increased for Z
- Acceleration was reduced for X, Y, and Z, increased for E
I've found that with higher acceleration values for X and Y, I have to change pressure advance settings. Based on your before/after print after your new config.g, I think the reduction in X and Y acceleration has 'improved' the seam.
My suggested config.g changes:
M566 X600.00 Y600.00 Z150.00 E3000.00 ; set maximum instantaneous speed changes (mm/min) - increased Z and E M203 X20000.00 Y20000.00 Z2000.00 E6000.00 ; set maximum speeds (mm/min) - increased E
I would also see if you're happy with the Z acceleration value (your new 100 vs old 200. probably too small to notice or care).
I think once you make the above changes, you can then start tweaking pressure advance settings. Here is the same print file from above, but I varied PA from (Starting with whatever your default is for the first 10% of the file) .001 to .35.
pa-shape-cylinder.gcodeYou can try out the file python file here, change your file name/location as needed.PS pa.py
import re min_pressure_advance = 0.001 # set minimum pressure advance max_pressure_advance = 0.35 # set maximum pressure advance no_tune_pct = 10 # set the percentage of layers to not tune input_filename = r"C:\Users\Jared\Downloads\1704556218097-shape-cylinder.gcode" output_filename = r"C:\Users\Jared\Desktop\pa_1704556218097-shape-cylinder.gcode" # read the input file with open(input_filename, 'r') as f: in_gcode = f.readlines() max_print_height = 0 for line in in_gcode: match = re.match(r';Z:(\d+(\.\d+)?)', line) if match: current_height = float(match.group(1)) max_print_height = max(max_print_height, current_height) # calculate the pressure advance range and increment pressure_advance_range = max_pressure_advance - min_pressure_advance pressure_advance_increment = pressure_advance_range / (max_print_height - max_print_height * no_tune_pct / 100) # iterate through the input file and modify pressure advance as needed out_gcode = [] current_print_height = 0 for line_num, line in enumerate(in_gcode): # check if this is a Z comment indicating the current layer height if line.startswith(';Z:'): current_print_height = float(line.split(':')[1]) # check if we should tune this layer based on print height if current_print_height > max_print_height * no_tune_pct / 100: # calculate the pressure advance for this layer based on print height pressure_advance = min_pressure_advance + (current_print_height - max_print_height * no_tune_pct / 100) * pressure_advance_increment # replace the Z comment with a modified one that includes the pressure advance command out_gcode.append(f";Z:{current_print_height:.3f}\nM572 D0 S{pressure_advance:.3f}\nM572\n") else: out_gcode.append(line) else: out_gcode.append(line) # write the modified file to disk with open(output_filename, 'w') as f: f.writelines(out_gcode)
-
Thanks again. I';ve made the changes you suggested.
I'm still seeing small gaps after de-retraction, It's not quite so obvious without a light source behind the image;
I did a test here; the top trint is with your latest suggestions. And the the descond print has 0.5mm extra length on deretraction. That's quite a lot, but visually I can barely tell any difference.
Another image even closer, seems to show the layer change looking ok. The gaps happen after the de-retraction and when it starts to print the new layer?
-
@nick9one1 Stupid question, but did you check the grubscrew of the extruder shaft? A loose screw would explain the bulge and gap.
-
@o_lampe not a stupid question at all!
The grub screw felt tight as I couldnt rotate the heat block at all. But I stripped and reassembled anyway..Voilà, the same part as above (the white bits are just refections)
I'll continue with @sebkritikel's pressure advance tuning next.
-
@nick9one1 said in tuning LW-PLA:
I did a test here; the top trint is with your latest suggestions. And the the descond print has 0.5mm extra length on deretraction. That's quite a lot, but visually I can barely tell any difference.
other image even closer, seems to show the layer change looking ok. The gaps happen after the de-retraction and when it starts to print the new layer?Important to note!!! Your cylinder print does not have any retractions or de-retractions! I would not add a slicer-generated extra length move at this time (or at all honestly. wait until PA and stuff is 100% tuned).
Notice there are not any retract moves in the image and gcode snipped above. -
Can you make a video of it in action?
-
thanks @sebkritikel I hadn't considered there was no retraction on layer change. It makes sense now that I can't see any difference with the +0.5 after retract.
@Phaedrux
I think the main issue is resolved now. It was some sort of mechanical issue that has disappeared after I stripped and rebuilt the hot end. I no longer get the gaps at the start of a new layer.@sebkritikel thank you for providing the PA cylinder test. I've since re-tuned the flow, temp and retraction so used some after layer change code in prusaslicer,
; 0.2mm layer, 8 bands 5mm each, total height 40mm {if layer_num== 1}M572 D0 S0.4 {elsif layer_num== 25}M572 D0 S0.05 {elsif layer_num== 50}M572 D0 S0.06 {elsif layer_num== 75}M572 D0 S0.07 {elsif layer_num== 100}M572 D0 S0.08 {elsif layer_num== 125}M572 D0 S0.09 {elsif layer_num== 150}M572 D0 S0.10 {elsif layer_num== 175}M572 D0 S0.11 {endif}
towards the top looks best, so I then printed another 0.12 - 0.18 (ignore the bottom band I mistakenly left it at 0.4)
-
@nick9one1 said in tuning LW-PLA:
The grub screw felt tight as I couldnt rotate the heat block at all
I meant the screw that tightens the filament roller to the gear-shaft. Any loose fit there would add bulge and gap at a layer seam.
But as was mentioned, you're printing in vase mode.
//edit OK, it's single wall, but no vase mode, so my above tip is still valid.