u/Otherwise_Ad4179

▲ 1 r/klippers+1 crossposts

Failing at installing a BTT Eddy

I've been messing with a BTT Eddy for a whole week, It's a 'chicken and egg problem'; i just don't get, I need the Z stop from the eddy to home but i can't get the Z stop off the eddy before a succesfully home..

This is my printer.cfg

## =============================================================
#  Klipper printer.cfg
#  Printer  : Creality Ender 3 Pro
#  Extruder : Creality Sprite Pro (Direct Drive)
#  Probe    : BigtreeTech Eddy Duo 
#  Board    : BigTreeTech SKR Mini E3 V3
#  Bed      : 235x235 mm – Magnetisch PEI
#  Features : Pressure Advance, Input Shaper (ADXL345),
#             Exclude Objects, Mainsail/Fluidd macros


# -------------------------------------------------------------
#  MAINSAIL / FLUIDD
# -------------------------------------------------------------


# [include mainsail.cfg]
[include fluidd.cfg]


# -------------------------------------------------------------
#  MCU
# -------------------------------------------------------------


[mcu]
serial: /dev/serial/by-id/usb-Klipper_stm32g0b1xx_4100240012504D5930313820-if00
restart_method: command


[board_pins]
aliases:
    EXP1_1=PB5,  EXP1_2=PA15, EXP1_3=PA9,  EXP1_4=<RST>,
    EXP1_5=PA10, EXP1_6=PB9,  EXP1_7=PB8,  EXP1_8=PD6,
    EXP1_9=<GND>, EXP1_10=<5V>



# -------------------------------------------------------------
#  PRINTER INSTELLINGEN
# -------------------------------------------------------------


[printer]
kinematics: cartesian
max_velocity: 350
max_accel: 4000
max_z_velocity: 5
max_z_accel: 100
square_corner_velocity: 5.0


# -------------------------------------------------------------
#  STEPPER MOTOREN
# -------------------------------------------------------------


[stepper_x]
step_pin: PB13
dir_pin: !PB12
enable_pin: !PB14
microsteps: 16
rotation_distance: 40
endstop_pin: ^PC0
position_endstop: 0
position_min: 0
position_max: 235
homing_speed: 50
homing_retract_dist: 5


[stepper_y]
step_pin: PB10
dir_pin: !PB2
enable_pin: !PB11
microsteps: 16
rotation_distance: 40
endstop_pin: ^PC1
position_endstop: -10
position_min: -10
position_max: 235
homing_speed: 50
homing_retract_dist: 5


[stepper_z]
step_pin: PB0
dir_pin: PC5
enable_pin: !PB1
microsteps: 16
rotation_distance: 8           
# T8 leadscrew Ender 3 Pro
endstop_pin: probe:z_virtual_endstop
position_min: -5
position_max: 215
homing_speed: 10
second_homing_speed: 3
homing_retract_dist: 5


# -------------------------------------------------------------
#  EXTRUDER – Creality Sprite Pro (Direct Drive)
# -------------------------------------------------------------


[extruder]
step_pin: PB3
dir_pin: !PB4
enable_pin: !PD1
microsteps: 16
rotation_distance: 7.360       
# Kalibreer via: klipper3d.org/Rotation_Distance.html; DONE!
nozzle_diameter: 0.400
filament_diameter: 1.750
max_extrude_only_distance: 500.0
max_extrude_cross_section: 5
heater_pin: PC8
sensor_type: Generic 3950      
# Creality Sprite Pro NTC thermistor (Gonna change to the Ceramic one in a bit)
sensor_pin: PA0
min_temp: 0
max_temp: 300
min_extrude_temp: 180
pressure_advance: 0.055
pressure_advance_smooth_time: 0.040


# -------------------------------------------------------------
#  TMC2209 DRIVERS (UART)
# -------------------------------------------------------------


[tmc2209 stepper_x]
uart_pin: PC11
tx_pin: PC10
uart_address: 0
run_current: 0.580
stealthchop_threshold: 999999


[tmc2209 stepper_y]
uart_pin: PC11
tx_pin: PC10
uart_address: 2
run_current: 0.580
stealthchop_threshold: 999999


[tmc2209 stepper_z]
uart_pin: PC11
tx_pin: PC10
uart_address: 1
run_current: 0.580
stealthchop_threshold: 999999


[tmc2209 extruder]
uart_pin: PC11
tx_pin: PC10
uart_address: 3
run_current: 0.650
stealthchop_threshold: 999999


# -------------------------------------------------------------
#  VERWARMDE BED
# -------------------------------------------------------------


[heater_bed]
heater_pin: PC9
sensor_type: EPCOS 100K B57560G104F
sensor_pin: PC4
min_temp: 0
max_temp: 130


# PID – voer uit: PID_CALIBRATE HEATER=heater_bed TARGET=60
#control: pid
#pid_Kp: 54.027
#pid_Ki: 0.770
#pid_Kd: 948.182



[mcu eddy]
serial: /dev/serial/by-id/usb-Klipper_rp2040_5044340410D9761C-if00
restart_method: command


[probe_eddy_current btt_eddy]
sensor_type: ldc1612
i2c_mcu: eddy
i2c_bus: i2c0f
x_offset: 44
y_offset: 41
descend_z: 5
reg_drive_current: 15


[force_move]
enable_force_move: True 
# Allows a user to move the z axis down if they have no other means of homing Z and need to calibrate the Eddy. 


[temperature_sensor btt_eddy_mcu]
sensor_type: temperature_mcu
sensor_mcu: eddy
min_temp: 10
max_temp: 100


[bed_mesh]
speed: 200
horizontal_move_z: 2
mesh_min: 50, 50
mesh_max: 190, 190
probe_count: 7, 7
algorithm: bicubic


[temperature_probe btt_eddy]
sensor_type: Generic 3950
sensor_pin: eddy:gpio26
horizontal_move_z: 2


[screws_tilt_adjust]
screw1: 55, 55
screw1_name: Voor Links
screw2: 225, 55
screw2_name: Voor Rechts
screw3: 225, 225
screw3_name: Achter Rechts
screw4: 55, 225
screw4_name: Achter Links
horizontal_move_z: 10
speed: 100
screw_thread: CW-M4


# -------------------------------------------------------------
#  KOELVENTILATOREN
# -------------------------------------------------------------


[fan]
pin: PC7


[heater_fan hotend_fan]
pin: PC6
heater: extruder
heater_temp: 50.0


[controller_fan controller_fan]
pin: PC12
idle_timeout: 60


# -------------------------------------------------------------
#  INPUT SHAPER – FLY ADXL345
# -------------------------------------------------------------


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


[adxl345]
cs_pin: fly_adxl:gpio9
spi_software_sclk_pin: fly_adxl:gpio10
spi_software_mosi_pin: fly_adxl:gpio11
spi_software_miso_pin: fly_adxl:gpio12


[resonance_tester]
accel_chip: adxl345
probe_points:
    117, 117, 20
accel_per_hz: 50
hz_per_sec: 0.5


[input_shaper]
shaper_type_x: mzv
shaper_freq_x: 46.6
shaper_type_y: ei
shaper_freq_y: 49.6


# -------------------------------------------------------------
#  DISPLAY – ST7920
# -------------------------------------------------------------


[display]
lcd_type: st7920
cs_pin: PB8
sclk_pin: PB9
sid_pin: PD6
encoder_pins: ^PA10, ^PA9
click_pin: ^!PA15


# -------------------------------------------------------------
#  EXTRA MODULES
# -------------------------------------------------------------


[exclude_object]


[virtual_sdcard]
path: ~/printer_data/gcodes


[display_status]


[pause_resume]


[respond]
default_type: echo


# -------------------------------------------------------------
#  TEMPERATUUR SENSOREN
# -------------------------------------------------------------


[temperature_sensor Orange_Pi_Zero_3]
sensor_type: temperature_host
min_temp: 10
max_temp: 100


[temperature_sensor SKR_Mini_E3v3]
sensor_type: temperature_mcu
min_temp: 0
max_temp: 100


[temperature_sensor FLY_ADXL_TEMP]
sensor_type: temperature_mcu
sensor_mcu: fly_adxl
min_temp: 0
max_temp: 100


# -------------------------------------------------------------
#  MACROS
# -------------------------------------------------------------


# Slicer startcommando:
#   START_PRINT BED_TEMP={material_bed_temperature_layer_0} EXTRUDER_TEMP={material_print_temperature_layer_0}


[delayed_gcode RESTORE_PROBE_OFFSET]
initial_duration: 1.
gcode:
  {% set svv = printer.save_variables.variables %}
  {% if not printer["gcode_macro SET_GCODE_OFFSET"].restored %}
    SET_GCODE_VARIABLE MACRO=SET_GCODE_OFFSET VARIABLE=runtime_offset VALUE={ svv.nvm_offset|default(0) }
    SET_GCODE_VARIABLE MACRO=SET_GCODE_OFFSET VARIABLE=restored VALUE=True
  {% endif %}
  
[gcode_macro SET_GCODE_OFFSET]
rename_existing: SET_GCODE_OFFSET_ORIG
variable_restored: False  
# Mark whether the var has been restored from NVM
variable_runtime_offset: 0
gcode:
  {% if params.Z_ADJUST %}
    SET_GCODE_VARIABLE MACRO=SET_GCODE_OFFSET VARIABLE=runtime_offset VALUE={ printer["gcode_macro SET_GCODE_OFFSET"].runtime_offset + params.Z_ADJUST|float }
  {% endif %}
  {% if params.Z %} 
    {% set paramList = rawparams.split() %}
    {% for i in range(paramList|length) %}
      {% if paramList[i]=="Z=0" %}
        {% set temp=paramList.pop(i) %}
        {% set temp="Z_ADJUST=" + (-printer["gcode_macro SET_GCODE_OFFSET"].runtime_offset)|string %}
        {% if paramList.append(temp) %}{% endif %}
      {% endif %}
    {% endfor %}
    {% set rawparams=paramList|join(' ') %}
    SET_GCODE_VARIABLE MACRO=SET_GCODE_OFFSET VARIABLE=runtime_offset VALUE=0
  {% endif %}
  SET_GCODE_OFFSET_ORIG { rawparams }


# This macro automates a lot of the frequency mapping process and simplifies the steps significantly.
[gcode_macro PROBE_EDDY_CURRENT_CALIBRATE_AUTO]
gcode:
  BED_MESH_CLEAR
  G28 X Y
  G90 
# Abs positioning
  G1 X{ printer.toolhead.axis_maximum.x/2 } Y{ printer.toolhead.axis_maximum.y/2 } F6000
  {% if 'z' not in printer.toolhead.homed_axes %}
    SET_KINEMATIC_POSITION Z={ printer.toolhead.axis_maximum.z-1 } 
# Allows the user to work it down until it touches.
  {% endif %}
  PROBE_EDDY_CURRENT_CALIBRATE {rawparams}


#This macro is optional but useful if you want to run a rapid scan before each print. Simply uncomment it and add BED_MESH_SCAN to your print start code.
#[gcode_macro BED_MESH_CALIBRATE]
#rename_existing: BTT_BED_MESH_CALIBRATE
#gcode:
#  SET_GCODE_VARIABLE MACRO=_KNOMI_STATUS VARIABLE=probing VALUE=True #Only uncomment this line if using a KNOMI and then remove the BED_MESH_CALIBRATE macro from KNOMI.cfg
#  BTT_BED_MESH_CALIBRATE METHOD=rapid_scan
#  SET_GCODE_VARIABLE MACRO=_KNOMI_STATUS VARIABLE=probing VALUE=False #Only uncomment this line if using a KNOMI and then remove the BED_MESH_CALIBRATE macro from KNOMI.cfg
[gcode_macro VORON_PURGE]
description: Voron-style purge + wipe (PRO versie)
gcode:
    M117 Voron Purge...


    
# Zorg dat extruder in relative mode staat
    M83
    G92 E0


    
# Ga naar purge startpositie
    G90
    G1 X5 Y5 Z0.3 F6000


    
# Purge-lijn extruderen
    G1 X60 E8 F800


    
# Wipe beweging
    G1 X80 F5000
    G1 Z2


    
# Reset extruder
    G92 E0
    M82


[gcode_macro START_PRINT]
description: Opwarmen, homen, adaptive mesh, Voron purge en prime line
gcode:
    {% set BED_TEMP = params.BED_TEMP|default(60)|float %}
    {% set EXTRUDER_TEMP = params.EXTRUDER_TEMP|default(200)|float %}


    
# --- Bed opwarmen ---
    M117 Bed opwarmen...
    M140 S{BED_TEMP}
    M104 S150


    
# --- Homing ---
    M117 Homen...
    G28


    
# --- Wachten op bed ---
    M117 Wachten op bedtemperatuur...
    M190 S{BED_TEMP}


    
# --- Adaptive Mesh (KAMP) ---
    M117 Adaptive bed mesh...
    BED_MESH_CALIBRATE


    
# Move naar veilige positie
    G1 Z5 F3000
    G1 X0 Y20 F5000


    
# --- Nozzle opwarmen ---
    M117 Nozzle opwarmen...
    M109 S{EXTRUDER_TEMP}


    
# --- VORON PURGE (Ender 3 version) ---
    M117 Voron Purge...
    G92 E0
    G90


    
# Purge startpositie (altijd op het bed)
    G1 X10 Y20 Z0.3 F6000


    
# Purge-lijn
    G1 X60 E8 F800


    
# Wipe-beweging
    G1 X120 F5000


    
# Lift
    G1 Z2 F3000
    G92 E0


    
# --- Prime line ---
    M117 Prime line...
    G1 Z0.3 F3000
    G1 X200 E15 F1200
    G1 Z2 F3000
    G92 E0


    M117 Printen...


[gcode_macro END_PRINT]
description: Print afronden, koelen en parken
gcode:
    M400
    G92 E0
    G1 E-4 F1800
    G91
    G0 Z5 F3000
    G90
    G0 X235 Y215 F5000
    M106 S0
    M104 S0
    M140 S0
    M84 X Y E
    M117 Klaar!


[gcode_macro LOAD_FILAMENT]
description: Filament laden
gcode:
    M104 S200
    M109 S200
    M83
    G1 E50 F300
    G1 E50 F150
    M82
    M117 Filament geladen


[gcode_macro UNLOAD_FILAMENT]
description: Filament verwijderen
gcode:
    M104 S200
    M109 S200
    M83
    G1 E8 F300
    G1 E-100 F800
    M82
    M117 Filament verwijderd


[gcode_macro BED_MESH_PRINT]
description: Bed mesh opnieuw uitvoeren
gcode:
    BED_MESH_CLEAR
    BED_MESH_CALIBRATE
    BED_MESH_PROFILE SAVE=default


[gcode_macro PARK_HEAD]
description: Printkop parkeren midden voor bed
gcode:
    {% if printer.toolhead.homed_axes != "xyz" %}
      G28
    {% endif %}
    G90
    G1 X117.5 Y10 Z50 F5000


[gcode_macro M600]
description: Filament wissel (pauze)
gcode:
    {% set X = params.X|default(50)|float %}
    {% set Y = params.Y|default(0)|float %}
    {% set Z = params.Z|default(10)|float %}
    SAVE_GCODE_STATE NAME=M600_state
    PAUSE
    G91
    G1 E-1 F2700
    G1 Z{Z}
    G90
    G1 X{X} Y{Y} F3000
    G91
    G1 E-50 F1000
    RESTORE_GCODE_STATE NAME=M600_state



[gcode_macro LEVEL_BED]
description: Bed nivelleren met CR Touch (SCREWS_TILT_CALCULATE)
gcode:
    {% set BED_TEMP = params.BED_TEMP|default(60)|float %}
    M117 Bed opwarmen...
    M140 S{BED_TEMP}
    M190 S{BED_TEMP}
    M117 Homen...
    G28
    M117 Bed meten...
    SCREWS_TILT_CALCULATE
    M117 Klaar - pas de schroeven aan!


[gcode_macro RETRACTION_TUNE]
description: Retraction calibratie met purge, wipe, speed ladder en stress tests
gcode:
    
# --- Extruder correct instellen ---
    M83        
; extruder in relative mode
    G92 E0     
; reset extruder


    
# --- Parameters ---
    {% set START = params.START|default(0.2)|float %}
    {% set END = params.END|default(1.4)|float %}
    {% set STEPS = params.STEPS|default(7)|int %}
    {% set STEP_SIZE = (END - START) / (STEPS - 1) %}


    {% set SPEED_START = params.SPEED_START|default(25)|int %}
    {% set SPEED_END = params.SPEED_END|default(45)|int %}
    {% set SPEED_STEP = ((SPEED_END - SPEED_START) / (STEPS - 1))|int %}


    SET_DISPLAY_TEXT MSG="Retraction test voorbereiden..."


    
# --- Anti-ooze warmup ---
    M140 S60
    M104 S180
    G28
    G90


    
# --- Wipe ---
    G1 X5 Y5 Z0.3 F6000
    G1 X60 F5000
    G1 Z2


    M190 S60
    M109 S210


    
# --- Purge + Wipe (veilig op het bed) ---
    SET_DISPLAY_TEXT MSG="Purge..."


    G92 E0
    G90


    G1 X10 Y20 Z0.3 F6000
    G1 X60 E8 F800
    G1 X120 F5000
    G1 Z2 F3000


    G92 E0


    SET_DISPLAY_TEXT MSG="Retraction test starten..."


    {% for i in range(STEPS) %}
        {% set RET = (START + (STEP_SIZE * i))|round(2) %}
        {% set RSPEED = (SPEED_START + (SPEED_STEP * i))|int %}
        {% set msg = "Ret: " ~ RET|string ~ "mm @ " ~ RSPEED|string ~ "mm/s" %}
        SET_DISPLAY_TEXT MSG="{msg}"


        SET_RETRACTION RETRACT_LENGTH={RET} RETRACT_SPEED={RSPEED}


        {% for layer in range(12) %}
            G1 X40 Y40 F6000


            G1 E2 F1500
            G1 X180 Y40 F3000


            G1 E-2 F1500
            G1 X40 Y180 F9000


            G1 E2 F1500
            G1 X180 Y180 F3000


            G1 E-2 F1500
            G1 X110 Y110 F9000
            G1 X40 Y40 F9000


            G1 E2 F1500
            G1 X180 Y60 F3000
            G1 X40 Y80 F3000
            G1 X180 Y100 F3000
            G1 X40 Y120 F3000


            {% set zheight = 0.2 + (layer * 0.2) %}
            G1 Z{zheight} F3000
        {% endfor %}
    {% endfor %}


    SET_DISPLAY_TEXT MSG="Retraction test klaar!"


    SET_RETRACTION RETRACT_LENGTH=0 RETRACT_SPEED=25


    G90
    G1 X117.5 Y10 Z50 F5000


    M104 S0
    M140 S0


    SET_DISPLAY_TEXT MSG


