Ender 5 Plus + Klipper: Difference between revisions

From munkjensen.net/wiki
 
(21 intermediate revisions by the same user not shown)
Line 9: Line 9:
Later i might try the [[#Klipper + Moonraker + MainSail combo|Klipper + Moonraker + MainSail combo]].
Later i might try the [[#Klipper + Moonraker + MainSail combo|Klipper + Moonraker + MainSail combo]].


= Klipper + OctoPrint combo =
= Klipper + OctoPrint =
An [https://www.klipper3d.org/Installation.html installation guide] is avilable on the Klipper website. I will follow that now.
An [https://www.klipper3d.org/Installation.html installation guide] is avilable on the Klipper website. I will follow that now.


Line 18: Line 18:
Depending on the result of the first [http://www.3dbenchy.com/ Benchy] test print I believe that the next tuning should be done in this order:
Depending on the result of the first [http://www.3dbenchy.com/ Benchy] test print I believe that the next tuning should be done in this order:
# [https://www.klipper3d.org/Resonance_Compensation.html Resonance compensation]: A tool to reduce ringing in prints. This was a challenge to my 50 year old eyes but it actuallt helped a lot so do not skip this - find a magnifying glass ;-)
# [https://www.klipper3d.org/Resonance_Compensation.html Resonance compensation]: A tool to reduce ringing in prints. This was a challenge to my 50 year old eyes but it actuallt helped a lot so do not skip this - find a magnifying glass ;-)
# [https://reprap.org/wiki/Triffid_Hunter%27s_Calibration_Guide#E_steps Extruder E steps] - I skipped this because the test prints didn't show _any_ signs of over- or under-extrution. I made [https://studio.code.org/projects/applab/7Mz-Jt-Gy6HG5veaWxx5j9Zz0w_6pDnEqFoxZPUYCec this calculator for Klipper tuning] 10/11-2020.
# [https://www.klipper3d.org/Rotation_Distance.html#calibrating-rotation_distance-on-extruders Calibrate Klipper extruder rotation_distance] - I skipped this because the test prints didn't show _any_ signs of over- or under-extrution.  
# [https://reprap.org/wiki/Triffid_Hunter%27s_Calibration_Guide#Nozzle_Temperature Extruder nozzle temperature] - I skipped this because i already know what temperature the PLA i use need to be printed at on my E5+
# [https://reprap.org/wiki/Triffid_Hunter%27s_Calibration_Guide#Nozzle_Temperature Extruder nozzle temperature] - I skipped this because i already know what temperature the PLA i use need to be printed at on my E5+
# [https://www.klipper3d.org/Pressure_Advance.html Pressure advance]: Calibrate extruder pressure.
# [https://www.klipper3d.org/Pressure_Advance.html Pressure advance]: Calibrate extruder pressure.


<blockquote>
= Problems I ran into =
{| class="mw-collapsible mw-collapsed wikitable"
* The '''touch display on the printer does not work''' with Klipper and some search results suggests that the display on E5+ is not supported by Klipper :-/... i will keep look for solutions, but it is not essential to me because I use the OctoPrint webinterface. The stock 4.3 inch TFT LCD display is marked "DMT48270C043_06WT". Maybe that can help in the searce for solutions.
! My printer.cfg looks like this  -->
  '''THIS FIXED THE DISPLAY -->''' https://www.reddit.com/r/ender5plus/comments/kx9hsy/klipper_screen_on_ender_5_plus/
|-
| <pre># This file contains pin mappings for the Creality Ender 5 Plus.
# Ender 5 Plus stock uses a Creality v2.2 board, similar to CR-20 Pro.
# To use this config, the firmware should be compiled for the AVR
# atmega2560.
 
# See the example.cfg file for a description of available parameters.
 
#[display]
#lcd_type: st7920
#cs_pin: PA3
#sclk_pin: PA1
#sid_pin: PC1
#encoder_pins: ^PD2, ^PD3
#click_pin: ^!PC0
 
[stepper_x]
step_pin: PF0
dir_pin: PF1
enable_pin: !PD7
step_distance: .0125
endstop_pin: ^PE5
position_endstop: 350
position_max: 350
homing_speed: 100
 
[stepper_y]
step_pin: PF6
dir_pin: PF7
enable_pin: !PF2
step_distance: .0125
endstop_pin: ^PJ1
position_endstop: 350
position_max: 350
homing_speed: 100
 
[stepper_z]
step_pin: PL3
dir_pin: PL1
enable_pin: !PK0
step_distance: .001266
endstop_pin: probe:z_virtual_endstop
position_max: 400
position_min: 0
homing_speed: 10.0
 
[extruder]
step_pin: PA4
dir_pin: PA6
enable_pin: !PA2
step_distance: .010526
nozzle_diameter: 0.400
filament_diameter: 1.750
heater_pin: PB4
sensor_type: EPCOS 100K B57560G104F
sensor_pin: PK5
#control: pid
#pid_Kp: 22.2
#pid_Ki: 1.08
#pid_Kd: 114
min_temp: 0
max_temp: 260
pressure_advance: 0.74
pressure_advance_smooth_time: 0.040
 
[safe_z_home]
home_xy_position: 208, 180
speed: 100
z_hop: 10
z_hop_speed: 5
 
[bltouch]
sensor_pin: ^PD3
control_pin: PB5
x_offset: -41.5
y_offset: -5.8
#z_offset: 5
speed: 3.0
pin_up_touch_mode_reports_triggered: False
 
[bed_mesh]
speed: 100
horizontal_move_z: 8
mesh_min: 50, 50
mesh_max: 300,300
probe_count: 3,3
 
[heater_bed]
heater_pin: PH5
sensor_type: EPCOS 100K B57560G104F
sensor_pin: PK6
#control: pid
#pid_Kp: 690.34
#pid_Ki: 111.47
#pid_Kd: 1068.83
min_temp: 0
max_temp: 130
 
[bed_screws]
screw1: 68,298
screw1_name: rear left screw
screw2: 349,298
screw2_name: rear right screw
screw3: 68,54
screw3_name: front left screw
screw4: 349,54
screw4_name: front right screw
 
[fan]
pin: PH6
 
[mcu]
serial: /dev/serial/by-id/usb-FTDI_FT232R_USB_UART_AB0KE9QZ-if00-port0
 
[printer]
kinematics: cartesian
max_velocity: 300
max_accel: 2500
max_accel_to_decel: 2500
max_z_velocity: 5
max_z_accel: 100
 
[input_shaper]
shaper_freq_x: 57.7
shaper_freq_y: 67.5
shaper_type: mzv
 
#*# <---------------------- SAVE_CONFIG ---------------------->
#*# DO NOT EDIT THIS BLOCK OR BELOW. The contents are auto-generated.
#*#
#*# [extruder]
#*# control = pid
#*# pid_kp = 22.391
#*# pid_ki = 1.044
#*# pid_kd = 120.070
#*#
#*# [heater_bed]
#*# control = pid
#*# pid_kp = 64.458
#*# pid_ki = 0.820
#*# pid_kd = 1266.594
#*#
#*# [bltouch]
#*# z_offset = 2.299
</pre>
|}</blockquote>
 
= Klipper + OctoPrint problems I ran into =
* The touch display on the printer does not work with Klipper and some search results suggests that the display on E5+ is not supported by Klipper :-/... i will keep look for solutions, but it is not essential to me because I use the OctoPrint webinterface. The stock 4.3 inch TFT LCD display is marked "DMT48270C043_06WT". Maybe that can help in the searce for solutions.
* OctoPrint reported errors in the Gcode that turned out beeing related to hidden ascii codes in the start_gcode. Solution was found somewhere on the Intarwebs i cannot recall. I copied the Start and End G-code from Cura int Notepad++ and manually replaced all spaces with new ones. I could not see any difference on the spaces before and after BUT it worked so who cares ;-)
* OctoPrint reported errors in the Gcode that turned out beeing related to hidden ascii codes in the start_gcode. Solution was found somewhere on the Intarwebs i cannot recall. I copied the Start and End G-code from Cura int Notepad++ and manually replaced all spaces with new ones. I could not see any difference on the spaces before and after BUT it worked so who cares ;-)
* I lost http and ssh connection to the Raspberry Pi 3/4 into the Pressure Advance cube test print. The test print finished anyway so it was only network connections that died. I powercycled the Pi and everything seemed okay again!? It happened again and i suspect it is the WiFi connection that somehow locks up so I disabled the WiFi interface and connected the Raspberry Pi with an ethernet cable.
* I lost http and ssh connection to the Raspberry Pi 3/4 into the Pressure Advance cube test print. The test print finished anyway so it was only network connections that died. I powercycled the Pi and everything seemed okay again!? It happened again and i suspect it is the WiFi connection that somehow locks up so I disabled the WiFi interface and connected the Raspberry Pi with an ethernet cable.
= Klipper + Moonraker + MainSail combo =
will be addressed later... if i see any advantages in it ;-)
== Things to check B4 we ditch OctoPrint ==
* Can Cura interact with Mailsail?


= Reference pages =
= Reference pages =
Line 188: Line 34:
* [https://github.com/arksine/moonraker Moonraker] is a Python 3 based web server that exposes APIs with which client applications may use to interact with Klipper.
* [https://github.com/arksine/moonraker Moonraker] is a Python 3 based web server that exposes APIs with which client applications may use to interact with Klipper.
* [https://github.com/meteyou/mainsail Mainsail] is a lightweight & responsive web interface for the Klipper 3D printer firmware.
* [https://github.com/meteyou/mainsail Mainsail] is a lightweight & responsive web interface for the Klipper 3D printer firmware.
* [https://www.klipper3d.org/G-Codes.html This document] describe the G-Code commands that Klipper supports.
* [https://github.com/KevinOConnor/klipper/blob/master/docs/Config_Reference.md Printer.cfg reference.]
* My [[Printer.cfg]] file as of 5. jan. 2022


= Notes for the future =
= Notes for the future =
* During [https://www.klipper3d.org/Bed_Level.html#choose-the-appropriate-calibration-mechanism Probe calibration] it may be necessary to set the printer’s Z ''position_min'' to a negative number (eg, ''position_min = -2'').
# During [https://www.klipper3d.org/Bed_Level.html#choose-the-appropriate-calibration-mechanism Probe calibration] it may be necessary to set the printer’s Z ''position_min'' to a negative number (eg, ''position_min = -2'').
* [https://www.klipper3d.org/Manual_Level.html#adjusting-bed-leveling-screws Adjusting bed leveling screws] will also be nessesary to do now and then ;-)
# [https://www.klipper3d.org/Manual_Level.html#adjusting-bed-leveling-screws Adjusting bed leveling screws] is nessesary to do now and then ;-)
* [https://www.klipper3d.org/Config_checks.html#calibrate-pid-settings Calibrating PID settings] is a wise thing to do everytime the environment around the printer changes 'significantly'.
# [https://www.klipper3d.org/Config_checks.html#calibrate-pid-settings Calibrating PID settings] is a wise thing to do everytime the environment around the printer changes 'significantly'.
* [[Calibrate KLipper extruder step-distance]].
# [https://www.klipper3d.org/Rotation_Distance.html#calibrating-rotation_distance-on-extruders Calibrate Klipper extruder rotation_distance].
* [https://www.klipper3d.org/Pressure_Advance.html Pressure advance]: Calibrate extruder pressure.
# [https://www.klipper3d.org/Pressure_Advance.html Pressure advance]: Calibrate extruder pressure. '''!!!''' Disable any PA setting already present in your config file '''before''' you run the PA test '''!!!'''
* ALWAYS slice as described in the [https://www.klipper3d.org/Slicers.html tips for configuring a “slicer” application for use with Klipper].
# [https://www.klipper3d.org/Resonance_Compensation.html Resonance compensation]
# ALWAYS slice as described in the [https://www.klipper3d.org/Slicers.html tips for configuring a “slicer” application for use with Klipper].

Latest revision as of 12:21, 5 January 2022

Purpose

I would like to unleash the power of my Ender 5 Plus(here after referenced as E5+) by removing the "bottleneck" that the weak mainboard processing power introduce. I also need to keep the cost as low as possible. Klipper supposedly should do just this, by moving all data processing from the E5+ mainboard on to the Raspberry Pi 4 i got connected already anyway.

First try/step will be a combo of Klipper and Octoprint. This makes it easy to flash the Klipper firmware onth the E5+ and I already got OctoPrint running at a Raspberry Pi 4 connected to my E5+ so...

Later i might try the Klipper + Moonraker + MainSail combo.

Klipper + OctoPrint

An installation guide is avilable on the Klipper website. I will follow that now.

make menuconfig will ask for microcontroller - the E5+ uses atmega2560. See printer-creality-ender5plus-2019.cfg

You(and I) MUST read, understand and perform the Config checks - Manual Leveling - Probe Calibration & Bed Leveling BEFORE trying to print!!

The overview page is a valuable resource of information so i got a lot of reading to do ;-)

Depending on the result of the first Benchy test print I believe that the next tuning should be done in this order:

  1. Resonance compensation: A tool to reduce ringing in prints. This was a challenge to my 50 year old eyes but it actuallt helped a lot so do not skip this - find a magnifying glass ;-)
  2. Calibrate Klipper extruder rotation_distance - I skipped this because the test prints didn't show _any_ signs of over- or under-extrution.
  3. Extruder nozzle temperature - I skipped this because i already know what temperature the PLA i use need to be printed at on my E5+
  4. Pressure advance: Calibrate extruder pressure.

Problems I ran into

  • The touch display on the printer does not work with Klipper and some search results suggests that the display on E5+ is not supported by Klipper :-/... i will keep look for solutions, but it is not essential to me because I use the OctoPrint webinterface. The stock 4.3 inch TFT LCD display is marked "DMT48270C043_06WT". Maybe that can help in the searce for solutions.
 THIS FIXED THE DISPLAY --> https://www.reddit.com/r/ender5plus/comments/kx9hsy/klipper_screen_on_ender_5_plus/
  • OctoPrint reported errors in the Gcode that turned out beeing related to hidden ascii codes in the start_gcode. Solution was found somewhere on the Intarwebs i cannot recall. I copied the Start and End G-code from Cura int Notepad++ and manually replaced all spaces with new ones. I could not see any difference on the spaces before and after BUT it worked so who cares ;-)
  • I lost http and ssh connection to the Raspberry Pi 3/4 into the Pressure Advance cube test print. The test print finished anyway so it was only network connections that died. I powercycled the Pi and everything seemed okay again!? It happened again and i suspect it is the WiFi connection that somehow locks up so I disabled the WiFi interface and connected the Raspberry Pi with an ethernet cable.

Reference pages

  • My cry for help in the Danish Facebook group Den seriøse Ender-3/Ender-5 gruppe
  • Klipper is a 3d-Printer firmware. It combines the power of a general purpose computer with one or more micro-controllers.
  • OctoPrint provides a snappy web interface for controlling consumer 3D printers.
  • Moonraker is a Python 3 based web server that exposes APIs with which client applications may use to interact with Klipper.
  • Mainsail is a lightweight & responsive web interface for the Klipper 3D printer firmware.
  • This document describe the G-Code commands that Klipper supports.
  • Printer.cfg reference.
  • My Printer.cfg file as of 5. jan. 2022

Notes for the future

  1. During Probe calibration it may be necessary to set the printer’s Z position_min to a negative number (eg, position_min = -2).
  2. Adjusting bed leveling screws is nessesary to do now and then ;-)
  3. Calibrating PID settings is a wise thing to do everytime the environment around the printer changes 'significantly'.
  4. Calibrate Klipper extruder rotation_distance.
  5. Pressure advance: Calibrate extruder pressure. !!! Disable any PA setting already present in your config file before you run the PA test !!!
  6. Resonance compensation
  7. ALWAYS slice as described in the tips for configuring a “slicer” application for use with Klipper.