2
0
Fork 0
mirror of https://github.com/zruncho3d/tri-zero.git synced 2023-02-25 22:19:40 +04:00

Updated CAD, STL's

This commit is contained in:
Harry Böttcher 2023-02-14 19:42:21 +01:00
parent 377dbb6a76
commit 9136ab8c6a
12 changed files with 229871 additions and 15 deletions

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,277 @@
## The following is EXAMPLE configuration; it is intended to guide you in the
## configuration of the Euclid probe for YOUR printer.
##
## When incorporating this config into your own, make sure you address all
## comment markers starting with "@TODO". Failure to do so could result in
## damage to your probe, your printer, or your pride.
##
##
## This example is for a fixed dock, fixed gantry/carriage and moving bed motion
## system like RailCore, Ender5, V-Core3, etc. Delta printes will be similar.
##
## Moving gantry printers like Voron need a few tweaks to ensure proper
## clearances and leveling procedures; some hints are provided inline below.
##
## Array variables implementation and macro setups credited to Brian Lalor,
## yolo-dubstep#8033 on Discord. See https://github.com/blalor/vcore3-ratos-config
## for updates and details.
##
# Below is an example bed diagram to correlate with macros and movements below.
# __________________________________________________________________________
# | |
# | * Dock * Dock Side |
# | X25, Y118 X60 Y118 |
# | |
# | * Dock Prefilight * Dock Exit Position |
# | X25, Y90 X60,Y90 |
# | |
# | |
# | |
# | |
# | |
# | |
# | |
# |________________________________________________________________________|
#
[force_move]
enable_force_move: True
# Set to true to enable FORCE_MOVE and SET_KINEMATIC_POSITION
# extended G-Code commands. The default is false.
[respond]
default_type: echo
# Sets the default prefix of the "M118" and "RESPOND" output to one
# of the following:
# echo: "echo: " (This is the default)
# command: "// "
# error: "!! "
default_prefix: echo:
# Directly sets the default prefix. If present, this value will
# override the "default_type".
[gcode_macro EuclidProbe]
description: config vars for Euclid probe deploy/stow
## @TODO Replace the coordinates to suit your printer
variable_position_preflight: [ 25, 90 ] # position for probe to have clear path to dock
variable_position_side: [ 60, 118 ] # position for probe near dock to swipe on/off
variable_position_dock: [ 25, 118 ] # dock position
variable_position_exit: [ 60, 90 ] # exit position
## clearance between the toolhead and bed when traveling to pick up the probe
variable_bed_clearance: 25
## move speeds in mm/min
variable_move_speeds: 3000
## internal state variables; not for configuration!
variable_batch_mode_enabled: False
variable_probe_state: None
gcode:
RESPOND TYPE=command MSG="{ printer['gcode_macro EuclidProbe'] }"
[gcode_macro _ASSERT_PROBE_STATE]
description: ensures probe is in a known state; QUERY_PROBE must have been called before this macro!
gcode:
## QUERY_PROBE manually-verified results, when microswitch not depressed
## "TRIGGERED" -> 1 :: probe stowed
## "open" -> 0 :: probe deployed
{% set last_query_state = "stowed" if printer.probe.last_query == 1 else "deployed" %}
{% if params.MUST_BE != last_query_state %}
{ action_raise_error("expected probe state to be {} but is {} ({})".format(params.MUST_BE, last_query_state, printer.probe.last_query)) }
{% else %}
## all good; update state
SET_GCODE_VARIABLE MACRO=EuclidProbe VARIABLE=probe_state VALUE="'{ last_query_state }'"
{% endif %}
[gcode_macro ASSERT_PROBE_DEPLOYED]
description: error if probe not deployed
gcode:
# wait for moves to finish, then pause 0.25s for detection
M400
G4 P250
QUERY_PROBE
_ASSERT_PROBE_STATE MUST_BE=deployed
[gcode_macro ASSERT_PROBE_STOWED]
description: error if probe not stowed
gcode:
# wait for moves to finish, then pause 0.25s for detection
M400
G4 P250
QUERY_PROBE
_ASSERT_PROBE_STATE MUST_BE=stowed
[gcode_macro EUCLID_PROBE_BEGIN_BATCH]
description: begin euclid probe batch mode
gcode:
SET_GCODE_VARIABLE MACRO=EuclidProbe VARIABLE=batch_mode_enabled VALUE=True
RESPOND TYPE=command MSG="Probe batch mode enabled"
[gcode_macro EUCLID_PROBE_END_BATCH]
description: end euclid probe batch mode and stow probe
gcode:
SET_GCODE_VARIABLE MACRO=EuclidProbe VARIABLE=batch_mode_enabled VALUE=False
RESPOND TYPE=command MSG="Probe batch mode disabled"
STOW_PROBE
# deploy probe macro
# @TODO Check the servo dock values to ensure the dock releases the probe at the right height
[gcode_macro DEPLOY_PROBE]
description: deploy Euclid probe
gcode:
{% set euclid_probe = printer["gcode_macro EuclidProbe"] %}
{% if euclid_probe.batch_mode_enabled and euclid_probe.probe_state == "deployed" %}
RESPOND TYPE=command MSG="Probe batch mode enabled: already deployed"
{% else %}
RESPOND TYPE=command MSG="Deploying probe"
# ensure the probe is currently stowed; can't deploy what isn't stowed.
ASSERT_PROBE_STOWED
G90
# set approach elevation to clear probe over bed on fixed gantry machine
G0 Z{ euclid_probe.bed_clearance } F500
##########################
# open Servo Dock
# @TODO check ANGLE
##########################
SET_SERVO SERVO=probe_servo ANGLE=10
# wait 1/2 second for dock
M400
M400
# move the toolhead to safe position to start probe pickup
G0 X{ euclid_probe.position_preflight[0] } Y{ euclid_probe.position_preflight[1] } F{ euclid_probe.move_speeds }
# @TODO fixed bed dock and moving gantry printers need to add a move
# @TODO command here to lower the gantry to dock height
# G0 Z {euclid_probe.dock_height} F500
# move sideways over the dock to pick up probe
G0 X{ euclid_probe.position_dock[0] } Y{ euclid_probe.position_dock[1] } F1500
# wait 1/4 second
M400
G4 P250
# confirm deploy was successful
ASSERT_PROBE_DEPLOYED
# move to the side of the dock
G0 X{ euclid_probe.position_side[0] } Y{ euclid_probe.position_side[1] } F{ euclid_probe.move_speeds }
##########################
# close Servo Dock
# @TODO check ANGLE
##########################
SET_SERVO SERVO=probe_servo ANGLE=115
# move out of the dock in a straight line
G0 X{ euclid_probe.position_exit[0] } Y{ euclid_probe.position_exit[1] } F{ euclid_probe.move_speeds }
{% endif %}
# stow probe macro
# @TODO Check the servo dock values to ensure the dock releases the probe at the right height
[gcode_macro STOW_PROBE]
description: stow Euclid probe
gcode:
{% set euclid_probe = printer["gcode_macro EuclidProbe"] %}
{% if euclid_probe.batch_mode_enabled %}
RESPOND TYPE=command MSG="Probe batch mode enabled: not stowing"
{% else %}
RESPOND TYPE=command MSG="Stowing probe"
# ensure the probe is currently deployed; can't stow what isn't deployed.
ASSERT_PROBE_DEPLOYED
# set approach elevation for fixed gantry system to clear probe over bed
G0 Z{ euclid_probe.bed_clearance } F3000
##########################
# open Servo Dock
# @TODO check ANGLE
##########################
SET_SERVO SERVO=probe_servo ANGLE=10
# wait 1/2 second for dock
M400
M400
G90
# move out of the dock in a straight line
G0 X{ euclid_probe.position_exit[0] } Y{ euclid_probe.position_exit[1] } F{ euclid_probe.move_speeds }
# move to the side of the dock
G0 X{ euclid_probe.position_side[0] } Y{ euclid_probe.position_side[1] } F{ euclid_probe.move_speeds }
# slowly move into dock
G0 X{ euclid_probe.position_dock[0] } Y{ euclid_probe.position_dock[1] } F3000
# wait for moves to finish, pause to force 90deg travel swipe
M400
G4 P250
# quick swipe off
# move the toolhead to safe position to start probe pickup
G0 X{ euclid_probe.position_preflight[0] } Y{ euclid_probe.position_preflight[1] } F{ euclid_probe.move_speeds }
##########################
# close Servo Dock
# @TODO check ANGLE
##########################
SET_SERVO SERVO=probe_servo ANGLE=115
# confirm stowing was successful
ASSERT_PROBE_STOWED
{% endif %}
# Z-Tilt Adjust and BED_Mesh Overrides
[gcode_macro Z_TILT_ADJUST]
description: modified Z_TILT_ADJUST, wrapped with DEPLOY_PROBE/STOW_PROBE
rename_existing: Z_TILT_ADJUST_ORIG
gcode:
DEPLOY_PROBE
Z_TILT_ADJUST_ORIG
STOW_PROBE
[gcode_macro BED_MESH_CALIBRATE]
description: modified BED_MESH_CALIBRATE, wrapped with DEPLOY_PROBE/STOW_PROBE
rename_existing: BED_MESH_CALIBRATE_ORIG
gcode:
DEPLOY_PROBE
BED_MESH_CALIBRATE_ORIG
STOW_PROBE

View file

@ -0,0 +1,139 @@
# This file contains only the sections related to the probe configuratioo
# THIS IS NOT A CEMPLETE KLIPPER PRINTER CONFIGURATION
#
# You need to adjust some values to your printer and probe mounting dimensions
# This paricular config ia based on my tri-zero usinge the Ghost-LG toolhead and a euklid probe
# that docks into the servo-klicky
#
# The pin configuration is for a SKR Pico board.
# Note: You need to add a jumper on the pico to enablke the servo pins (see PICO manual for details)
[include euklid.cfg]
#####################################################################
# Additiponal Components
#####################################################################
#################################
# Probing
#################################
[servo probe_servo]
pin: gpio29
# PWM output pin controlling the servo. This parameter must be
# provided.
maximum_servo_angle: 140
# The maximum angle (in degrees) that this servo can be set to. The
# default is 180 degrees.
minimum_pulse_width: 0.0008
# The minimum pulse width time (in seconds). This should correspond
# with an angle of 0 degrees. The default is 0.001 seconds.
maximum_pulse_width: 0.0022
# The maximum pulse width time (in seconds). This should correspond
# with an angle of maximum_servo_angle. The default is 0.002
# seconds.
initial_angle: 115
# Initial angle (in degrees) to set the servo to. The default is to
# not send any signal at startup.
#initial_pulse_width:
# Initial pulse width time (in seconds) to set the servo to. (This
# is only valid if initial_angle is not set.) The default is to not
# send any signal at startup.
[probe]
pin: EBBCan: PB8 # Adjust to your board
x_offset: -23 # Adjust to your probe mount
y_offset: -10.0 # Adjust to your probe mount
#z_offset: 7.05 # this value is from the probe result using feeler gauge to set Z height
# The distance (in mm) between the bed and the nozzle when the probe
# triggers. This parameter must be provided.
speed: 5
samples: 2
samples_result: average
sample_retract_dist: 5.0
samples_tolerance: 0.005
samples_tolerance_retries: 3
lift_speed: 30
#####################################################################
# Homing and Gantry Adjustment Routines
#####################################################################
[homing_override]
axes: z
gcode:
{% set euclid_probe = printer["gcode_macro EuclidProbe"] %}
QUERY_PROBE
_ASSERT_PROBE_STATE MUST_BE=stowed
# ensure the servo dock is in park position !!
# homing z with the dock exposed might kill the servo gears !!
SET_SERVO SERVO=probe_servo ANGLE=115
G28 X
G28 Y
G1 X60 Y20 F4000
G28 Z
G1 Z25
[z_tilt]
z_positions:
# A list of X, Y coordinates (one per line; subsequent lines
# indented) describing the location of each bed "pivot point". The
# "pivot point" is the point where the bed attaches to the given Z
# stepper. It is described using nozzle coordinates (the X, Y position
# of the nozzle if it could move directly above the point). The
# first entry corresponds to stepper_z, the second to stepper_z1,
# the third to stepper_z2, etc. This parameter must be provided.
60,130
-45,10
165,10
points:
# A list of X, Y coordinates (one per line; subsequent lines
# indented) that should be probed during a Z_TILT_ADJUST command.
# Specify coordinates of the nozzle and be sure the probe is above
# the bed at the given nozzle coordinates. This parameter must be
# provided.
85,110
30,5
120,5
speed: 50
# The speed (in mm/s) of non-probing moves during the calibration.
# The default is 50.
horizontal_move_z: 15
# The height (in mm) that the head should be commanded to move to
# just prior to starting a probe operation. The default is 5.
retries: 5
# Number of times to retry if the probed points aren't within
# tolerance.
retry_tolerance: 0.005
# If retries are enabled then retry if largest and smallest probed
# points differ more than retry_tolerance. Note the smallest unit of
# change here would be a single step. However if you are probing
# more points than steppers then you will likely have a fixed
# minimum value for the range of probed points which you can learn
# by observing command output.
[bed_mesh]
speed: 100
horizontal_move_z: 14
mesh_min: 10, 0
mesh_max: 95, 80
probe_count: 4, 4

