# Creality Ender 3 1. [Octoprint backup archive](#octoprint-backup-archive) 2. [Ultimaker Cura configuration](#ultimaker-cura-configuration) 3. [Print profiles](#print-profiles) 4. [Filament set up](#filament-set-up) 5. [Marlin custom firmware](#marlin-custom-firmware) 6. [Printer calibration](#printer-calibration) 7. [3D printed custom parts](#3d-printed-custom-parts) # Octoprint backup archive [2025-01-01] [Ender3-backup-20250101.zip](octoprint-cfg-bkp/Ender3-backup-20250101.zip) # Ultimaker Cura configuration ## Cura Printer configuration | Printer | Extruder | |---------|----------| | ![Printer](images/ender3-cura-profile-printer.png) | ![Extruder](images/ender3-cura-profile-extruder.png) | ## Start G-code ``` ; Octoprint's Octolapse plugin required G-code ; Script based on an original created by tjjfvi (https://github.com/tjjfvi) ; An up-to-date version of the tjjfvi's original script can be found ; here: https://csi.t6.fyi/ ; Note - This script will only work in Cura V4.2 and above! ; --- Global Settings ; layer_height = {layer_height} ; smooth_spiralized_contours = {smooth_spiralized_contours} ; magic_mesh_surface_mode = {magic_mesh_surface_mode} ; machine_extruder_count = {machine_extruder_count} ; --- Single Extruder Settings ; speed_z_hop = {speed_z_hop} ; retraction_amount = {retraction_amount} ; retraction_hop = {retraction_hop} ; retraction_hop_enabled = {retraction_hop_enabled} ; retraction_enable = {retraction_enable} ; retraction_speed = {retraction_speed} ; retraction_retract_speed = {retraction_retract_speed} ; retraction_prime_speed = {retraction_prime_speed} ; speed_travel = {speed_travel} ; Ender 3 Custom Start G-code G92 E0 ; Reset Extruder G28 ; Home all axes G1 Z2.0 F3000 ; Move Z Axis up little to prevent scratching of Heat Bed G1 X0.1 Y20 Z0.3 F5000.0 ; Move to start position G1 X0.1 Y200.0 Z0.3 F1500.0 E15 ; Draw the first line G1 X0.4 Y200.0 Z0.3 F5000.0 ; Move to side a little G1 X0.4 Y20 Z0.3 F1500.0 E30 ; Draw the second line G92 E0 ; Reset Extruder G1 Z2.0 F3000 ; Move Z Axis up little to prevent scratching of Heat Bed G1 X5 Y20 Z0.3 F5000.0 ; Move over to prevent blob squish ``` ## 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 positioning 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 ``` # Print profiles * [Standard Quality - Arc Welder](cura-profile/Ender3%20-%20Standard%20Quality%20-%20Arc%20Welder.curaprofile) * [Low Quality - Arc Welder](cura-profile/Ender3%20-%20Low%20Quality%20-%20Arc%20Welder.curaprofile) * [Super Quality - Arc Welder](cura-profile/Ender3%20-%20Super%20Quality%20-%20Arc%20Welder.curaprofile) # Filament set up ## PLA | Brand | Filament desc | Printing temp | Build Plate temp | Retractation Distance | |-----------|---------------|---------------|------------------|-----------------------| | Geeetech | Black | 210°C | 60°C | 0.75mm | | Geeetech | Silk Silver | 210°C | 60°C | 0.75mm | ## PETG | Brand | Filament desc | Printing temp | Build Plate temp | Retractation Distance | |-----------|---------------|---------------|------------------|-----------------------| | Geeetech | -- | -- | -- | -- | ## Activate button and led support ### Full tutorial [Raspberry Pi Power-Up and Shutdown with a Physical Button](https://embeddedcomputing.com/technology/open-source/development-kits/raspberry-pi-power-up-and-shutdown-with-a-physical-button) ### TL;DR #### Add button support 1. Edit `/boot/config.txt` file. 2. Add line ` dtoverlay=gpio-shutdown`. Final result: ``` [...] [all] # enable raspicam start_x=1 gpu_mem=128 # Simple button on/off dtoverlay=gpio-shutdown ``` #### Add LED support 1. Edit crontab ``` #> crontab -e ``` 2. Add the line ``` @reboot raspi-gpio set 4 op dh ``` Final result: ``` # Edit this file to introduce tasks to be run by cron. # # Each task to run has to be defined through a single line # indicating with different fields when the task will be run # and what command to run for the task # # To define the time you can provide concrete values for # minute (m), hour (h), day of month (dom), month (mon), # and day of week (dow) or use '*' in these fields (for 'any'). # # Notice that tasks will be started based on the cron's system # daemon's notion of time and timezones. # # Output of the crontab jobs (including errors) is sent through # email to the user the crontab file belongs to (unless redirected). # # For example, you can run a backup of all your user accounts # at 5 a.m every week with: # 0 5 * * 1 tar -zcf /var/backups/home.tgz /home/ # # For more information see the manual pages of crontab(5) and cron(8) # # m h dom mon dow command @reboot raspi-gpio set 4 op dh ``` # Marlin custom firmware ## :warning: Notice :warning: I upgraded my Ender 3 printer with [BIGTREETECH SKR MINI E3 V2](https://www.aliexpress.com/item/4001050145015.html) mainboard. Firmware above is built for this mainboard! ## Installed firmware - Currently used tag: [`2.1.2.4`](https://github.com/MarlinFirmware/Marlin/tree/2.1.2.4) - Details: [Firmware sources and custom configuration](./Marlin-2.1.2.4/) (local repo) - Last compilation date: `2024-10-10 @ 09:53` ## Useful resources ### Firmware configuration: - [Marlin 2.0.x Firmware Guide for BTT SKR Mini E3 v2.0 Ender 3](https://wallabag.igox.org/view/202) - [Marlin 2.0.8 guide - PID autotune](https://wallabag.igox.org/view/203) - [Marlin 2.0.8 guide - Bed Leveling - BLTouch, Inductive Sensor](https://wallabag.igox.org/view/204) ### Theorical documentation: - [[MARLIN] Déterminer les dimensions / positions de la zone d'impression de son imprimante (cartésienne / CoreXY)](https://web.archive.org/web/20241010080558/https://www.lesimprimantes3d.fr/forum/topic/47020-marlin-déterminer-les-dimensions-positions-de-la-zone-dimpression-de-son-imprimante-cartésienne-corexy/) - [comprendre la zone de palpage avec un ABL afin de paramétrer son Marlin](https://www.lesimprimantes3d.fr/forum/topic/43747-quelques-éléments-pour-mieux-comprendre-la-zone-de-palpage-avec-un-abl-afin-de-paramétrer-son-marlin/) # Printer calibration: After firware update, proceed with the different calibrations in the above order: 1. [Z-Offset Wizard – A Complete Guide](https://3dprintscape.com/z-offset-wizard-complete-guide/) \ On my custom firware, you can use the `Z Probe Wizard` feature to help performing the Z-Offset. \ To do so, on Ender 3 screen menu, select : `Motion > Z Probe Wizard`. 2. [Marlin PID Auto-Tune - A Complete Guide](https://3dprintinggeek.com/marlin-pid-tuning/) - :warning: First do the PID Auto-Tune for the **bed**. Else you may have false positive thermal runout. 3. Bed leveling \ To have a printer bed properly leveled when you make changes to the printer, here the list of operations to be done in that exact order: 1. Do a **bed tramming** (a.k.a manual bed leveling). On Ender 3 screen menu, select: `Motion > Tramming Wizard`. 2. Do an **automatic bed leveling (ABL)**. In Octoprint, go to `Bed Visualizer` plugin UI and click `Update Mesh Now` button. 4. Linear Advance (also know as Pressure Advance): \ Linear advance tunning is filament specific. \ For a given brand & type (PLA, PETG), you **may** use the same LA tunning. \ But for optimal result you should tune PA for each filament roll. - [Explanation](https://marlinfw.org/docs/features/lin_advance.html) - [Pattern generation tool](https://marlinfw.org/tools/lin_advance/k-factor.html) # 3D printed custom parts | Item | 3D files | Final result | |-------|-----------|--------------| | _Raspberry Pi 4 / Octoprint case_ ([tutorial to enable power switch/LED](https://web.archive.org/web/20250101204129/https://embeddedcomputing.com/technology/open-source/development-kits/raspberry-pi-power-up-and-shutdown-with-a-physical-button)) | [Printable](https://www.printables.com/model/1008828-creality-ender-3-station-lcd-raspberry-pi-4) | ![show off](images/mods/octoprint-case.jpg) | | _Ender 3 PSU Support Bracket_ | [Thingiverse](https://www.thingiverse.com/thing:3444134) | ![show off](images/mods/psu-support-bracket.jpg)| | Aukey LM1 WebCam holder | [Thingiverse](https://www.thingiverse.com/thing:4683831) | ![show off](images/mods/aukey-LM1-webcam-holder.jpg) | | PSU exhaust fan silencer | [Printable](https://www.printables.com/model/84197-60mm-exhaust-fan-silencer-flowmaster-psu-ender3nep/comments#preview.file.GpvjC) | ![show off](images/mods/psu-exhaust-fan-silencer.jpg) | | Tool holder | [Local](local-stl/Tools_Holder_v3.stl) | ![show off](images/mods/tool-holder.jpg) | | SATSANA Ender 3 - BLTouch (Z-Offset: X-51 ; Y-12) | [Printable](https://www.printables.com/model/58601-satsana-ender3-bltouch-fixed) | ![show off](images/mods/satsana-bltouch-for-hotend.webp) |