Ender 3 (Pro & V2 & Neo & S1) Cura Start G-Code Configuration - 3D Print Gorilla (2024)

The Start G-Code section in Cura is one of the essential points of slicer configuration, as all the critical pre-print preparation steps, whether it’s heating the hotend up, initiating bed leveling, or resetting the extruder, depend on the correct configuration of the Start G-Code section for your 3D printer to carry these tasks out.

In this guide, we will take you through the process of configuring the Start G-code section in Cura optimally for your Ender 3 and share with you various optimized G-code blocks for different scenarios, such as with or without automatic bed leveling, that you can directly use with your Ender 3 without the need for any extra adjustment.

Table of Contents

Ender 3 (Pro & V2 & Neo & S1) Cura Start G-Code Configuration

As your 3D printer runs the commands within the Start G-code section before each print, configuring this code block in the most optimal way possible is the best way to ensure that the printer reliably carries out all the preparation tasks in a time-efficient manner, which, over time, adds up to quite a lot of time saved.

While the default start G-code block in Cura does include the necessary G-code commands for a successful print for the most part (it requires a slight modification if you have an automatic bed leveling probe installed), whether it’s getting your Ender 3 to home the axes or reset the extruder position before starting the printing process, there are a few optimizations you can make to streamline the preparation phase and increase the time efficiency.

For instance, if you look at the default Cura start G-code block for an Ender 3, you will notice that no G-code commands that modify the hotend or the print bed temperature are present.

Ender 3 (Pro & V2 & Neo & S1) Cura Start G-Code Configuration - 3D Print Gorilla (1)


In this case, the G-code file that Cura produces will have the M190 (Wait for Bed Temperature) G-code command first, the M109 (Wait for Hotend Temperature) G-code command second, and the commands in the start G-code block afterward, which will effectively create a scenario where your Ender 3 will wait until the bed is fully heated up first, then wait until the hotend is fully heated up, and finally, start running the start G-code block.

Ender 3 (Pro & V2 & Neo & S1) Cura Start G-Code Configuration - 3D Print Gorilla (2)


On the other hand, if you modify the start G-code block to have the M104 G-code command first and M190 afterward instead, your Ender 3 will heat both the hotend and the print bed at the same time instead of waiting for the print bed to reach the target temperature before heating the hotend up, which will allow the preparation phase to end quicker and the printing process to start sooner.

Ender 3 (Pro & V2 & Neo & S1) Cura Start G-Code Configuration - 3D Print Gorilla (3)


Considering that these are a simple series of optimizations that you will only need to perform once and that you can practically copy and paste to your start G-code section in Cura (you can find them in the following section of the article) to save a considerable amount of time in the long run, we believe that there’s no reason not to make use of them, which is why they are some of our favorite optimizations to make when setting an Ender 3 up for the first time.

Optimized Ender 3 (Pro & V2 & Neo & S1) Cura Start G-Code Blocks

Below, you can find the optimized Ender 3 Cura Start G-code blocks that we have prepared for you, which you can directly transfer to the Start G-Code section of Cura without requiring any modifications.

That being said, since the start G-code block you should be using slightly differs based on the bed leveling system you’re using, whether it’s no automatic bed leveling at all, automatic bed leveling, or unified bed leveling, picking the correct one is vital to ensure that things work as intended.

No Bed Leveling

M104 S180 ; Start pre-heating the nozzle to a safe temperature where the filament won't ooze to save timeM190 S{material_bed_temperature_layer_0} ; Start heating the bed to the target temperature specified in Print Settings and wait until the temperature is reachedG92 E0 ; Reset extruderG28 ; Auto Home all axesM104 S{material_print_temperature_layer_0} ; Start heating the nozzle to the target temperature specified in Print SettingsG1 Z2.0 F3000 ; Move Z Axis upG1 X0.1 Y20 Z0.3 F5000.0 ; Move to start positionM109 S{material_print_temperature_layer_0} ; Wait until the nozzle is heated to the target temperature specified in Print SettingsG1 X0.1 Y200.0 Z0.3 F1500.0 E15 ; Draw the first lineG1 X0.4 Y200.0 Z0.3 F5000.0 ; Move to the sideG1 X0.4 Y20 Z0.3 F1500.0 E30 ; Draw the second lineG92 E0 ; Reset extruderG1 Z2.0 F3000 ; Move Z Axis upG1 X5 Y20 Z0.3 F5000.0 ; Move over to prevent blob squish

Automatic Bed Leveling (G29)

