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

1 Like

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”.

1 Like

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:


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:

1 Like

I don’t have a printer with the new board, so I can’t really help.

Hey i think i have found the Soluton, dont ask me were but this works for me:

pin: PA4
x_offset: 0.0
y_offset: 0.0
#z_offset: -0.759
speed: 0.50
lift_speed: 5
samples: 3
samples_tolerance: 0.05
samples_tolerance_retries: 2

[gcode_macro TARE_PROBE]

	SET_PIN PIN=probe_enable VALUE=0
	G4 P250
	SET_PIN PIN=probe_enable VALUE=1
	G4 P250
	{action_respond_info("Probe tared")}

[output_pin probe_enable]
pin: !PA1
value: 1

How i can fix the endstop of Z?
Doesn’t work!

I followed the same procedure, klipperWRT is installed because i can access the webinterface.
But how do i get to klipper itself?
My touch screen still shows creality firmware

Kind Regards

Good Day

I need help please

I tried to reinstall mainsail then decided to install fluid as i have problems where klipper stops responding and my prints fail

Now i cant get fluid to open in my web browser but the luci interface still works. It’s as if the web services for fluid is broken or not installed.

How do i do a clean install on the creality wifi box?

My Printer is a CR 10 Smart (Not the Pro)
Using the internal creality wifi box with klipper WRT

Hi Scrappies - I’ve both a question, and an answer for you (and possibly a solution to avoid the re-flashing). I’ve personally ben unable to get klipper flashed to my CR-10 Smart (with the new board model). I would love to know how you were able to get that accomplished.

As far as how to re-flash back, you would:

  1. Download the firmware from the Creality site;
  2. Extract it;
  3. Copy the .bin file to a formatted (FAT32, 4096 block size, Max. 8GB) SD card, making sure it’s the only file on the SD card;
  4. Insert the card, then power on the printer, holding in the power button until you here a click (about 15-20 seconds);
  5. Shut the printer down;
  6. On a second micro-SD card, copy the firmware and after removing the touch-screen and disassembling it to get to the circuit board, put it into the micro-SD slot on the board.
  7. Power up the printer.

As for the freezing/hiccups that you’re getting, have you verified that you are supplying adequate voltage (and amperage) to your rpi/external device? I’ve seen others mention that if the device is underpowered, you will likely have issues with performance, (freezing, etc.). I believe the specs to drive an Raspberry Pi 4B is 5.1V, 2.5A. Because of typical voltage fluctuation, I’ve seen others recommend 5.2 V and a higher amp rating.

I hope some of this helps.

Hi all!
Did anyone get the CR10 Smart (with the new MB) working with Klipper yet?
I’m trying to find a successful install somewhere, with the cr-fdm-v2.4.s1 mainboard.

From what I can gather, there has been some success getting the firmware going on the mainboard using the Pro config, since this is the mainboard in the Pro. but the pinouts are wrong between Pro and non-Pro.

Is it correct to conclude that all that’s needed is a valid cfg?
Or is there more to it? I’ll give the multimeter a try if I can’t find any pin layouts out there…

The config I shared was made for a CR-10 Smart. So it should work.

You are saying that your cfg should work with a newer Smart with cr-fdm-v2.4.s1 mainboard? Even though the pin assignments are different?
I am confused, can you clarify if you’ve tried it or heard of it working, with the new mainboard? thanks!

Hi Teligard,
Were you ever able to get klipper flashed on to your CR10 Smart with the new mainboard?