VZBOT Reference Configuration
- This page is a Klipper reference configuration template for VZBOT / VZBOT AWD, not a ready-to-use configuration.
serial,canbus_uuid, all pins, thermistor models, travel limits, endstop directions, and motor directions must be modified according to the actual hardware.- When powering on for the first time, disconnect the belts or keep your hand near the emergency stop/power-off position. Use
STEPPER_BUZZto check each motor first.
Scope of Application
| Structure | Description |
|---|---|
| VZBOT 2WD | Standard CoreXY, X/Y two motors |
| VZBOT AWD | Quad-motor CoreXY, commonly written as stepper_x, stepper_x1, stepper_y, stepper_y1 |
| VZ-HextrudORT | Reference extruder configuration below; actual rotation_distance still needs recalibration |
Items That Need Modification First
| Item | Location | Description |
|---|---|---|
| Board ID | [mcu] | Use serial for USB firmware, canbus_uuid for CAN firmware |
| Machine dimensions | [stepper_x], [stepper_y], [stepper_z] | Modify per VZ235, VZ330, or custom size |
| Motor direction | dir_pin | If direction is reversed, add or delete ! before the corresponding pin |
| Endstop pin | endstop_pin | Different writing for physical endstops, driverless endstops, and probes |
| Driver model | [tmc2209] / [tmc5160] | Must match the actual driver |
| Thermistor model | [extruder], [heater_bed] | Fill in according to actual hotend and bed sensors |
| PID parameters | [extruder], [heater_bed] | Execute PID calibration after initial debugging and save |
Basic Configuration
[include mainsail.cfg]
# [include fluidd.cfg]
# [include timelapse.cfg]
[virtual_sdcard]
path: ~/printer_data/gcodes
[pause_resume]
recover_velocity: 350
[display_status]
[exclude_object]
[gcode_arcs]
resolution: 0.1
[mcu]
serial: /dev/serial/by-id/usb-Klipper_xxxxxxxxxxxxx-if00
# canbus_uuid: xxxxxxxxxxxx
[temperature_sensor MCU]
sensor_type: temperature_mcu
[temperature_sensor HOST]
sensor_type: temperature_host
[printer]
kinematics: corexy
max_velocity: 500
max_accel: 10000
max_z_velocity: 20
max_z_accel: 300
square_corner_velocity: 10
When initially debugging a VZBOT machine, it is recommended to start with conservative speeds and accelerations. After confirming that homing, endstops, heating, extrusion, and fans are all functioning correctly, gradually increase max_velocity, max_accel, and redo resonance compensation.
2WD XY Configuration
Applicable to VZBOT with only two XY motors. Please replace pins according to the actual motherboard.
[stepper_x]
step_pin:
dir_pin:
enable_pin:
rotation_distance: 40
microsteps: 16
full_steps_per_rotation: 200
endstop_pin:
position_min: 0
position_endstop: 0
position_max: 330
homing_speed: 50
homing_retract_dist: 0
[tmc2209 stepper_x]
uart_pin:
interpolate: False
run_current: 1.2
sense_resistor: 0.110
stealthchop_threshold: 0
[stepper_y]
step_pin:
dir_pin:
enable_pin:
rotation_distance: 40
microsteps: 16
full_steps_per_rotation: 200
endstop_pin:
position_min: 0
position_endstop: 0
position_max: 330
homing_speed: 50
homing_retract_dist: 0
[tmc2209 stepper_y]
uart_pin:
interpolate: False
run_current: 1.2
sense_resistor: 0.110
stealthchop_threshold: 0
AWD XY Configuration
Applicable to VZBOT AWD with four XY motors. stepper_x and stepper_x1 should move in the same direction, and stepper_y and stepper_y1 should also move in the same direction.
Common configurations for VZBOT AWD include additional motor segments like stepper_x1, stepper_y1. Before use, confirm that the current Klipper version, kinematics configuration, and example configurations support these definitions; if using the official new generic kinematics configuration, change to the carriage / stepper format according to the corresponding example.
[stepper_x]
step_pin:
dir_pin:
enable_pin:
rotation_distance: 40
microsteps: 16
full_steps_per_rotation: 200
endstop_pin:
position_min: 0
position_endstop: 0
position_max: 330
homing_speed: 50
homing_retract_dist: 0
[tmc5160 stepper_x]
cs_pin:
spi_bus:
interpolate: False
run_current: 1.6
sense_resistor: 0.033
driver_TBL: 1
driver_TOFF: 3
driver_DISS2G: 1
driver_DISS2VS: 1
[stepper_x1]
step_pin:
dir_pin:
enable_pin:
rotation_distance: 40
microsteps: 16
full_steps_per_rotation: 200
[tmc5160 stepper_x1]
cs_pin:
spi_bus:
interpolate: False
run_current: 1.6
sense_resistor: 0.033
driver_TBL: 1
driver_TOFF: 3
driver_DISS2G: 1
driver_DISS2VS: 1
[stepper_y]
step_pin:
dir_pin:
enable_pin:
rotation_distance: 40
microsteps: 16
full_steps_per_rotation: 200
endstop_pin:
position_min: 0
position_endstop: 0
position_max: 330
homing_speed: 50
homing_retract_dist: 0
[tmc5160 stepper_y]
cs_pin:
spi_bus:
interpolate: False
run_current: 1.6
sense_resistor: 0.033
driver_TBL: 1
driver_TOFF: 3
driver_DISS2G: 1
driver_DISS2VS: 1
[stepper_y1]
step_pin:
dir_pin:
enable_pin:
rotation_distance: 40
microsteps: 16
full_steps_per_rotation: 200
[tmc5160 stepper_y1]
cs_pin:
spi_bus:
interpolate: False
run_current: 1.6
sense_resistor: 0.033
driver_TBL: 1
driver_TOFF: 3
driver_DISS2G: 1
driver_DISS2VS: 1
- Execute
STEPPER_BUZZ STEPPER=stepper_x,STEPPER_BUZZ STEPPER=stepper_x1,STEPPER_BUZZ STEPPER=stepper_y,STEPPER_BUZZ STEPPER=stepper_y1respectively. - The two motors on the same axis must move in the same direction.
- If the two motors on the same axis are pulling against each other, immediately disconnect power and modify the
!status of onedir_pin.
Z-Axis Configuration
Single Z Configuration
[stepper_z]
step_pin:
dir_pin:
enable_pin:
microsteps: 16
rotation_distance: 4
full_steps_per_rotation: 200
endstop_pin:
position_min: -5
position_endstop: 0
position_max: 330
homing_speed: 5
second_homing_speed: 2.5
homing_retract_dist: 5
[tmc2209 stepper_z]
uart_pin:
interpolate: False
run_current: 1.0
sense_resistor: 0.110
stealthchop_threshold: 0
Using Probe as Z Endstop
[stepper_z]
step_pin:
dir_pin:
enable_pin:
microsteps: 16
rotation_distance: 4
full_steps_per_rotation: 200
endstop_pin: probe:z_virtual_endstop
position_min: -5
position_max: 330
homing_speed: 5
second_homing_speed: 2.5
homing_retract_dist: 5
[probe]
pin:
x_offset: 0
y_offset: 0
# z_offset: 0
speed: 5
lift_speed: 10
samples: 3
samples_result: median
sample_retract_dist: 2
samples_tolerance: 0.075
samples_tolerance_retries: 3
Extruder Configuration
VZBOT commonly uses VZ-HextrudORT, Goliath, Dragon, Rapido, and other hotend combinations. The following provides only a general reference; rotation_distance must be measured in practice.
[extruder]
step_pin:
dir_pin:
enable_pin:
microsteps: 16
full_steps_per_rotation: 200
rotation_distance: 22.5
gear_ratio: 50:8
nozzle_diameter: 0.400
filament_diameter: 1.750
heater_pin:
sensor_type: PT1000
sensor_pin:
min_temp: 0
max_temp: 400
max_extrude_only_distance: 1000
max_extrude_only_velocity: 200
max_extrude_only_accel: 10000
pressure_advance: 0.02
pressure_advance_smooth_time: 0.03
[tmc2209 extruder]
uart_pin:
interpolate: False
run_current: 0.7
sense_resistor: 0.110
Common Reference Values for VZ-HextrudORT
| Extruder | Reference Value | Description |
|---|---|---|
| VZ-HextrudORT Low T8 | rotation_distance: 22.5 | Requires measured fine-tuning |
| VZ-HextrudORT Low T10 | rotation_distance: 23.8425 | Requires measured fine-tuning |
| VZ-HextrudORT Low Plus T8 | rotation_distance: 29.7 | Requires measured fine-tuning |
| VZ-HextrudORT Low Plus T10 | rotation_distance: 29.11 | Requires measured fine-tuning |
Heated Bed Configuration
[heater_bed]
heater_pin:
sensor_type: Generic 3950
sensor_pin:
min_temp: 0
max_temp: 130
# control: pid
# pid_Kp:
# pid_Ki:
# pid_Kd:
PID Calibration Command:
PID_CALIBRATE HEATER=heater_bed TARGET=100
SAVE_CONFIG
Fan Configuration
[fan]
pin:
max_power: 1.0
cycle_time: 0.002
hardware_pwm: false
shutdown_speed: 0
[heater_fan hotend_fan]
pin:
max_power: 1.0
kick_start_time: 0.5
heater: extruder
heater_temp: 50.0
[controller_fan driver_fan]
pin:
max_power: 1.0
shutdown_speed: 0
kick_start_time: 0.5
fan_speed: 0.8
idle_timeout: 90
idle_speed: 0.4
stepper: stepper_x,stepper_y
Bed Mesh
[bed_mesh]
speed: 150
horizontal_move_z: 5
mesh_min: 30,30
mesh_max: 300,300
probe_count: 5,5
mesh_pps: 2,2
algorithm: bicubic
bicubic_tension: 0.2
mesh_min and mesh_max must be calculated based on probe offset, bed size, and nozzle reachable range; they cannot be copied directly.
Debugging Sequence
- Modify
[mcu]and confirm that Klipper can connect to the motherboard. - Check temperature display; hotend and bed temperatures should be close to ambient temperature.
- Use
STEPPER_BUZZto check each motor's movement; coaxial motors on AWD must move in the same direction. - Check X/Y directions without belts or with loose belts.
- Execute
G28 X,G28 Y,G28 Zat low speed to confirm endstop trigger direction. - Perform hotend and heated bed PID calibration.
- Calibrate the extruder
rotation_distance. - Complete
Z_OFFSET, bed leveling, resonance compensation, and pressure advance calibration.
Common Issues
Klipper reports that stepper_x1 cannot be found
Check if the entire [stepper_x1] section in the AWD configuration is missing, or if the section name is incorrect.
AWD coaxial motors are fighting against each other
Immediately disconnect power and check the wiring sequence and dir_pin of the two motors on the same axis. Do not continue powered testing while they are pulling against each other.
Incorrect homing direction
In CoreXY, X/Y directions affect each other. First ensure coaxial AWD motors are in the same direction, then try adjusting the dir_pin of X/Y, changing only one location at a time and recording the result.
Hotend temperature jumps or displays abnormally
Prioritize checking the thermistor model, wiring, terminal crimping, and sensor_pin. PT1000, NTC 100K, and thermocouple/amplifier board configurations are different and cannot be mixed.