# 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 Trident 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 https://www.klipper3d.org/Config_Reference.html#common-thermistors for common thermistor types ## Hotend heater pin [extruder] section ## Leadscrew Rotation Distance [stepper_z], [stepper_z1], [stepper_z2] ## Z Endstop Switch location [safe_z_home] section ## Z Endstop Switch offset for Z0 [stepper_z] section ## Stepper Z1 enable pin [stepper_z1] section ## PID tune [extruder] and [heater_bed] sections ## Probe pin [probe] section ## Fine tune E steps [extruder] section [mcu] ## Obtain definition by "ls -l /dev/serial/by-id/" then unplug to verify ##-------------------------------------------------------------------- serial: /dev/serial/by-id/usb-Klipper_stm32f446xx_370048001150535556323420-if00 restart_method: command ##-------------------------------------------------------------------- [include mainsail.cfg] [include nitehawk-36.cfg] [printer] kinematics: corexy max_velocity: 300 max_accel: 3000 #Max 4000 max_z_velocity: 15 #Max 15 for 12V TMC Drivers, can increase for 24V max_z_accel: 350 square_corner_velocity: 5.0 ##################################################################### # X/Y Stepper Settings ##################################################################### ## B Stepper - Left ## Connected to MOTOR_0 ## Endstop connected to DIAG_0 [stepper_x] step_pin: PF13 dir_pin: !PF12 enable_pin: !PF14 rotation_distance: 40 microsteps: 32 full_steps_per_rotation:200 #set to 400 for 0.9 degree stepper endstop_pin: PG6 position_min: 0 ##-------------------------------------------------------------------- ## Uncomment below for 250mm build #position_endstop: 250 #position_max: 250 ## Uncomment for 300mm build #position_endstop: 300 #position_max: 300 ## Uncomment for 350mm build position_endstop: 350 position_max: 350 ##-------------------------------------------------------------------- homing_speed: 25 #Max 100 homing_retract_dist: 5 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.8 sense_resistor: 0.110 stealthchop_threshold: 0 ## A Stepper - Right ## Connected to MOTOR_1 ## Endstop connected to DIAG_1 [stepper_y] step_pin: PG0 dir_pin: !PG1 enable_pin: !PF15 rotation_distance: 40 microsteps: 32 full_steps_per_rotation:200 #set to 400 for 0.9 degree stepper endstop_pin: PG9 position_min: 0 ##-------------------------------------------------------------------- ## Uncomment for 250mm build #position_endstop: 250 #position_max: 250 ## Uncomment for 300mm build #position_endstop: 300 #position_max: 300 ## Uncomment for 350mm build position_endstop: 350 position_max: 350 ##-------------------------------------------------------------------- homing_speed: 25 #Max 100 homing_retract_dist: 5 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.8 sense_resistor: 0.110 stealthchop_threshold: 0 ##################################################################### # Z Stepper Settings ##################################################################### ## Z0 Stepper - Front Left ## Connected to MOTOR_2 ## Endstop connected to DIAG_2 [stepper_z] step_pin: PF11 dir_pin: PG3 enable_pin: !PG5 # Rotation Distance for TR8x8 = 8, TR8x4 = 4, TR8x2 = 2 rotation_distance: 8 microsteps: 32 endstop_pin: PG10 ## 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 ## All builds use same Max Z position_max: 250 position_min: -2.5 homing_speed: 8.0 # Leadscrews are slower than 2.4, 10 is a recommended max. #second_homing_speed: 3 #homing_retract_dist: 3 endstop_pin: probe:z_virtual_endstop # use beacon as virtual endstop homing_retract_dist: 0 # beacon needs this to be set to 0 ## Make sure to update below for your relevant driver (2208 or 2209) [tmc2209 stepper_z] uart_pin: PC6 interpolate: False run_current: 0.6 sense_resistor: 0.110 stealthchop_threshold: 0 ## Z1 Stepper - Rear Center ## Connected to MOTOR_3 [stepper_z1] step_pin: PG4 dir_pin: PC1 ## Octopus 1.0 & 1.1. Octopus PRO 1.0 enable_pin: !PA0 ## Octopus PRO 1.1 #enable_pin: !PA2 # Rotation Distance for TR8x8 = 8, TR8x4 = 4, TR8x2 = 2 rotation_distance: 8 microsteps: 32 ## Make sure to update below for your relevant driver (2208 or 2209) [tmc2209 stepper_z1] uart_pin: PC7 interpolate: False run_current: 0.6 sense_resistor: 0.110 stealthchop_threshold: 0 ## Z2 Stepper - Front Right ## Connected to MOTOR_4 [stepper_z2] step_pin: PF9 dir_pin: PF10 enable_pin: !PG2 # Rotation Distance for TR8x8 = 8, TR8x4 = 4, TR8x2 = 2 rotation_distance: 8 microsteps: 32 ## Make sure to update below for your relevant driver (2208 or 2209) [tmc2209 stepper_z2] uart_pin: PF2 interpolate: False run_current: 0.6 sense_resistor: 0.110 stealthchop_threshold: 0 ##################################################################### # Extruder ##################################################################### # Connected to MOTOR_6 # Heater - HE0 # Thermistor - T0 #[extruder] #step_pin: PE2 #dir_pin: PE3 #enable_pin: !PD4 ### Update value below when you perform extruder calibration ### If you ask for 100mm of filament, but in reality it is 98mm: ### rotation_distance = * / 100 ### 22.6789511 is a good starting point #rotation_distance: 22.6789511 #Bondtech 5mm Drive Gears ### Update Gear Ratio depending on your Extruder Type ### Use 50:10 for Stealthburner/Clockwork 2 ### Use 50:17 for Afterburner/Clockwork (BMG Gear Ratio) ### Use 80:20 for M4, M3.1 #gear_ratio: 50:10 #microsteps: 32 #full_steps_per_rotation: 200 #200 for 1.8 degree, 400 for 0.9 degree #nozzle_diameter: 0.400 #filament_diameter: 1.75 ### Octopus 1.0 & 1.1. Octopus PRO 1.0 ##heater_pin: PA2 ### Octopus PRO 1.1 ##heater_pin: PA0 ### Check what thermistor type you have. See https://www.klipper3d.org/Config_Reference.html#common-thermistors for common thermistor types. ### Use "Generic 3950" for NTC 100k 3950 thermistors ##sensor_type: #sensor_pin: PF4 #min_temp: 10 #max_temp: 270 #max_power: 1.0 #min_extrude_temp: 170 #control = pid #pid_kp = 26.213 #pid_ki = 1.304 #pid_kd = 131.721 ### Try to keep pressure_advance below 1.0 ##pressure_advance: 0.05 ### Default is 0.040, leave stock ##pressure_advance_smooth_time: 0.040 # ### E0 on MOTOR6 ### Make sure to update below for your relevant driver (2208 or 2209) #[tmc2209 extruder] #uart_pin: PE1 #interpolate: false #run_current: 0.5 #sense_resistor: 0.110 #stealthchop_threshold: 0 ##################################################################### # Bed Heater ##################################################################### [heater_bed] ## SSR Pin - HE1 ## Thermistor - TB heater_pin: PA3 ## Check what thermistor type you have. See https://www.klipper3d.org/Config_Reference.html#common-thermistors for common thermistor types. ## Use "Generic 3950" for Keenovo heaters sensor_type: Generic 3950 sensor_pin: PF3 ## Adjust max_power so it doesn't exceed the SSR rating. The Omron G3NA-210B-DC5 SSR is rated at 4 amps without a heatsink. ## The formula is "4 / (Wattage_of_bed_heater / Mains_voltage) = max_power" ## If max_power is greater than 1.0, use 1.0 max_power: 0.6 min_temp: 0 max_temp: 120 control: pid pid_kp: 58.437 pid_ki: 2.347 pid_kd: 363.769 ##################################################################### # Probe ##################################################################### [beacon] serial: /dev/serial/by-id/usb-Beacon_Beacon_RevH_B0CB815A5154354D38202020FF0A3A13-if00 x_offset: 0 # update with offset from nozzle on your machine y_offset: -22 # update with offset from nozzle on your machine #mesh_main_direction: x #mesh_runs: 2 #[probe] ### Inductive Probe ### This probe is not used for Z height, only Quad Gantry Leveling # ## Select the probe port by type: ### For the PROBE port. Will not work with Diode. May need pull-up resistor from signal to 24V. ##pin: ~!PB7 ### For the DIAG_7 port. NEEDS BAT85 DIODE! Change to !PG15 if probe is NO. ##pin: PG15 ### For Octopus Pro Probe port; NPN and PNP proximity switch types can be set by jumper #pin: ~!PC5 # ##-------------------------------------------------------------------- # #x_offset: 0 #y_offset: 25.0 #z_offset: 0 #speed: 10.0 #samples: 3 #samples_result: median #sample_retract_dist: 3.0 #samples_tolerance: 0.006 #samples_tolerance_retries: 3 ##################################################################### # Fan Control ##################################################################### #[fan] ### Print Cooling Fan - FAN0 #pin: PA8 #kick_start_time: 0.5 ### Depending on your fan, you may need to increase this value ### if your fan will not start. Can change cycle_time (increase) ### if your fan is not able to slow down effectively #off_below: 0.10 #[heater_fan hotend_fan] ### Hotend Fan - FAN1 #pin: PE5 #max_power: 1.0 #kick_start_time: 0.5 #heater: extruder #heater_temp: 50.0 ### If you are experiencing back flow, you can reduce fan_speed ##fan_speed: 1.0 [controller_fan controller_fan] ## Controller fan - FAN2 pin: PD12 kick_start_time: 0.5 heater: heater_bed #[heater_fan exhaust_fan] ## Exhaust fan - FAN3 #pin: PD13 #max_power: 1.0 #shutdown_speed: 0.0 #kick_start_time: 5.0 #heater: heater_bed #heater_temp: 60 #fan_speed: 1.0 ##################################################################### # LED Control ##################################################################### #[output_pin caselight] # Chamber Lighting - HE2 Connector (Optional) ##Octopus 1.0 & 1.1, Octopus PRO 1.0 #pin: PB10 ##Octopus PRO 1.1 #pin: PB0 #pwm:true #shutdown_value: 0 #value:1 #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:-10,-10 speed:100 z_hop:10 [z_tilt] ## Use Z_TILT_ADJUST to level the bed . ## z_positions: Location of toolhead ##-------------------------------------------------------------------- ## Uncomment below for 250mm build #z_positions: # -50, 18 # 125, 298 # 300, 18 #points: # 30, 5 # 125, 195 # 220, 5 ## Uncomment below for 300mm build #z_positions: # -50, 18 # 150, 348 # 350, 18 #points: # 30, 5 # 150, 245 # 270, 5 ## Uncomment below for 350mm build z_positions: -50, 18 175, 398 400, 18 points: 30, 5 175, 295 320, 5 ##-------------------------------------------------------------------- speed: 200 horizontal_move_z: 10 retries: 5 retry_tolerance: 0.0075 ######################################## # EXP1 / EXP2 (display) pins ######################################## [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=, EXP2_9=, EXP2_10=<5V> ##################################################################### # Displays ##################################################################### ## Uncomment the display that you have #-------------------------------------------------------------------- #[display] ## RepRapDiscount 128x64 Full Graphic Smart Controller #lcd_type: st7920 #cs_pin: EXP1_4 #sclk_pin: EXP1_5 #sid_pin: EXP1_3 #menu_timeout: 40 #encoder_pins: ^EXP2_5, ^EXP2_3 #click_pin: ^!EXP1_2 #[output_pin beeper] #pin: EXP1_1 #-------------------------------------------------------------------- #[display] ## mini12864 LCD Display lcd_type: uc1701 cs_pin: EXP1_3 a0_pin: EXP1_4 rst_pin: EXP1_5 encoder_pins: ^EXP2_5, ^EXP2_3 click_pin: ^!EXP1_2 contrast: 63 spi_software_miso_pin: EXP2_1 spi_software_mosi_pin: EXP2_6 spi_software_sclk_pin: EXP2_2 #[neopixel btt_mini12864] ## To control Neopixel RGB in mini12864 display #pin: EXP1_6 #chain_count: 3 #initial_RED: 0.1 #initial_GREEN: 0.5 #initial_BLUE: 0.0 #color_order: RGB ## Set RGB values on boot up for each Neopixel. ## Index 1 = display, Index 2 and 3 = Knob #[delayed_gcode setdisplayneopixel] #initial_duration: 1 #gcode: # SET_LED LED=btt_mini12864 RED=1 GREEN=1 BLUE=1 INDEX=1 TRANSMIT=0 # SET_LED LED=btt_mini12864 RED=1 GREEN=0 BLUE=0 INDEX=2 TRANSMIT=0 # SET_LED LED=btt_mini12864 RED=1 GREEN=0 BLUE=0 INDEX=3 #-------------------------------------------------------------------- ##################################################################### # Macros ##################################################################### [gcode_macro PRINT_START] # Use PRINT_START for the slicer starting script - PLEASE CUSTOMISE THE SCRIPT gcode: M117 Homing... ; display message G28 Z_TILT_ADJUST G28 ## Uncomment for for your size printer: #-------------------------------------------------------------------- ## Uncomment for 250mm build #G0 X125 Y125 Z30 F3600 ## Uncomment for 300 build #G0 X150 Y150 Z30 F3600 ## Uncomment for 350mm build G0 X175 Y175 Z30 F3600 #-------------------------------------------------------------------- [gcode_macro PRINT_END] # Use PRINT_END for the slicer ending script - please customise for your slicer of choice gcode: # safe anti-stringing move coords {% set th = printer.toolhead %} {% set x_safe = th.position.x + 20 * (1 if th.axis_maximum.x - th.position.x > 20 else -1) %} {% set y_safe = th.position.y + 20 * (1 if th.axis_maximum.y - th.position.y > 20 else -1) %} {% set z_safe = [th.position.z + 2, th.axis_maximum.z]|min %} SAVE_GCODE_STATE NAME=STATE_PRINT_END M400 ; wait for buffer to clear G92 E0 ; zero the extruder G1 E-2.0 F3600 ; retract filament TURN_OFF_HEATERS G90 ; absolute positioning G0 X{x_safe} Y{y_safe} Z{z_safe} F20000 ; move nozzle to remove stringing G0 X{th.axis_maximum.x//2} Y{th.axis_maximum.y - 2} F3600 ; park nozzle at rear M107 ; turn off fan BED_MESH_CLEAR # The purpose of the SAVE_GCODE_STATE/RESTORE_GCODE_STATE # command pair is to restore the printer's coordinate system # and speed settings since the commands above change them. # However, to prevent any accidental, unintentional toolhead # moves when restoring the state, explicitly set MOVE=0. RESTORE_GCODE_STATE NAME=STATE_PRINT_END MOVE=0