View file

@ -1,14 +1,7 @@
# Servo Powered Docks for the V0 and Variants
This as a mount for the z-probe that mooves the probe and dock out of the way while printing.
Therfore there is no loss on print volume !
### Curently in alpha stage
Parts have been printed but not yet tested on a printer (im still in the prozess of bulding a V0 to test this)
This as a mount for the z-probe that moves the probe and dock out of the way while printing.
Therefore there is no loss on print volume !
https://user-images.githubusercontent.com/1899323/218826318-dd8349b1-3cd3-4b2f-90a4-cacaf3864f00.mp4
@ -19,18 +12,15 @@ https://user-images.githubusercontent.com/1899323/218826318-dd8349b1-3cd3-4b2f-9
![Printed Panel](Images/euklid_detail.png)
![Printed Panel](Images/rear.png)
# Printing
All parts print with standard Voron print setting without any supports.
# BOM Notes
| Part | Qty | Notes |
| - | - | - |
| Probe | Zero-Click or euklid | As of yet there is no mount for the euklid on the toolhead (upcomming) |
| Probe | Zero-Click or euklid | Tested on my Ghost LG toolhead |
| - | - | - |
| Servo | 1 | MG90S - Same as for the ECRF |
| - | - | - |
@ -38,10 +28,17 @@ All parts print with standard Voron print setting without any supports.
| M3 x 6 | 1 | To mount the servo base to the z-extrusion (top)|
| M3 x 35| 1 | To mount the servo base to the z-extrusion (bottom) |
| | | note that the mounting hole of the servo needs to enlarged to 3mm |
| M2 x 10 self tapping | 2 | for the dock assembly |
| M3 Insert | 1 | Pivot point mount - use some locktite here |
| M2 x 10 self-tapping | 2 | for the dock assembly |
| M3 Insert | 1 | Pivot point mount - use some Loctite here |
# Firmware
There are some configuration files and snippets in the firmware folder.
They are based on a Euklid probe mounted to a Ghost LG Toolhead. So physical dimensions need to be adjusted to your setup.
WARNING: while configuring your printer make sure that you don't run any z-homing routines with the probe or dock deployed.
It will likely kill your probe mount and maybe the servo gears (if you don't use a servo with metal gears)
(Don't ask me how i know)
# CAD Notes
@ -50,5 +47,11 @@ You need to show/hide the version you like to work with
Also note the Joints (Rotation and sliders) to animate and test the movements
# Changelog
## 14.02.23
- multiple minor updates to get the servo movfe more freely
- CAD und STL^s updated