Skip to content

Instantly share code, notes, and snippets.

@mihaiserban
Last active April 27, 2024 22:58
Show Gist options
  • Save mihaiserban/bf9aea36454fa2b1e724ab391cce053c to your computer and use it in GitHub Desktop.
Save mihaiserban/bf9aea36454fa2b1e724ab391cce053c to your computer and use it in GitHub Desktop.
Klipper Ender 5 Plus stock printer config
# 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.
[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
#step_distance: .0025
endstop_pin: probe:z_virtual_endstop
position_max: 400
position_min: -5 #set position_min to a negative value such as -5 when probing to set z offset, then revert to 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
#pressure_advance: 0.617 # high value for stock long bowden tube, uncomment to enable pressure advance
#pressure_advance_smooth_time: 0.010 # uncomment to enable pressure advance
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
[safe_z_home]
home_xy_position: 180, 180
speed: 100
z_hop: 10 # Move up 10mm, so the probe doesnt hit anything
z_hop_speed: 5
[bltouch]
sensor_pin: ^PD3
control_pin: PB5
x_offset: -45
y_offset: 0
#z_offset: 0
speed: 3.0
samples: 1
pin_up_reports_not_triggered: True
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 # 3,3 or 5,5
[gcode_macro G29]
gcode:
G28
BED_MESH_CALIBRATE
BED_MESH_PROFILE SAVE=p1
G1 X0 Y0 Z5 F4000
[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
[fan]
pin: PH6
[mcu]
serial: /dev/serial/by-id/usb-FTDI_FT232R_USB_UART_AK06VNAB-if00-port0
[printer]
kinematics: cartesian
max_velocity: 300
max_accel: 2000 # 20x print speed recommended
max_z_velocity: 5
max_z_accel: 100
#[display]
# Not sure this is supported for E5+
@totalitarian
Copy link

Did you get the BLTouch working OK with klipper?

@mihaiserban
Copy link
Author

Yes, no issues

@totalitarian
Copy link

Great! Occasionally I get an error about BL touch failed to raise probe, doesn’t seem to cause an issue though

@mihaiserban
Copy link
Author

i get that as well if i run 5,5 probes, 2 of the probes give an error, the rest are fine.
for a 3,3 mesh is works fine.
i suspect it has something to do with the probing speed.
but since it worked i ignored it.

@mnrivera210
Copy link

Hey thanks for the config. Have you been able to get the stock filament sensor to work with klipper?

@Bob90
Copy link

Bob90 commented Dec 11, 2020

Got the stock filament sensor working. I used a multimeter to find the MCU pin name and played around with some macros from other Githhub users.

[pause_resume]
recover_velocity: 50 #allows pause resume functionality.

#filament runout sensor
[filament_switch_sensor filament_sensor]
switch_pin:PE4
pause_on_runout: false #pause handled by macro
runout_gcode:
  M600 #calls a macro with the name M600 (so it can be called by slicers too)
insert_gcode:
  M117 Filament inserted #just a throwaway GCode command to have something in this space. You can add your own.
#   A list of G-Code commands to execute after a filament insert is
#   detected. See docs/Command_Templates.md for G-Code format. The
#   default is not to run any G-Code commands, which disables insert
#   detection.
event_delay: 3.0
pause_delay: 0.0001

I use the macros linked from here: #Klipper3d/klipper#1354 by Hywelmartin and change the extrusion length to be within my config maximum

@mnrivera210
Copy link

@Bob90

Thank you so much for sharing. I was trying for the life of me find the right Pin. Once my print finishes I'll load your code in and see how it goes.

@Bob90
Copy link

Bob90 commented Dec 12, 2020

@mnrivera210 I found the pin using my multimeter. First time I've used it for something like this :)

@mnrivera210
Copy link

@Bob90
I've been using your config with great success! Only issue is after some time it appears to timeout and clear its position not allowing it to resume. Any idea how to keep it "Paused".

Also I've been trying to get the stock screen to work with no success so I tried to replace it with an lcd 12864, however I'm having a hard time getting the EXP1 & EXP2 pins to work. If you happen to know the pin out that would be great.

[display]
lcd_type: st7920
cs_pin: EXP1_4
sclk_pin: EXP1_5
sid_pin: EXP1_3
encoder_pins: ^EXP2_3, ^EXP2_5
click_pin: ^!EXP1_2
#kill_pin: ^!EXP2_8

[output_pin beeper]
pin: EXP1_1

Thank you again, you've really helped with getting the 5 Plus to be fully compatible with Klipper.

@Bob90
Copy link

Bob90 commented Dec 20, 2020

Hi, no idea on the LCD as I haven't tried yet.

There is an idle timeout setting that klipper has. Not sure on the default, but some suggested setting it yourself to a value of, say, 3000s (or 5 mins)

@mnrivera210
Copy link

Hi, no idea on the LCD as I haven't tried yet.

There is an idle timeout setting that klipper has. Not sure on the default, but some suggested setting it yourself to a value of, say, 3000s (or 5 mins)

Does that mean after 5 mins it will timeout? Currently it takes about that time for it to timeout, is there a way to have indefinite?

@Bob90
Copy link

Bob90 commented Dec 21, 2020

I have mine set for 7200, but you should be able to set it higher. I haven't tested/checked this to see if Klipper has a limit that you need to override.

@pnog73
Copy link

pnog73 commented May 25, 2021

My Ender 5 Plus gives-me this error. I just installed and compiled Klipper.

Help appreciated...

Recv: // This type of error is frequently caused by running an older
Recv: // version of the firmware on the micro-controller (fix by
Recv: // recompiling and flashing the firmware).
Recv: // Once the underlying issue is corrected, use the "RESTART"
Recv: // command to reload the config and restart the host software.
Recv: // Protocol error connecting to printer
Recv: // Klipper state: Not ready

@bartoszwas
Copy link

bartoszwas commented Oct 4, 2021

BTT TFT35.

[display]
lcd_type: emulated_st7920
spi_software_miso_pin: EXP2_1 #PB3
spi_software_mosi_pin: EXP1_3 #PH0
spi_software_sclk_pin: EXP1_5 #PA1
en_pin: EXP1_4 #PH1
encoder_pins: ^EXP2_5, ^EXP2_3 #PC4, PC6
click_pin: ^!EXP1_2 #PC2

[output_pin beeper]
pin: EXP1_1 #PG0

[board_pins]
aliases:
# EXP1 header
EXP1_1=PG0, EXP1_3=PH0, EXP1_5=PA1, EXP1_7=PA5, EXP1_9=,
EXP1_2=PC2, EXP1_4=PH1, EXP1_6=PA3, EXP1_8=PA7, EXP1_10=<5V>,
# EXP 2 header
EXP2_1=PB3, EXP2_3=PC6, EXP2_5=PC4, EXP2_7=PL0, EXP2_9=,
EXP2_2=PB1, EXP2_4=PB0, EXP2_6=PB2, EXP2_8=, EXP2_10=PG0

@HunterG6700
Copy link

How did you find the pinout? I am trying to find the pin names for the Creality v2.1 board.

@bartoszwas
Copy link

If you mean pinout for lcd, it should be same.

@Bob90
Copy link

Bob90 commented Apr 2, 2022

How did you find the pinout? I am trying to find the pin names for the Creality v2.1 board.

I think you asked on Reddit too?
I used a multimeter to read the resistance on the board pins and processor.

@bartoszwas
Copy link

Other wat is to peak in marlin pin config files.
Pin/ramps.h

@gumo88
Copy link

gumo88 commented Apr 17, 2022

is anybody know the second heater pin no as heater pin 1 is PB4 ?

@pswel1
Copy link

pswel1 commented May 2, 2022

Got the stock filament sensor working. I used a multimeter to find the MCU pin name and played around with some macros from other Githhub users.

Hi Bob that was a genius solution. Just curious, how did you trigger the pins to probe them w meter? Because now I'm not even using the factory board lol. Thanks

@Bob90
Copy link

Bob90 commented May 4, 2022

Got the stock filament sensor working. I used a multimeter to find the MCU pin name and played around with some macros from other Githhub users.

Hi Bob that was a genius solution. Just curious, how did you trigger the pins to probe them w meter? Because now I'm not even using the factory board lol. Thanks

I just found ones when they were powered off. I didn't need to find them all. So just a continuity check with multimeter.

@psicobra
Copy link

hi guys i am trying to add a second part cooling fan but for the life of me i can't find the correct pin out i guessed at the number and added this to my printer.cfg but it didn't work any help would be great thanks.

multi_pin my_fan]
pins: PH6, PH7

[fan]
pin = multi_pin:my_fan

@HunterG6700
Copy link

hi guys i am trying to add a second part cooling fan but for the life of me i can't find the correct pin out i guessed at the number and added this to my printer.cfg but it didn't work any help would be great thanks.

multi_pin my_fan] pins: PH6, PH7

[fan] pin = multi_pin:my_fan

What mainboard do you have?

@psicobra
Copy link

hi guys i am trying to add a second part cooling fan but for the life of me i can't find the correct pin out i guessed at the number and added this to my printer.cfg but it didn't work any help would be great thanks.
multi_pin my_fan] pins: PH6, PH7
[fan] pin = multi_pin:my_fan

What mainboard do you have?

It's a creality silent board version 2.2

@iRoc999
Copy link

iRoc999 commented May 7, 2023

Hello I am trying to get Klipper running on my Ender 5 Plus. I'm stuck at flashing the hex onto the mainboard. I have the Creality silent board v2.2
When I put the sd card with the compiled hex file nothing happens. I tried changing the hex to a bin file. I have heard rumors that i need to unplug the screen, and others that i need to use Cura to flash the firmware over, but no one that's actually done it, just people that say they heard.

any help at all is greatly appreciated

[Edit:] The screen prevents flashing on the Ender 5's. I used the RPi to flash the firmware over

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment