Save_config not Autogenerating

Basic Information:

Printer Model: Voron 2.4
MCU / Printerboard:Octopus Max EZ
Host / SBC Mainsail
klippy.log
klippy (24).log (304.7 KB)

Fill out above information and in all cases attach your klippy.log file (use zip to compress it, if too big). Pasting your printer.cfg is not needed
Be sure to check our “Knowledge Base” Category first. Most relevant items, e.g. error messages, are covered there

Describe your issue:

…I have went through the posts on this discord regarding Save_config. I Have also checked google for others with my issue. From what i understand, it seams the save_config file is a different location/ file name from where mainsail is attempting to read. I have attempted in SSH to MV the existing file name and change it to the file that Mainsail uses. This action resulted in a loss of communication with mainsail i had to reinstall mainsail, as well as a few others to get it back up and running. After this was completed i was able to do a Bed/Extruder PID and it did save to the Save_config ( I had manually copy/pasted a Save_config from a previous printer.cfg file.) So know i have a save_config working, but only for the Bed/Extruder. What i really need is for the Probe to save to the Save_config. as i am using Voron Tap. I have manually typed it in, under Save_config area
#*# [probe] #*# z_offset = -0.511 but it is not reading from the Save_config. when i ask to save i get: SAVE_CONFIG section ‘probe’ option ‘z_offset’ conflicts with included value. I have changed the value to = 0 but still nothing so far works for me.

I also read that maybe the printer.cfg file has a save_config located in 2nd area which would conflict. I do not see any other Save_config in my printer.cfg. Any help would be appreciated. Thanks in advance.

[virtual_sdcard]
path: /home/pi/printer_data/gcodes
on_error_gcode: CANCEL_PRINT


# This file contains common pin mappings for the BIGTREETECH Octopus Max EZ.
# To use this config, the firmware should be compiled for the
# STM32H723 with a "128KiB bootloader", "25 MHz crystal",
# and one of:
# Communication interface: "USB (on PA11/PA12)",
# Communication interface: "CAN bus (on PD0/PD1)", or
# Communication interface: "USB to CAN bus bridge (USB on PA11/PA12))" and CAN bus interface: "CAN bus (on PD0/PD1)".

# See docs/Config_Reference.md for a description of parameters.


[mcu]
serial: /dev/serial/by-id/usb-Klipper_stm32h723xx_3F001C000C51313339373836-if00

## Mainsail settings
[include mainsail.cfg]
# [I'm an included settings block]
[extruder]
[heater_bed]
[probe]
[include btt_ebb-sb2240.cfg]
# sb2400 uid 41fd5a53f37b
[include stealthburner_leds.cfg]
[include KAMP_Settings.cfg]
# [include macros.cfg]
[exclude_object]
# [include nevermore.cfg]
#[mcu rpi]
#serial: /tmp/klipper_host_mcu

[input_shaper]
shaper_freq_x: 56.4
shaper_type_x: mzv
shaper_freq_y: 41.4
shaper_type_y: mzv

# [shaketune]
# result_folder: ~/printer_data/config/ShakeTune_results
# #    The folder where the results will be stored. It will be created if it doesn't exist.
# number_of_results_to_keep: 3
# #    The number of results to keep in the result_folder. The oldest results will
# #    be automatically deleted after each runs.
# keep_raw_data: False
# #    If True, the raw CSV files will be kept in the result_folder alongside the
# #    PNG graphs. If False, they will be deleted and only the graphs will be kept.
# show_macros_in_webui: True
# #    Mainsail and Fluidd doesn't create buttons for "system" macros that are not in the
# #    printer.cfg file. If you want to see the macros in the webui, set this to True.
# timeout: 300
# #    The maximum time in seconds to let Shake&Tune process the CSV files and generate the graphs.


[printer]
kinematics: corexy
max_velocity: 300  
max_accel: 10000             #Max 4000
# max_accel_to_decel: 10000
max_z_velocity: 15          #Max 15 for 12V TMC Drivers, can increase for 24V
max_z_accel: 350
square_corner_velocity: 5.0


#[adxl345]
#cs_pin: PF14
#spi_bus: spi4


# Motor-1 B stepper Left Correct
[stepper_x]
step_pin: !PC13 # forward backward
dir_pin: !PC14 # left right
enable_pin: !PE6 # turn motor on
rotation_distance: 40
microsteps: 32
full_steps_per_rotation:200  #set to 400 for 0.9 degree stepper
endstop_pin: PF0
# position_min: 0
position_endstop: 300
position_max: 300
homing_speed: 100
homing_retract_dist: 3
# homing_positive_dir: True

##	Make sure to update below for your relevant driver (2208 or 2209)
[tmc2209 stepper_x]
uart_pin: PG14
# diag_pin: ^PF0
# driver_SGTHRS: 60 # 255 is most sensitive value, 0 is least sensitive
interpolate: false
run_current: 0.8
sense_resistor: 0.110
stealthchop_threshold: 0

# Motor-2 A stepper right Correct
[stepper_y]
step_pin: !PE4
dir_pin: !PE5
enable_pin: !PE3
rotation_distance: 40
microsteps: 32
full_steps_per_rotation:200  #set to 400 for 0.9 degree stepper
endstop_pin: !PF2
position_min: 0
position_endstop: 300
position_max: 300
homing_speed: 100
homing_retract_dist: 3
homing_positive_dir: true

##	Make sure to update below for your relevant driver (2208 or 2209)
[tmc2209 stepper_y]
uart_pin: PG13
# diag_pin: ^PF2
# driver_SGTHRS: 55 # 255 is most sensitive value, 0 is least sensitive
interpolate: false
run_current: 0.8
sense_resistor: 0.110
stealthchop_threshold: 0

## Z0 Stepper - Front Left correct
# Motor-4
[stepper_z] 
step_pin: PB8
dir_pin: !PB9
enable_pin: !PB7
rotation_distance: 40
gear_ratio: 80:16
microsteps: 32
endstop_pin: probe:z_virtual_endstop
position_max: 260
position_min: -5
homing_speed: 100
second_homing_speed: 50
homing_retract_dist: 5
##  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


##	Make sure to update below for your relevant driver (2208 or 2209)
[tmc2209 stepper_z]
uart_pin: PG11
# diag_pin: ^PF3
interpolate: false
run_current: 0.8
sense_resistor: 0.110
stealthchop_threshold: 999999

# MOTOR-5 back left Correct
[stepper_z1]
step_pin: PB5
dir_pin: PB4
enable_pin: !PB6
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: PG10
# diag_pin: ^!PF3
interpolate: false
run_current: 0.8
sense_resistor: 0.110
stealthchop_threshold: 999999


##  Z2 Stepper - Back right
##  Connected to MOTOR_6
[stepper_z2]
step_pin: PG15
dir_pin: !PB3
enable_pin: !PD5
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: PG9
# diag_pin: ^PF1
interpolate: false
run_current: 0.8
sense_resistor: 0.110
stealthchop_threshold: 999999

##  Z3 Stepper - Front Right
##  Connected to MOTOR_7
[stepper_z3]
step_pin: PD3
dir_pin: PD2
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_z3]
uart_pin: PD7
interpolate: false
run_current: 0.8
sense_resistor: 0.110
stealthchop_threshold: 999999

#[filament_switch_senso]
#switch_pin: PC15


#####################################################################
#   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: PF6
##  Other wiring guides may use BED_OUT to control the SSR. Uncomment the following line for those cases
#heater_pin: PA1
## 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: PB1
##  Adjust Max Power so your heater doesn't warp your bed. Rule of thumb is 0.4 watts / cm^2 .
max_power: 0.6
min_temp: 0
max_temp: 120
#control: pid
#pid_kp: 38.508
#pid_ki: 1.422
#pid_kd: 260.650
#  pid_Kp=38.508 pid_Ki=1.422 pid_Kd=260.650

#####################################################################
#   Probe
#####################################################################

# ##  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

# #--------------------------------------------------------------------
# pin: ~!EBBCan:PB9
# x_offset: 0
# y_offset: 0
# z_offset: 0
# speed: 100.0
# samples: 3
# samples_result: median
# sample_retract_dist: 3.0
# samples_tolerance: 0.006
# samples_tolerance_retries: 10 # 3


# activate_gcode:
#     {% set PROBE_TEMP = 150 %}
#     {% set MAX_TEMP = PROBE_TEMP + 5 %}
#     {% set ACTUAL_TEMP = printer.extruder.temperature %}
#     {% set TARGET_TEMP = printer.extruder.target %}

#     {% if TARGET_TEMP > PROBE_TEMP %}
#         { action_respond_info('Extruder temperature target of %.1fC is too high, lowering to %.1fC' % (TARGET_TEMP, PROBE_TEMP)) }
#         M109 S{ PROBE_TEMP }
#     {% else %}
#         # Temperature target is already low enough, but nozzle may still be too hot.
#         {% if ACTUAL_TEMP > MAX_TEMP %}
#             { action_respond_info('Extruder temperature %.1fC is still too high, waiting until below %.1fC' % (ACTUAL_TEMP, MAX_TEMP)) }
#             TEMPERATURE_WAIT SENSOR=extruder MAXIMUM={ MAX_TEMP }
#         {% endif %}
#     {% endif %}
    


#####################################################################
#   Fan Control
#####################################################################

[fan]
## This is a simple include for the Nevermore. To use it with your printer, edit
## the pin definition in line 16 so it matches your printer.
## What you get:
## - a generic fan "Nevermore" which is adjustable in GCODE and in Mainsail/Fluidd
## - Commands in your 12864-controller to turn the fan on/off or adjust in 10%-steps
## - a Macro to turn the fan off some time after the print.
##
## Slicer integration: Add "SET_FAN_SPEED FAN=Nevermore SPEED=1" in your start-macro
## (or less fan depending on your needs, like SPEED=0.8)
## in your end print code, add "UPDATE_DELAYED_GCODE ID=filter_off DURATION=180"
## this keeps your Nevermore running for 180s after the print finishes to clean the chamber a bit more.

[fan_generic Nevermore]
pin: PF8
tachometer_pin: ^PC1



##  Controller fan - FAN0 octopus mcu fan
[controller_fan controller_fanoctopus]
pin: PA6
tachometer_ppr: 2
tachometer_pin: ^PF4
#[heater_fan fan1]
#pin: PA5

#[heater_fan fan2]
#pin: PA4

#[heater_fan fan3]
#pin: PA3



#  Exhaust fan -  2 case fans under printer
[heater_fan exhaust_fancase]
pin: PA5
max_power: 1.0
shutdown_speed: 0.0
kick_start_time: 5.0
heater: heater_bed
fan_speed: 1.0


##  Controller fan - FAN3 actually its the exhaust fan to outside
[controller_fan SSR_fanexhaust]
pin: PA4
kick_start_time: 0.5
heater: heater_bed


# # 5015 undr bead fans
# [controller_fan 5015_fan]
# pin: PF8
# tachometer_pin: ^PC1
# max_power: 1.0
# shutdown_speed: 0.0
# cycle_time: 0.10
# kick_start_time: 5.0
# heater: heater_bed
# fan_speed: 1.0

# pin: PA0
# max_power: 1.0
# shutdown_speed: 0
# cycle_time: 0.10
# hardware_pwm: False
# kick_start_time: 0.100
# off_below: 0.14
#[heater_fan fan6]
#pin: PA2
#tachometer_pin: PC2





#####################################################################
#   Thermals
#####################################################################

[temperature_sensor raspberry_pi]
## Pi Temps
sensor_type: temperature_host
max_temp: 100

##[temperature_sensor mcu_temp]
[temperature_sensor Octopus]
## Spider Temps
sensor_type: temperature_mcu
max_temp: 90

[temperature_sensor EBB2240]
sensor_type: temperature_mcu
sensor_mcu: EBBCan
min_temp: 0
# max_temp: 90



[temperature_sensor bed_top]
## Top of Bed Temps
sensor_type: Generic 3950
sensor_pin: PC4

######################
### Chamber Heater ###
######################

[heater_generic chamber_heater]
heater_pin: PF9
sensor_type: PT1000
sensor_pin: PC5
control: watermark
control: pid
pid_Kp=15.461 
pid_Ki=0.644 
pid_Kd=92.764
max_power: .75
min_temp: 0
max_temp: 110
max_power: .5
min_temp: 0
max_temp: 240

[verify_heater chamber_heater]
max_error: 120
check_gain_time: 120
hysteresis: 5
heating_gain: 2

# ##########################
# ### Chamber Heater Fan ###
# ##########################

 # heater - FAN4
[heater_fan chamber_heater_fan]
pin: PA3
max_power: 1.0
heater: chamber_heater
heater_temp: 40.0 # fan will turn off below this level

#############################
### Enclosure Temperature ###
#############################

# [thermistor chamber_thermistor]
# beta: 3950
# temperature1: 25.0
# resistance1: 103180.0



# [temperature_sensor enclosure_temp]
# sensor_type: chamber_thermistor
# sensor_pin: PC4
# min_temp: 0
# max_temp: 80

#####################################################################
#   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: 150, 150
speed: 250 # 250
z_hop: 5

##  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 300mm Build
##  Uncomment for 300mm build
gantry_corners:
   -60,-10
   360,370
##  Probe points
points:
   50,25
   50,225
   250,225
   250,25

#--------------------------------------------------------------------
speed: 450 #450
horizontal_move_z: 5
retries: 5
retry_tolerance: 0.0075
max_adjust: 5

[bed_mesh]
speed: 500 # 500
horizontal_move_z: 5.51 #  5.51
##--------------------------------------------------------------------
##	Uncomment below for 250mm build
#mesh_min: 40, 40
#mesh_max: 210,210

##	Uncomment for 300mm build
mesh_min: 10,10 # 25, 25
mesh_max: 290,290 # 275,275
##--------------------------------------------------------------------
fade_start: 0.6
fade_end: 5.0
adaptive_margin: 10

# probe_count: 9,9
#relative_reference_index: 24 # 9 + 9 + 9 + 9 + 5

#probe_count: 7,7
#relative_reference_index: 24 # 7 + 7 + 7 + 3

#probe_count: 7,5
#relative_reference_index: 17 # 7 + 7 + 3

probe_count: 5,5
zero_reference_position: 150, 150

algorithm: bicubic  



[board_pins]
aliases:
    # FPC header, Aliases EXP1 & EXP2 for mini12864
    EXP1_1=PG2, EXP1_2=PD15,
    EXP1_3=PD14, EXP1_4=PD13,
    EXP1_5=PD12, EXP1_6=PD11,
    EXP1_7=PD10, EXP1_8=PE15,
    EXP1_9=<GND>, EXP1_10=<5V>,

    # EXP2 header
    EXP2_1=PE13, EXP2_2=PE12,
    EXP2_3=PG5, EXP2_4=PE11,
    EXP2_5=PG4, EXP2_6=PE14,
    EXP2_7=PG3, EXP2_8=<RST>,
    EXP2_9=<GND>, EXP2_10=<NC>

# See the sample-lcd.cfg file for definitions of common LCD displays.

#[bltouch]
#sensor_pin: PB15
#control_pin: PB14

# Proximity switch
#[probe]
#pin: PF11

#[output_pin ps_on_pin]
#pin: PF13

#[output_pin pf12_pin]
#pin: PF12

#[neopixel my_neopixel_1]
#pin: PE10

#[neopixel my_neopixel_2]
#pin: PE9

#[hall_filament_width_sensor]
#adc1: PC0
#adc2: PF10


#####################################################################
#   Macros
#####################################################################

# [menu __main __control __nevermoreonoff]
# type: command
# name: Nevermore {'ON' if printer['fan_generic Nevermore'].speed > 0 else 'OFF'}
# enable: {'fan_generic Nevermore' in printer}
# gcode:
#     TOGGLE_NEVERMORE

# [menu __main __control __filterspeed]
# type: input
# enable: {'fan_generic Nevermore' in printer}
# name: Filter %: {'%3d' % (menu.input*100)}%
# input: {printer["fan_generic Nevermore"].speed}
# input_min: 0
# input_max: 1
# input_step: 0.1
# gcode:
#     SET_FAN_SPEED FAN=Nevermore SPEED={menu.input}

# [delayed_gcode filter_off]
# gcode:
# #    SET_FAN_SPEED FAN=Nevermore SPEED=0

# [gcode_macro TOGGLE_NEVERMORE]
# gcode:
#     {% if printer['fan_generic Nevermore'].speed > 0 %}
#       SET_FAN_SPEED FAN=Nevermore SPEED=0
#     {% else %}
#       SET_FAN_SPEED FAN=Nevermore SPEED=1
#     {% endif %}
    
[gcode_macro CHAMBER_TEMP_WAIT]
gcode:
  {% if params.MIN_TEMPERATURE and params.MAX_TEMPERATURE and params.MIN_TEMPERATURE|float > params.MAX_TEMPERATURE|float %}
    {action_raise_error("Chamber Temp Wait: MIN_TEMPERATURE must be less than or equal to MAX_TEMPERATURE
                         Use: 
                         - CHAMBER_TEMP_WAIT MIN_TEMPERATURE=[0..90]
                         - CHAMBER_TEMP_WAIT MAX_TEMPERATURE=[0..90]
                         - CHAMBER_TEMP_WAIT MIN_TEMPERATURE=[0..90] MAX_TEMPERATURE=[0..80]")}
  {% elif params.MIN_TEMPERATURE and params.MIN_TEMPERATURE|float > -1 and params.MIN_TEMPERATURE|float < 91 %}
    {% if params.MAX_TEMPERATURE and params.MAX_TEMPERATURE|float > -1 and params.MAX_TEMPERATURE|float < 91 %}
      TEMPERATURE_WAIT SENSOR="temperature_sensor enclosure_temp" MINIMUM={params.MIN_TEMPERATURE|float} MAXIMUM={params.MAX_TEMPERATURE|float}
    {% else %}
      TEMPERATURE_WAIT SENSOR="temperature_sensor enclosure_temp" MINIMUM={params.MIN_TEMPERATURE|float}
    {% endif %}
  {% elif params.MAX_TEMPERATURE and params.MAX_TEMPERATURE|float > -1 and params.MAX_TEMPERATURE|float < 91 %}
      TEMPERATURE_WAIT SENSOR="temperature_sensor enclosure_temp" MAXIMUM={params.MAX_TEMPERATURE|float}
  {% else %}
    {action_raise_error("Chamber Temp Wait: invalid usage
                         Use: 
                         - CHAMBER_TEMP_WAIT MIN_TEMPERATURE=[0..90]
                         - CHAMBER_TEMP_WAIT MAX_TEMPERATURE=[0..90]
                         - CHAMBER_TEMP_WAIT MIN_TEMPERATURE=[0..90] MAX_TEMPERATURE=[0..90]")}
  {% endif %}




[gcode_macro T0]
gcode:

[gcode_macro START_PRINT]

gcode:

# #    START_PRINT BED_TEMP=[first_layer_bed_temperature] EXTRUDER_TEMP=[first_layer_temperature]
#     {% set BED_TEMP = params.BED_TEMP|default(110)|float %}
#     {% set EXTRUDER_TEMP = params.EXTRUDER_TEMP|default(260)|float %}
#     # Start bed heating
#     M140 S{BED_TEMP}
#     # Use absolute coordinates
#     G90
#     # Reset the G-Code Z offset (adjust Z offset if needed)
#     SET_GCODE_OFFSET Z=0.0
#     # Home the printer
#     G28
#     # Move the nozzle near the bed
#     G1 Z5 F3000
#     # Move the nozzle very close to the bed
#     G1 Z0.15 F300
#     # Wait for bed to reach temperature
#     M190 S{BED_TEMP}
#     # Set and wait for nozzle to reach temperature
#     M109 S{EXTRUDER_TEMP}

[gcode_macro END_PRINT]
gcode:
    # Turn off bed, extruder, and fan
    M140 S0
    M104 S0
    M106 S0
    # Move nozzle away from print while retracting
    G91
    G1 X-2 Y-2 E-3 F300
    # Raise nozzle by 10mm
    G1 Z10 F3000
    G90
# pid_Kp=21.415 pid_Ki=1.569 pid_Kd=73.083
#*# <---------------------- SAVE_CONFIG ---------------------->
#*# DO NOT EDIT THIS BLOCK OR BELOW. The contents are auto-generated.
#*#
#*# [heater_bed]
#*# control = pid
#*# pid_kp = 38.948
#*# pid_ki = 1.267
#*# pid_kd = 299.414
#*#
#*# [extruder]
#*# control = pid
#*# pid_kp = 21.415
#*# pid_ki = 1.569
#*# pid_kd = 73.083
#*#
#*# [probe]
#*# z_offset = -0.511
#*# [stepper_z]

Any help would be great.

What does come behind this?

Bad idea. Klipper creates it’s own SAVE_CONFIG block.

Have you ever performed the SAVE_CONFIG command when it was necessary?

#*# [stepper_z]
#*#
#*# [input_shaper]
#*#
#*# [bed_mesh default]
#*# version = 1
#*# points =
#*# 	  0.032532, 0.021282, 0.002532
#*# 	  0.025032, -0.001218, -0.004968
#*# 	  0.036282, 0.020032, 0.007532
#*# x_count = 3
#*# y_count = 3
#*# mesh_x_pps = 2
#*# mesh_y_pps = 2
#*# algo = lagrange
#*# tension = 0.2
#*# min_x = 121.55299999999998
#*# max_x = 181.13299999999998
#*# min_y = 121.631
#*# max_y = 181.21099999999998

This is the remaining of my copy/paste Save_config
I have typed it in yes. Previous to pasting this save config it did not auto populate,

There is this in the log:

SAVE_CONFIG section 'probe' option 'z_offset' conflicts with included value

Try with this in the CONFIG block.

...
#*# [probe]
#*# z_offset = -0.511
#*#
#*# [stepper_z]
...

I copy/paste and no change. Honestly it doesn’t make sense that the bed/extruder would populate the save_config and not the z_offset.

Have you deleted the former lines.

To be exact: There might be a empty line after #*# z_offset = -0.511 and before #*# [stepper_z]

Can I ask a question?

At the bottom of the printer.cfg(in which you put into your original post) there is the message:

#*# <---------------------- SAVE_CONFIG ---------------------->
#*# DO NOT EDIT THIS BLOCK OR BELOW. The contents are auto-generated.

With this notification, why would you think that things work if you were to change them manually?

I know that the text is human readable but when I saw this warning my first thought was that if I were to change it, afterwards things might not work as expected.

The most likely cause of your issues is that you a) changed something below the lines I’ve highlighted in an incorrect format (ie too many or not enough spaces, the wrong line ending, etc.), b) you made the changes below the lines correctly, but the parameters being changed by the SAVE_CONFIG are not properly marked for the software to recognize them or c) all of the above.

My suggestions to you is that you delete the lines I’ve highlighted above and everything below them followed by uncommenting the parameters in heater_bed, extruder and 'probe` and start again.

1 Like

I ran a Extruder PID, then the Save_config Command, return with error. I manually changed the save_config block for the extruder’s PID, did a save/restart. Then a firmware restart, checked the save_config block and it stayed as i had typed it. I then ran another extruder PID with the bed on so i would get different pid, and the save_config file updated as it should. After that the bed PID worked, but still stuck on the z_offset not saving.

I will try your next step.

So, i want to clearify. Delete the Save_config block, then in the [extruder] & [bed_heater] uncomment the PID controls?

Delete all this:

#*# <---------------------- SAVE_CONFIG ---------------------->
#*# DO NOT EDIT THIS BLOCK OR BELOW. The contents are auto-generated.
#*#
#*# [heater_bed]
#*# control = pid
#*# pid_kp = 38.948
#*# pid_ki = 1.267
#*# pid_kd = 299.414
#*#
#*# [extruder]
#*# control = pid
#*# pid_kp = 21.415
#*# pid_ki = 1.569
#*# pid_kd = 73.083
#*#
#*# [probe]
#*# z_offset = -0.511
#*# [stepper_z]

Remove the comments on the arguments in the heater_bed, extruder and probe statements.

You’re basically starting again.

Ok, so not so bad, just redoing all my PID tuning. Thank you for your time. I will let you know my findings.

1 Like

Save_config has still not auto generated. My old mcu was the octopus v1.1 i noticed the example i had for the print.cfg file was very detailed. The octopus max has very little detail, could the example be my problem? I was thinking i could take the octopus v1.1 example and modify it for the max. Would i be waisting my time? or do go the route of re-installing all of my firmware again?

Have you done as @mykepredko suggested in his last post?

What example?

Yes i did delete the full Save_config block, and uncomment out the extruder / bed arguments.
Does the firmware tell mainsail where the Save_config file is? should i just start right from scratch? Does the printer.cfg file need to stay in it’s original order, i have modified the order of the example in some area’s for my printer.cfg

when comparing the octopus v1.1 cfg to the max cfg. it has half the information.

# 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/{REPLACE WITH YOUR SERIAL}
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: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

##  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 = <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
## 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:
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
#####################################################################

[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=<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
#####################################################################

##  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

octopus Max EZ cfg file

# This file contains common pin mappings for the BIGTREETECH Octopus Max EZ.
# To use this config, the firmware should be compiled for the
# STM32H723 with a "128KiB bootloader" "25 MHz crystal"
# and "USB (on PA11/PA12)" or "CAN bus (on PD0/PD1)".

# See docs/Config_Reference.md for a description of parameters.

# Motor-1
[stepper_x]
step_pin: PC13
dir_pin: PC14
enable_pin: !PE6
microsteps: 16
rotation_distance: 40
endstop_pin: PF0
position_endstop: 0
position_max: 200
homing_speed: 50

# Motor-2
[stepper_y]
step_pin: PE4
dir_pin: PE5
enable_pin: !PE3
microsteps: 16
rotation_distance: 40
endstop_pin: PF2
position_endstop: 0
position_max: 200
homing_speed: 50

# Motor-3
[stepper_z]
step_pin: PE1
dir_pin: PE0
enable_pin: !PE2
microsteps: 16
rotation_distance: 8
endstop_pin: PF4
position_endstop: 0.5
position_max: 200

# Motor-4
# 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_]
#step_pin: PB8
#dir_pin: PB9
#enable_pin: PB7
#endstop_pin: PF3
#...

# Motor-5
[extruder]
step_pin: PB5
dir_pin: PB4
enable_pin: !PB6
microsteps: 16
rotation_distance: 33.500
nozzle_diameter: 0.400
filament_diameter: 1.750
heater_pin: PF6 # HE0
sensor_pin:  PB0 # T0
sensor_type: EPCOS 100K B57560G104F
control: pid
pid_Kp: 22.2
pid_Ki: 1.08
pid_Kd: 114
min_temp: 0
max_temp: 250

#[filament_switch_sensor material_0]
#switch_pin: PF1

# Motor-6
#[extruder1]
#step_pin: PG15
#dir_pin: PB3
#enable_pin: !PD5
#heater_pin: PA0 # HE1
#sensor_pin: PC5 # T1
#...

#[filament_switch_sensor material_1]
#switch_pin: PC15

# Motor-7
#[extruder2]
#step_pin: PD3
#dir_pin: PD2
#enable_pin: !PD4
#heater_pin: PF9 # HE2
#sensor_pin: PC4 # T2
#...

# Motor-8
#[extruder3]
#step_pin: PA10
#dir_pin: PA9
#enable_pin: !PA15
#heater_pin: PF7 # HE3
#sensor_pin: PA7 # T3
#...

# Motor-9
#[extruder4]
#step_pin: PA8
#dir_pin: PC7
#enable_pin: !PC9
#...

# Motor-10
#[extruder5]
#step_pin: PG6
#dir_pin: PC6
#enable_pin: !PC8
#...

[heater_bed]
heater_pin: PF5
sensor_pin: PB1 # TB
sensor_type: ATC Semitec 104GT-2
control: watermark
min_temp: 0
max_temp: 130

[fan]
pin: PA6

#[heater_fan fan1]
#pin: PA5

#[heater_fan fan2]
#pin: PA4

#[heater_fan fan3]
#pin: PA3

#[heater_fan fan4]
#pin: PA1
#tachometer_pin: PC3

#[heater_fan fan5]
#pin: PF8
#tachometer_pin: PC1

#[heater_fan fan6]
#pin: PA2
#tachometer_pin: PC2

[mcu]
serial: /dev/serial/by-id/usb-Klipper_Klipper_firmware_12345-if00

[printer]
kinematics: cartesian
max_velocity: 300
max_accel: 3000
max_z_velocity: 5
max_z_accel: 100

########################################
# TMC2209 configuration
########################################

#[tmc2209 stepper_x]
#uart_pin: PG14
##diag_pin: PF0
#run_current: 0.800
#stealthchop_threshold: 999999

#[tmc2209 stepper_y]
#uart_pin: PG13
##diag_pin: PF2
#run_current: 0.800
#stealthchop_threshold: 999999

#[tmc2209 stepper_z]
#uart_pin: PG12
##diag_pin: PF4
#run_current: 0.650
#stealthchop_threshold: 999999

#[tmc2209 stepper_]
#uart_pin: PG11
##diag_pin: PF3
#run_current: 0.650
#stealthchop_threshold: 999999

#[tmc2209 extruder]
#uart_pin: PG10
#run_current: 0.800
#stealthchop_threshold: 999999

#[tmc2209 extruder1]
#uart_pin: PG9
#run_current: 0.800
#stealthchop_threshold: 999999

#[tmc2209 extruder2]
#uart_pin: PD7
#run_current: 0.800
#stealthchop_threshold: 999999

#[tmc2209 extruder3]
#uart_pin: PD6
#run_current: 0.800
#stealthchop_threshold: 999999

#[tmc2209 extruder4]
#uart_pin: PG8
#run_current: 0.800
#stealthchop_threshold: 999999

#[tmc2209 extruder5]
#uart_pin: PG7
#run_current: 0.800
#stealthchop_threshold: 999999

########################################
# TMC2130 configuration
########################################

#[tmc2130 stepper_x]
#cs_pin: PG14
#spi_bus: spi4
##diag1_pin: PF0
#run_current: 0.800
#stealthchop_threshold: 999999

#[tmc2130 stepper_y]
#cs_pin: PG13
#spi_bus: spi4
##diag1_pin: PF2
#run_current: 0.800
#stealthchop_threshold: 999999

#[tmc2130 stepper_z]
#cs_pin: PG12
#spi_bus: spi4
##diag1_pin: PF4
#run_current: 0.650
#stealthchop_threshold: 999999

#[tmc2130 stepper_]
#cs_pin: PG11
#spi_bus: spi4
##diag1_pin: PF3
#run_current: 0.800
#stealthchop_threshold: 999999

#[tmc2130 extruder]
#cs_pin: PG10
#spi_bus: spi4
#run_current: 0.800
#stealthchop_threshold: 999999

#[tmc2130 extruder1]
#cs_pin: PG9
#spi_bus: spi4
#run_current: 0.800
#stealthchop_threshold: 999999

#[tmc2130 extruder2]
#cs_pin: PD7
#spi_bus: spi4
#run_current: 0.800
#stealthchop_threshold: 999999

#[tmc2130 extruder3]
#cs_pin: PD6
#spi_bus: spi4
#run_current: 0.800
#stealthchop_threshold: 999999

#[tmc2130 extruder4]
#cs_pin: PG8
#spi_bus: spi4
#run_current: 0.800
#stealthchop_threshold: 999999

#[tmc2130 extruder5]
#cs_pin: PG7
#spi_bus: spi4
#run_current: 0.800
#stealthchop_threshold: 999999

[board_pins]
aliases:
    # FPC header, Aliases EXP1 & EXP2 for mini12864
    EXP1_1=PG2, EXP1_2=PD15,
    EXP1_3=PD14, EXP1_4=PD13,
    EXP1_5=PD12, EXP1_6=PD11,
    EXP1_7=PD10, EXP1_8=PE15,
    EXP1_9=<GND>, EXP1_10=<5V>,

    # EXP2 header
    EXP2_1=PE13, EXP2_2=PE12,
    EXP2_3=PG5, EXP2_4=PE11,
    EXP2_5=PG4, EXP2_6=PE14,
    EXP2_7=PG3, EXP2_8=<RST>,
    EXP2_9=<GND>, EXP2_10=<NC>

# See the sample-lcd.cfg file for definitions of common LCD displays.

#[bltouch]
#sensor_pin: ^PB15
#control_pin: PB14

# Proximity switch
#[probe]
#pin: PF11

#[output_pin ps_on_pin]
#pin: PF13

#[output_pin pf12_pin]
#pin: PF12

#[neopixel my_neopixel_1]
#pin: PE10

#[neopixel my_neopixel_2]
#pin: PE9

#[hall_filament_width_sensor]
#adc1: PC0
#adc2: PF10

#[adxl345]
#cs_pin: PF14
#spi_bus: spi4

The SAVE_CONFIG information is saved at the bottom of printer.cfg. There is no separate file.

I was expecting that you start with theprinter.cfg in your original post, delete what I indicated and start again with doing the calibrations that require SAVE_CONFIG.

i reallize the Save_config is at the bottom once it auto populates, I did use the original printer.cfg file as you had stated. It just did nothing for me. I did complete the calibrations with no auto save_config completed.

Have you done a restart firmware command after that?

yes i have competed the firmware restart. I have tried from my TFT to do a autosave as well from mainsail. all come back with error

Can you post the printer.cfg that you are having the problems with?

[virtual_sdcard]
path: /home/pi/printer_data/gcodes
on_error_gcode: CANCEL_PRINT


# This file contains common pin mappings for the BIGTREETECH Octopus Max EZ.
# To use this config, the firmware should be compiled for the
# STM32H723 with a "128KiB bootloader", "25 MHz crystal",
# and one of:
# Communication interface: "USB (on PA11/PA12)",
# Communication interface: "CAN bus (on PD0/PD1)", or
# Communication interface: "USB to CAN bus bridge (USB on PA11/PA12))" and CAN bus interface: "CAN bus (on PD0/PD1)".

# See docs/Config_Reference.md for a description of parameters.


[mcu]
serial: /dev/serial/by-id/usb-Klipper_stm32h723xx_3F001C000C51313339373836-if00

## Mainsail settings
[include mainsail.cfg]
# [I'm an included settings block]
[extruder]
[heater_bed]
[probe]
[include btt_ebb-sb2240.cfg]
# sb2400 uid 41fd5a53f37b
[include stealthburner_leds.cfg]
[include KAMP_Settings.cfg]
# [include macros.cfg]
[exclude_object]
# [include nevermore.cfg]
#[mcu rpi]
#serial: /tmp/klipper_host_mcu

[input_shaper]
shaper_freq_x: 56.4
shaper_type_x: mzv
shaper_freq_y: 41.4
shaper_type_y: mzv

# [shaketune]
# result_folder: ~/printer_data/config/ShakeTune_results
# #    The folder where the results will be stored. It will be created if it doesn't exist.
# number_of_results_to_keep: 3
# #    The number of results to keep in the result_folder. The oldest results will
# #    be automatically deleted after each runs.
# keep_raw_data: False
# #    If True, the raw CSV files will be kept in the result_folder alongside the
# #    PNG graphs. If False, they will be deleted and only the graphs will be kept.
# show_macros_in_webui: True
# #    Mainsail and Fluidd doesn't create buttons for "system" macros that are not in the
# #    printer.cfg file. If you want to see the macros in the webui, set this to True.
# timeout: 300
# #    The maximum time in seconds to let Shake&Tune process the CSV files and generate the graphs.


[printer]
kinematics: corexy
max_velocity: 300  
max_accel: 10000             #Max 4000
# max_accel_to_decel: 10000
max_z_velocity: 15          #Max 15 for 12V TMC Drivers, can increase for 24V
max_z_accel: 350
square_corner_velocity: 5.0


#[adxl345]
#cs_pin: PF14
#spi_bus: spi4


# Motor-1 B stepper Left Correct
[stepper_x]
step_pin: !PC13 # forward backward
dir_pin: !PC14 # left right
enable_pin: !PE6 # turn motor on
rotation_distance: 40
microsteps: 32
full_steps_per_rotation:200  #set to 400 for 0.9 degree stepper
endstop_pin: PF0
# position_min: 0
position_endstop: 300
position_max: 300
homing_speed: 100
homing_retract_dist: 3
# homing_positive_dir: True

##	Make sure to update below for your relevant driver (2208 or 2209)
[tmc2209 stepper_x]
uart_pin: PG14
# diag_pin: ^PF0
# driver_SGTHRS: 60 # 255 is most sensitive value, 0 is least sensitive
interpolate: false
run_current: 0.8
sense_resistor: 0.110
stealthchop_threshold: 0

# Motor-2 A stepper right Correct
[stepper_y]
step_pin: !PE4
dir_pin: !PE5
enable_pin: !PE3
rotation_distance: 40
microsteps: 32
full_steps_per_rotation:200  #set to 400 for 0.9 degree stepper
endstop_pin: !PF2
position_min: 0
position_endstop: 300
position_max: 300
homing_speed: 100
homing_retract_dist: 3
homing_positive_dir: true

##	Make sure to update below for your relevant driver (2208 or 2209)
[tmc2209 stepper_y]
uart_pin: PG13
# diag_pin: ^PF2
# driver_SGTHRS: 55 # 255 is most sensitive value, 0 is least sensitive
interpolate: false
run_current: 0.8
sense_resistor: 0.110
stealthchop_threshold: 0

## Z0 Stepper - Front Left correct
# Motor-4
[stepper_z] 
step_pin: PB8
dir_pin: !PB9
enable_pin: !PB7
rotation_distance: 40
gear_ratio: 80:16
microsteps: 32
endstop_pin: probe:z_virtual_endstop
position_max: 260
position_min: -5
homing_speed: 100
second_homing_speed: 50
homing_retract_dist: 5
##  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


##	Make sure to update below for your relevant driver (2208 or 2209)
[tmc2209 stepper_z]
uart_pin: PG11
# diag_pin: ^PF3
interpolate: false
run_current: 0.8
sense_resistor: 0.110
stealthchop_threshold: 999999

# MOTOR-5 back left Correct
[stepper_z1]
step_pin: PB5
dir_pin: PB4
enable_pin: !PB6
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: PG10
# diag_pin: ^!PF3
interpolate: false
run_current: 0.8
sense_resistor: 0.110
stealthchop_threshold: 999999


##  Z2 Stepper - Back right
##  Connected to MOTOR_6
[stepper_z2]
step_pin: PG15
dir_pin: !PB3
enable_pin: !PD5
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: PG9
# diag_pin: ^PF1
interpolate: false
run_current: 0.8
sense_resistor: 0.110
stealthchop_threshold: 999999

##  Z3 Stepper - Front Right
##  Connected to MOTOR_7
[stepper_z3]
step_pin: PD3
dir_pin: PD2
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_z3]
uart_pin: PD7
interpolate: false
run_current: 0.8
sense_resistor: 0.110
stealthchop_threshold: 999999

#[filament_switch_senso]
#switch_pin: PC15


#####################################################################
#   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: PF6
##  Other wiring guides may use BED_OUT to control the SSR. Uncomment the following line for those cases
#heater_pin: PA1
## 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: PB1
##  Adjust Max Power so your heater doesn't warp your bed. Rule of thumb is 0.4 watts / cm^2 .
max_power: 0.6
min_temp: 0
max_temp: 120
control: pid
pid_kp: 38.508
pid_ki: 1.422
pid_kd: 260.650
#  pid_Kp=38.508 pid_Ki=1.422 pid_Kd=260.650

#####################################################################
#   Probe
#####################################################################

# ##  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

# #--------------------------------------------------------------------
pin: ~!EBBCan:PB9
x_offset: 0
y_offset: 0
z_offset: 0
speed: 100.0
samples: 3
samples_result: median
sample_retract_dist: 3.0
samples_tolerance: 0.006
samples_tolerance_retries: 10 # 3


activate_gcode:
    {% set PROBE_TEMP = 150 %}
    {% set MAX_TEMP = PROBE_TEMP + 5 %}
    {% set ACTUAL_TEMP = printer.extruder.temperature %}
    {% set TARGET_TEMP = printer.extruder.target %}

    {% if TARGET_TEMP > PROBE_TEMP %}
        { action_respond_info('Extruder temperature target of %.1fC is too high, lowering to %.1fC' % (TARGET_TEMP, PROBE_TEMP)) }
        M109 S{ PROBE_TEMP }
    {% else %}
        # Temperature target is already low enough, but nozzle may still be too hot.
        {% if ACTUAL_TEMP > MAX_TEMP %}
            { action_respond_info('Extruder temperature %.1fC is still too high, waiting until below %.1fC' % (ACTUAL_TEMP, MAX_TEMP)) }
            TEMPERATURE_WAIT SENSOR=extruder MAXIMUM={ MAX_TEMP }
        {% endif %}
    {% endif %}
    


#####################################################################
#   Fan Control
#####################################################################

[fan]
## This is a simple include for the Nevermore. To use it with your printer, edit
## the pin definition in line 16 so it matches your printer.
## What you get:
## - a generic fan "Nevermore" which is adjustable in GCODE and in Mainsail/Fluidd
## - Commands in your 12864-controller to turn the fan on/off or adjust in 10%-steps
## - a Macro to turn the fan off some time after the print.
##
## Slicer integration: Add "SET_FAN_SPEED FAN=Nevermore SPEED=1" in your start-macro
## (or less fan depending on your needs, like SPEED=0.8)
## in your end print code, add "UPDATE_DELAYED_GCODE ID=filter_off DURATION=180"
## this keeps your Nevermore running for 180s after the print finishes to clean the chamber a bit more.

[fan_generic Nevermore]
pin: PF8
tachometer_pin: ^PC1



##  Controller fan - sb2240 printhead mini fan
[controller_fan sb2240_fan]
pin: PA6
tachometer_ppr: 2
tachometer_pin: ^PF3
#[heater_fan fan1]
#pin: PA5

#[heater_fan fan2]
#pin: PA4

#[heater_fan fan3]
#pin: PA3


#  Exhaust fan -  2 case fans & octopus fan under printer
[heater_fan exhaust_fancase]
pin: PA5
tachometer_ppr: 2
tachometer_pin: ^PF4
# max_power: 1.0
# shutdown_speed: 0.0
# kick_start_time: 5.0
# heater: heater_bed
# fan_speed: 1.0


##  Controller fan - FAN3 actually its the exhaust fan to outside
[controller_fan SSR_fanexhaust]
pin: PA4
kick_start_time: 0.5
heater: heater_bed


# # 5015 undr bead fans
# [controller_fan 5015_fan]
# pin: PF8
# tachometer_pin: ^PC1
# max_power: 1.0
# shutdown_speed: 0.0
# cycle_time: 0.10
# kick_start_time: 5.0
# heater: heater_bed
# fan_speed: 1.0

# pin: PA0
# max_power: 1.0
# shutdown_speed: 0
# cycle_time: 0.10
# hardware_pwm: False
# kick_start_time: 0.100
# off_below: 0.14
#[heater_fan fan6]
#pin: PA2
#tachometer_pin: PC2





#####################################################################
#   Thermals
#####################################################################

[temperature_sensor raspberry_pi]
## Pi Temps
sensor_type: temperature_host
max_temp: 100

##[temperature_sensor mcu_temp]
[temperature_sensor Octopus]
## Spider Temps
sensor_type: temperature_mcu
max_temp: 90

[temperature_sensor EBB2240]
sensor_type: temperature_mcu
sensor_mcu: EBBCan
min_temp: 0
# max_temp: 90



[temperature_sensor bed_top]
## Top of Bed Temps
sensor_type: Generic 3950
sensor_pin: PC4

######################
### Chamber Heater ###
######################

[heater_generic chamber_heater]
heater_pin: PF9
sensor_type: PT1000
sensor_pin: PC5
control: watermark
control: pid
pid_Kp=15.461 
pid_Ki=0.644 
pid_Kd=92.764
max_power: .75
min_temp: 0
max_temp: 110
max_power: .5
min_temp: 0
max_temp: 240

[verify_heater chamber_heater]
max_error: 120
check_gain_time: 120
hysteresis: 5
heating_gain: 2

# ##########################
# ### Chamber Heater Fan ###
# ##########################

 # heater - FAN4
[heater_fan chamber_heater_fan]
pin: PA3
max_power: 1.0
heater: chamber_heater
heater_temp: 40.0 # fan will turn off below this level

#############################
### Enclosure Temperature ###
#############################

# [thermistor chamber_thermistor]
# beta: 3950
# temperature1: 25.0
# resistance1: 103180.0



# [temperature_sensor enclosure_temp]
# sensor_type: chamber_thermistor
# sensor_pin: PC4
# min_temp: 0
# max_temp: 80

#####################################################################
#   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: 150, 150
speed: 250 # 250
z_hop: 5

##  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 300mm Build
##  Uncomment for 300mm build
gantry_corners:
   -60,-10
   360,370
##  Probe points
points:
   50,25
   50,225
   250,225
   250,25

#--------------------------------------------------------------------
speed: 450 #450
horizontal_move_z: 5
retries: 5
retry_tolerance: 0.0075
max_adjust: 5

[bed_mesh]
speed: 500 # 500
horizontal_move_z: 5.51 #  5.51
##--------------------------------------------------------------------
##	Uncomment below for 250mm build
#mesh_min: 40, 40
#mesh_max: 210,210

##	Uncomment for 300mm build
mesh_min: 10,10 # 25, 25
mesh_max: 290,290 # 275,275
##--------------------------------------------------------------------
fade_start: 0.6
fade_end: 5.0
adaptive_margin: 10

# probe_count: 9,9
#relative_reference_index: 24 # 9 + 9 + 9 + 9 + 5

#probe_count: 7,7
#relative_reference_index: 24 # 7 + 7 + 7 + 3

#probe_count: 7,5
#relative_reference_index: 17 # 7 + 7 + 3

probe_count: 5,5
zero_reference_position: 150, 150

algorithm: bicubic  



[board_pins]
aliases:
    # FPC header, Aliases EXP1 & EXP2 for mini12864
    EXP1_1=PG2, EXP1_2=PD15,
    EXP1_3=PD14, EXP1_4=PD13,
    EXP1_5=PD12, EXP1_6=PD11,
    EXP1_7=PD10, EXP1_8=PE15,
    EXP1_9=<GND>, EXP1_10=<5V>,

    # EXP2 header
    EXP2_1=PE13, EXP2_2=PE12,
    EXP2_3=PG5, EXP2_4=PE11,
    EXP2_5=PG4, EXP2_6=PE14,
    EXP2_7=PG3, EXP2_8=<RST>,
    EXP2_9=<GND>, EXP2_10=<NC>

# See the sample-lcd.cfg file for definitions of common LCD displays.

#[bltouch]
#sensor_pin: PB15
#control_pin: PB14

# Proximity switch
#[probe]
#pin: PF11

#[output_pin ps_on_pin]
#pin: PF13

#[output_pin pf12_pin]
#pin: PF12

#[neopixel my_neopixel_1]
#pin: PE10

#[neopixel my_neopixel_2]
#pin: PE9

#[hall_filament_width_sensor]
#adc1: PC0
#adc2: PF10


#####################################################################
#   Macros
#####################################################################

# [menu __main __control __nevermoreonoff]
# type: command
# name: Nevermore {'ON' if printer['fan_generic Nevermore'].speed > 0 else 'OFF'}
# enable: {'fan_generic Nevermore' in printer}
# gcode:
#     TOGGLE_NEVERMORE

# [menu __main __control __filterspeed]
# type: input
# enable: {'fan_generic Nevermore' in printer}
# name: Filter %: {'%3d' % (menu.input*100)}%
# input: {printer["fan_generic Nevermore"].speed}
# input_min: 0
# input_max: 1
# input_step: 0.1
# gcode:
#     SET_FAN_SPEED FAN=Nevermore SPEED={menu.input}

# [delayed_gcode filter_off]
# gcode:
# #    SET_FAN_SPEED FAN=Nevermore SPEED=0

# [gcode_macro TOGGLE_NEVERMORE]
# gcode:
#     {% if printer['fan_generic Nevermore'].speed > 0 %}
#       SET_FAN_SPEED FAN=Nevermore SPEED=0
#     {% else %}
#       SET_FAN_SPEED FAN=Nevermore SPEED=1
#     {% endif %}
    
[gcode_macro CHAMBER_TEMP_WAIT]
gcode:
  {% if params.MIN_TEMPERATURE and params.MAX_TEMPERATURE and params.MIN_TEMPERATURE|float > params.MAX_TEMPERATURE|float %}
    {action_raise_error("Chamber Temp Wait: MIN_TEMPERATURE must be less than or equal to MAX_TEMPERATURE
                         Use: 
                         - CHAMBER_TEMP_WAIT MIN_TEMPERATURE=[0..90]
                         - CHAMBER_TEMP_WAIT MAX_TEMPERATURE=[0..90]
                         - CHAMBER_TEMP_WAIT MIN_TEMPERATURE=[0..90] MAX_TEMPERATURE=[0..80]")}
  {% elif params.MIN_TEMPERATURE and params.MIN_TEMPERATURE|float > -1 and params.MIN_TEMPERATURE|float < 91 %}
    {% if params.MAX_TEMPERATURE and params.MAX_TEMPERATURE|float > -1 and params.MAX_TEMPERATURE|float < 91 %}
      TEMPERATURE_WAIT SENSOR="temperature_sensor enclosure_temp" MINIMUM={params.MIN_TEMPERATURE|float} MAXIMUM={params.MAX_TEMPERATURE|float}
    {% else %}
      TEMPERATURE_WAIT SENSOR="temperature_sensor enclosure_temp" MINIMUM={params.MIN_TEMPERATURE|float}
    {% endif %}
  {% elif params.MAX_TEMPERATURE and params.MAX_TEMPERATURE|float > -1 and params.MAX_TEMPERATURE|float < 91 %}
      TEMPERATURE_WAIT SENSOR="temperature_sensor enclosure_temp" MAXIMUM={params.MAX_TEMPERATURE|float}
  {% else %}
    {action_raise_error("Chamber Temp Wait: invalid usage
                         Use: 
                         - CHAMBER_TEMP_WAIT MIN_TEMPERATURE=[0..90]
                         - CHAMBER_TEMP_WAIT MAX_TEMPERATURE=[0..90]
                         - CHAMBER_TEMP_WAIT MIN_TEMPERATURE=[0..90] MAX_TEMPERATURE=[0..90]")}
  {% endif %}

[gcode_macro T0]
gcode:

[gcode_macro START_PRINT]

gcode:

# #    START_PRINT BED_TEMP=[first_layer_bed_temperature] EXTRUDER_TEMP=[first_layer_temperature]
#     {% set BED_TEMP = params.BED_TEMP|default(110)|float %}
#     {% set EXTRUDER_TEMP = params.EXTRUDER_TEMP|default(260)|float %}
#     # Start bed heating
#     M140 S{BED_TEMP}
#     # Use absolute coordinates
#     G90
#     # Reset the G-Code Z offset (adjust Z offset if needed)
#     SET_GCODE_OFFSET Z=0.0
#     # Home the printer
#     G28
#     # Move the nozzle near the bed
#     G1 Z5 F3000
#     # Move the nozzle very close to the bed
#     G1 Z0.15 F300
#     # Wait for bed to reach temperature
#     M190 S{BED_TEMP}
#     # Set and wait for nozzle to reach temperature
#     M109 S{EXTRUDER_TEMP}

[gcode_macro END_PRINT]
gcode:
    # Turn off bed, extruder, and fan
    M140 S0
    M104 S0
    M106 S0
    # Move nozzle away from print while retracting
    G91
    G1 X-2 Y-2 E-3 F300
    # Raise nozzle by 10mm
    G1 Z10 F3000
    G90