Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # 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 https://www.klipper3d.org/Config_Reference.html#common-thermistors for common thermistor types
- ## 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
- ## Probe pin [probe] section
- ## Fine tune E steps [extruder] section
- [force_move]
- enable_force_move: True
- [include mainsail.cfg]
- [include purge.cfg]
- [exclude_object]
- [virtual_sdcard]
- path: ~/printer_data/gcodes
- [display_status]
- [pause_resume]
- [mcu]
- ## Obtain definition by "ls -l /dev/serial/by-id/" then unplug to verify
- ##--------------------------------------------------------------------
- serial: /dev/serial/by-id/usb-Klipper_stm32f446xx_300023001450535556323420-if00
- restart_method: command
- ##--------------------------------------------------------------------
- [printer]
- kinematics: corexy
- max_velocity: 250
- 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:400
- endstop_pin: tmc2209_stepper_x:virtual_endstop #X_STOP
- position_min: 0
- position_endstop: 350
- position_max: 350
- homing_speed: 40 #50
- homing_retract_dist: 0
- homing_positive_dir: true
- ##--------------------------------------------------------------------
- ## 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: 1
- sense_resistor: 0.110
- stealthchop_threshold: 0 #always on, 0 is off
- diag_pin: PG6 # use the same pin that was previously the endstop_pin!
- driver_SGTHRS: 87
- ## 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:400
- endstop_pin: tmc2209_stepper_y:virtual_endstop #Y_STOP
- position_min: 0
- position_endstop: 350
- position_max: 350
- homing_speed: 40 #50
- homing_retract_dist: 0
- homing_positive_dir: true
- ##--------------------------------------------------------------------
- ## 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: 365
- ##--------------------------------------------------------------------
- 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: 1
- sense_resistor: 0.110
- stealthchop_threshold: 0
- diag_pin: PG9 # use the same pin that was previously the endstop_pin!
- driver_SGTHRS: 95 #255 is most sensitive value, 0 is least sensitive
- #####################################################################
- # Z Stepper Settings
- #####################################################################
- ## Z0 Stepper - Front Left
- ## Connected to MOTOR_2
- ## Endstop connected to DIAG_2
- [stepper_z]
- step_pin: PE6
- dir_pin: PA14
- enable_pin: !PE0
- rotation_distance: 40
- gear_ratio: 80:16
- microsteps: 32
- endstop_pin: probe:z_virtual_endstop
- ## 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: 210
- ## Uncomment below for 300mm build
- #position_max: 260
- ## Uncomment below for 350mm build
- position_max: 310
- ##--------------------------------------------------------------------
- position_min: -5
- homing_speed: 8
- second_homing_speed: 3
- homing_retract_dist: 3
- ## Make sure to update below for your relevant driver (2208 or 2209)
- [tmc2209 stepper_z]
- uart_pin: PD3
- interpolate: false
- run_current: 0.8
- sense_resistor: 0.110
- stealthchop_threshold: 0
- ## Z1 Stepper - Rear Left
- ## Connected to MOTOR_3
- [stepper_z1]
- step_pin: PG4
- dir_pin: !PC1
- enable_pin: !PA0
- rotation_distance: 40
- gear_ratio: 80:16
- 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.8
- sense_resistor: 0.110
- stealthchop_threshold: 0
- ## Z2 Stepper - Rear Right
- ## Connected to MOTOR_4
- [stepper_z2]
- step_pin: PF9
- dir_pin: PF10
- enable_pin: !PG2
- rotation_distance: 40
- gear_ratio: 80:16
- 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.8
- sense_resistor: 0.110
- stealthchop_threshold: 0
- ## Z3 Stepper - Front Right
- ## Connected to MOTOR_5
- [stepper_z3]
- step_pin: PC13
- dir_pin: !PF0
- enable_pin: !PF1
- rotation_distance: 40
- gear_ratio: 80:16
- microsteps: 32
- ## Make sure to update below for your relevant driver (2208 or 2209)
- [tmc2209 stepper_z3]
- uart_pin: PE4
- interpolate: false
- run_current: 0.8
- sense_resistor: 0.110
- stealthchop_threshold: 0
- #####################################################################
- # Extruder
- #####################################################################
- ## Connected to MOTOR_6
- ## Heater - HE0
- ## Thermistor - T0
- [extruder]
- step_pin: gpio23
- dir_pin: gpio24
- enable_pin: gpio25
- ## Update value below when you perform extruder calibration
- ## If you ask for 100mm of filament, but in reality it is 98mm:
- ## rotation_distance = <previous_rotation_distance> * <actual_extrude_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 #BMG Gear Ratio
- 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
- heater_pin: gpio9
- ## 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: ATC Semitec 104NT-4-R025H42G
- sensor_pin: gpio29
- 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: gpio0
- interpolate: false
- run_current: 0.5
- sense_resistor: 0.110
- stealthchop_threshold: 0
- #####################################################################
- # Bed Heater
- #####################################################################
- ## SSR Pin - HE1
- ## Thermistor - TB
- [heater_bed]
- heater_pin: PA1
- ## Validate the following thermistor type to make sure it is correct
- ## Keenovo branded bed heaters should use Generic 3950
- ## LDO branded bed heaters will have the sensor type labelled on the heater
- ## 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: ATC Semitec 104NT-4-R025H42G
- sensor_pin: PF3
- ## Adjust Max Power so your heater doesn't warp your bed. Rule of thumb is 0.4 watts / cm^2 .
- max_power: 0.9
- 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_BF8C39D55154354D38202020FF0A392E-if00
- x_offset: 0 # update with offset from nozzle on your machine
- y_offset: 27.3 # update with offset from nozzle on your machine
- mesh_main_direction:x
- mesh_runs: 2
- [bed_mesh]
- mesh_min = 30, 30
- mesh_max = 270, 270
- speed = 900
- horizontal_move_z = 2
- probe_count = 6,6
- algorithm = bicubic
- ##[(7x7)-1] / 2 = 24
- ##[(5x5)-1] / 2 = 12
- ##[(9x9)-1] / 2 = 40
- #relative_reference_index: 40
- zero_reference_position: 150, 150
- #relative_reference_index: 15
- split_delta_z = 0.0125
- move_check_distance = 3
- mesh_pps = 4,4
- fade_start = 0
- fade_end = 2
- fade_target = 0
- #####################################################################
- # Fan Control
- #####################################################################
- ## Print Cooling Fan - FAN0
- [fan]
- pin: gpio6
- 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
- ## Hotend Fan - FAN1
- [heater_fan hotend_fan]
- pin: gpio5
- 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 - FAN2
- [controller_fan controller_fan]
- pin: PD12
- kick_start_time: 0.5
- heater: heater_bed
- fan_speed: 0.5
- ## Exhaust fan - FAN3
- #[heater_fan exhaust_fan]
- #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 - CNC_FAN5
- pin: PD15
- pwm:true
- shutdown_value: 0
- value:0
- cycle_time: 0.01
- [neopixel headlight]
- ## Stealthburner lighting - RGB_LED
- pin: PB0
- chain_count: 3
- color_order: GRBW
- initial_RED: 0.0
- initial_GREEN: 0.0
- initial_BLUE: 0.0
- initial_WHITE: 0.0
- #####################################################################
- # Additional Sensors
- #####################################################################
- #####################################################################
- # 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
- z_hop_speed:10
- [resonance_tester]
- accel_chip: beacon
- probe_points: 90, 90, 20
- ## 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
- [quad_gantry_level]
- #--------------------------------------------------------------------
- ## 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: 100
- horizontal_move_z: 10
- retries: 5
- retry_tolerance: 0.0075
- max_adjust: 10
- ########################################
- # 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=<GND>, 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=<5V>
- #####################################################################
- # Displays
- #####################################################################
- [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 G32]
- gcode:
- SAVE_GCODE_STATE NAME=STATE_G32
- G90
- G28
- QUAD_GANTRY_LEVEL
- 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
- #--------------------------------------------------------------------
- RESTORE_GCODE_STATE NAME=STATE_G32
- # Use PRINT_START for the slicer starting script - please customise for your slicer of choice
- #####################################################################
- # print_start macro
- #####################################################################
- ## *** THINGS TO UNCOMMENT: ***
- ## Bed mesh (2 lines at 2 locations)
- ## Z_TILT_ADJUST if your printer is a Trident
- ## Quad gantry level if your printer is a V2
- ## Nevermore - if you have one
- [gcode_macro PRINT_START]
- gcode:
- # This part fetches data from your slicer. Such as bed temp, extruder temp, chamber temp and size of your printer.
- {% set target_bed = params.BED|int %}
- {% set target_extruder = params.EXTRUDER|int %}
- {% set target_chamber = params.CHAMBER|default("40")|int %}
- {% set x_wait = printer.toolhead.axis_maximum.x|float / 2 %}
- {% set y_wait = printer.toolhead.axis_maximum.y|float / 2 %}
- # Homes the printer, sets absolute positioning and updates the Stealthburner leds.
- STATUS_HOMING # Sets SB-leds to homing-mode
- G28 # Full home (XYZ)
- G90 # Absolut position
- ## Uncomment for bed mesh (1 of 2)
- BED_MESH_CLEAR # Clears old saved bed mesh (if any)
- # Checks if the bed temp is higher than 90c - if so then trigger a heatsoak.
- {% if params.BED|int > 90 %}
- SET_DISPLAY_TEXT MSG="Bed: {target_bed}c" # Displays info
- STATUS_HEATING # Sets SB-leds to heating-mode
- M106 S255 # Turns on the PT-fan
- ## Uncomment if you have a Nevermore.
- #SET_PIN PIN=nevermore VALUE=1 # Turns on the nevermore
- G1 X{x_wait} Y{y_wait} Z15 F9000 # Goes to center of the bed
- M190 S{target_bed} # Sets the target temp for the bed
- SET_DISPLAY_TEXT MSG="Heatsoak: {target_chamber}c" # Displays info
- TEMPERATURE_WAIT SENSOR="temperature_sensor chamber_temp" MINIMUM={target_chamber} # Waits for chamber to reach desired temp
- # If the bed temp is not over 90c, then it skips the heatsoak and just heats up to set temp with a 5min soak
- {% else %}
- SET_DISPLAY_TEXT MSG="Bed: {target_bed}c" # Displays info
- STATUS_HEATING # Sets SB-leds to heating-mode
- G1 X{x_wait} Y{y_wait} Z15 F9000 # Goes to center of the bed
- M190 S{target_bed} # Sets the target temp for the bed
- SET_DISPLAY_TEXT MSG="Soak for 5min" # Displays info
- G4 P300000 # Waits 5 min for the bedtemp to stabilize
- {% endif %}
- # Heating nozzle to 150 degrees. This helps with getting a correct Z-home
- SET_DISPLAY_TEXT MSG="Hotend: 150c" # Displays info
- M109 S150 # Heats the nozzle to 150c
- ## Uncomment for Trident (Z_TILT_ADJUST)
- #SET_DISPLAY_TEXT MSG="Z-tilt adjust" # Displays info
- #STATUS_LEVELING # Sets SB-leds to leveling-mode
- #Z_TILT_ADJUST # Levels the buildplate via z_tilt_adjust
- #G28 Z # Homes Z again after z_tilt_adjust
- ## Uncomment for V2 (Quad gantry level AKA QGL)
- SET_DISPLAY_TEXT MSG="QGL" # Displays info
- STATUS_LEVELING # Sets SB-leds to leveling-mode
- quad_gantry_level # Levels the buildplate via QGL
- G28 Z # Homes Z again after QGL
- ## Uncomment for Klicky auto-z
- #CALIBRATE_Z # Calibrates Z-offset with klicky
- #SET_DISPLAY_TEXT MSG="Z-offset" # Displays info
- ## Uncomment for bed mesh (2 of 2)
- SET_DISPLAY_TEXT MSG="Bed mesh" # Displays info
- STATUS_MESHING # Sets SB-leds to bed mesh-mode
- bed_mesh_calibrate # Starts bed mesh
- # Heats up the nozzle up to target via data from slicer
- SET_DISPLAY_TEXT MSG="Hotend: {target_extruder}c" # Displays info
- STATUS_HEATING # Sets SB-leds to heating-mode
- G1 X{x_wait} Y{y_wait} Z15 F9000 # Goes to center of the bed
- M107 # Turns off partcooling fan
- M109 S{target_extruder} # Heats the nozzle to printing temp
- # Gets ready to print by doing a purge line and updating the SB-leds
- SET_DISPLAY_TEXT MSG="Printer goes brr" # Displays info
- STATUS_PRINTING # Sets SB-leds to printing-mode
- G0 X{x_wait - 50} Y4 F10000 # Moves to starting point
- G0 Z0.4 # Raises Z to 0.4
- G91 # Incremental positioning
- G1 X100 E20 F1000 # Purge line
- G90 # Absolut position
- # Use PRINT_END for the slicer ending script - please customise for your slicer of choice
- [gcode_macro PRINT_END]
- 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-5.0 F1800 ; 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
- RESTORE_GCODE_STATE NAME=STATE_PRINT_END
- #*# <---------------------- SAVE_CONFIG ---------------------->
- #*# DO NOT EDIT THIS BLOCK OR BELOW. The contents are auto-generated.
- #*#
- #*# [extruder]
- #*# control = pid
- #*# pid_kp = 24.484
- #*# pid_ki = 2.148
- #*# pid_kd = 69.778
- #*#
- #*# [probe]
- #*# z_offset = -0.760
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement