2024-01-17 10:30:14 +01:00
# Creality Ender 3
2024-02-08 21:24:18 +01:00
1. [Octoprint backup archive ](#octoprint-backup-archive )
2025-01-14 10:07:44 +01:00
2. [Slicers ](#slicers )
2024-02-08 21:24:18 +01:00
3. [Print profiles ](#print-profiles )
4. [Filament set up ](#filament-set-up )
2024-10-10 16:48:16 +02:00
5. [Marlin custom firmware ](#marlin-custom-firmware )
2025-01-08 12:01:18 +01:00
6. [Printer calibration ](#printer-calibration )
2025-01-14 09:59:43 +01:00
7. [3D printed custom parts & mods ](#3d-printed-custom-parts--mods )
2025-03-05 16:01:58 +01:00
8. [BTT SKR mini E3 v2 pinout ](#btt-skr-mini-e3-v2-pinout )
2025-03-05 15:51:57 +01:00
9. [Klipper custom firmware ](#klipper-custom-firmware )
2024-01-17 10:30:14 +01:00
2024-02-08 21:24:18 +01:00
# Octoprint backup archive
2025-03-05 15:51:57 +01:00
[2025-02-11] [Ender3-backup-20250211-234353.zip ](octoprint-cfg-bkp/Ender3-backup-20250211-234353.zip )
2024-02-08 21:24:18 +01:00
2025-01-14 10:07:44 +01:00
# Slicers
2024-02-08 21:24:18 +01:00
2025-01-14 10:07:44 +01:00
## Ultimaker Cura
Ultimaker Cura [download link ](https://ultimaker.com/fr/software/ultimaker-cura/#downloads ).
### Cura Printer configuration
2024-01-17 10:30:14 +01:00
| Printer | Extruder |
|---------|----------|
2024-01-17 18:08:15 +01:00
|  |  |
2024-01-17 10:30:14 +01:00
2025-01-14 10:07:44 +01:00
### Start G-code
2024-01-17 10:30:14 +01:00
```
; 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
```
2025-01-14 10:07:44 +01:00
### End G-code
2024-01-17 10:30:14 +01:00
```
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
2024-01-17 11:05:58 +01:00
```
2025-01-14 10:07:44 +01:00
### Print profiles
2024-01-17 11:05:58 +01:00
2024-01-17 11:54:40 +01:00
* [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 )
2024-01-17 18:23:46 +01:00
* [Super Quality - Arc Welder ](cura-profile/Ender3%20-%20Super%20Quality%20-%20Arc%20Welder.curaprofile )
2025-01-14 10:07:44 +01:00
## OrcaSlicer
2025-01-14 10:08:45 +01:00
:warning: **Important Security Alert ** :warning:
2025-01-14 10:07:44 +01:00
Please be aware that "orcaslicer.net" or "orcaslicer.info" are NOT an official website for OrcaSlicer and may be potentially malicious. This site appears to use AI-generated content, lacking genuine context, and seems to exist solely to profit from advertisements. Worse, it may redirect download links to harmful sources. For your safety, avoid downloading OrcaSlicer from this site as the links may be compromised.
The only official platforms for OrcaSlicer are the [GitHub project page ](https://github.com/SoftFever/OrcaSlicer ).
2024-02-08 21:24:18 +01:00
# Filament set up
## PLA
2024-01-17 18:23:46 +01:00
| Brand | Filament desc | Printing temp | Build Plate temp | Retractation Distance |
|-----------|---------------|---------------|------------------|-----------------------|
| Geeetech | Black | 210°C | 60°C | 0.75mm |
2024-01-17 18:24:35 +01:00
| Geeetech | Silk Silver | 210°C | 60°C | 0.75mm |
2024-02-08 21:24:18 +01:00
## PETG
2024-01-17 18:24:35 +01:00
| Brand | Filament desc | Printing temp | Build Plate temp | Retractation Distance |
|-----------|---------------|---------------|------------------|-----------------------|
2024-02-08 21:24:18 +01:00
| Geeetech | -- | -- | -- | -- |
2024-10-10 01:56:33 +02:00
## Activate button and led support
### Full tutorial
2024-02-08 21:24:18 +01:00
[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 )
2024-10-10 01:56:33 +02:00
### TL;DR
2024-02-08 21:24:18 +01:00
2024-10-10 01:56:33 +02:00
#### Add button support
2024-02-08 21:24:18 +01:00
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
```
2024-10-10 01:56:33 +02:00
#### Add LED support
2024-02-08 21:24:18 +01:00
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
2024-10-10 12:59:35 +02:00
```
# Marlin custom firmware
2025-01-13 18:02:55 +01:00
## :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!
2024-10-10 12:59:35 +02:00
## 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/ )
2025-01-08 12:01:18 +01:00
# Printer calibration:
2024-10-10 12:59:35 +02:00
2025-01-08 12:01:18 +01:00
After firware update, proceed with the different calibrations in the above order:
2024-10-10 12:59:35 +02:00
2025-01-14 10:15:59 +01:00
1. * * [Z-Offset Wizard – A Complete Guide ](https://3dprintscape.com/z-offset-wizard-complete-guide/ )** \
2025-01-08 12:01:18 +01:00
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` .
2025-01-14 10:15:59 +01:00
2. **Bed leveling ** \
2025-01-14 10:21:57 +01:00
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. \
Both bed tramming and ABL require a BLTouch (or equivalent) hardware. See [3D printed custom parts & mods ](#3d-printed-custom-parts--mods ).:
2025-01-08 12:03:16 +01:00
1. Do a **bed tramming ** (a.k.a manual bed leveling). On Ender 3 screen menu, select: `Motion > Tramming Wizard` .
2025-01-14 10:21:57 +01:00
2. Do an **automatic bed leveling (ABL) ** .
In Octoprint, go to [Bed Visualizer ](https://plugins.octoprint.org/plugins/bedlevelvisualizer/ ) plugin UI and click `Update Mesh Now` button.
2025-01-14 10:15:59 +01:00
3. * * [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.
4. **Linear Advance (also know as Pressure Advance) ** \
2025-01-08 12:01:18 +01:00
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.
2024-10-10 12:59:35 +02:00
- [Explanation ](https://marlinfw.org/docs/features/lin_advance.html )
- [Pattern generation tool ](https://marlinfw.org/tools/lin_advance/k-factor.html )
2025-01-14 09:58:44 +01:00
# 3D printed custom parts & mods
2024-10-10 12:59:35 +02:00
2024-10-10 16:48:16 +02:00
| Item | 3D files | Final result |
|-------|-----------|--------------|
2025-03-05 16:01:58 +01:00
| [BTT SKR E3 mini v2 mainboard ](https://www.aliexpress.com/item/4001050145015.html ) - [pinout ](#btt-skr-mini-e3-v2-pinout ) | n/a |  |
2025-01-14 09:58:44 +01:00
| [BLTouch ](https://www.aliexpress.com/item/32777786433.html ) for Automatic Bed Leveling (ABL) | n/a |  |
2025-01-01 21:54:26 +01:00
| _ 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 ) |  |
| _ Ender 3 PSU Support Bracket _ | [Thingiverse ](https://www.thingiverse.com/thing:3444134 ) | |
2025-01-29 13:12:28 +01:00
| Filament runout sensor | n/a |  |
2025-02-11 08:12:14 +01:00
| Filament Guide | [Thingiverse ](https://www.thingiverse.com/thing:6930315 ) |  |
2025-01-29 13:12:28 +01:00
| Gantry led holder | n/a |  |
2025-03-05 15:51:57 +01:00
| Filament runout sensor | n/a |  |
| Filament Guide | [Thingiverse ](https://www.thingiverse.com/thing:6930315 ) |  |
| Gantry led holder | n/a |  |
2025-01-09 16:28:58 +01:00
| Aukey LM1 WebCam holder | [Thingiverse ](https://www.thingiverse.com/thing:4683831 ) |  |
2025-01-01 21:54:26 +01:00
| PSU exhaust fan silencer | [Printable ](https://www.printables.com/model/84197-60mm-exhaust-fan-silencer-flowmaster-psu-ender3nep/comments#preview.file.GpvjC ) |  |
2025-01-01 23:26:08 +01:00
| Tool holder | [Local ](local-stl/Tools_Holder_v3.stl ) |  |
2025-01-08 11:46:43 +01:00
| SATSANA Ender 3 - BLTouch (Z-Offset: X-51 ; Y-12) | [Printable ](https://www.printables.com/model/58601-satsana-ender3-bltouch-fixed ) |  |
2025-02-12 12:51:46 +01:00
2025-02-12 16:22:11 +01:00
# BTT SKR mini E3 v2 pinout
2025-02-12 12:51:46 +01:00
2025-03-05 16:01:58 +01:00

2025-03-05 15:51:57 +01:00
# Klipper custom firmware
## Klipper configuration backup
2025-03-05 : [klipper-config-files-20250305-150641.zip ](klipper/config/klipper-config-files-20250305-150641.zip )
- Initial config save
## Printer firmware build and update
1. Access klipper host using ssh
```
ssh ender3k
```
2. Stop Klipper service
```
sudo service klipper stop
```
3. Browse to Klipper directory:
```
cd ~/klipper
```
4. Pull the last version of the Klipper firmware from Github:
```
git pull
```
5. Clean up working directory before building firmware
```
make clean
```
6. Check the firmware build configuration
```
make menuconfig
```

7. Build the firmaware:
```
make
```
8. Transfer the built firmware on an micro SD card
The built firmware `klipper.bin` is in the `~/klipper/out/` directory
Use a SCP client to retreive it, and rename it * * `firmware.bin` **.
9. Flash the new firmware to the printer's SKR mini E3 v2 board
1. Turn off the printer power.
2. Introduce the SD card into the SKR board reader
3. Turn back on the printer power.
11. Restart Klipper service
```
sudo service klipper start
```
12. Check Klipper service is properly restarted
```
sudo service klipper status
```

## ADXL345 accelorometer
Model used: [Aliexpress ](https://www.aliexpress.com/item/1005006515088013.html ) \

### Software prereqiusites
Note that resonance measurements and shaper auto-calibration require additional software dependencies not installed by default. First, run on your Raspberry Pi the following commands:
```
sudo apt update
sudo apt install python3-numpy python3-matplotlib libatlas-base-dev libopenblas-base
```
Details on Klipper [documentation ](https://www.klipper3d.org/Measuring_Resonances.html#software-installation )
### Firmware configuration and build
1. Configure the firmaware:
```
cd ~/klipper
make clean
make menuconfig
```

2. Build the firmware:
```
make
```
### Firmware flash
1. Set the ADXL345 board in DFU mode by plugin it to the USB cable while maintaining the RST switch down.
2. Check that the board is actually in DFU mode
```
lsusb
```

4. Note the device `ID` (in our example: `2e8a:0003` )
5. Flash the firmware
```
make flash FLASH_DEVICE=2e8a:0003
```
Once flashed, the board will automatically reboot and goes back in operation mode.
# Auto-reconnect printer after power-on
[Source ](https://arnav.jain.se/2020/auto-restart-klipper-when-ender3-connected-to-pi/ ) by Arnav Jain. \
[Wallabag backup ](https://wallabag.igox.org/view/211 )
---
Start off by accessing klipper host using ssh.
```
ssh ender3k
````
Then create the `98-klipper.rules` file in the `/etc/udev/rules.d/` folder:
```
sudo touch /etc/udev/rules.d/98-klipper.rules
```
Retreive `idVendor` and `idProduct` for the Klipper MCU:
1. Retrieve Klipper MCU ID
```
lsusb
```

2. Retrieve `idVendor` and `idProduct` using the Klipper MCU ID
```
lsusb -v -d 1d50:614e | grep id
```

Then add the following text into the `98-klipper.rules` file just created:
1. Edit the `98-klipper.rules` file
```
sudo nano /etc/udev/rules.d/98-klipper.rules
```
2. Add text (remove the `0x` at the begining of the IDs)
```
## rule to restart klipper when the printer is connected via usb
SUBSYSTEM=="usb", ATTRS{idVendor}=="1d50", ATTRS{idProduct}=="614e", ACTION=="add", RUN+="/usr/bin/sudo -u pi /bin/sh -c '/bin/echo RESTART > /home/pi/printer_data/comms/klippy.serial'"
```
Finally, re-load the udev rules:
```
sudo udevadm control --reload-rules
```