The DELTA_CALIBRATE command doesn’t work

Basic Information:

Printer Model: TEVO Little Monster
MCU / Printerboard: BTT SKR 1.4 Turbo
Host / SBC BTT Pi 1.2
klippy.log

Hi everyone! I’m building a Delta printer based on the TEVO Little Monster with a BTT SKR 1.4 Turbo MCU.
I ran into a problem where the 3D Touch sensor always reads as “open” (trigger not detected). All the commands like BLTOUCH_DEBUG COMMAND=pin_down, BLTOUCH_DEBUG COMMAND=touch_mode, and QUERY_PROBE return “probe: open.” When I manually lift the probe, the command reports “probe: TRIGGERED.”

When I run Probe_Calibrate, the 3D Touch probe deploys and calibration completes successfully. The PROBE_ACCURACY command also runs fine. But as soon as I run Delta_Calibrate, the 3D Touch stays in the “pin_up” state and the nozzle crashes into the bed.

Please help, I don’t know where else to look for a solution.Processing: klippy (3).log…

See

Dear Sineos. I’ve been dealing with this algorithm for about 1.5–2 months now. I’ve tried every single step in the instructions—nothing works. I checked the wiring (even connected the sensor directly to the MCU board and replaced the sensor with a new one), but same result. Tried adding a pull-up resistor, even thought about inverting the signal with (!)—no luck.

Right now, when I power up the MCU, it tests the 3D touch (moves up and down like it should). Then I run prob_calibrate, and it works. But when I send the DELTA_CALIBRATE command, the 3D touch sensor doesn’t trigger.

I measured voltage on the control_pin—it’s 4.98V. Logically, everything should work… but it doesn’t. I even reinstalled Klipper using KIAUH.

I have no idea what I’m missing.

I’ve already tried the suggestions from this case (link below), but they didn’t help either.

  • Please upload the klippy.log. The initial upload seems to have failed.
  • Are you able to successfully perform the steps in Initial tests?

Here is the latest log file. I ran through the initial tests again, and the result is still the same: when running DELTA_CALIBRATE and BED_MESH_CALIBRATE, the 3D touch sensor does not activate.
klippy (4).log (545.0 KB)

Just to be very sure:

This works exactly as described?

Have you done a manual DELTA_CALIBRATE to ensure your general geometrical settings are reasonably accurate?

This works exactly as described - yes
Have you done a manual DELTA_CALIBRATE - no

When I run the command DELTA_CALIBRATE METHOD=manual, the probe is still inactive, and the nozzle crashes into the bed.

Check your Delta geometrical settings, particularly the position_endstop. If in doubt, reduce it by 40 to 50 mm to see the result.

I reduced the position_endstop value by 40 mm — changed it from 522 to 480. However, when I run the command DELTA_CALIBRATE METHOD=manual, the 3D Touch sensor still stays red, and the nozzle doesn’t reach the bed.

I just discovered the following: According to the instructions, using sensor_pin: ^P0.10 shows a voltage of only 2.4 volts on that pin (ChatGPT said it should be 3.3 volts). I switched the connector to sensor_pin: ^P1.25 where the voltage is 3.3 volts, but when I run BLTOUCH_DEBUG COMMAND=pin_up and then QUERY_PROBE, it still reports “open.”

Who is that guy?

ChatGPT is a neural network

Is it smart?

I hope :grin: :grin:

Manually tune your endstop value so that the nozzle stops 2–3 mm above the bed.

Well, the manual tells Klipper not to use the probe. You need to do it manually, using the paper method.

I have to admit that I never measured this, but when the “initial test” succeeds, I would stick with this setting.

It should work as well. Maybe omit the ^ on the pin definition. It is essential that the initial tests return positive results.

If you do not get the initial tests to pass, return to the previous connection, adjust your endstop, and then try an automatic DELTA_CALIBRATE.

I completed the initial test using the sensor pin: P1.25.
DELTA_CALIBRATE METHOD=manual - completed
DELTA_CALIBRATE still fails, and the 3D Touch sensor remains inactive

A couple things to consider:

  1. You need to know the z-height (distance between home position and nozzle just touching the bed), and make sure it is entered correctly. You only set this value under Stepper A: position_endstop: xxx.xxx.

  2. The best way to perform a Delta Calibration is the manual method, using a piece of paper. Most delta printers will have some effector tilt somewhere within the print radius… thus probes (bl Touch, CR Touch, etc.), unless using the nozzle or probe directly below the nozzle, are mostly useless in calibration or creating a bed mesh - Do these manually.

  3. Probe calibrate is only used to determine the distance between the triggered probe tip and the nozzle tip.

  4. The SKR 1.4 board & BTT Pad 7 worked on my delta but it wasnt great, I’m not sure why. Sometimes I would have to restart it before prints otherwise I would get errors. I ended up switching it out for a SKR Pico & Pi Zero w2, and it (Klipper) works much better, without issues.

  5. I have a bl Touch on my delta, but only to probe one spot on the bed before each print (similar to G30) to verify z-height, and get perfect first layers.

  6. If this helps, below are the relevant sections of my old printer cfg using the SKR 1.4 board - Not the Turbo 1.4

[bltouch]
sensor_pin: P0.10
control_pin: P2.0
pin_move_time: 0.680
stow_on_each_sample: True
probe_with_touch_mode: False
x_offset: 0.0
y_offset: 30.0
#z_offset: 1.0
speed: 5.0
samples: 3
sample_retract_dist: 5.0

At the moment, I think I’ve solved the problem—not exactly the way I wanted, but still.

Since the 3D Touch (BL Touch) passed the initial tests successfully, but the query_probe command always showed the status as “open,” I decided to try the following steps: run the command BLTOUCH_DEBUG COMMAND=pin_down and, as soon as the probe was opened, immediately run the DELTA_CALIBRATE command.

To my surprise, it worked.

However, I wanted everything to happen with just one button press, so I decided to write a script:


[gcode_macro D_C]
gcode:
	G28
    BLTOUCH_DEBUG COMMAND=pin_down
	delta_calibrate
	M300 S1000 P1000
	M300 S1000 P1000
	M300 S1000 P1000
	M300 S1000 P1000
	G28
	save_config
	FIRMWARE_RESTART

Maybe this solution will help someone else, just like it helped me.

Huge thanks to everyone who helped me solve this problem! :slight_smile: