r/klippers

▲ 34 r/klippers+3 crossposts

Prusa Core One Camera Mod Made from a Cheap Smart IP Camera

Ho progettato una custodia/enclosure custom in stile Prusa per la C1, utilizzando una telecamera di sorveglianza economica acquistata da Action.

L’intera enclosure è stata realizzata tramite reverse engineering delle dimensioni dell’elettronica della telecamera, cercando di mantenere un linguaggio estetico coerente con lo stile originale Prusa, senza modificare la stampante.

Il supporto:

  • richiede solo qualche goccia di colla per plastica dura
  • magneti: n.6 Ø5x2 mm
  • stampare orientato come mostrato nell’immagine dello slicer
  • ho aggiunto un piccolo avanzo di TPU per garantire più grip
  • per far passare il cavo, basta seguire la guida ufficiale Prusa per il setup della loro camera sul sito

La telecamera funziona sorprendentemente bene per il monitoraggio delle stampe. Con questa modifica, però, alcune funzioni originali della camera vengono disabilitate, come il LED blu frontale di attività e l’audio in/out.

Forse si potrebbe mantenere solo l’audio in ingresso, magari per ascoltare eventuali rumori strani della macchina, ma non ho ancora lavorato su una enclosure dedicata per questo. Se richiesto, potrei svilupparla in futuro. Ho anche pensato che sarebbe interessante collegare un rilevatore di fumo al posto del microfono.

È una soluzione davvero economica, con una qualità video sorprendente, e in più si può usare un’app dedicata per il monitoraggio sicuro e altre funzioni. La camera ha anche una microSD integrata per registrazioni lunghe o timelapse. Penso che possa essere associata anche a Prusa Connect.

Costo:

  • camera: 9,95 €
  • cavo USB-C / USB-C da 1,5 m: 1,95 €

Aprendo la telecamera originale sono abbastanza sicuro che perderete il diritto alla garanzia. Fate attenzione all’elettronica; immagino che, se siete qui, sappiate cosa state facendo.

Detto questo, non mi assumo alcuna responsabilità se rompete qualcosa <3

Fatemi sapere cosa ne pensate, il link della camera è disponibile qui sotto.

https://www.printables.com/model/1721935-prusa-core-one-camera-mod-made-from-a-cheap-smart

u/Radiant-Reality4000 — 1 day ago
▲ 133 r/klippers+1 crossposts

DIY Smart Filament Sensor with custom Setup App &amp; Klipper Clog Detection — Going Open-Source Soon!

Hi everyone!

I'm wrapping up a DIY Smart Filament Sensor project that's going fully open-source soon. It catches nozzle clogs, filament slips, and runouts with high precision, costing under $10 to build!

🛠️ Bill of Materials (BOM):

Category Component Name Qty Description / Technical Details
Electronics ESP32-C3 Super Mini 1 Main microcontroller (WiFi/BLE enabled, ultra-compact form factor)
Electronics AS5600 Magnetic Encoder Module 1 Contactless filament movement tracking (Must include a diametric magnet)
Electronics WS2812B Neopixel 5050 RGB LED 1 Status indicator (Single round PCB format)
Mechanical Grooved Bearing (U604ZZ) 2 OD: 13mm, ID: 4mm (The pulley/bearing the filament rides on)
Mechanical Dowel Pin (3mm x 15mm) 1 Smooth steel pin used as the central axle/shaft for the bearing mechanism
Mechanical O-Ring / Seal Ring 1 OD: ~11mm (Stretched over the bearing to grip the filament and provide friction)
Hardware PC4-M6 Pneumatic Fitting 2 6mm thread, used as entry/exit guides for the PTFE tubing
Hardware Compression Spring 1 Pen-style spring to apply tension on the bearing
Hardware M3 Screws As needed For main housing assembly and structural mounting
Hardware M2 Self-Tapping Screws As needed For securing the ESP32, AS5600, and Neopixel PCBs

🚀 Key Features:

  • USB-Only Klipper Integration: Plugs directly into your Raspberry Pi/host via USB. No motherboard wiring needed!
  • Zero Cumulative Drift: Uses a differential sliding window algorithm. It matches commanded extrusion vs. actual movement, resetting drift automatically to prevent false-positive print pauses.
  • Custom Setup App: A sleek React/Electron companion app for 1-click calibration, live measurement, and adjusting noise/sensitivity settings over serial.
  • Smart RGB LEDs: Smooth status breathing/pulsing states via FastLED.

I am finalizing the enclosure STLs and polishing the code to release it all on GitHub soon.

I’d love to hear your thoughts and suggestions!

u/ozncshn — 2 days ago
▲ 4 r/klippers+1 crossposts

Bad thermistor

Some printer info but I'm not sure how relevent it'll be:

It's an Ender 3 S1 (not pro or plus)

Running klipper

Just installed a new hotend capable of 300°C

Thermistor is bad. I tried to look for any thermistor that wasn't the NTC 100K 3950, as research presented many people with problems with this particular one. I couldn't find one. Plan B is to buy a bunch and hope that there's enough that at least one will not arrive cracked or broken and will allow accurate enough readings. Anyway, as to my question, with an innacurate thermistor (idk how inaccurate yet, just hoping at the moment that it's not unusably inaccurate) is there any tips as to be able to make due with it so I can keep printing? Klipper config stuff?

Edit: always manage to think of something I should've added right after posting. I think the only thing I've really done thus far is set my klipper config thermistor to read "Generic 3950". I know it's inaccurate cause temps jump around quite a bit. Probably around +/- 5°. I guess I'll try to do some testing to see.

reddit.com
u/Federal-Stranger8209 — 2 days ago

Parts are 'sheding'

I finally got Klipper working correctly yesterday and I printed a cube to check for speed and stuff but I am finding two issues. One is that the corners look 'pinched' for lack of a better term and secondly the last layer seems like it has peeled off. The former is a new issue that I am attributing to not having calibrated properly but the later I had issues with the original marlin. What am I doing wrong? It's an Ender 3 with an SKR mini 3 V3 board and Klipper

reddit.com
u/higunner00 — 3 days ago
▲ 1 r/klippers+1 crossposts

Dual part cooling fan config on EBB36 Gen2

Hello,

I am having trouble getting a dual part cooling setup to work on the EBB36 Gen2 toolhead board. The common solution that i have seen is the use of the multi_pin function but that seems to only work for every other type of fan in the klipper config and not for the part cooling fan [fan]

reddit.com
u/Asimplebiologist — 3 days ago

Unmet dependencies problem

Voron 2.4d 3d printer/Leviathan controller/RPi 4b + usb cam

If I'm posting this in the wrong place, please let me know. I have updated everything I know how to update. I'm trying to install crowsnest via kiauh, same as I did before (which worked).

I had the camera working with crowsnest. I had some problem that I could not figure out, I thought the easiest thing would be to reinstall everything--rpi os, klipper, mainsail, etc. It all works except I can't install crowsnest due to unmet dependencies. Here is the critical part during crowsnest install:

Solving dependencies... Error!

Some packages could not be installed. This may mean that you have

requested an impossible situation or if you are using the unstable

distribution that some required packages have not yet been created

or been moved out of Incoming.

The following information may help to resolve the situation:

The following packages have unmet dependencies:

mainsail-spyglass:arm64 : Depends: python3-libcamera:arm64 but it is not going to be installed

Depends: python3-kms++:arm64 but it is not going to be installed

Depends: python3-picamera2:arm64 but it is not installable

Depends: python3-av:arm64 but it is not installable

E: Unable to correct problems, you have held broken packages.

E: The following information from --solver 3.0 may provide additional context:

Unable to satisfy dependencies. Reached two conflicting decisions:

  1. mainsail-spyglass:arm64=0.18.1.trixie is selected for install
  2. mainsail-spyglass:arm64 Depends python3-picamera2:arm64

but none of the choices are installable:

[no choices]

mainsail-spyglass not found or failed to install.

reddit.com
u/parchping — 4 days ago

Errore bltouch

Ho finito la configurazione del bltouch e appena avvio la calibrazione del piatto mi da questo errore

u/CelebrationNo5180 — 5 days ago

Multi color unit

Hi yall,

I have an ender 5 with a btt octopus v1.1, and ebb36. Upgrades are klipper, mercury one(dragon hf and orbiter 2.0), triple Z, and stealthburner. I on the octopus I have 3 extra stepper drivers available. I hate to not utilize the board to its fullest extent. So, what would be the best mmu to use the 3 extra stepper spots, while not interrupting the extruder?

Ive looked at box turtle, but that requires 4 stepper. I have started looking at ercf, but i wanted to see opinions too.

Sidebar: I will either use this to do multicolor (3 different colors) or I will do multicolor and one petg lane for supports.

reddit.com
u/Primary-Web-9425 — 4 days ago
▲ 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=&lt;RST&gt;,
    EXP1_5=PA10, EXP1_6=PB9,  EXP1_7=PB8,  EXP1_8=PD6,
    EXP1_9=&lt;GND&gt;, EXP1_10=&lt;5V&gt;



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


#*# &lt;---------------------- SAVE_CONFIG ----------------------&gt;
#*# 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

preFlight slicer

