Coder Social home page Coder Social logo

klicky-probe's Introduction

Klicky Probe

Microswitch probe with magnetic attachment, primarily aimed at CoreXY 3d printers.

Initially it was focused on the Voron printers (V2.4, V1.8, Trident, V0) and derivatives, now it's been restructured to better allow other printers to be documented here.

The objectives for this project are:

  • drop in replacement for Omron TL-Q5MC2 or PL-08N2 (you don't need to replace the toolhead), replacement of BLtouch probes
  • soldering not required
  • minimal adjustments required
  • be able to detect all the print surfaces
  • be as close to the hotend tip as possible
  • highly repeatable and accurate probes
  • less temperature variations
  • no melting of its parts
  • cheap to build
  • reuse spare parts if possible

Most of the Klicky probe users are using klipper, there are some macros in here that ease the probing process, by automating the attach, dock and use of the probe.

Some work has been developed to have the same functionality on RRF.

It can also be used with the automatic Z calibration klipper plugin to effectively calculate the Z offset from the probe and from the Z endstop if your printers supports a Z endstop triggered by the nozzle (like most Voron's do)

The inspiration for the Klicky Probe comes from the Quickdraw and the Euclid probe, it uses some concepts from each of the projects.

Updated instructions provided by StefanRaatz. oc_geek and TurBoxxs were also a great help in refining and testing the CAD files. Garrettwp provided the initial revised macro files. User richardjm revised the macro variables and added some functions. Mental created the initial macro and one of the first magnetically attached microswitch probes.

Without them, and some others this effort would not be in the current state, many thanks to them all.

It is working very well, if you decide to use it, give me feedback, either here, or on discord, my discord user is JosAr#0517.

If you want to donate something regarding this project, use this link or Buy me some ABS!, thanks

Upgrading from an earlier version

If you are upgrading from an earlier version, check the klipper macros folder, it contains update instructions.

Probe options

Right now, there are two probe attachment options, each with two probe types.

Regular Klicky

First klicky probe, based on the Quickdraw probe, with an added third magnet for added stability and fixed dock gantry setups.

klickyprobe

It uses magnets to secure the probe to the mount and also to make the electrical connection. The magnets can be glued to prevent them from coming loose. It supports a microswitch probe and Unklicky (invented by DustinSpeed) (self built probe, that so far surpasses the microswitches in common use) based probing.

KlickyNG

New enclosed magnets probe, it does not require glue to help prevent the magnets from coming loose, magnets are also self aligning. This approach only uses common and easy to source parts.

klickyprobe

Also supports microswitch probe and Unklicky (invented by DustinSpeed) (self built probe, that so far surpasses the microswitches in common use) based probing.

Printers With detailed instructions and specific parts (by support order)

The specific parts with install, configuration, troubleshoot and recommended settings can be found on each printer page, linked below.

Voron v2.4

Voron v1.8

Voron Legacy

Voron Trident

Voron v0

VCore 3.0/3.1

MercuryOne

Voron Switchwire

There are also docks and mounts submitted by users to support other printers and toolheads, you should check it out.

Klicky Probe imageklicky early version.

Klicky components

All the compatible printers require:

  • Toolhead mount (the thing that the probe attached to when it's being used)
  • Klicky probe (there are three versions, all are interchangeable and compatible, more information on the specific printer page), what actually is used to probe the bed
  • Probe dock (all the printers use the same)
  • Probe dock mount (what attaches to the printer to dock the probe when not in use)

The CAD with all the files is located Here

KlickyProbe STL's are now located on each probe type directory.

Printer specific STL are in each printer directory.

The klipper macros are here, the RRF here.

Probe accuracy

The probe accuracy output is better than a range of 0.025mm (difference between highest and lowest), and a standard deviation of 0.01mm.

Print Settings

There are no need for supports, recommended settings are 4 perimeters/top/bottom, at least 23% infill, the STL's are already oriented, you only need to send them to the slicer.

Each printer family/version has it's own mounting options, Bill of Materials, assembly instructions and dock/attach setup.

General Bill of Materials (BOM)

Tools:

  • 1.5mm Drill (optional)
  • Multimeter to check for Continuity
  • Super Glue
  • Soldering Iron for the heat inserts

Probe BOM:

  • 1x microswitch (the omron D2F-5 or D2F-5L (removing the lever) is recommended), D2F-1 and similar sizes microswitch also work
  • 2x M2x10 mm self tapping
  • some 6 mm x 3 mm magnets (it ranges from 8 to 10)
  • some m5 screws
  • some m3 screws
  • some m3 heat inserts
  • some m3 nuts

Sourcing guide

To get the best experience, please consider purchasing from the trusted list of suppliers bellow.

trusted suppliers list

Assembled Klicky Probe on a Voron v2.4

Assembled Klicky Probe

Dock and undock video

Dock_and_Undock.mp4

It is working very well, if you decide to use it, give me feedback, either here, or on Voron discord, my discord user is JosAr#0517.

By standing on the shoulders of giants, lets see if we can see further.

klicky-probe's People

Contributors

andrepl avatar anthonysinor avatar autocrit avatar bassco avatar camerony avatar clee avatar dmason1992 avatar drachenkaetzchen avatar elpopo-eng avatar frix-x avatar garthsnyder avatar hevilp avatar iamnotahippy avatar index999 avatar iruyo avatar jlas1 avatar kamermans avatar kyledavis417 avatar kyleisah avatar maverick-3d avatar minsekt avatar poitee avatar polar-ted avatar richardjm avatar riv-david avatar rynbrd avatar sporkus avatar sserpentess avatar stefanraatz avatar themacboy avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

klicky-probe's Issues

Magnets magnetizes the nozzle

I'm running Voron2.4/afterburner with Dragon-Hotend.
When the toolhead travels over the probe, the heatblock/nozzle gets magnetized, so that the nozzle pulls the endstop rod out.
I've solved it by keeping the retract low and adding an additional "horizontal retract" afterwards.

Found some issues with the macro caused by nesting macros

Hi,

I have a corexy printer with moving bed (tiny-M) and I am using the macros from Klicky probe. I found a problem that during the homing override procedure, the bed is moved to the safe distance even if this is not needed. This is not good if the bed is at its lowest when the printer tries to move it.
While investigating this, I found the following in the klipper docs (https://www.klipper3d.org/Command_Templates.html): Important! Macros are first evaluated in entirety and only then are the resulting commands executed. If a macro issues a command that alters the state of the printer, the results of that state change will not be visible during the evaluation of the macro. This can also result in subtle behavior when a macro generates commands that call other macros, as the called macro is evaluated when it is invoked (which is after the entire evaluation of the calling macro).

The problem here is that when the AttachProbe macro is called on its own, the checks to move or not the bed work because checking if Z is homed will give the real answer. If the AttachProbe macro is called from anothe macro (like HomingOverrirde) the check if Z is homed will no longer give the real status, but will give it as if the calling macro was already executed (so it will always say Z is homed).

I guess this could be avoided by using some global variables instead of the home axis check in the macros themselves. I will have a go to this and see if I can make it work. But I thought to let you know in case this is something you were not aware of. This thing might affect all the checks done to the printer status from within macros if they are called nested, so probably the safest is to always check global variables in macros...

Best regards,
Daniel

XYZ offsets

There should be a documented offset on each probe for each printer.

Magnets does not fit

You write, that I need 6x3 magnets, and they should b "below the plstic" - but when I look into the CAD files, the holes are 2.8mm deep.

Running PROBE_ACCURACY or PROBE_CALIBRATE error

Whenever I run a PROBE_ACCURACY or PROBE_CALIBRATE I get the following error: Must perform … with the probe above the BED! … Even though my probe is definitely over the bed. My probe doesn't have any wild offset values in my config:

[probe]
pin: PG11
x_offset: 0
y_offset: 21

So not sure what's going on.

Probe Attach Failed

First time I homed z and it picked up the probe, undocked, but then stopped and gave me this: !! Error evaluating 'gcode_macro SetProbeState:gcode': CommandError: Probe attach failed! But the probe is attached.

Is this possibly a signal issue? Because when testing the probe signal (query_probe) I could not get it to work properly. I have an octopus board and for prior induction probe, I split power to probe port (PB7) and signal to diag7 port (PG15) with diode. Klicky did not work on PG15, so I switched it back to the probe port PB7, but it also did not work. Both ports I used with and without the pull up (^) with no difference. It was either always triggered or always open.

EDIT: It was signal issue. I had continuity issues from the magnets not quite contacting each other, fixed by trimming wiring insulation where it bends.

Mosquito mount for Voron 0.1

Hi,

I know they aren't very popular, but there are still some of us out there who like our Mosquito's and want to keep using them :)

Is there any chance for a miniAB cowling version for the Mosquito with the embedded holder? I see you have one for the Dragon and BMO Dragonfly.

The voron repo still hosts the Mosquito one.

Thanks!

LGX Lite

Can you add an LGX Lite mount to the V0.1 mix? Preferably one that works wit the existing carriage mount so we can use the metal ones and/or avoid having to re-belt the the printer?

Thank you.

Voron 2.4, fluid Pi Spider board

getting this error when i include the klicky config files

homing_override and safe_z_homing cannot be used simultaneously

I want to retain the stock z endstop and use it to automatically set the z offset to the nozzle so i included the klinky-config and z calibration.cfg

Y homing for Y oriented probe ignores _HOME_Y

In the homing_override, the y homing section that triggers if attachmove_y ==0 doesn't use the same branching as further down the code. As a result, for y oriented docks it will never call a _HOME_Y macro if one is defined, only ever calling a G28 Y0. Confused the hell out of me while I was setting up my sensorless homing :) Will submit a PR.

homing_override wont do save z

Hi,
when doing a G28 after reboot, Z do not move for a save XY homing procedure.
it seems there is an issue, where homing_override section check if it is necessary to move z for that.
Thanks for any help :-)

First probe value is always off

Good day. Thank you very much for this amazing project. I am encountering a problem where the first reading I get from the probe is always significantly off.

Sample output (top is most recent)

Quad Gantry

10:03:04 
// Probe samples exceed tolerance. Retrying...
10:03:04 
// probe at 50.000,275.000 is z=6.970000
10:03:03 
// probe at 50.000,275.000 is z=6.966250
10:03:01 
// probe at 50.000,275.000 is z=6.963750
10:03:00 
// Probe samples exceed tolerance. Retrying...
10:03:00 
// probe at 50.000,275.000 is z=6.960000
10:02:58 
// probe at 50.000,275.000 is z=6.937500
10:02:51 
// probe at 50.000,25.000 is z=10.201250
10:02:49 
// probe at 50.000,25.000 is z=10.201250
10:02:48 
// probe at 50.000,25.000 is z=10.200000
10:02:46 
// probe at 50.000,25.000 is z=10.200000
10:02:45 
// probe at 50.000,25.000 is z=10.198750
10:02:43 
// Probe samples exceed tolerance. Retrying...
10:02:43 
// probe at 50.000,25.000 is z=10.196250
10:02:42 
// probe at 50.000,25.000 is z=10.178750
10:02:36 
// probe: open
10:02:34 
// Attaching Probe
10:02:34 
// probe: TRIGGERED
10:02:33 
// QG Level
10:02:33 
$ quad_gantry_level

Probe Accuracy

10:09:56 
// probe accuracy results: maximum 7.805629, minimum 7.781879, range 0.023750, average 7.800629, median 7.803129, standard deviation 0.006869
10:09:56 
// probe at 83.000,297.000 is z=7.805629
10:09:55 
// probe at 83.000,297.000 is z=7.805629
10:09:53 
// probe at 83.000,297.000 is z=7.805629
10:09:52 
// probe at 83.000,297.000 is z=7.804379
10:09:50 
// probe at 83.000,297.000 is z=7.804379
10:09:49 
// probe at 83.000,297.000 is z=7.801879
10:09:47 
// probe at 83.000,297.000 is z=7.800629
10:09:46 
// probe at 83.000,297.000 is z=7.799379
10:09:44 
// probe at 83.000,297.000 is z=7.796879
10:09:43 
// probe at 83.000,297.000 is z=7.781879
10:09:39 
// PROBE_ACCURACY at X:83.000 Y:297.000 Z:25.000 (samples=10 retract=3.000 speed=5.0 lift_speed=5.0)
10:09:39 
// probe: open
10:09:37 
// Attaching Probe
10:09:37 
// probe: TRIGGERED
10:09:36 
$ probe_accuracy

This effect is always present/very reproducible. I've done similar tests at least 50-60 times. I rebuilt my hotend assembly to try and eliminate any slop. I also rebuilt the klicky probe 3 times (each time with new switch and assembled a little more exact) with no change. I tested at 6 points around the bed to confirm it was not the bed. The linear rail is an LDO MGN12...as far as I can tell that is the only place where any slop is present...however is is extremely small and I can only feel it with a rocking motion/not a upwards pressure motion.

I'm 100% stuck at this point. I would really appreciate your help. Thanks.

Dock move documentation

Hello,

maybe i am too dumb, but i got a problem setting this up. In klicky-variables.cfg there is this section

#Check the documentation
#Dock move 
Variable_dockmove_x:          1000    # Final toolhead movement to release
Variable_dockmove_y:             0    # the probe on the dock
Variable_dockmove_z:             0    # (can be negative)
#Attach move 
Variable_attachmove_x:        1000    # Final toolhead movement to Dock
Variable_attachmove_y:           0    # the probe on the dock
Variable_attachmove_z:           0    # (can be negative)

I am lost here. Nether does i know, what these parameter mean (whats is exactly "final movement to release"?), nor can i find a documentation to "Check the documentation".
What do i need to put in here?
Currently i got a Move out of range: -848.000 [...] with the attach macro and i think these parameters are the root cause. Correct?

No wires needed for V-Core 3 probe.

In the instructions for the V-Core 3 version of the probe kit, you say:

"Then take your self tapping screws and screw the microswitch in place, you should also now solder the wires to the outside pins of the switch, that way making this a Normally Connected probe."

These instructions are similar for the other probes, where the probe pins are somewhat distant from the magnets and wire is needed to connect.

But, in this version, the outside pins of the probe are already snug against the magnets, right? There are no wires to solder here, unless very short wires to ensure better connection?

Microswitches

Hello, I want to build a probe as part of an update of av 2.4 voron. However I’m having problems locating the mentioned microswitches on AliExpress. There are a multitude of them, just not the ones mentioned. Can anyone provide a link/name of the switches I can order?

Also, is this setup ready/being made ready for the new stealtburner toolhead?

Quad gantry level Fails

Hi All,
Printer been working ok for some mnonths and I Updated Klipper and klipper_z_calibration in last days and since then my Voron 2.4 350 has been a very big paperweight.

I have updated config files like the new examples in Klicky probe Github.
I can do home and my printer moves perfectly in every axes.
When I do a QUAD_GANTRY_LEVEL print head starts to rattling very loud more or less in the same position and it fails.
If I use klipper_z_calibration config examples I can do all home and QGL procedures but when it starts to print imidieatly starts to loose steps in XY axes.

What can it be?

V0.1 Bed flex under probe pressure

When I'm using mesh bed leveling, my Z-offset is alsways about 0.1mm to close in the front, and 0.1mm to far in the back, with a perfect linear gradient back to front. No matter how scewed the bed actually is. I think this is because the froce needed to actuate the probe makes the bed bend more in the front than in the back.
I already upgraded to the kirigami bed, and used an switch with the lowest actuation force I could find (0.7N). Didin't anybody else have this problem?
Adding a lever to the switch brought it down to about 0.05mm difference front t o back, wich works, but still isn't pretty. And the lever is horrible for the overall accuracy.

improvement for failed attaching probe

hello,

is it possible to add a script or edit the klipper code for attachable probes ?

for example the most common error is for when it doesn't detect the probe is attached or not.
what would be nice is instead of "Probe triggered prior to movement" it does the docking movements and then trys to re attach.
or after it attaches the probe it just checks if it is in the open state and if not it will try again?

thanks.

Need additional Nozzle Location Save in Probe_Calibrate

This could use an additional save_gcode_state original_nozzle_location in the probe_calibrate macro. Specifically between the _probe_calibrate and dock_probe lines. I was getting an error from klipper because the nozzle wasn't in the expected location after starting the calibrate command.

Voron V0 Sherpa Revo Cowl - Thin Wall Causing Gaps

Slicing the sherpa revo cowl for the V0 keeps creating this gappy thin wall area along the edge that adjoins the mount. It looks like it's been cut a touch more than the sherpa dragon cowling if I compare the two

image

image

problem using macros

Hi all,
I am trying to setup a klicky probe on an ender 3 style printer.
When I try to use the macros I'm getting this error:
Error evaluating 'gcode_macro Attach_Probe:gcode': UndefinedError: 'dict object' has no attribute 'safe_z'
Any tips on what I'm missing here??

Thanks in advance.

D2F-01F tolerance problem

I purchased D2F-01F
Cold test deviation 0.02
But thermal test

04:16:29 Too many retries
04:16:29 Retries: 5/5 Probed points range: 0.025000 tolerance: 0.010000
04:16:29 Making the following Z adjustments:
stepper_z = -0.020592
stepper_z1 = -0.008719
stepper_z2 = -0.003670
stepper_z3 = 0.032981

04:15:56 Retries: 4/5 Probed points range: 0.047500 tolerance: 0.010000
04:15:56 Making the following Z adjustments:
stepper_z = -0.036870
stepper_z1 = 0.003566
stepper_z2 = 0.049001
stepper_z3 = -0.015697

04:15:33 Retries: 3/5 Probed points range: 0.050000 tolerance: 0.010000
04:15:33 Making the following Z adjustments:
stepper_z = -0.003463
stepper_z1 = 0.065622
stepper_z2 = -0.077409
stepper_z3 = 0.015250

04:15:06 Retries: 2/5 Probed points range: 0.075000 tolerance: 0.010000
04:15:06 Making the following Z adjustments:
stepper_z = 0.040161
stepper_z1 = -0.121584
stepper_z2 = 0.109453
stepper_z3 = -0.028030

04:14:43 Retries: 1/5 Probed points range: 0.067500 tolerance: 0.010000
04:14:43 Making the following Z adjustments:
stepper_z = -0.007756
stepper_z1 = 0.103486
stepper_z2 = -0.073116
stepper_z3 = -0.022614

Should I replace the switch?
Or change the settings?

Probe_Calibrate Error

Hello,

When running probe_calibrate with the Klicky probe, I get an error when I try to accept the results.

Error:
Manual probe failed! Use TESTZ commands to position the nozzle prior to running ACCEPT.

If I modify Probe_Calibrate in the klicky-probe.cfg, and comment out a few lines (Dock_Probe and Restore GCODE), I am able to manually remove the probe and finish the probe calibration with a successful accepting of the results.

Lines commented out:
image

This is my first time creating an issue on GitHub, so if you need anything further from me, just ask.

Thanks,

Dave

Docking speed in attach_probe is variable_travel_speed

In line 199 in klicky-macros.cfg:

		G0 X{docklocation_x|int - attachmove2_x|int} Y{docklocation_y|int - attachmove2_y} F{travel_feedrate}

The toolhead is currently traveling to the dock location at full travel speed if variable_attachmove2_x/y is 0 (default klicky-variable.cfg). variable_dock_speed and variable_release_speed have no effect. The following change will prevent that from happening.

		G0 X{docklocation_x|int - attachmove2_x|int} Y{docklocation_y|int - attachmove2_y} F{dock_feedrate}

I am guessing that this is unintended behavior because line 200 is travel to the dock at dock_feedrate. Also, DOCK_PROBE doesn't slam the toolhead towards the dock at travel_speed.

Pin number on SKR board

The connector mentioned to plug into is pin 1.27 not 1.28 for SKR 1.3.
It is also possible to just leave the wiring for the inductive probe and plug in the klicky at the tool head to use the existing pin set and connector.

! horizontal_move_z can't be less than probe's z_offset

I have done z offset calibration it is 7.7 and i have the horizontal z move set at 10 and when i do g32 it picks up the klicky probe then stops with the above message. need help. thanks

Voron Design VORON2 250/300/350mm BigTreeTech OctoPus V1 TMC2209 UART config

*** THINGS TO CHANGE/CHECK: ***

MCU paths [mcu] section

Thermistor types [extruder] and [heater_bed] sections - See 'sensor types' list at end of file

Z Endstop Switch location [safe_z_home] section

Homing end position [gcode_macro G32] section

Z Endstop Switch offset for Z0 [stepper_z] section

Probe points [quad_gantry_level] section

Min & Max gantry corner postions [quad_gantry_level] section

PID tune [extruder] and [heater_bed] sections

Thermistor types [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/usb-Klipper_stm32f446xx_14002A000650534E4E313020-if00

restart_method: command
##--------------------------------------------------------------------

[printer]
kinematics: corexy
max_velocity: 300
max_accel: 4000 #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: 40
gear_ratio: 80:16
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: .46
##--------------------------------------------------------------------

Uncomment below for 250mm build

#position_max: 230

Uncomment below for 300mm build

#position_max: 280

Uncomment below for 350mm build

position_max: 330

##--------------------------------------------------------------------
position_min: -5
homing_speed: 8
second_homing_speed: 3
homing_retract_dist: 3

Make sure to update below for your relevant driver (2208 or 2209)

[tmc2209 stepper_z]
uart_pin: PC6
interpolate: false
run_current: 0.8
sense_resistor: 0.110
stealthchop_threshold: 0

Z1 Stepper - Rear Left

Connected to MOTOR_3

[stepper_z1]
step_pin: PG4
dir_pin: PC1
enable_pin: !PA0
rotation_distance: 40
gear_ratio: 80:16
microsteps: 32

Make sure to update below for your relevant driver (2208 or 2209)

[tmc2209 stepper_z1]
uart_pin: PC7
interpolate: false
run_current: 0.8
sense_resistor: 0.110
stealthchop_threshold: 0

Z2 Stepper - Rear Right

Connected to MOTOR_4

[stepper_z2]
step_pin: PF9
dir_pin: PF10
enable_pin: !PG2
rotation_distance: 40
gear_ratio: 80:16
microsteps: 32

Make sure to update below for your relevant driver (2208 or 2209)

[tmc2209 stepper_z2]
uart_pin: PF2
interpolate: false
run_current: 0.8
sense_resistor: 0.110
stealthchop_threshold: 0

Z3 Stepper - Front Right

Connected to MOTOR_5

[stepper_z3]
step_pin: PC13
dir_pin: !PF0
enable_pin: !PF1
rotation_distance: 40
gear_ratio: 80:16
microsteps: 32

Make sure to update below for your relevant driver (2208 or 2209)

[tmc2209 stepper_z3]
uart_pin: PE4
interpolate: false
run_current: 0.8
sense_resistor: 0.110
stealthchop_threshold: 0

#####################################################################

Extruder

#####################################################################

Connected to MOTOR_6

Heater - HE0

Thermistor - T0

[extruder]
step_pin: 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.225372 #Bondtech 5mm Drive Gears

Update Gear Ratio depending on your Extruder Type

Use 50:17 for Afterburner/Clockwork (BMG Gear Ratio)

Use 80:20 for M4, M3.1

gear_ratio: 50:17 #BMG Gear Ratio
microsteps: 16
full_steps_per_rotation: 200 #200 for 1.8 degree, 400 for 0.9 degree
nozzle_diameter: 0.400
filament_diameter: 1.75
heater_pin: PA2

Validate the following thermistor type to make sure it is correct

See https://www.klipper3d.org/Config_Reference.html#common-thermistors for additional options

sensor_type: PT1000
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: PA1

Validate the following thermistor type to make sure it is correct

See https://www.klipper3d.org/Config_Reference.html#common-thermistors for additional options

sensor_type: NTC 100K MGB18-104F39050L32
sensor_pin: PF3

Adjust Max Power so your heater doesn't warp your bed. Rule of thumb is 0.4 watts / cm^2 .

max_power: 0.6
min_temp: 0
max_temp: 120
control: pid
pid_kp: 58.437
pid_ki: 2.347
pid_kd: 363.769

#####################################################################

Probe

#####################################################################

[probe]
pin:PG15
x_offset: 19.75
y_offset: 0
#z_offset: 7.5
speed: 10.0
samples: 3
samples_result: median
sample_retract_dist: 3.0
samples_tolerance: 0.01
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

[heater_fan my_controller_fan]
##Controller_Fan - FAN2
pin: PD12
max_power: 1.00
kick_start_time: 0.200
heater: heater_bed

[heater_fan my_controller_fan]
##Controller_Fan - FAN3
pin: P13
max_power: 1.00
kick_start_time: 0.200
heater: heater_bed

[heater_fan heater_fan]

Exhaust fan - FAN4

pin: PD14
max_power: 1.0
shutdown_speed: 0.0
kick_start_time: 5.0
heater: heater_bed
heater_temp: 60
fan_speed: 1.0

#####################################################################

LED Control

#####################################################################

Chamber Lighting - HE2 Connector (Optional)

#[output_pin caselight]
#pin: PB10
#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:120,350
#speed:100
#z_hop:10

[quad_gantry_level]

Use QUAD_GANTRY_LEVEL to level a gantry.

Min & Max gantry corners - measure from nozzle at MIN (0,0) and

MAX (250, 250), (300,300), or (350,350) depending on your printer size

to respective belt positions

#--------------------------------------------------------------------

Gantry Corners for 250mm Build

Uncomment for 250mm build

#gantry_corners:

-60,-10

310, 320

Probe points

#points:

50,25

50,175

200,175

200,25

Gantry Corners for 300mm Build

Uncomment for 300mm build

#gantry_corners:

-60,-10

360,370

Probe points

#points:

50,25

50,225

250,225

250,25

Gantry Corners for 350mm Build

Uncomment for 350mm build

gantry_corners:
-60,-10
410,420

Probe points

points:
50,25
50,275
300,275
300,25

#--------------------------------------------------------------------

[bed_mesh]
speed: 300
horizontal_move_z:10
mesh_min: 40, 40
mesh_max: 310,310
fade_start: 0.6
fade_end: 10.0
split_delta_z: .01
move_check_distance: 3
probe_count: 5,5
algorithm: bicubic
relative_reference_index: 12

########################################

EXP1 / EXP2 (display) pins

########################################

[board_pins]
aliases:
# EXP1 header
EXP1_1=PE8, EXP1_2=PE7,
EXP1_3=PE9, EXP1_4=PE10,
EXP1_5=PE12, EXP1_6=PE13, # Slot in the socket on this side
EXP1_7=PE14, EXP1_8=PE15,
EXP1_9=, EXP1_10=<5V>,

# EXP2 header
EXP2_1=PA6, EXP2_2=PA5,
EXP2_3=PB1, EXP2_4=PA4,
EXP2_5=PB2, EXP2_6=PA7,      # Slot in the socket on this side
EXP2_7=PC15, EXP2_8=<RST>,
EXP2_9=<GND>, EXP2_10=<5V>

#--------------------------------------------------------------------

#####################################################################

Macros

#####################################################################

[include klicky-probe.cfg]

[gcode_macro G32]
gcode:
BED_MESH_CLEAR
G28
QUAD_GANTRY_LEVEL
G28
## Uncomment for for your size printer:
#--------------------------------------------------------------------
## Uncomment for 250mm build
#G0 X125 Y125 Z30 F3600

##  Uncomment for 300 build
#G0 X150 Y150 Z30 F3600

##  Uncomment for 350mm build
G0 X175 Y175 Z30 F3600
#--------------------------------------------------------------------

[gcode_macro PRINT_START]

Use PRINT_START for the slicer starting script - please customise for your slicer of choice

gcode:
G32 ; home all axes
G1 Z20 F3000 ; move nozzle away from bed

[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
RESTORE_GCODE_STATE NAME=STATE_PRINT_END

##---------------------------------------------------------------------------------------------------

## <---------------------- SAVE_CONFIG ---------------------->
#
# DO NOT EDIT THIS BLOCK OR BELOW. The contents are auto-generated.
##
#
# [probe]
#*# z_offset = 7.700

Probe Not Attaching

I was finding the magnet in the dock was too strong, and thus the probe was not being pulled out. So I've made a pull request with a modified dock that has the magnet slightly further away in the dock from the one on Klicky and found it to work better. I put a video below showing the issue.

IMG_0966.mov

Probe press fit helper

Hi,

while assembling the Klicky probe, I noticed that the probe press fit helper only seems to work for the KlickyProbe_v2.stl, but not for the long and longer versions.
The 2 long / longer version wont fit into the helper

horizontal_move_z can't be less than probe's z_offset

Using klicky as z-endstop.
I do a probe_calibrate, set the z_offset = 7.300, when it should start to print i get a "horizontal_move_z can't be less than probe's z_offset" 😭 any suggestions?

....
## [probe]
#
# z_offset = 7.300

V0.1 questions

I’ve assembled the Klicky probe today and I have some questions/remarks that might help improve the already excellent instructions even further.
I had planned to use the automatic Z calibration and it wasn’t too obvious that this isn’t possible with the V0.1 besides clearly stating that it needs the nozzle to trigger the endstop. I was hoping the Klicky probing would do the job. It’s probably not really necessary with such a small bed but it sounded too good.

What’s the benefit of having the Klicky as the Z endstop?
If I use it that way, what are the next steps before I start my first print? Do I have to adjust my Z offset?

Is the z_offset value of the probe affected by printed parts tolerances and should be individually measured? What are the measuring points?

What does “probe_accuracy” and “probe_calibrate” do?

The instructions end with the “first test” section. What are the next steps? I have a working Klicky probe but I’m kind of lost what I can actually do with it.

Thank you for the work done and the work that will be done!

Bed mesh -Probe triggered prior to movement-

Hello,

my QGL works normal and without problems.
But if I run a Bed_Mesh_Calibration, it probes 3-4 points and then says "Probe triggered prior to movement"

Any ideas what can cause this?

best regards
GN1G

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.