CR-10-S5 from Marlin to Klipper

A long overdue change

Marlin may have been further developed, but the old hardware only works reasonably well with an older version.

However, because I kept experiencing repeated errors and starting a print job was always problematic, switching to a newer version helped me a lot.

Now I can even start a print job unattended with Klipper and usually get good print results.

The change is very easy, they said

At least, that's what I heard in videos and read on websites.

Ultimately, I had to figure out some things myself and read a lot of the documentation.

I simply don't see it that way, and it took far too much time.

Hardware changes

Component Before After
motherboardCreality  v2.2Manta M8P v2.0 + CB1
displaySingle color with rotary knobTFT 35 v2.1.1 a RGB LCD Touch (resistive)
caseUnchangedFlexed or multi-mastered :D
axis ZConnected with belt (one motor driver)Two motor drivers and height compensation function (tilt correction with BL-Touch)

The new components, of course, fit perfectly on the existing mounts after I printed and adjusted adapters.

I also changed the position of the two fans because there wasn't enough space for the larger one at the front.

Software changes

Marlin v1.1.6_BL-Touch (modified) was replaced with Klipper v0.13 (and Moonraker, Crowsnest, etc.).

And with that, the setup phase began. That meant correctly assigning all the ports in the .conf file, even though I used a template that did a lot of the heavy lifting for me.

Mounting adapter

First, I removed everything from the case and labeled each cable with little notes to avoid confusion later.

Then I measured everything as best I could, printed a template for cutting and drilling, and glued it on. Once everything was perfectly cut out (although it was a little crooked), I made a few adjustments to the monitor and fan adapter.

Before, afterwards

Helpful for the conversion

Connection diagrams eliminate the need to trace every cable to figure out what's connected to it.

They're even more important for crimping the connectors correctly. For example, if the endstops have only two pins but the sockets have three, in this case, they're pins 1 and 2, or PFX and G, while pin 3 remains free.

The BIGTREETECH MANTA M8P V2.0 User Manual.pdf is also required, and the CB1 manual may also be helpful.

Be sure to consult the jumper assignment section in the manual before installing the stepper motor drivers.

In my case, I used TMC2209s, which operate in UART mode, and the correct jumpers must be set for this.

The following table for the BL-Touch helped me:

planPinAssumption 1Assumption 2
WhitePD13BlackRed
GrayGNDWhiteBlue
YellowPD12YellowYellow
Red+5VRedBlack
BrownGNDBlueWhite

I think assumption 2 was correct in my case. I didn't have any precise information about my BL-Touch, and the cables were different colors than those listed in the manual.

Cooling

The temperatures seemed acceptable, but I still used thermal adhesive to attach heatsinks to the CB1 and the M8P's ARM. That definitely made a difference. Once connected to the CB1, you can query the temperatures using Putty or a similar program with the "sensors" command.

 

Software Installation

Once the hardware is prepared, the software can be set up.

  1. Download the desired image. Here: CB1_Debian12_Klipper_kernel6.6_20241219.img.xz from https://github.com/bigtreetech/CB1/releases
  2. Copy to a micro SD card. I used Rufus (5 MB in size, why do other programs over 100 MB use this?!!)
  3. The Micro SD card goes into the SOC slot! (System on the card – slot, SotC ;-)
  4. Start and connect using MobaXterm, read the IP from DHCP or find it by
    ping bigtreetech-cb1 -4

After that, all the instructions were confusing because of a lot of commands and instructions that either didn't work or were simply incorrect.

Klipper Firmware

  • Connect to the found IP and MobaXterm (or Putty, whatever).
    • User biqu
    • Password biqu

The status could already be viewed via the web interface and the same IP.

I wanted to proceed according to the manual, but there were no directories in which any ID should be found

  1. In DFU mode you should be able to find the manufacturer and product ID (here: 0483:df11) with the lsusb command
  2. Also according to the manual you can prepare Klipper for the board via make menuconfig
  3. and then without downloading it simply install it in DFU mode using  biqu@BTT-CB1:~/klipper$ make flash FLASH_DEVICE=0483:df11
  4. canbus settings still had to be transferred, with the following command you get the uuid:

~/klippy-env/bin/python ~/klipper/scripts/canbus_query.py can0
canbus_uuid=68cd148832f3

