# This file contains common pin mappings for the BigTreeTech OctoPus V1. # To use this config, the firmware should be compiled for the STM32F446 with a "32KiB bootloader" # Enable "extra low-level configuration options" and select the "12MHz crystal" as clock reference # after running "make", copy the generated "klipper/out/klipper.bin" file to a # file named "firmware.bin" on an SD card and then restart the OctoPus with that SD card. # See docs/Config_Reference.md for a description of parameters. ## Voron Design VORON2 250/300/350mm BigTreeTech OctoPus V1 TMC2209 UART config ## *** THINGS TO CHANGE/CHECK: *** ## MCU paths [mcu] section ## Thermistor types [extruder] and [heater_bed] sections - See 'sensor types' list at end of file ## Z Endstop Switch location [safe_z_home] section ## Homing end position [gcode_macro G32] section ## Z Endstop Switch offset for Z0 [stepper_z] section ## Probe points [quad_gantry_level] section ## Min & Max gantry corner postions [quad_gantry_level] section ## PID tune [extruder] and [heater_bed] sections ## Fine tune E steps [extruder] section [include ./SYSTEM/*.cfg] [include ./TOOLHEAD/*.cfg] [include ./CUSTOM/*.cfg] [mcu] ## [X in MOTOR0] - B Motor ## [Y in MOTOR1] - A Motor ## [E in MOTOR6] - Extruder ## Obtain definition by "ls -l /dev/serial/by-id/" then unplug to verify ##-------------------------------------------------------------------- serial: /dev/serial/by-id/usb-Klipper_stm32f446xx_360026001950534146373920-if00 restart_method: command ##-------------------------------------------------------------------- [printer] kinematics: corexy max_velocity: 500 max_accel: 4200 #Max 4000 #max_y_accel: 4200 #max_x_accel: 8000 #max_accel: 10000 #Testing - revert back to above line after! #max_accel_to_decel: 10000 #Testing - revert back to above line after! max_z_velocity: 30 #Max 15 for 12V TMC Drivers, can increase for 24V max_z_accel: 500 square_corner_velocity: 5.0 [force_move] enable_force_move: True [skew_correction] [exclude_object] [firmware_retraction] [gcode_arcs] resolution: 0.1 ##################################################################### # X/Y Stepper Settings ##################################################################### ## X Stepper on MOTOR0(B Motor) [stepper_x] step_pin: PF13 dir_pin: PF12 enable_pin: !PF14 rotation_distance: 40 microsteps: 16 full_steps_per_rotation:200 #set to 400 for 0.9 degree stepper endstop_pin: tmc2209_stepper_x:virtual_endstop position_min: 0 position_endstop: 352 position_max: 352 ##-------------------------------------------------------------------- homing_speed: 50 #Max 100 homing_retract_dist: 0 homing_positive_dir: true ## Make sure to update below for your relevant driver (2208 or 2209) [tmc2209 stepper_x] uart_pin: PC4 interpolate: False run_current: 0.9 hold_current: 0.7 sense_resistor: 0.110 #stealthchop_threshold: 400 diag_pin: ^PG6 driver_SGTHRS: 60 #255 Most Sensitive 0 Least Sensitive ## Y Stepper on MOTOR1 (A Motor) [stepper_y] step_pin: PG0 dir_pin: PG1 enable_pin: !PF15 rotation_distance: 40 microsteps: 16 full_steps_per_rotation:200 #set to 400 for 0.9 degree stepper endstop_pin: tmc2209_stepper_y:virtual_endstop position_min: 0 position_endstop: 359 position_max: 359 ##-------------------------------------------------------------------- homing_speed: 50 #Max 100 homing_retract_dist: 0 homing_positive_dir: true ## Make sure to update below for your relevant driver (2208 or 2209) [tmc2209 stepper_y] uart_pin: PD11 interpolate: False run_current: 0.9 hold_current: 0.7 sense_resistor: 0.110 #stealthchop_threshold: 400 diag_pin: ^PG9 driver_SGTHRS: 63 #255 Most Sensitive 0 Least Sensitive ##################################################################### # Z Stepper Settings ##################################################################### ## Z0 Stepper - Front Left on MOTOR2_1 [stepper_z] step_pin: PF9 dir_pin: PF10 enable_pin: !PG2 rotation_distance: 40 gear_ratio: 80:16 microsteps: 16 endstop_pin: EBB:gpio6 ## Z-position of nozzle (in mm) to z-endstop trigger point relative to print surface (Z0) ## (+) value = endstop above Z0, (-) value = endstop below ## Increasing position_endstop brings nozzle closer to the bed ## After you run Z_ENDSTOP_CALIBRATE, position_endstop will be stored at the very end of your config #position_endstop: -0.5 ##-------------------------------------------------------------------- ## Uncomment below for 250mm build #position_max: 240 ## Uncomment below for 300mm build #position_max: 290 ## Uncomment below for 350mm build position_max: 300 ##-------------------------------------------------------------------- position_min: -2 homing_speed: 15 second_homing_speed: 1 homing_retract_dist: 3 ## Make sure to update below for your relevant driver (2208 or 2209) [tmc2209 stepper_z] uart_pin: PF2 interpolate: true run_current: 0.8 hold_current: 0.8 sense_resistor: 0.110 stealthchop_threshold: 0 ## Z1 Stepper - Rear Left on MOTOR3 [stepper_z1] step_pin: PC13 dir_pin: !PF0 enable_pin: !PF1 rotation_distance: 40 gear_ratio: 80:16 microsteps: 16 ## Make sure to update below for your relevant driver (2208 or 2209) [tmc2209 stepper_z1] uart_pin: PE4 interpolate: true run_current: 0.8 hold_current: 0.8 sense_resistor: 0.110 stealthchop_threshold: 0 ## Z2 Stepper - Rear Right on MOTOR4 [stepper_z2] step_pin: PE2 dir_pin: PE3 enable_pin: !PD4 rotation_distance: 40 gear_ratio: 80:16 microsteps: 16 ## Make sure to update below for your relevant driver (2208 or 2209) [tmc2209 stepper_z2] uart_pin: PE1 interpolate: true run_current: 0.8 hold_current: 0.80 sense_resistor: 0.110 stealthchop_threshold: 0 ## Z3 Stepper - Front Right on MOTOR5 [stepper_z3] step_pin: PE6 dir_pin: !PA14 enable_pin: !PE0 rotation_distance: 40 gear_ratio: 80:16 microsteps: 16 ## Make sure to update below for your relevant driver (2208 or 2209) [tmc2209 stepper_z3] uart_pin: PD3 interpolate: true run_current: 0.8 hold_current: 0.80 sense_resistor: 0.110 stealthchop_threshold: 0 ##################################################################### # Bed Heater ##################################################################### [heater_bed] ## SSR Pin - BED_OUT heater_pin: PA1 sensor_type: Generic 3950 sensor_pin: PF3 ## Adjust Max Power so your heater doesn't warp your bed max_power: 1.0 min_temp: 0 max_temp: 125 #control: pid #pid_kp: 58.437 #pid_ki: 2.347 #pid_kd: 363.769 ##################################################################### # Fan Control ##################################################################### [fan] ## Part Cooling Fan - CPAP 7040 pin: PG15 max_power: 1.0 kick_start_time: 0.05 hardware_pwm: False cycle_time: 0.005 off_below: 0.1 [controller_fan stepper_fan] ## Controller fan - CNC_FAN2 pin: PD12 max_power: 0.9 kick_start_time: 0.5 fan_speed: 0.7 [controller_fan electronic_chamber_fans] ## Controller fan - CNC_FAN2 pin: PD13 max_power: 0.8 kick_start_time: 0.5 fan_speed: 0.4 [temperature_fan exhaust_fan] pin: PE5 shutdown_speed: 0.0 kick_start_time: 5.0 cycle_time: 0.05 hardware_pwm: True off_below: 0.15 sensor_type: temperature_combined sensor_list: temperature_sensor _chamber_1, temperature_sensor _chamber_2, temperature_sensor _chamber_3, temperature_sensor _chamber_4 combination_method: mean maximum_deviation: 999 control: pid pid_Kp: 35.0 pid_Ki: 12 pid_Kd: 4.0 pid_deriv_time: 2.0 target_temp: 50.0 min_temp: 0 max_temp: 110 min_speed: 0.149 max_speed: 1.0 gcode_id: C #[temperature_fan exhaust_fan] ## Exhaust fan - CNC_FAN3 #pin: PE5 #max_power: 1.0 #shutdown_speed: 0.0 #kick_start_time: 5.0 #cycle_time:0.05 #off_below:0.1 #sensor_type: temperature_combined #sensor_list: temperature_sensor _chamber_1,temperature_sensor _chamber_2,temperature_sensor _chamber_3,temperature_sensor _chamber_4 #combination_method: mean #maximum_deviation: 999 #min_temp: 0 #max_temp: 80 #target_temp: 35.0 #max_delta: 0.5 #max_speed: 1.0 #min_speed: 0.3 #control: watermark #gcode_id: C [gcode_macro M141] gcode: {% set s = params.S|default(0)|float %} SET_TEMPERATURE_FAN_TARGET temperature_fan="exhaust_fan" target={s} [fan_generic nevermore_fan] pin: PD15 max_power: 1.0 kick_start_time: 1.0 cycle_time: 0.05 off_below: 0.13 ##################################################################### # LED Control ##################################################################### #[output_pin caselight] # Chamber Lighting - HE1 Connector (Optional) #pin: PB11 #pwm:true #shutdown_value: 0 #value:1 #cycle_time: 0.01 [output_pin daylight] pin: PB11 pwm: True cycle_time: 0.01 ##################################################################### # Homing and Gantry Adjustment Routines ##################################################################### [idle_timeout] timeout: 1800 #[safe_z_home] ## XY Location of the Z Endstop Switch ## Update -10,-10 to the XY coordinates of your endstop pin ## (such as 157,305) after going through Z Endstop Pin ## Location Definition step. #home_xy_position:175,175 #speed:100 #z_hop:10 [quad_gantry_level] ## Use QUAD_GANTRY_LEVEL to level a gantry. ## Min & Max gantry corners - measure from nozzle at MIN (0,0) and ## MAX (250, 250), (300,300), or (350,350) depending on your printer size ## to respective belt positions #-------------------------------------------------------------------- ## Gantry Corners for 250mm Build ## Uncomment for 250mm build #gantry_corners: # -60,-10 # 310, 320 ## Probe points #points: # 50,25 # 50,175 # 200,175 # 200,25 ## Gantry Corners for 300mm Build ## Uncomment for 300mm build #gantry_corners: # -60,-10 # 360,370 ## Probe points #points: # 50,25 # 50,225 # 250,225 # 250,25 ## Gantry Corners for 350mm Build ## Uncomment for 350mm build gantry_corners: -60,-10 410,420 # Probe points points: 50,25 50,275 300,275 300,25 #-------------------------------------------------------------------- speed: 200 horizontal_move_z: 2 retries: 15 retry_tolerance: 0.015 max_adjust: 5 #-------------------------------------------------------------------- [neopixel front_logo] pin: PB0 # The pin connected to the neopixel. This parameter must be # provided. chain_count: 7 # The number of Neopixel chips that are "daisy chained" to the # provided pin. The default is 1 (which indicates only a single # Neopixel is connected to the pin). color_order: GRB # Set the pixel order required by the LED hardware (using a string # containing the letters R, G, B, W with W optional). Alternatively, # this may be a comma separated list of pixel orders - one for each # LED in the chain. The default is GRB. initial_RED: 1.0 initial_GREEN: 0.0 initial_BLUE: 0.0 initial_WHITE: 0.0 # See the "led" section for information on these parameters. #-------------------------------------------------------------------- ##################################################################### # Macros ##################################################################### [gcode_macro G32] description: Home XYZ mesh calibrate gcode: STATUS_HOMING BED_MESH_CLEAR G28 QUAD_GANTRY_LEVEL G1 X{ printer.toolhead.axis_maximum.x/2 } Y{ printer.toolhead.axis_maximum.y/2 } F4500 STATUS_MESHING BED_MESH_CALIBRATE METHOD=rapid_scan G1 X{ printer.toolhead.axis_maximum.x/2 } Y{ printer.toolhead.axis_maximum.y/2 } Z30 F4500 STATUS_READY #-------------------------------------------------------------------- [gcode_macro FAST_CALIBRATE] description: Quickly home axis and mesh area to be printed. QGL if needed gcode: BED_MESH_CLEAR _CG28 {% if printer.quad_gantry_level.applied|lower == 'false' %} STATUS_LEVELING QUAD_GANTRY_LEVEL {% endif %} G1 X{ printer.toolhead.axis_maximum.x/2 } Y{ printer.toolhead.axis_maximum.y/2 } F4500 STATUS_MESHING BED_MESH_CALIBRATE ADAPTIVE=1 METHOD=rapid_scan [gcode_macro PRINT_START] # Use PRINT_START for the slicer starting script - please customise for your slicer of choice gcode: CLEAN_NOZZLE STATUS_PRINTING LINE_PURGE [gcode_macro PRINT_END] # Use PRINT_END for the slicer ending script - please customise for your slicer of choice gcode: M400 ; wait for buffer to clear G92 E0 ; zero the extruder G1 E-10.0 F3600 ; retract filament G91 ; relative positioning G0 Z1.00 X20.0 Y20.0 F20000 ; move nozzle to remove stringing TURN_OFF_HEATERS M107 ; turn off fan M106 S0 G1 Z5 F3000 ; move nozzle up 5mm G90 ; absolute positioning BED_MESH_CLEAR SET_PIN PIN=daylight VALUE=0.0 ## Thermistor Types ## "EPCOS 100K B57560G104F" ## "ATC Semitec 104GT-2" ## "NTC 100K beta 3950" ## "Honeywell 100K 135-104LAG-J01" ## "NTC 100K MGB18-104F39050L32" (Keenovo Heater Pad) ## "AD595" ## "PT100 INA826" #*# <---------------------- SAVE_CONFIG ----------------------> #*# DO NOT EDIT THIS BLOCK OR BELOW. The contents are auto-generated. #*# #*# [extruder] #*# control = pid #*# pid_kp = 15.921 #*# pid_ki = 3.553 #*# pid_kd = 12.717 #*# #*# [heater_bed] #*# control = pid #*# pid_kp = 38.431 #*# pid_ki = 1.601 #*# pid_kd = 230.586 #*# #*# [stepper_z] #*# position_endstop = -0.65 #*# #*# [input_shaper] #*# shaper_type_x = mzv #*# shaper_freq_x = 52.2 #*# shaper_type_y = mzv #*# shaper_freq_y = 37.8