Klipper error virtual end stop

I have a BTT Manta M8P with CB1. Klipper, Moonraker, Mainsail installed and board flashed. The board is currently powered by USB and Mainsail connected without issue. Now I am modifying the basic Manta M8P printer cfg file for my Ender 5 plus and I now get this error when I try to config z-axis virtual endstop and BLtouch. My printer.cfg file is below. What am I missing here? Any ideas?

Klipper reports: ERROR

Probe virtual endstop only useful as endstop pin


[include mainsail.cfg]

This file contains common pin mappings for the BIGTREETECH Manta M8P

To use this config, the firmware should be compiled for the

STM32G0B1 with a “8KiB bootloader” and USB communication.

See docs/Config_Reference.md for a description of parameters.

[stepper_x]

step_pin: PE2

dir_pin: PB4

enable_pin: !PC11

microsteps: 16

rotation_distance: 40

endstop_pin: ^PF3

position_endstop: 350

position_max: 350

homing_speed: 100

[stepper_y]

step_pin: PF12

dir_pin: PF11

enable_pin: !PB3

microsteps: 16

rotation_distance: 40

endstop_pin: ^PF4

position_endstop: 350

position_max: 350

homing_speed: 100

[stepper_z]

step_pin: PD7

dir_pin: !PD6

enable_pin: !PF10

microsteps: 16

rotation_distance: 4

endstop_pin: ^PF5

endstop_pin: probe:Z_virtual_endstop

position_min: -3

position_max: 400

homing_speed: 10

second_homing_speed: 3

homing_retract_dist: 3

Motor4

The M8P only has 4 heater outputs which leaves an extra stepper

This can be used for a second Z stepper, dual_carriage, extruder co-stepper,

or other accesory such as an MMU

#[stepper_]

#step_pin: PD3

#dir_pin: PD2

#enable_pin: PD5

#endstop_pin: PC0

#…

[extruder]

step_pin: PC9

dir_pin: PC8

enable_pin: !PD1

microsteps: 16

rotation_distance: 33.683

nozzle_diameter: 0.4

filament_diameter: 1.75

heater_pin: PE3 # HE0

sensor_pin: PA1 # T0

sensor_type: Generic 3950

control: pid

pid_Kp: 22.2

pid_Ki: 1.08

pid_Kd: 114

min_temp: 0

max_temp: 260

[safe_z_home]

home_xy_position: 180, 180

speed: 100

z_hop: 10

z_hop_speed: 5

[bltouch]

sensor_pin: PB2

control_pin: PB1

x_offset: -45

y_offset: 0

z_offset: 0

speed: 3.0

pin_up_touch_mode_reports_triggered: False

[bed_mesh]

speed: 100

horizontal_move_z: 8

mesh_min: 50, 50

mesh_max: 300, 300

probe_count: 3, 3

[filament_switch_sensor material_0]

switch_pin: PC1

Motor6

#[extruder1]

#step_pin: PA10

#dir_pin: PD15

#enable_pin: !PA15

#heater_pin: PB5 # HE1

#sensor_pin: PA2 # T1

#…

[filament_switch_sensor material_1]

switch_pin: PC2

Motor7

#[extruder2]

#step_pin: PD12

#dir_pin: PD11

#enable_pin: !PD14

#heater_pin: PB6 # HE2

#sensor_pin: PA3 # T2

#…

Motor8

#[extruder3]

#step_pin: PD10

#dir_pin: PD8

#enable_pin: !PD9

#heater_pin: PE1 # HE3

#sensor_pin: PA4 # T3

#…

[heater_bed]

heater_pin: PB7

sensor_pin: PA0 # TB

sensor_type: ATC Semitec 104GT-2

control: watermark

sensor_type: EPCOS 100K B57560G104F

sensor_pin: PA0 # TB

control: pid

pid_Kp: 690.34

pid_Ki: 111.47

pid_Kd: 1068.83

min_temp: 0

max_temp: 130

min_temp: 0

max_temp: 130

[fan]

pin: PE6

[heater_fan fan1]

pin: PE0

#[heater_fan fan2]

#pin: PC12

#[heater_fan fan3]

#pin: PE5

#[heater_fan fan4]

#pin: PE4

#tachometer_pin: PC13

#[heater_fan fan5]

#pin: PB8

#tachometer_pin: PC14

#[heater_fan fan6]

#pin: PB9

#tachometer_pin: PC15

[mcu]

serial: /dev/serial/by-id/usb-Klipper_stm32g0b1xx_290019000F504B4633373520-if00

[printer]

kinematics: cartesian

max_velocity: 300

max_accel: 2500

max_z_velocity: 5

max_z_accel: 100

########################################

TMC2209 configuration

########################################

[tmc2209 stepper_x]

uart_pin: PC10

#diag_pin: PF3

run_current: 0.800

stealthchop_threshold: 999999

[tmc2209 stepper_y]

uart_pin: PF13

#diag_pin: PF4

run_current: 0.800

stealthchop_threshold: 999999

[tmc2209 stepper_z]

uart_pin: PF9

diag_pin: PF5

run_current: 0.650

stealthchop_threshold: 999999

