Creality CR-10 Smart Klipper Firmware with internal Creality Box

I converted the Creality CR-10 Smart to Klipper, using the internal Creality Box inside the machine.
I attached the config file and the firmware build configuration.
Klipper WRT can be installed with this guide: How to Install KlipperWRT on Creality Box?
CR-10 Smart Klipper with Internal Box

# This file contains pin mappings for the Creality CR-10 Smart from 3DPrintBeginner (
# To use this config, during "make menuconfig" select the STM32F103
# with a "28KiB bootloader" and serial (on USART1 PA10/PA9)
# communication.

# Flash this firmware by copying "out/klipper.bin" to a SD card and
# turning on the printer with the card inserted. The firmware
# filename must end in ".bin" and must not match the last filename
# that was flashed.

# See docs/ for a description of parameters.

step_pin: PB8
dir_pin: !PB7
enable_pin: !PC3
rotation_distance: 40
microsteps: 16
endstop_pin: PC4
position_min: -5
position_endstop: -5
position_max: 300
homing_speed: 50

step_pin: PB6
dir_pin: PB5
enable_pin: !PC3
rotation_distance: 40
microsteps: 16
endstop_pin: PC5
position_min: -2
position_endstop: -2
position_max: 300
homing_speed: 50

step_pin: PB4
dir_pin: !PB3
enable_pin: !PC3
rotation_distance: 8
microsteps: 16
endstop_pin: probe:z_virtual_endstop
position_min: -1.5
position_max: 400
homing_speed: 4
second_homing_speed: 1
homing_retract_dist: 2.0

max_extrude_only_distance: 1000.0
step_pin: PC2
dir_pin: !PB9
enable_pin: !PC3
rotation_distance: 30.4768
microsteps: 16
nozzle_diameter: 0.400
filament_diameter: 1.750
heater_pin: PB14
sensor_type: EPCOS 100K B57560G104F
sensor_pin: PB1
control: pid
# tuned for stock hardware with 200 degree Celsius target
pid_Kp: 14.32
pid_Ki: 0.81
pid_Kd: 63.12
min_temp: 0
max_temp: 275
pressure_advance: 0.78

heater_pin: PB13
sensor_type: EPCOS 100K B57560G104F
sensor_pin: PB0
control: pid
# tuned for stock hardware with 50 degree Celsius target
pid_Kp: 79.49
pid_Ki: 1.17
pid_Kd: 1349.52
min_temp: 0
max_temp: 120

pin: PB15
kick_start_time: 0.5

serial: /dev/ttyPrinter
restart_method: command

# Before printing the PROBE_CALIBRATE command needs to be issued
# to run the probe calibration procedure, described at
# docs/, to find the correct z_offset.
pin: PA4
x_offset: 0.0
y_offset: 0.0
z_offset: -0.35
speed: 2.0
samples: 3

home_xy_position: 150,150 # Change coordinates to the center of your print bed
speed: 50
z_hop: 3                 # Move up 2mm
z_hop_speed: 5

speed: 120
horizontal_move_z: 3
mesh_min: 10,10
mesh_max: 290, 290
probe_count: 6,6

#shaper_freq_x: 91.3
#shaper_type_x: ei
#shaper_freq_y: 42.6
#shaper_type_y: ei

#[filament_switch_sensor filament_sensor]
#pause_on_runout: true
#switch_pin: ^!PA7

[output_pin LED_pin]
pin: PA6
value: 1

[output_pin ps_on]
pin: PA0
value: 1
shutdown_value: 1

kinematics: cartesian
max_velocity: 500
max_accel: 5000
max_accel_to_decel: 3000
max_z_velocity: 5
max_z_accel: 100

###Fluidd config###
[include client.cfg] 
[include client_macros.cfg]

[gcode_macro CANCEL_PRINT]
description: Cancel the actual running print
rename_existing: CANCEL_PRINT_BASE


Good day sir, im but a smoothed brained ape so do forgive my ignorance.
I came across reference to this forum via a Klipper discussion. I desire to convert to Klipper but am at a loss over purchasing a few pi’s for the process when there are available to me, multiple unibody era mb’s. Do you know of any good descriptions of the necessary processes to utilise these with a robin nano v1.2?

More inline with this router post, mabe, Would it be possible with your hackery skills to use a the controller board from a paper printer? I only note as these are literally free and available to many folks regardless of their location or occupation. Old Samsung printers with Arm jupiter4E chips for example? Many thanks.

Hello, I really need help.

I downloaded the printer.cfg you gave above. For Klipper with CR10-Smart.

I look at the “Z” in the endstop settings and there is no trigger.

Do you know what the right probe is? Is it really PA4?
Could you provide an updated CR10-Smart printer.cfg?

Not sure if something changed with newer printers, but it worked great for me.
I don’t have an updated config. Sorry.

Z head touches the table but “Z” does not trigger.
It was triggered last night and I did automatic calibration.

I am using your printer.cfg. What do you think is the reason?

Hi, thanks for sharing your config.

I wonder where you found the pinout for this board?

Do you happen to know which pin the optical Z-Endstop is connected to? I’d rather use that for homing than the Nozzle Probe.

I manually mapped the pins using a multimeter. Good ol’ basic hardware “hacking”.

I’ve never done that, could you point me in a direction on how to find out which pin is connected to the Z-Endstop? I thought about writing some code that monitors all pins for changes, trigger the endstop, and see… is there an easier way that im not seeing?

I will try to find out the pin name. Maybe someone from Creality will leak it :smiley:

1 Like

I have the same problem, it seems that the newer shipped CR-10 Smart printers are shipped with a different mainboard.

Do you find a solution? I can’t even flash marlin back on my printer. :frowning: