QIDITECH / QIDI_Q1_Pro

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

Dynamic adjustment of pressure advance #69

Open dewi-ny-je opened 1 month ago

dewi-ny-je commented 1 month ago

Klipper recently implemented a correction which allows changing pressure advance on the fly without blobs or print defects: https://github.com/Klipper3d/klipper/pull/6635

Thanks to it, a feature of Orca can now be used: https://github.com/SoftFever/OrcaSlicer/pull/5609

I checked compatibility of the source code and, as far as I could, I don't see any issue in directly porting the new feature to the older Klipper version provided by QIDI. The source code replaced/modified by the commit is identical in the Klipper available in https://github.com/QIDITECH/klipper

Let me show you some examples of what the feature allows:

WITH DYNAMIC PA:

Top surface

337601814-fa0a4155-3546-411d-8023-28464a1dbaed

Solid infill

337616471-9d949a67-c8b3-477e-9f06-c429d4e40be0

WITHOUT DYNAMIC PA (pressure advance calibrated, as usual, for corners only):

337608941-37b1528b-7eab-4721-8dfe-ef4e85840b7a

The improvements are huge and I think it's worth to backport the Klipper commit linked above.

CChen616 commented 1 month ago

We will continue to monitor this feature, and if it proves to be stable and without issues, it will be included in a future update.

dewi-ny-je commented 1 month ago

We will continue to monitor this feature, and if it proves to be stable and without issues, it will be included in a future update.

I plan to apply the patch manually in the next days. I'll report back after performing at least 10 prints with it enabled, maybe this will help you evaluating it in real world scenario.

dewi-ny-je commented 1 month ago

We will continue to monitor this feature, and if it proves to be stable and without issues, it will be included in a future update.

I tried to manually apply the commit https://github.com/Klipper3d/klipper/commit/c84d78f3f169bc5163d11b74837f9880b0b7dba4 but it involves some changes to klippy/chelper/kin_extruder.c , which therefore require recompilation to be active.

I used to compile Klipper long time ago, but only using the Klipper menu config procedure, and I'm not sure it would work on the Q1.

Can you tell me how to do it, or can you prepare an alpha firmware I can beta test for you? Just with the patch I linked above. I agree not to share it with anyone if you prefer.

CChen616 commented 1 month ago

Klipper menu config:

For main board: image rename klipper.bin to qd_mcu.bin and load to main board with sdcard, then reboot.

For extruder board: image Press and hold the boot button on the extruder board and start the machine. The extruder board should mount as a USB device, and the device directory should be mounted to gcode_files/sda1/ (assuming there are no other USB devices). Move the generated klipper.uf2 file into this directory and then reboot.

dewi-ny-je commented 1 month ago

Right, I forgot it also requires flashing. So basically this new feature will never come to existing Q1 printers? that's a pity.

I'll do as suggested.

Am I right that, once new firmwares for the Q1 are released by QIDI, I'll just need to manually patch extruder.py without recompiling/flashing the main board and the extruder board?

CChen616 commented 1 month ago

Am I right that, once new firmwares for the Q1 are released by QIDI, I'll just need to manually patch extruder.py without recompiling/flashing the main board and the extruder board?

Yes, and to be safe, it's best to back up the extruder.py file before updating, as we might modify this file in the new patch.