# -------------------------------------------------------------
#  OPTIONELE MODULES (uitgecommentarieerd)
# -------------------------------------------------------------


# Filament runout sensor
# [filament_switch_sensor runout_sensor]
# switch_pin: ^PC15
# pause_on_runout: True
# runout_gcode: M600


[gcode_macro G28]
rename_existing: G28.1
gcode:
    G28.1 {rawparams}
    {% if not rawparams or 'Z' in rawparams %}
        PROBE
        SET_Z_FROM_PROBE
    {% endif %}


[gcode_macro SET_Z_FROM_PROBE]
gcode:
    SET_GCODE_OFFSET Z={printer.probe.last_z_result}


[gcode_macro EDDY_CALIBRATE]
gcode:
    PROBE_EDDY_CURRENT_CALIBRATE
    PROBE_EDDY_CURRENT_CALIBRATE_AUTO


#*# <---------------------- SAVE_CONFIG ---------------------->
#*# DO NOT EDIT THIS BLOCK OR BELOW. The contents are auto-generated.
#*#
#*# [extruder]
#*# control = pid
#*# pid_kp = 19.671
#*# pid_ki = 0.868
#*# pid_kd = 111.389
#*#
#*# [heater_bed]
#*# control = pid
#*# pid_kp = 63.311
#*# pid_ki = 1.141
#*# pid_kd = 878.443
#*#
#*# [bed_mesh default]
#*# version = 1
#*# points =
#*#   -0.045000, -0.040000, -0.032500, -0.030000, -0.035000, -0.018750, -0.025000, -0.037500, -0.050000, -0.031250, -0.050000
#*#   -0.016250, -0.020000, -0.008750, -0.005000, -0.010000, -0.012500, -0.020000, -0.003750, -0.022500, -0.037500, -0.007500
#*#   -0.001250, -0.012500, -0.000000, 0.013750, 0.021250, 0.042500, 0.030000, 0.052500, 0.056250, 0.045000, 0.050000
#*#   0.040000, 0.040000, 0.051250, 0.035000, 0.043750, 0.051250, 0.043750, 0.060000, 0.047500, 0.048750, 0.058750
#*#   0.055000, 0.050000, 0.057500, 0.050000, 0.067500, 0.058750, 0.051250, 0.067500, 0.058750, 0.081250, 0.072500
#*#   0.072500, 0.081250, 0.063750, 0.072500, 0.053750, 0.071250, 0.066250, 0.066250, 0.072500, 0.087500, 0.106250
#*#   0.068750, 0.048750, 0.057500, 0.061250, 0.073750, 0.068750, 0.073750, 0.080000, 0.088750, 0.118750, 0.130000
#*#   0.027500, 0.032500, 0.037500, 0.042500, 0.046250, 0.056250, 0.060000, 0.076250, 0.087500, 0.085000, 0.117500
#*#   0.042500, 0.040000, 0.050000, 0.056250, 0.065000, 0.066250, 0.053750, 0.078750, 0.091250, 0.087500, 0.132500
#*#   0.050000, 0.057500, 0.065000, 0.066250, 0.066250, 0.060000, 0.043750, 0.052500, 0.070000, 0.058750, 0.105000
#*#   0.043750, 0.021250, 0.038750, 0.037500, 0.037500, -0.013750, -0.007500, 0.025000, 0.021250, 0.022500, 0.046250
#*# x_count = 11
#*# y_count = 11
#*# mesh_x_pps = 4
#*# mesh_y_pps = 4
#*# algo = bicubic
#*# tension = 0.2
#*# min_x = 0.0
#*# max_x = 190.0
#*# min_y = 50.0
#*# max_y = 220.0
reddit.com
u/Otherwise_Ad4179 — 5 days ago