New klipper install on TronXY VEHO-600 - NEED HELP!

Basic Information:

Printer Model: TronXY VEHO600
MCU / Printerboard: stock
Host / SBC: BTT PI v1.2
klippy.log

logs-20250619-134759.zip (822.4 KB)

Recently upgraded my VEHO 600 to Klipper from Marlin. The Marlin was working ok, just want more flexibility and options. I used a BTT PI v1.2 for Klipper, their image from their GitHub. The BTT was running Octoprint before this upgrade.

I used this Git for my config and files: https://github.com/3D-Printing-Nerds/klipper.veho.600

Everything seems “ok” runs, moves, and prints. My main issue right now is that when I print a 30mm cube, the Z height on the cube is just over 33mm.

I did ‘Probe calibration’ and ‘z end stop calibrations’ several times. The part has an good amount of squish on the bed.

It would seem that the Z height is getting higher as the print gets taller? The print ends up being about 3mm too tall.

Sliced with Orca:
Nozzle 1.2mm
Layer 0.8mm
Flow 1.104 (+/-)
Line width 100% (+)
Infill 10-30%
PA 0.086

mcu (stm32f446xx) Version: v0.13.0-152-gf54b7b937 Load: 0.00, Awake: 0.00, Freq: 180 MHz,

Host (aarch64, 64bit) Version: v0.13.0-154-g9346ad191 OS: BIGTREETECH-CB1 3.0.0-25.02.0-trunk bookworm Distro: armbian 3.0.0 Load: 1.23, Mem: 370.6 MB / 918.7 MB , Temp: 49°C

Tested with a Voron Profile, same results.

I checked the Z movement with a dial indicator, and it moved and returned several times to approximately the same spot (~0.01) with a rotation_distance: 12 for the Z in the cfg. Even after a 300mm move.

I nuked the PI and MCU firmware 3 times now and started over, same results.

Countless hours of googling

I am running out of things to check…

Here is the config zip

config-20250619-134914.zip (2.1 KB)

Hi @Xboxhacker ,

Using a ruler, if you command the Z to move 30mm, how far does it actually move?

1 Like

You read that entirely for the text you deleted?

Fill out above information and in all cases attach your klippy.log file (use zip to compress it, if too big). Pasting your printer.cfg is not needed


Are you sure about line 7? Even a rotation_distance of 12 is quite uncommon.

[stepper_z]
step_pin = PF6
dir_pin = !PF4
enable_pin = !PF7
microsteps = 16
full_steps_per_rotation = 200
rotation_distance = 11.96
endstop_pin = !PF11
position_max = 600
position_min = -15
homing_speed = 20.0
homing_retract_dist = 10
second_homing_speed = 8.0
position_endstop = 583.004

Full disclosure with the printer.cfg, better safe than sorry.

The 11.96 was a test. It should be 12. But even with 12, it has the same results.

rotation_distance = <full_steps_per_rotation> * <microsteps> / <steps_per_mm>

200x16/266.67 = 12
This is the steps/mm from my working marlin firmware.

Doing some more testing: 2020 x 370mm long extrusion.

From Z0 to 20mm move, the extrusion is too low from the nozzle.

From Z0 to 370mm move, the extrusion is too high.

z-velocity seems far too high for such a lead-screw

Try something around 10 to 20 with an accel of around 100 to 120.

Same results, NG. :expressionless_face:

It seems unlikely to be a Klipper issue. More likely a mechanical issue and/or wrong rotation_distance.

  • The too far movement on 20 mm points to a wrong rotation_distance.
  • The insufficient movement on 370 mm points to a mechanical issue or skipped steps.

Of course, given the measurements are correct.

Ok, did a lot more testing. Tries a shotgun approach with different rotation_distance: values. It would seem that 12 is the closest. Went from 8-13. I also turned down the accl and velocity to 8.

Here are some observations.

On this machine, when homing, the bed goes all the way to the bottom. There are 2 opto switches, one left and one right. The bed can tilt left or right since the motors are independent. When homing the Z, once one opto is triggered, the other motor continues until the second opto is triggered. This is now the +600mm of the printer. If I move up 100mm (G1 Z500), from the bottom optos, it moves 100mm. If I move up 500mm (G1 Z100), it has moved ~530mm. No matter which rotation_distance: is used, it is always off on the linear movement over the distance of the total movement.

I realize that Kilpper recommends using rotation_distance: 8 for the TR8x8 threaded rod, even AI said so :rofl:. When I use 8, the bed will crash the nozzle at a reported height of +190mm. Crazy amount of Z offset.

Since I have been fighting this for a week now, I had to flash the machine back to Marlin to get some work done. And it works 100% as it should.

I want to use Klipper for its rich features, but I am absolutely defeated.

Next thing I am going to try is maybe a different PI. Maybe a rotation_distance: 4. Maybe upgrade to ball screws.

Can you post an image of one of the lead screws with the scale of a (metric) ruler close to it?

Is it always the same “off” amount when doing this test with different rotation_distance: values?
When you use a rotation_distance: of 12 or 8 there is no difference to +30mm?

Just trying to understand the problem right!

Have to wait till Monday to get a picture with the ruler.

It is on every for single rotational distance. It is off by a different amounts per rotational distance.

I should have written down all the data. I did not. I will see what I can do next week. Right now the machine is working with Marlin again, there are things that I need to complete before I can mess with this again.

1 Like

No more need for that.
I found documents that confirm the use of T12 lead screws: Tronxy VEHO 600 Ball Screw Upgrade Kit - 680mm, Tronxy Z-axis T8/T12 screw rod with copper nuts – Tronxy 3D Printers Official Store

1 Like

UPDATE: I got it working; it still needs a little fine-tuning tho.

Gonna try and explain the issue and “resolution”. FYI rotation_distance: 12 is 100% correct.

Recap:
On this machine, when homing, the bed goes all the way to the bottom. There are 2 opto switches, one left and one right. The bed can tilt left or right since the motors are independent. When homing the Z, once one opto is triggered, the other motor continues until the second opto is triggered. This is now set to +600mm of the printer (in the original cfg position_endstop: 600).

The guide I was following said to:

PROBE_CALIBRATE
SAVE_CONFIG

Then

Z_ENDSTOP_CALIBRATE
SAVE_CONFIG

The PROBE_CALIBRATE set the probe offset to -3.4mm.
The Z_ENDSTOP_CALIBRATE set the position_endstop = 585.38
But it should have been position_endstop = 588.780. It took the probe offset away from the position_endstop. This is why the prints were getting messed up, and why the prints were over 3mm too tall.

I am not a Klipper expert; this is my second dive into Klipper. So I may be wrong still. :rofl:

The stock Marlin would move the bed down to the bottom, trigger both optos (tilt if needed), then return to the top and stop at the probe on the carriage. This would be Z0. Then the offset would be about -3.7mm from the probe to the nozzle.

How can I accomplish this with Klipper? The bed still needs to flatten out at the bottom optos, then rise up to the probe and set Z0. The position_max: 600 would still be the same. But the travel from the bottom to the probe would be a soft limit?