M104 S180 ; Start pre-heating the nozzle to a safe temperature where the filament won't ooze to save timeM190 S{material_bed_temperature_layer_0} ; Start heating the bed to the target temperature specified in Print Settings and wait until the temperature is reachedG92 E0 ; Reset extruderG28 ; Auto Home all axesG29 ; Auto bed levelingM104 S{material_print_temperature_layer_0} ; Start heating the nozzle to the target temperature specified in Print SettingsG1 Z2.0 F3000 ; Move Z Axis upG1 X0.1 Y20 Z0.3 F5000.0 ; Move to start positionM109 S{material_print_temperature_layer_0} ; Wait until the nozzle is heated to the target temperature specified in Print SettingsG1 X0.1 Y200.0 Z0.3 F1500.0 E15 ; Draw the first lineG1 X0.4 Y200.0 Z0.3 F5000.0 ; Move to the sideG1 X0.4 Y20 Z0.3 F1500.0 E30 ; Draw the second lineG92 E0 ; Reset extruderG1 Z2.0 F3000 ; Move Z Axis upG1 X5 Y20 Z0.3 F5000.0 ; Move over to prevent blob squish

Saved Bed Leveling Mesh Activated (M420 S1)

M104 S180 ; Start pre-heating the nozzle to a safe temperature where the filament won't ooze to save timeM190 S{material_bed_temperature_layer_0} ; Start heating the bed to the target temperature specified in Print Settings and wait until the temperature is reachedG92 E0 ; Reset extruderG28 ; Auto Home all axesM420 S1 ; Activate bed leveling stateM104 S{material_print_temperature_layer_0} ; Start heating the nozzle to the target temperature specified in Print SettingsG1 Z2.0 F3000 ; Move Z Axis upG1 X0.1 Y20 Z0.3 F5000.0 ; Move to start positionM109 S{material_print_temperature_layer_0} ; Wait until the nozzle is heated to the target temperature specified in Print SettingsG1 X0.1 Y200.0 Z0.3 F1500.0 E15 ; Draw the first lineG1 X0.4 Y200.0 Z0.3 F5000.0 ; Move to the sideG1 X0.4 Y20 Z0.3 F1500.0 E30 ; Draw the second lineG92 E0 ; Reset extruderG1 Z2.0 F3000 ; Move Z Axis upG1 X5 Y20 Z0.3 F5000.0 ; Move over to prevent blob squish

Unified Bed Leveling (G29 A)

M104 S180 ; Start pre-heating the nozzle to a safe temperature where the filament won't ooze to save timeM190 S{material_bed_temperature_layer_0} ; Start heating the bed to the target temperature specified in Print Settings and wait until the temperature is reachedG92 E0 ; Reset extruderG28 ; Auto Home all axesG29 A ; Activate Unified Bed LevelingM104 S{material_print_temperature_layer_0} ; Start heating the nozzle to the target temperature specified in Print SettingsG1 Z2.0 F3000 ; Move Z Axis upG1 X0.1 Y20 Z0.3 F5000.0 ; Move to start positionM109 S{material_print_temperature_layer_0} ; Wait until the nozzle is heated to the target temperature specified in Print SettingsG1 X0.1 Y200.0 Z0.3 F1500.0 E15 ; Draw the first lineG1 X0.4 Y200.0 Z0.3 F5000.0 ; Move to the sideG1 X0.4 Y20 Z0.3 F1500.0 E30 ; Draw the second lineG92 E0 ; Reset extruderG1 Z2.0 F3000 ; Move Z Axis upG1 X5 Y20 Z0.3 F5000.0 ; Move over to prevent blob squish

Conclusion

With your Start G-code block now optimized for usage with your Ender 3, you will never have to manually run some of the G-code commands that are required before each print, such as G29 for initiating the automatic bed leveling process, making things both more reliable and also more convenient at the same time.

Additionally, as using an optimal Start G-code block will allow your 3D printer to conduct these tasks in the most time-efficient way possible, such as getting automatic bed leveling out of the way as the hotend is heating up instead of waiting for it to be finished first, you will also save a considerable amount of time across a large number of prints.

Ender 3 (Pro & V2 & Neo & S1) Cura Start G-Code Configuration - 3D Print Gorilla (4)

David Taylor

As a software developer by profession, David has been particularly interested in how 3D printing works even before he picked up his first 3D printer, and completely fell in love with the hobby once he got his hands on a Prusa i3 MK2 for the first time back in 2017. Due to him enjoying both the functional and the non-functional sides of 3D printing equally, you’ll rarely see David’s 3D printer in an idle state.

Ender 3 (Pro & V2 & Neo & S1) Cura Start G-Code Configuration - 3D Print Gorilla (2024)
Top Articles
Latest Posts
Article information

Author: Terrell Hackett

Last Updated:

Views: 6564

Rating: 4.1 / 5 (52 voted)

Reviews: 83% of readers found this page helpful

Author information

Name: Terrell Hackett

Birthday: 1992-03-17

Address: Suite 453 459 Gibson Squares, East Adriane, AK 71925-5692

Phone: +21811810803470

Job: Chief Representative

Hobby: Board games, Rock climbing, Ghost hunting, Origami, Kabaddi, Mushroom hunting, Gaming

Introduction: My name is Terrell Hackett, I am a gleaming, brainy, courageous, helpful, healthy, cooperative, graceful person who loves writing and wants to share my knowledge and understanding with you.