QIDITECH / QIDI_Q1_Pro

GNU Affero General Public License v3.0
40 stars 6 forks source link

Issue: Z-Offset Error #77

Open hoangchieu91 opened 3 weeks ago

hoangchieu91 commented 3 weeks ago

Printer: Qidi Q1 Pro Firmware: 4.4.21

Problem: The print head is either too close to or too far from the bed.

Details: When I start a print, the printer automatically cleans the nozzle and calculates the Z-offset, performing an auto bed leveling. However, during printing, the print head sometimes ends up too far from the bed or too close, forcing me to manually adjust the Z-offset (ranging from -1.2 to 1.0). I've tried setting the Z-offset, but every time I start a new print, the printer resets it and recalculates the Z-offset (with incorrect results).

Consequence: If I'm not quick enough to manually adjust the Z-offset, the print head either scrapes the print bed or ends up too far from the bed, causing the filament not to stick to the bed and instead clump around the nozzle.

CChen616 commented 3 weeks ago

In some cases, the printer's automatic leveling might have errors (such as interference during the leveling process). However, if this happens frequently, it could be due to excessive wear on the small wiper block used for nozzle cleaning. This wear can result in the nozzle not being properly cleaned after preheating, leading to inaccuracies during the leveling process.

You can check if there is any residual filament on the nozzle after the automatic leveling completes. If you find any, it's recommended to replace the wiper block.

hoangchieu91 commented 3 weeks ago

"Your explanation doesn't make sense when the printer crashes the print head into the bed. Can you show me where in the G-code the Z-offset value is taken? I want the printer to print out the value it has calculated in the terminal. After auto bed leveling, even though the bed mesh state is saved to the profile, the Z-offset value remains 0.

Example log:

19:59:52 echo: Nozzle cooled 19:59:56 // Run Current: 0.80A Hold Current: 0.80A 20:00:01 // Run Current: 1.00A Hold Current: 1.00A 20:00:02 // Run Current: 0.90A Hold Current: 0.90A 20:00:05 // Run Current: 1.00A Hold Current: 1.00A 20:00:06 // Run Current: 0.80A Hold Current: 0.80A 20:00:07 // Run Current: 1.00A Hold Current: 1.00A 20:00:19 // Run Current: 1.07A Hold Current: 1.07A 20:00:20 // Run Current: 1.07A Hold Current: 1.07A 20:00:46 // probe at 120.000,120.000 is z=-2.550625 20:00:49 // probe at 120.000,120.000 is z=-2.552500 20:00:51 // probe at 120.000,120.000 is z=-2.629063 20:00:51 // Probe samples exceed tolerance. Retrying... 20:00:54 // probe at 120.000,120.000 is z=-2.628750 20:00:56 // probe at 120.000,120.000 is z=-2.647188 20:00:59 // probe at 120.000,120.000 is z=-2.646719 20:01:01 // probe at 120.000,120.000 is z=-2.633750 20:01:04 // probe at 120.000,120.000 is z=-2.645938 20:01:04 // Result is z=-2.642135 20:01:04 X:120.000 Y:120.000 Z:-2.642 E:80.000 20:01:12 // probe at 102.403,115.601 is z=1.418906 20:01:15 // probe at 102.403,115.601 is z=1.419531 20:01:15 // Result is z=1.419219 20:01:15 // led_enable : 0 20:01:15 // status_macro: 'status_meshing'

PS: I have checked, and the nozzle is completely clean.

CChen616 commented 3 weeks ago

When attempting platform calibration through the screen, the machine will perform infinite downward homing to level the platform as much as possible. Afterward, further adjust the nuts to ensure the PEI sheet is level. Check if this improves the results.

The Q1 Pro bypasses Klipper's Z-offset logic, so modifying related settings in the printer.cfg file will not take effect and could even negatively impact leveling.

hoangchieu91 commented 3 weeks ago

Update from me: I have fixed the G-code. It seems like G-code test_zoffset is better than G-code set_zoffset, or there might be a bug in your code set_zoffset.

[gcode_macro PRINT_START] gcode: AUTOTUNE_SHAPERS

{% set bedtemp = params.BED|int %}
{% set hotendtemp = params.HOTEND|int %}
{% set chambertemp = params.CHAMBER|default(0)|int %}
set_zoffset
{% if chambertemp == 0 %}
    M106 P3 S255
{% endif %}
M104 S0
M140 S{bedtemp}    
M141 S{chambertemp}
G28    
CLEAR_NOZZLE HOTEND={hotendtemp}
test_zoffset
M190 S{bedtemp}   
#    Z_TILT_ADJUST
G29
G0 Z50 F600
G0 X0 Y0  F6000

M191 S{chambertemp}
M109 S{hotendtemp}
M204 S10000

ENABLE_ALL_SENSOR
save_last_file

My printer has now correctly obtained the Z-offset.

TinkerBarn commented 2 weeks ago

// Probe samples exceed tolerance. Retrying... 20:00:54

Is this message normal? Because, I have often this message if I print with heated chamber with 55°C for ABS and bed temperature with 70°C. If I print PLA (no chamber heating and 60°C bed temp) this message comes never. Could it be that either the piezo bed sensors or the inductive (or is it a capacitive?) head sensor have a temp issue?

CChen616 commented 2 weeks ago

Is this message normal? Because, I have often this message if I print with heated chamber with 55°C for ABS and bed temperature with 70°C. If I print PLA (no chamber heating and 60°C bed temp) this message comes never. Could it be that either the piezo bed sensors or the inductive (or is it a capacitive?) head sensor have a temp issue?

When leveling the Q1 model, the piezoelectric plate under the heated bed is used. High temperatures can indeed affect its characteristics, leading to changes in sensitivity and, subsequently, a higher likelihood of false readings.

Upgrading to version 4.4.21 can help mitigate this issue to some extent.

If you still find that the error rate is unacceptably high and it impacts your user experience, it might be due to a defective piezoelectric plate (although this is quite rare). In such cases, you can contact customer support to arrange for a replacement.

TinkerBarn commented 2 weeks ago

Upgrading to version 4.4.21 can help mitigate this issue to some extent.

The Q1 is already on 4.4.21

If you still find that the error rate is unacceptably high and it impacts your user experience, it might be due to a defective piezoelectric plate (although this is quite rare). In such cases, you can contact customer support to arrange for a replacement.

I was already in contact, but got only one piezoelectric plate. But there are 3 plates under the bed. How I can find out which one or which ones (could be mire than one) is defective? Also it is very complex to replace them, because you can’t not see what you do or you need to disassemble the whole bed. Therefore it is in my opinion not possible to do a trial and error with only one replacement piezoelectric plate. What is your suggestion in this case?

CChen616 commented 2 weeks ago

You can request additional piezoelectric plates from customer support.

Currently, there's no better solution for installation and replacement.