The ID (which is different for each printer) must then be entered in the printer configuration file. To do this, I entered the template from github.com/bigtreetech/Manta-M8P/blob/master/V2.0/Firmware/generic-bigtreetech-manta-m8p-V2_0.cfg in the

printer.cfg file under "Machine" in the Moonraker web interface, which I had previously uploaded there. (See category [mcu])

The web interface can be accessed with the same IP.

What needs to be set there can be found in the reference: https://www.klipper3d.org/Installation.html

You should take some time for this. Especially for adjusting the direction and the status of the end stops, it's best to choose a very small heated bed to protect the motors and belts.

  • printer.cfg3 KB

    My printer.cfg file as an example, contains heatbed data that is only suitable for my heatbed!

  • generic-bigtreetech-manta-m8p-V2_0.cfg9 KB

    My generic-bigtreetech-manta-m8p-V2_0.cfg file as an example, maybe I should have renamed it to MY-CR-10-S5-bigtreetech-manta-m8p-V2_0.cfg, because it is only suitable for my printer!

Calibrate or Frying Kali

When everything was finally running, I ran PID_CALIBRATE for the heatbed and the material heater via the console.

PID_CALIBRATE HEATER=extruder TARGET=220 WRITE_FILE=1
pid_Kp=27.033 pid_Ki=1.733 pid_Kd=105.429


PID_CALIBRATE HEATER=heater_bed TARGET=100 WRITE_FILE=1
pid_Kp=68.623 pid_Ki=1.688 pid_Kd=697.379

The values ​​must be saved or transferred.

Then I set the Z offset of the BL-Touch, the entry should be missing when you execute the command

PROBE_CALIBRATE 
bltouch: z_offset: 1.767

However, I changed the value a little later.

Superslicer

Using the Superslicer program, I performed various test prints, which can be selected in the program itself (under Calibration) and are sufficiently explained.

However, I still had one issue: the first 5 to 10 mm of the print were printed too narrowly. This was a bug I couldn't find anywhere; resetting or reloading the settings in Superslicer solved the problem.

A lot of settings had to be made in the Superslicer before we could finally print properly, so you have to take some time for that.

My Custom G-Code (Filament Start):

M190 S{(first_layer_bed_temperature[current_extruder] * 0.92)} ; Wait until Bed Temp 92 %
M140 S{first_layer_bed_temperature[current_extruder]}         ; set 100 % Bed Temp without waiting
M109 S{(first_layer_temperature[current_extruder]*0.95)}
G1 E-2.5 F3000 ; manuel retract (2.5 mm)
M104 S{first_layer_temperature[current_extruder]}
M190 S{(first_layer_bed_temperature[current_extruder])} ; Wait until Bed Temp 100 %
G1 E20.0 F3000  ; manuel unretract (20.0 mm)

My custom G-Code (Print Start):

G28 ;Home
Z_TILT_ADJUST ; Z-Tilt
G28 Z ; new home axis Z
BED_MESH_PROFILE LOAD=default_9_9_110 ; load Mesh-Profil (optional)  or; BED_MESH_CALIBRATE              
G92 E0 ;Reset Extruder
G1 Z2.0 F3000 ;Move Z Axis up

My custom G-code (end print):

G91 ; Relative Positioning
G1 E-2 F2700 ; 2 mm retract
G1 E-2 Z0.2 F2400 ; 2 mm retract and Z +0.2 mm
G1 X5 Y5 F3000 ; move to side out
G1 Z10 ; Z +10 mm
G90 ; Absolute Positioning

G1 X0 Y{print_bed_max[1]} ; move to Y max
M106 S0 ; Fans off
M104 S0 ; Heater off

Conclusion

The effort is much greater than you initially think.

The result, however, is quite encouraging.

  1. The color screen is much more appealing
  2. The print starts more reliably and adheres better because calibration is easier
  3. The software prints more reliably; very complex models could not be printed with the Marlin before
  4. The network connection enables better surveillance, the only thing missing is a camera, which you can supposedly connect – could – if you wanted to

Instead of walking to the printer with the SD card once to start printing, I now walk there once to turn it on, then back to upload the file and start printing, and then walk there a second time to check that the print has started. Everything is constantly being improved so dramatically; the developers even consider my movements—fantastic.

Comments

No Comments

Write comment

* These fields are required