I am a bit of a loss as to why i try to calibrate beacon and unable to save_config. Unless i solve this problem I am unable to progress. BTW i am a retired person in their mid 70"s using 3D printing as a way to take up my retirement. I have never asked for help before unless i really need it but have limited experience.
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
Hotend heater pin [extruder] section
Z Endstop Switch location [safe_z_home] section
Homing end position [gcode_macro G32] section
Z Endstop Switch offset for Z0 [stepper_z] section
Stepper Z1 enable pin [stepper_z1] 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
[include btt_ebb-sb2240.cfg]
[include mainsail.cfg]
#[exclude_object]
#[include Adaptive_mesh.cfg]
#[include KAMP_Settings.cfg]
#[include voron_purge.cfg]
#[include line_purge.cfg]
[mcu]
Obtain definition by “ls /dev/serial/by-id/*” then unplug to verify
##--------------------------------------------------------------------
serial: /dev/serial/by-id/usb-Klipper_stm32f446xx_060025000E5053424E363620-if00
restart_method: command
##--------------------------------------------------------------------
[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:400 #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:400 #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: 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
##--------------------------------------------------------------------
Uncomment below for 250mm build
#position_max: 210
Uncomment below for 300mm build
#position_max: 260
Uncomment below for 350mm build
position_max: 350
##--------------------------------------------------------------------
position_min: -5
homing_speed: 8
second_homing_speed: 3
homing_retract_dist: 0
Make sure to update below for your relevant driver (2208 or 2209)
[tmc2209 stepper_z]
uart_pin: PC6
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
Octopus 1.0 & 1.1. Octopus PRO 1.0
enable_pin: !PA0
Octopus PRO 1.1
#enable_pin: !PA2
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: 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 = <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
#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
Use “Generic 3950” for NTC 100k 3950 thermistors
#sensor_type: Generic 3950
#sensor_pin: PF4
#min_temp: -100
#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
#####################################################################
SSR Pin - HE1
Thermistor - TB
[heater_bed]
Uncomment the following line if using the default SSR wiring from the docs site
heater_pin: PA3
Other wiring guides may use BED_OUT to control the SSR. Uncomment the following line for those cases
#heater_pin: PA1
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_06F0EB985154364134202020FF142909-if00
x_offset: -20 # update with offset from nozzle on your machine
y_offset: 0 # update with offset from nozzle on your machine
mesh_main_direction: x
mesh_runs: 2
[safe_z_home]
home_xy_position: 175, 175 # update for your machine
z_hop: 3
[bed_mesh]
speed: 120
horizontal_move_z: 5
mesh_min: 10, 10
mesh_max: 300, 300
probe_count: 5, 3
mesh_pps: 2, 3
algorithm: bicubic
bicubic_tension: 0.2
Inductive Probe
This probe is not used for Z height, only Quad Gantry Leveling
##[probe]
#--------------------------------------------------------------------
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
#####################################################################
Print Cooling Fan - FAN0
#[fan]
#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
Hotend Fan - FAN1
#[heater_fan hotend_fan]
#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 - FAN2
[controller_fan controller_fan]
pin: PD12
kick_start_time: 0.5
heater: heater_bed
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
#####################################################################
Chamber Lighting - HE2 Connector (Optional)
#[output_pin caselight]
##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
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: 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=, 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
#####################################################################
Uncomment the display that you have
#--------------------------------------------------------------------
RepRapDiscount 128x64 Full Graphic Smart Controller
#[display]
#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
#--------------------------------------------------------------------
mini12864 LCD Display
#[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
To control Neopixel RGB in mini12864 display
#[neopixel btt_mini12864]
#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 PARK]
gcode:
{% set th = printer.toolhead %}
G0 X{th.axis_maximum.x//2} Y{th.axis_maximum.y//2} Z30
[gcode_macro G32]
gcode:
SAVE_GCODE_STATE NAME=STATE_G32
G90
G28
QUAD_GANTRY_LEVEL
G28
PARK
RESTORE_GCODE_STATE NAME=STATE_G32
[gcode_macro PRINT_START]
Use PRINT_START for the slicer starting script - please customise for your slicer of choice
gcode:
G32 ; home all axes
G90 ; absolute positioning
G1 Z20 F3000 ; move nozzle away from bed
bed_mesh_clear
Bed_mesh_calibrate
voron_purge
line_purge
[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-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
# 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
## <---------------------- SAVE_CONFIG ---------------------->
## [beacon model default]
## model_coef = 1.893197358418992,
## 2.189688390099554,
## 0.6793703046731926,
## 0.07145659600327188,
## -0.1408335310424842,
## 0.38702610626257716,
## 0.3420449523455563,
## -0.33030962326307656,
## -0.1595815189762197,
## 0.10740617142694256
## model_domain = 1.9415886291284917e-07,1.9476376064813647e-07
## model_range = 0.200000,5.000000
## model_temp = 15.070651
## model_offset = 0.00000