I am very new to Klipper and really want to give it a try. I just finished building a Cartesian style printer with an Octopus Pro board and want to run the Klipper firmware on it. I have always been hardcore Marlin when it comes to firmware but only because I understand it well. I have been able to flash the Octopus Pro with the Klipper firmware without issue. I am using Mainsail with Klipper and have everything installed onto my Pi. I can access the Pi through SSH and Mainsail is working fine.
My problem is the lack of confidence in my own work. I’d love for someone to help me Sanity check my printer.cfg file. I used the example configuration from Klipper but I have a lot of extras I need help with.
I have an MKS PWC power module connected to the Octopus Pro in the power detect connector. I also have a BigTreeTech 24 volt UPS module. Would I need to define the pins for these two?
I am also having trouble with setting up the Z tilt. I have been over the Klipper information 20 times and still don’t get it. Do I need to define the voltage in Klipper?
I will include my printer.cfg info below if anyone here can take a look and see if they spot anything I may have missed or got wrong.
My setup:
Cartesian style printer
Octopus Pro main board
24 volt power supply
Nema 17 motors
TMC2209 (BTT) drivers in UART mode
Dual Z drivers
300 by 300 mm heated bed
MKS PWC power module
24 volt UPS (BTT)
TFT35 v3.0 (BTT)
Dragon hot end
dual part cooling fans
separate cooling fan on the TMC drivers
Firmware
Klipper with Mainsail
This file contains common pin mappings for the BigTreeTech Octopus.
To use this config, the firmware should be compiled for the
STM32F446 with a “32KiB bootloader” and a “12MHz crystal” clock reference.
See docs/Config_Reference.md for a description of parameters.
Driver0
[stepper_x]
step_pin: PF13
dir_pin: PF12
enable_pin: !PF14
microsteps: 16
rotation_distance: 40
full_steps_per_rotation: 200
step_pulse_duration: 0.000000100
endstop_pin: tmc2209_stepper_x:virtual_endstop
position_endstop: 0
position_max: 290
homing_speed: 20
Driver1
[stepper_y]
step_pin: PG0
dir_pin: PG1
enable_pin: !PF15
microsteps: 16
rotation_distance: 40
full_steps_per_rotation: 200
step_pulse_duration: 0.000000100
endstop_pin: tmc2209_stepper_y:virtual_endstop
position_endstop: 0
position_max: 290
homing_speed: 20
Driver2
[stepper_z]
step_pin: PF11
dir_pin: PG3
enable_pin: !PG5
microsteps: 16
rotation_distance: 8
full_steps_per_rotation: 200
step_pulse_duration: 0.000000100
endstop_pin: PG10
position_endstop: 0
position_max: 280
homing_speed: 12
Driver3
The Octopus 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_z1]
step_pin: PG4
dir_pin: PC1
enable_pin: !PA0
microsteps: 16
rotation_distance: 8
full_steps_per_rotation: 200
step_pulse_duration: 0.000000100
endstop_pin: PG11
Driver4
[extruder]
step_pin: PF9
dir_pin: PF10
enable_pin: !PG2
heater_pin: PA2 # HE0
sensor_pin: PF4 #T0
microsteps: 16
rotation_distance: 33.500
full_steps_per_rotation: 200
step_pulse_duration: 0.000000100
nozzle_diameter: 0.400
filament_diameter: 1.750
sensor_type: EPCOS 100K B57560G104F
max_extrude_only_distance: 400.0
pressure_advance: 0.1
smooth_time: 2.0
min_extrude_temp: 170
pressure_advance_smooth_time: 0.080
control: pid
pid_Kp: 22.2
pid_Ki: 1.08
pid_Kd: 114
min_temp: 0
max_temp: 290
[filament_switch_sensor material_0]
switch_pin: PG12
Driver5
#[extruder1]
#step_pin: PC13
#dir_pin: PF0
#enable_pin: !PF1
#heater_pin: PA3 # HE1
#sensor_pin: PF5 # T1
#…
#[filament_switch_sensor material_1]
#switch_pin: PG13
Driver6
#[extruder2]
#step_pin: PE2
#dir_pin: PE3
#enable_pin: !PD4
#heater_pin: PB10 # HE2
#sensor_pin: PF6 # T2
#…
#[filament_switch_sensor material_2]
#switch_pin: PG14
Driver7
#[extruder3]
#step_pin: PE6
#dir_pin: PA14
#enable_pin: !PE0
#heater_pin: PB11 # HE3
#sensor_pin: PF7 # T3
#…
#[filament_switch_sensor material_3]
#switch_pin: PG15
[heater_bed]
heater_pin: PA1
sensor_pin: PF3
sensor_type: EPCOS 100K B57560G104F
control: watermark
min_temp: 0
max_temp: 100
[fan]
pin: PA8 # FAN0
[heater_fan fan1]
pin: PE5 # FAN1
[heater_fan fan2]
pin: PD12 # FAN2
[heater_fan fan3]
pin: PD13 # FAN3
#[heater_fan fan4]
#pin: PD14 # FAN4
#[heater_fan fan5]
#pin: PD15 # FAN5
[temperature_sensor mcu_temp]
sensor_type: temperature_mcu
[mcu]
serial: /dev/serial/by-id/usb-Klipper_stm32f446xx_0E002B00135053424E363620-if00
#restart_method: command
setup for PA9, PA10 USART1_tx / rx directly connected to the RPI GPIO TX / RX pins
These are the pins the OctoPus uses for its built in RPI 40 pin connector
only connect GND, TX, RX - supply 5v power to the RPI separately
do not cross over TX/RX - it is done internally on the OctoPus PCB.
Use “sudo raspi-config” to disable the serial terminal - but enable the serial port.
When running “make menuconfig” you must un-select the USB Serial check box
[printer]
kinematics: cartesian
max_velocity: 500
max_accel: 1000
max_z_velocity: 12
max_z_accel: 5
########################################
TMC2209 configuration
########################################
[tmc2209 stepper_x]
uart_pin: PC4
diag_pin: PG6
run_current: 0.620
hold_current: 0.500
stealthchop_threshold: 999999
driver_SGTHRS: 85
[tmc2209 stepper_y]
uart_pin: PD11
diag_pin: PG9
run_current: 0.620
hold_current: 0.500
stealthchop_threshold: 999999
driver_SGTHRS: 85
[tmc2209 stepper_z]
uart_pin: PC6
diag_pin: PG10
run_current: 0.620
hold_current: 0.500
stealthchop_threshold: 999999
[tmc2209 stepper_z1]
uart_pin: PC7
diag_pin: PG11
run_current: 0.620
hold_current: 0.500
stealthchop_threshold: 999999
[tmc2209 extruder]
uart_pin: PF2
run_current: 0.620
hold_current: 0.500
stealthchop_threshold: 999999
#[tmc2209 extruder1]
#uart_pin: PE4
#run_current: 0.800
#stealthchop_threshold: 999999
#[tmc2209 extruder2]
#uart_pin: PE1
#run_current: 0.800
#stealthchop_threshold: 999999
#[tmc2209 extruder3]
#uart_pin: PD3
#run_current: 0.800
#stealthchop_threshold: 999999
[board_pins]
aliases:
# EXP1 header
EXP1_1=PE8, EXP1_2=PE7,
EXP1_3=PE9, EXP1_4=PE10,
EXP1_5=PE12, EXP1_6=PE13, # Slot in the socket on this side
EXP1_7=PE14, EXP1_8=PE15,
EXP1_9=, EXP1_10=<5V>,
# EXP2 header
EXP2_1=PA6, EXP2_2=PA5,
EXP2_3=PB1, EXP2_4=PA4,
EXP2_5=PB2, EXP2_6=PA7, # Slot in the socket on this side
EXP2_7=PC15, EXP2_8=<RST>,
EXP2_9=<GND>, EXP2_10=PC5
[safe_z_home]
home_xy_position: 145, 145
speed: 50.0
z_hop: 10
z_hop_speed: 15.0
#move_to_previous: False
[save_variables]
filename: ~/variables.cfg
[idle_timeout]
gcode: M84
timeout: 300
[pause_resume]
recover_velocity: 50.0
[firmware_retraction]
retract_length: 6
retract_speed: 20
unretract_extra_length: 1
unretract_speed: 10
[adxl345]
cs_pin:
#spi_speed: 5000000
#spi_bus:
#spi_software_sclk_pin:
#spi_software_mosi_pin:
#spi_software_miso_pin:
#axes_map: x, y, z
#rate: 3200
[bltouch]
sensor_pin: PB7
control_pin: PB6
pin_move_time: 0.680
stow_on_each_sample: True
probe_with_touch_mode: False
#pin_up_reports_not_triggered: True
#pin_up_touch_mode_reports_triggered: True
#set_output_mode:
x_offset: -54
y_offset: 10
z_offset: 0
speed: 20
lift_speed: 15
samples: 2
sample_retract_dist: 2.0
samples_result: average
samples_tolerance: 0.100
samples_tolerance_retries: 2
[homing_heaters]
steppers: Z
heaters: extruder, heater_bed
[bed_mesh]
speed: 50
horizontal_move_z: 5
mesh_min: 35, 6
mesh_max: 280, 280
fade_start: 1.0
fade_end: 5.0
probe_count: 6, 6
#[z_tilt]
#z_positions:
#-25,280
#370,175
#points: 55,175 330,175
#speed: 150
#horizontal_move_z: 5
#retries: 3
#retry_tolerance: 0
See the sample-lcd.cfg file for definitions of common LCD displays.
######################################################################
BigTreeTtech TFT TouchSCreen emulated 12864 mode
######################################################################
[display]
lcd_type: emulated_st7920
spi_software_miso_pin: PA6
spi_software_mosi_pin: EXP1_3
spi_software_sclk_pin: EXP1_5
en_pin: EXP1_4
encoder_pins: ^EXP2_5, ^EXP2_3
click_pin: ^!EXP1_2
[output_pin beeper]
pin: EXP1_1