# Creality Ender 3 Pro



# Creality Ender 3 Pro - START & END gcode for Cura

These are my custom start and end gcodes **for Cura slicer** to be used with the **Creality Ender 3 Pro** with BLTouch/3DTouch installed.

### Why this and not some other custom gcode I found on Reddit?
Well, that's what I was using for a long time, but I wanted to address some isues:

- [x] heat up the printer as quickly as possible
- [x] don't heat up the extruder all the way until just before nozzle priming (to prevent oozing from the nozzle during auto bed leveling, which takes 60 seconds)
- [x] print quick and efficient, Prusa-like, priming line of filament
- [x] after finishing the print, retracting the filament plenty back so that I can change it while the printer is cold, if need be.
- [x] present finished print ASAP

It does all of this somewhat nicely, took me two hours and 12 test prints. :D

### Disclaimer
Take this as-is, I take no responsibility in breaking your printer if used incorrectly. Test it couple of times with your finger on the PSU shut off switch.

**It works for my setup, which is:**
- Ender 3 Pro with 4.2.7 silent board
- Marlin 2.0.9.1 firmware
- 3DTouch installed on [Satsana](https://www.thingiverse.com/thing:4720050)
- Cura slicer (the macros like `{material_print_temperature_layer_0}` would need to be adjusted for other slicers accordingly, for Prusa Slicer see their docs on [Macros](https://help.prusa3d.com/en/article/macros_1775/))

### Start code
```gcode
; Ender 3 Pro – Cura Custom START G-code
; NOTE:
; This is for Ender with auto bed leveling probe.
; For printers without it, remove the line with G29 (I have not tested this, though!)

; Preheat bed fully
M140 S{material_bed_temperature_layer_0}

; Preheat extuder half way to 160 C to prevent oozing during auto bed leveling.
M104 S160

; Home X and Y axes
G28 X Y

; Absolute positioning
G90 

; Move to homing position for Z axis
G1 X168 Y126 F5000

; Wait for bed to be at printing temperature and then...
M190 S{material_bed_temperature_layer_0}

; ... home Z axis...
G28 Z

; ... start heating up the extruder all the way and meanwhile do...
M104 S{material_print_temperature_layer_0}

; ... automatic bed leveling
G29

; Move to start position for priming
G1 X5 Y5 Z10 F5000

; Wait for extruder to fully heat up to set temperature
M109 S{material_print_temperature_layer_0} 

; Reset extruder
G92 E0 

; Extrude line of filament
G1 Z0.8 F500
G1 X45 Z0.8 E40 F750 
G92 E0
G1 X65 Z0.8 E10 F500

; Reset extruder again
G92 E0 

; Move quickly away from prime line to prevent blob squish
G1 X75 F5000
```

### End code
```gcode
; Ender 3 Pro - Cura END G-code
; If making any changes here, change them BOTH in Cura (End G-Code) AND OctoPrint (GCODE Scripts -> After print job is cancelled)

;Relative positioning
G91 

;Retract 30 mm and raise Z +2 mm
G1 X-10 Z10 E-30 F3000

;Absolute positioning
G90 

; Put away X and present print
G1 X3 Y225 ;Present print

; Shutdown fan, hotend and bed
M106 S0 ;Turn-off fan
M104 S0 ;Turn-off hotend
M140 S0 ;Turn-off bed
M84 X Y Z E ;Disable all steppers
```

# Creality Ender 3 Pro - My setup

### Hardware parts
- **Printer:** Creality Ender 3 Pro ([AliExpress](https://www.aliexpress.com/item/1005002882418662.html))
- **Motherboard:** Creality OEM Silent Board 4.2.7 ([AliExpress](https://www.aliexpress.com/item/4001293699507.html))
- **Bed leveling sensor:** Trianglelab 3DTouch v3 ([AliExpress](https://www.aliexpress.com/item/32949450525.html))
- **All metal hotend:** Trianglelab Bi-Metal Heatbreak ([AliExpress](https://www.aliexpress.com/item/1005002808260486.html))
- **Belt tensioners:** no name ([AliExpress](https://www.aliexpress.com/item/4000253369657.html))
- **Print surface:** Creality PEI Metal Sheet ([AliExpress](https://www.aliexpress.com/item/1005003325121142.html))
- **Metal extruder:** noname ([AliExpress](https://www.aliexpress.com/item/32951483648.html))
- **Stronger springs:** yellow noname ([AliExpress](https://www.aliexpress.com/item/10000354369654.html))
- **Filament runout sensor:** generic ([AliExpress](https://www.aliexpress.com/item/33053134385.html))
- **Heatbreak cooling:** Noctua 40x40x20 mm fan with stepper down

### 3D printed upgrades
- Satsana with 3DTouch mount ([Thingiverse](https://www.thingiverse.com/thing:4720050))
- Cable clips for cable management ([Thingiverse](https://www.thingiverse.com/thing:2613532))
- Spool holder with ball bearings (printed by the first owner)
- Some LCD display cover

### Software
- Marlin firmware
- OctoPi for remote control on Raspberry Pi 3B

### Enclosure
- 2x IKEA Lack table
- 6 mm birch plywood
- acoustic foam (more for looks than anything else)

### Upgrades to do
- [ ] Noctua fans for PSU and motherboard
- [ ] enclosure ventilation system (by summer)

