Lines on the side of print after upgrading from Marlin to Klipper

Basic Information:

Printer Model: TRONXY
MCU / Printerboard: BTT Octopus Pro
Host / SBC: Raspberry Pi 4
klippy.log

Describe your issue:

I’ve had this printer running on Marlin for over a year without any issues, once I’ve upgraded to Klipper these lines started to appear, this object is has a smooth surface, those lines should not be there.

Despite that I did go though my hardware setup, tightened screws, checked, inverted the rod, lubricated, increased the current in the stepper, etc.

None of that seemed to fix it, my 3d model supper smooth, those horizontal lines are nowhere to be seen on the GCODE produced by CURA, I’m using a decent PLA with specified temps, this same material worked fine back on Marlin.

Basically I must be missing something on Klipper that was not needed on Marlin or already had a default which worked for me, any tips on how to troubleshoot this?

Config: printer.txt (8.7 KB)

Can you please attach the klippy.log to your next post. It was asked for.

Have you run a PID tune with the bed?

Sorry I missed the log file, it’s 24MB so had to zip it.

klippy.zip (1.8 MB)

Thank you

The bed seem to run in bang-bang mode:

grafik

[heater_bed]
heater_pin = PA1
sensor_pin = PF3
sensor_type = ATC Semitec 104GT-2
control = watermark
min_temp = 0
max_temp = 130

You really should run the bed PID tune

I had an issue the looked quite similar and it was gone after the PID tune

I’ve decided to install Klipper on another printer I had here which is much smaller and also used to run on Marlin, I did the extruder and bed PID as you suggested, if you could take a look at my config/log and the line pattern on the model I did a test print which should also have a smooth wall but instead exhibits a line pattern, thinner then on the other printer but still there, far from being smooth, it’s PETG btw.

printer.cfg: https://pastecode.io/s/5f7gpcr5

klippy.log: https://pastecode.io/s/d9e4dfac

You can upload such files here so they don’t get lost.
Where is this printer config from?
Only 8 microsteps for X and Y what might be a coarse resolution though valid.
But you have set 80 microsteps for Z what is technically not possible as microsteps are a power of 2!
So you might check with 32 or 64 here.
Additionally the feeder has 36 microsteps set what is wrong too!
Set it to 32.

I would have expected Klipper to check for valid microstep values @koconnor @Sineos !?

Klipper will validate the microsteps if one is using a Trinamic driver with UART or SPI. If one is using some other type of stepper driver then the valid microsteps are specific to that driver and Klipper thus can’t really validate it. (That is, it is likely the stepper driver only supports microsteps that are a power of 2, but Klipper can’t really know that for sure.)

To the original report - using watermark heater control for the bed and incorrect stepper_z config settings are both common causes of Z artefacts.

-Kevin

Hi Brian.

Where is this printer config from?

I’ve got from the klipper sample config github: link

Only 8 microsteps for X and Y what might be a coarse resolution though valid.

Right, that’s what I had to use to get the X and Y to move the correct length after doing the measurements, was manual measurement and tweaking with the value until a 10mm move really did a 10mm move in the axis.

But you have set 80 microsteps for Z what is technically not possible as microsteps are a power of 2!

This current printer I’m testing on has a TMC2208 and I’m not specifying which stepper model is being used in the config thus it allows me to enter any value in the microsteps, I did that to get it to move up and down the amount of distance specified by me, also the sample config only had a tmc2209 section to uncomment if needed.

Btw I had to increase max_z_accel from 100 to 1000 though otherwise it would move way too slow, the Z-axis of my 3D printer has many steps, therefore the precision is higher, apparently.

So you might check with 32 or 64 here.

Will try that and report back with a sample print.

Additionally the feeder has 36 microsteps set what is wrong too!
Set it to 32.

Thank you, I will update it here and try it out.

Hi Kevin.

Klipper will validate the microsteps if one is using a Trinamic driver with UART or SPI. If one is using some other type of stepper driver then the valid microsteps are specific to that driver and Klipper thus can’t really validate it. (That is, it is likely the stepper driver only supports microsteps that are a power of 2, but Klipper can’t really know that for sure.)

Precisely, I’m not specifying which stepper I’m using, which happens to be a TMC2208 so that arbitrary microstep value is being used to achieve the correct movement on the Z axis. Should I add that stepper section for the TMC2208? If so which defaults do you recommend? (commented defaults)

To the original report - using watermark heater control

for the bed and incorrect stepper_z config settings are both common causes of Z artefacts.

Sorry that was on another printer I was trying here, on this smaller cartersian one I did the PID on the extruder and bed.

 [heater_bed]
#*# control = pid
#*# pid_kp = 68.986
#*# pid_ki = 1.451
#*# pid_kd = 820.075
#*#
#*# [extruder]
#*# control = pid
#*# pid_kp = 12.874
#*# pid_ki = 0.335
#*# pid_kd = 123.589

You do not use the microsteps to set the correct movement distance.
This is what rotation_distance is for for each stepper.
If not using UART or SPI mode you set the microsteps you defined via the respective jumpers on the board.

I don’t know where you have this method from but i urge you to read through the Klipper documentation and the documentation of your hardware.

And please use speeds and accelerations that are safe for your hardware.

You do not use the microst> eps to set the correct movement distance.

This is what rotation_distance is for for each stepper.

Got it. I’ll need to look up the specifications for the stepper motor to calculate it properly. Initially, I tried this approach, but the stepper motor ended up running too fast and making noise. As a workaround, I started adjusting the microsteps to get it to move more smoothly.

I don’t know where you have this method from but i urge you to read through the Klipper documentation and the documentation of your hardware.

I can’t recall if I saw someone else do this and copied it, but I essentially measured the movement with a specific value and then used the rule of three to calculate the target microsteps. I realize now that this method is incorrect.

And please use speeds and accelerations that are safe for your hardware.

Alright, I’ll start looking for the specs. This printer was built by someone else who primarily used the platform from a cheap unknown printer and kept upgrading the parts, including the board and steppers. As a result, it’s a mix of various components, so I’ll need to dig into the specifics of each part.

That in fact is correct but you do this with the rotation_distance value, at least on the extruder/feeder.
The rotation_distance for X, Y and Z is mathematically dictated by the pulleys, leadscrews, gears and belts and stuff of your kinematic and you normally won’t mess with those steps.
If your print is undersized you might resize it in the slicer/CAD or use shrinkage values in the filament settings of your slicer.