Comments (11)
Now, with Z0.4 in line 65 it must work. Otherwise, your z calibration is not correct and the following print cannot be correct too (if there is nothing else in the Slicer start sequence).
If the problem still exists, check the calibration manually by homing, z-tilt, z calibraton and moving the nozzle slowly down to Z0. If it barely touches the bed with Z0, then try your START_PRINT without the mesh lines and add a clear mesh command instead...
from klipper_z_calibration.
Why do you think it does not take the calculated z-offset into account? If you do the calibration beforehand, it will do it for sure. Or are you using some save/restore gcode state statements in these macros where you should not?
from klipper_z_calibration.
Rethinking what I wrote (given I didn't use my Ender3 with klipper z calibration for 4 months :) ) I should have kept the G1 X1 Y20 Z0
instead of Z0.3
since it took the nozzle too low on the bed.
Am I right?
from klipper_z_calibration.
No. If you run the z calibration, every G0/G1 command will take this offset into account. If your printer and your z calibration are set up correctly, a G1 Z0
should bring your nozzle just right onto your sheet.
For a purge line, I would take a much higher Z value (even higher than 0.3) to be able to extrude a high volume on a short line which does not stick too much to the sheet...
from klipper_z_calibration.
but a 0.3 means the nozzle is too close to the bed, no? it should be -0.3 to bring the nozzle a bit higher, isn't it?
from klipper_z_calibration.
I am not sure I understand you correctly. If you use absolute coordinates (G90
), the G1 Z0.3
will move the nozzle 0.3mm above your bed. Provided everything is calibrated correctly.
If you use relative coordinates (G91
), G1 Z0.3
will move the nozzle from current position 0.3mm up.
But, this are GCode basics..
from klipper_z_calibration.
ok, I'll try to explain what I mean and also what is the confusion.
if I understand correctly (I now doubt that) the z_calibration is all about calculating offsets in order to find the correct height for the nozzle so it's just in the right distance for a good first layer, that becomes my Z=0, the distance at which clibrate_z believes is the right distance of the nozzle from the bed.
What I experienced with the purge line is that the nozzle was scratching the bed, but as soon as the print started (skirt line) it was perfect 1st layer.
This got me to think that maybe I'm doing something wrong in my macro for the purge line.
In the z_calibrate it states, positive values means closer to bed, negative values higher from bed, so I thought I should modify to purge line to be -0.3. I didn't actually do that, I just wrote that in my previous comment and now I'm explaining my confusion :)
As I try to explain myself, I realize I'm wrong because telling to printer to move +0.3 it will do just that.
I'm just not sure why the nozzle was scratching the bed on the purge line sequence.
The below is a portion of the start_print
macro where it shows the purge line sequence:
M117 Moving toolhead to bed origin 0x0.
G1 X0 Y0 Z20 F5000
G92 E0 ; reset extruder distance
G1 E20 F60 ; purge 20mm
## Purge sequence
M117 Purge line...
G1 X1 Y20 Z0.3 F5000.0 ; Move to start position
G1 E5 F300 ; Prime the nozzle
G1 X1 Y200 F1500.0 E15 ; Draw the first line
G1 X1.5 Y200 F5000.0 ; Move to side a little
G1 X1.5 Y30 F1500.0 E30 ; Draw the second line
G1 Z4 F3000 ; Move Z Axis up
M83 ; Relative E
G92 E0 ; Reset extruder distance
STATUS_PRINTING
from klipper_z_calibration.
Yes, the z_calibration sets a GCode offset so that Z=0.0 is exactly where the nozzle touches the bed.
You are not using G90 before your moves in your purge sequence and this is bad because you don't know what was set before. You must understand the GCodes G90/G91! Before every move with G0/G1 you have to be sure that you are in the right state. And if you cannot be sure, you must set it. So, before you move to your purge line, you need to do G90...
from klipper_z_calibration.
I'm always confused about what should I use or what is more correct to use, G90 or G91.
EDIT: https://github.com/Gil80/3dprinting-e3v2/blob/main/klipper/configs/23.08.22/macros.cfg this is my start macro
As you can see, at the beginning, I do set it to G90, but now I added another G90 in line 56.
from klipper_z_calibration.
Both are correct, it depends on the move you want to make: relative or absolute.
The macro seems to be correct for me. The first G90 should be enough (if no other macro is changing it in between). But, you need to set a higher Z for your start position! With Z0 it will not be able to extrude any plastic..
from klipper_z_calibration.
you mean a higher Z for the purge sequence? if yes, then that's where the confusion is. I was set to 0.3, but the nozzle was scratching the bed.
from klipper_z_calibration.
Related Issues (20)
- [Feature suggestion] Nozzle wipe on Endstop HOT 3
- Do I need to move xy to a safe position myself after G28? HOT 2
- Tap compatibility HOT 1
- Move out of range during Calibrate_Z HOT 3
- Voron Tap support HOT 3
- Z Calibration Off, Printing Above plate HOT 13
- klippy/extras/z_calibration.py untracked HOT 3
- Bed Distance Sensor Support
- Code issue in clearance variable HOT 4
- calibrate_z crashes printhead into bed HOT 1
- If no Bed Mesh, it uses Z endstop height as Zero Position HOT 1
- Is it possible to have a dedicated Z Switch pin instead of just using the Probe Pin? HOT 10
- Automatic detection of the offset between nozzles of different tools. HOT 1
- At end of calibration i get a "unknown command" HOT 2
- [FR] Support for IDM Scanner HOT 7
- Perform Auto Z at KAMP Center HOT 1
- Move from clearance to safe_z_home when no [probe] section defined HOT 1
- Potential issues with oldham couplers HOT 1
- Z always off HOT 1
- Disable "Save Z Endstop" and "Save Z Probe" when print completes. HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from klipper_z_calibration.