#[tmc2209 stepper_]

#uart_pin: PD4

##diag_pin: PC0

#run_current: 0.650

#stealthchop_threshold: 999999

[tmc2209 extruder]

uart_pin: PD0

run_current: 0.800

stealthchop_threshold: 999999

#[tmc2209 extruder1]

#uart_pin: PF8

#run_current: 0.800

#stealthchop_threshold: 999999

#[tmc2209 extruder2]

#uart_pin: PD13

#run_current: 0.800

#stealthchop_threshold: 999999

#[tmc2209 extruder3]

#uart_pin: PC7

#run_current: 0.800

#stealthchop_threshold: 999999

########################################

TMC2130 configuration

########################################

#[tmc2130 stepper_x]

#cs_pin: PC10

#spi_bus: spi1

##diag1_pin: PF3

#run_current: 0.800

#stealthchop_threshold: 999999

#[tmc2130 stepper_y]

#cs_pin: PF13

#spi_bus: spi1

##diag1_pin: PF4

#run_current: 0.800

#stealthchop_threshold: 999999

#[tmc2130 stepper_z]

#cs_pin: PF9

#spi_bus: spi1

##diag1_pin: PF5

#run_current: 0.650

#stealthchop_threshold: 999999

#[tmc2130 stepper_]

#cs_pin: PD4

#spi_bus: spi1

##diag1_pin: PC0

#run_current: 0.800

#stealthchop_threshold: 999999

#[tmc2130 extruder]

#cs_pin: PD0

#spi_bus: spi1

#run_current: 0.800

#stealthchop_threshold: 999999

#[tmc2130 extruder1]

#cs_pin: PF8

#spi_bus: spi1

#run_current: 0.800

#stealthchop_threshold: 999999

#[tmc2130 extruder2]

#cs_pin: PD13

#spi_bus: spi1

#run_current: 0.800

#stealthchop_threshold: 999999

#[tmc2130 extruder3]

#cs_pin: PC7

#spi_bus: spi1

#run_current: 0.800

#stealthchop_threshold: 999999

[board_pins]

aliases:

EXP1 header

EXP1_1=PE9, EXP1_2=PE10,

EXP1_3=PE11, EXP1_4=PE12,

EXP1_5=PE13, EXP1_6=PE14, # Slot in the socket on this side

EXP1_7=PE15, EXP1_8=PB10,

EXP1_9=, EXP1_10=<5V>,

EXP2 header

EXP2_1=PB14, EXP2_2=PB13,

EXP2_3=PF7, EXP2_4=PB12,

EXP2_5=PE7, EXP2_6=PB11, # Slot in the socket on this side

EXP2_7=PE8, EXP2_8=,

EXP2_9=, EXP2_10=PC5

See the sample-lcd.cfg file for definitions of common LCD displays.

#[bltouch]

#sensor_pin: PB2

#control_pin: PB1

Proximity switch

#[probe]

#pin: PF6

#[output_pin ps_on_pin]

#pin: PC3

#[neopixel my_neopixel_1]

#pin: PC6

#[neopixel my_neopixel_2]

#pin: PA9

#[hall_filament_width_sensor]

#adc1: PC5

#adc2: PB0

Looking at the error it sounds like the BLtouch Pin is not in a PWM connection.

Going to have a bit more detailed look at your .cfg file but that’s basically what the error is saying.

I am assuming its physically plugged into a PWM but the config file is setup to look at a 2pin switched input.

Right now nothing is plugged into the board… it’s not in the printer yet - just on the bench powered by USB. Does the BL touch need to be plugged in? I guess it would make sense if it does…

Yes. The BL Touch needs to be plugged in.

In the future, you should read through the “klippy.log” file as it has a lot of really useful information and, if you still can’t find the problem, then post the entire file as it has the latest printer.cfg that is running and more detailed information.

You might also want to join the Klipper Discourse group: https://klipper.discourse.group/

Thank you - makes perfect sense. I have joined the Klipper Discourse group as well as r/klippers. :slightly_smiling_face:

1 Like

thanks, Myke, great advice.

1 Like

Finally got back to this and got it figured out. EVERYTHING is case-sensitive! The “endstop_pin: probe:Z_virtual_endstop” in my config file had a capital Z… simple as that. I guess the klipper error verbiage can be somewhat nebulous.

thats amazing, does anyone know if Klipper is based on a Linux Kernel? would make sense for the case sensitivity in that case?

Klipper is a Linux application not an operating system or kernel. You need a host system running Linux to run it as well as a user interface (the most popular one right now is “Mainsail” which is part of the installation package).

If you’re going to test out Klipper for the first time, I HIGHLY recommend that you use a Raspberry Pi 4B (with the 3B) being a close second even though they’re somewhat expensive right now (I believe CanaKit has some packages available that aren’t terrible in price when you consider you’re getting the power supply, case, keyboard, etc. with the Raspberry Pi).

If you look around, people are publishing that they’re using Pi Zeros, and Orange Pis as well as old laptops running Linux with Klipper and these approaches are significantly harder to set up than using a Raspberry Pi 4B and will have performance issues that are very hard to track down and resolve.

1 Like