25 July, 2020

Updating the starting and ending G-code

Today, I am making some minor tweaks to the start and end G-code within Cura. There are three changes I would like to make. The first is to have the bed and the hot-end heat up at the same time. Second, I am wondering if calling M420 right after a G29 is helpful. If it is not helpful then come up with helpful solution. The third change is to have the hot-end to have a different ending position.

Final G-code

Start G-code

M201 X500.00 Y500.00 Z100.00 E5000.00 ;Setup machine max acceleration
M203 X500.00 Y500.00 Z10.00 E50.00 ;Setup machine max feedrate
M204 P500.00 R1000.00 T500.00 ;Setup Print/Retract/Travel acceleration
M205 X8.00 Y8.00 Z0.40 E5.00 ;Setup Jerk
M220 S100 ;Reset Feedrate
M221 S100 ;Reset Flowrate

; Start Dual Nozzle/Bed Preheating
M140 S{material_bed_temperature_layer_0} ; start preheating the bed
M104 S{material_print_temperature_layer_0} T0 ; start preheating hotend
G28 ; home
M190 S{material_bed_temperature_layer_0} ; heat to Cura Bed setting 
M109 S{material_print_temperature_layer_0} T0 ; heat to Cura Hotend

G28 ;Home
G29 ;
M500 ; Save settings

G92 E0 ;Reset Extruder
G1 Z2.0 F3000 ;Move Z Axis up
G1 X10.1 Y20 Z0.28 F5000.0 ;Move to start position
G1 X10.1 Y200.0 Z0.28 F1500.0 E15 ;Draw the first line
G1 X10.4 Y200.0 Z0.28 F5000.0 ;Move to side a little
G1 X10.4 Y20 Z0.28 F1500.0 E30 ;Draw the second line
G92 E0 ;Reset Extruder
G1 Z2.0 F3000 ;Move Z Axis up 

End G-code

G91 ;Relative positioning
G1 E-2 F2700 ;Retract a bit
G1 E-2 Z0.2 F2400 ;Retract and raise Z
G1 X5 Y5 F3000 ;Wipe out
G1 Z10 ;Raise Z more
G90 ;Absolute positionning

G1 X{machine_width} Y{machine_depth} ;Present print
M106 S0 ;Turn-off fan
M104 S0 ;Turn-off hotend
M140 S0 ;Turn-off bed

M84 X Y E ;Disable all steppers but Z

Research 


Change 1

Chuck Hellebuyck has a video on how to get Cura to heat up the bed and hot end at the same time. Faster Hot End & Heated Bed warm-up in Cura

Change 2

G29 - Bed Leveling (Automatic): Probes the bed and enables bed leveling compensation.
M420 - Bed Leveling State: Get and/or set bed leveling state.
M500 - Save Setting: saves all configurable settings to EEPROM

Having a start g-code that uses a G29 followed by M420, is not necessary. The G29 turns on bed leveling, probes the bed, and stores the values to RAM. The M420 turns on bed leveling and reads the values from the EEPROM. 

Options to make bed leveling more helpful
  1. Modify the start g-code to run G29 without M420
  2. Modify the start g-code to run G29 and M500 without M420
  3. Modify the start g-code to run G29, M500, and M420
  4. Modify the start g-code to run M420 and occasionally run a bed leveling that saves the data

In thinking through the options, I have settled on option 2. The build surface on my Ender 5 Plus is removable. Having the auto-leveling routine run before each print should help get a good first layer as the build surface develops imperfections over time. By saving the bed leveling data, I should get two benefits. The first benefit is the data will be present after the power is cycled on the printer. The second benefit is the plug-in 'Bed Visualizer' will have current data. 

Change 3

The ending G-code uses the variable {machine_depth} to set the 'Y' axis. This puts the hot end in the back left corner. The problem is when the printer starts up the BL Touch sensor reports an error. My solution is to change from using the variable {machine_depth} to a value of '0'. 

Update: The X0 Y0 position put the hot end in the front left corner. I am trying X{machine_width} y{machine_depth}, hopefully this puts the hot end in the back right corner. 

Before Changes

Before I get started on making any changes, I recorded the start and end G-code that my version of Cura (4.6.1) is using.

Start G-code

M201 X500.00 Y500.00 Z100.00 E5000.00 ;Setup machine max acceleration 
M203 X500.00 Y500.00 Z10.00 E50.00 ;Setup machine max feedrate 
M204 P500.00 R1000.00 T500.00 ;Setup Print/Retract/Travel acceleration 
M205 X8.00 Y8.00 Z0.40 E5.00 ;Setup Jerk 
M220 S100 ;Reset Feedrate 
M221 S100 ;Reset Flowrate 

G28 ;Home 
G29 ; 
M420 S1 Z2 ;Enable ABL using saved Mesh and Fade Height 

G92 E0 ;Reset Extruder 
G1 Z2.0 F3000 ;Move Z Axis up 
G1 X10.1 Y20 Z0.28 F5000.0 ;Move to start position 
G1 X10.1 Y200.0 Z0.28 F1500.0 E15 ;Draw the first line 
G1 X10.4 Y200.0 Z0.28 F5000.0 ;Move to side a little 
G1 X10.4 Y20 Z0.28 F1500.0 E30 ;Draw the second line 
G92 E0 ;Reset Extruder G1 Z2.0 F3000 ;Move Z Axis up 

End G-code

G91 ;Relative positioning
G1 E-2 F2700 ;Retract a bit
G1 E-2 Z0.2 F2400 ;Retract and raise Z
G1 X5 Y5 F3000 ;Wipe out
G1 Z10 ;Raise Z more
G90 ;Absolute positionning

G1 X0 Y{machine_depth} ;Present print
M106 S0 ;Turn-off fan
M104 S0 ;Turn-off hotend
M140 S0 ;Turn-off bed

M84 X Y E ;Disable all steppers but Z 


No comments:

Challenging myself to learn something new

I have recently set a big challenge for myself. I want to know about Machine Learning . To add to the challenge, I am trying out usin...