Saw an article yesterday on Hackaday about this new slicer on the market and was wondering if anyone has given it a go yet? It's a Slic3r fork that seems to have everything Orca has and then some. Looks pretty interesting. The homepage is here.

Disclaimer: I have NO affiliation with the developers of this program.

u/Connect_Selection_77 — 5 days ago

Mainsail not connecting to printer

&#x200B;

I'm using a laptop to connect to my printer with a new skr e3 v3 mini. No screen on printer (new one is the mail), but the firmware on the SD card changed format, so I think the firmware was flashed. Checked services and mainsail, klipper and moonraker are running. On mainsail under printers it shows my printer on "standby", but when I go to switch to it it says it can't connect to moonraker. Printer is on and connected via USB

reddit.com
u/GoldSatisfaction8390 — 4 days ago

Trouble getting into mainsail

Hey all, I'm new with klipper and stuck. I'm using a laptop with a new skr e3 v3 mini. I installed kiauh, mainsale, and klipper. I opened my computer today and tried to connect to mainsale with the IP I used last night, but I can't connect.

reddit.com
u/GoldSatisfaction8390 — 5 days ago
▲ 2 r/klippers+1 crossposts

error MCU 'mcu' shutdown: Timer too close in laptop

Asking for help. I just installed Klipper on my ender 3 with a SKR mini e3 v3. I am using an old laptop (Lenovo Ideapad S300), i ran a bunch of tests, I managed to run the bed mesh, home, etc, even managed to print a Benchy, however when I tried to run some of the calibrations of OrcaSlicer, it started stopping after a couple minutes and showing 'MCU 'mcu' shutdown: Timer too close' . I have tried different Gcode files, even the same Benchy I already printed and always does the same. I have replaced the usb cable twice and the laptop is plugged in via Ethernet cable. I am honestly running out of ideas. The laptop is using Linux Mint and Mainsail for the interface. What could I do to solve this issue?

reddit.com
u/higunner00 — 6 days ago
▲ 4 r/klippers+3 crossposts

Coprint/klipper mod has me losing my mind. Why is it doing this?

Running the coprint kcm mod on my flashforge adventurer 5m pro, using Orcaslicer and Mainsail/klipper. It’s taken me 3 weeks to configure the default macros so that it behaves similarly to the stock flashforge (preheat nozzle, home all axes, load filament, lower the bed during filament swaps/cancel print/end print) the extruders were reversed, everything has just been one giant mess. And since their return window is only 2 weeks, I’m determined to not give up.

My print stopped mid-print last night, woke up to stringing and random color change where it shouldn’t be. Why is it doing this?

u/No15-BKFootLettuce — 6 days ago
▲ 20 r/klippers+2 crossposts

I rebuilt my Prusa MK3S into a Klipper-based enclosure with filtration, sensors, and local monitoring

Hi r/3Dprinting,

I wanted to share a Prusa MK3S enclosure project I’ve been building and documenting. It started as a practical upgrade for my own printer, but slowly turned into a full enclosure + Klipper + air-quality monitoring setup.

Project repo / photo album: https://github.com/Jungoari/Prusa-Enclosure

The main build:

  • Prusa MK3S converted toward a Klipper + Raspberry Pi control stack
  • SKR Mini E3 V3.0 controller conversion
  • Custom two-level enclosure
    • lower chamber for the printer
    • upper chamber for filament/electronics/future humidity control
  • Closed-loop HEPA + activated carbon filtration path
  • PMS7003, SGP30, and DHT22 sensors for PM/VOC/eCO2/temperature/humidity
  • OLED/local dashboard for printer and sensor status
  • Camera monitoring
  • Separate sensor/filter chamber integrated into the enclosure

A few photos from the repo:

The most useful part of the build so far has been debugging all the real-world details: rewiring the controller, dealing with fan voltage mismatches, Klipper tuning, first-layer calibration, sensor placement, enclosure airflow, and making the electronics accessible enough that maintenance is not painful.

There is also a research side to the project: I used the air-quality and temperature/humidity data to experiment with early nozzle-clogging warning from multivariate time-series sensor data. But for this post, I’m mostly interested in feedback on the actual printer build: enclosure layout, filtration path, sensor placement, electronics organization, and Klipper conversion decisions.

If you’ve built a Prusa enclosure, done a Klipper conversion, or added filtration/sensors to a printer, I’d love to hear what you would improve.

Thanks!

u/Hot-Association-310 — 6 days ago

Why does the "Finish" time in Fluidd show the time the print was started? How do I make it show the time the print will finish?

u/SlickStretch — 7 days ago

is there any way to fix this?

I am using a creality V4.2.2 i’ve tried two different configs. The bed thermostat isn’t even plugged in. The nozzle is a triangle labs CHT.

u/Odd_Exam1605 — 8 days ago