prusa3d / Prusa-Firmware-Buddy

Firmware for the Original Prusa MINI, Original Prusa MK4 and the Original Prusa XL 3D printers by Prusa Research.
Other
1.17k stars 229 forks source link

[BUG] Can't move extruder from menu with temperatures below 215°C #3674

Open FiveTeethless opened 10 months ago

FiveTeethless commented 10 months ago

Printer type - [MINI, MK4, XL] XL

Printer firmware version - [e.g. 4.0.5, ...] 5.1.0

Original or Custom firmware - [Original/Custom] Original

Optional upgrades - [e.g. Filament Runout Sensor] none

Describe the bug I have PLA materials with printingtemperatures lower than 215°C. The "Move E" item in axis move menu shows "Low temp", eventhough the hotend is still above the 170°C cold extrusion limit.

How to reproduce When loading a filament into the printer only predefined temperatures can be selected. That is not an issue, as I select the temperature, that fits my material the closest. Lowering the temperature via settings menu below the preset temperature of 215°C for PLA, makes the extruder not movable from menu anymore.

Expected behavior I want to move the extruder from menu regardless of the "preset" material temperature as long as the temperature is above the cold extrusion limit.

source-code Well I did some digging in the software and found the special material temperature check. It only alows temperatures within the given and compiled material list of "filaments". Like this the absulute minimum extrusion temperature for the machine would be 215°C of PLA.

my request Please open the machine up again for lower temperatures. I propose different ways of doing so:

Thank you very much for any review on this issue an keep up your good work.

bkerler commented 10 months ago

That's no bug, but a feature request. PR #3657 already addresses this issue.

FiveTeethless commented 10 months ago

Oh, cool, thank you for pointing that solution out.

But I still think the fact that we can not extrude below 215°C with the current firmware is in fact a bug, as there is the adjustable temperature for low temp extrusion. But it has no effect right now. 😉

If your feature gets accepted at least there would be a workaround to be abled to extrude also on colder temperatures than 215°C. I would close this issue as soon as your feature is released.

bkerler commented 10 months ago

Can you please say which PLA filament you are referring to for temps below 215°C ? Would be good to see the technical datasheet if it is really PLA or a mixture. The 215°C are oriented at the min temp of Prusa Filaments, which is confirmed to work flawlessly on Prusa printers.

FiveTeethless commented 10 months ago

Hehe 😁 this is an interessting view on the printer eco system.

I've tried it with Das Filament and I have to admit it is quite an old spool. On many PLA spools you find temps starting at 190°C or 200°C. (I'm not saying it is the perfect printing temp, but moving the extruder from menu and watching the nozzle when it stops, gives a rough indication of too hot or too cold)

The printer should not at all lock me in to the material from the same manufacturer, or at least tell me somewhere on the product page, that others are not "supported" if it does. In my eyes Prusa Research follows strongly the open source thought and wouldn't lock any user into their own eco system. Every indication of doing so is just a bug, that occured during the efforts of making the machine as userfriendly as possible while preserving all the possibilities the machine offers.

If there was a mysterious material that printed at 180°C, I'd like to print and handle it the same as I would do on my old MK3S. Of course I'd have to select a tool first 😂

Again, your PR would solve this issue, but until then, it is a bug in the human machine interface. 😉

bkerler commented 10 months ago

it's not like it's limited to Prusa filament, but it was tested and confirmed to work for these temperatures on most PLA filaments. And for the temps, they have to be hardcoded somehow, so it does make sense Prusa used the temperature of their own filament. Those are my thoughts on that, I do not work for Prusa.

Regarding your filament, it does say "Die Drucktemperatur sollte zwischen 205-230°C liegen", which means that 215°C being in the middle should suit best for this filament as well. Are you sure your thermistor isn't broken / damaged ?

I will have a look if the temp range difference of +-10°C can be added for temperature manual setup.

bkerler commented 10 months ago

Actually there isn't a real "limitation" in the min temp according to the code here which allows a starting temperature of 0, as only the max temperature is limited.

I assume that the allowance of +-0.9F here for the e-axis is a safety implementation so that users do not try to purge filament if the temperature isn't high enough and thus damage the extruder, but I will try to ask if it can be increased to allow a higher range as the filament would allow to be purged at 205°C.

FiveTeethless commented 10 months ago

Well you are rigth with the nozzle range not being the limit. Also as I said, running prints and executing g-codes will actually extrude the filament below the 215°C.

The problem is in the GUI code. The issue is that the current set temperature (+0,9) must be higher than the material temperature. If we have the custom or userdefined materials, this restraint is gone.

But funny enough I found another small thing in the GUI code: it does not actually compare the temp against the current cold extrusion limit from the marlin core, but it compares it against a hard coded 170°C 😅 I have already done some adjustments to the marlin server and client, so the GUI can ask marlin for the current cold extrusion, but I'm not sure how to contribute it. Also I don't want to test it on my machine, as it would void the warranty, but at least it compiles😅

bkerler commented 10 months ago

You can send a PR over here. Also you can test your PoC using the simulator :)

FiveTeethless commented 9 months ago

Hi Björn, sorry for the late reply. Can you please point me in the right direction for the simulator or some "How to". I might be blind not to find it. 😅 As soon as I tested my code, I'd be happy to share.

bkerler commented 9 months ago

Sure, here's my PR: https://github.com/prusa3d/Prusa-Firmware-Buddy/pull/3590/commits/d1e8a8309a04f386b9a2690e6bab2212ffd24041 for setting up the simulator

github-actions[bot] commented 5 months ago

This issue has been flagged as stale because it has been open for 60 days with no activity. The issue will be closed in 7 days unless someone removes the "stale" label or adds a comment.

FiveTeethless commented 5 months ago

I will try to make a PR ready until Tuesday.

Hopefully this comment removes the stale label.

FiveTeethless commented 4 months ago

Well I tried now for 5 hours to get the build environment to work on my Windows 11 machine. I got the compiler to create the firmware but no simulation to run. Also in the end the pre-commit hooks were preventing me from committing, as they create some new python venvs in my home direcory, that don't contain the required modules to run successfully.

So I have now a possible small solution to this issue, but still not tested and commited without hooks: my Branch

github-actions[bot] commented 2 months ago

Thank you for your contribution to our project. This issue has not received any updates for 60 days and may be considered "stale." If this issue is still important to you, please add an update within the next 7 days to keep it open. Administrators can manually reopen the issue if necessary.

bkerler commented 2 months ago

This shouldn't be stale.

Ro3Deee commented 2 months ago

some new feature can actually create a custom filament type with an adjustable temperature

6.2.0 alpha1 FW has a fully featured user material support https://github.com/prusa3d/Prusa-Firmware-Buddy/releases/tag/v6.2.0-alpha1

DoubleStrike commented 1 month ago

some new feature can actually create a custom filament type with an adjustable temperature

6.2.0 alpha1 FW has a fully featured user material support https://github.com/prusa3d/Prusa-Firmware-Buddy/releases/tag/v6.2.0-alpha1

None of the patch notes refer to fixing the extrusion temp limit, just that you can set custom filament profiles. Not sure how that would solve this unless that is part of it, but is simply not documented.

CZDanol commented 1 month ago

From the quick code inspection, the E move should be allowed from 170 degrees: https://github.com/search?q=repo%3Aprusa3d%2FPrusa-Firmware-Buddy%20temp_ok&type=code

FiveTeethless commented 1 month ago

@bkerler is right, The problem that I have can be solved by simply adding a custom Filament with a Temperature below 215°C. Like that I can move the extruder from the menu without an issue.

Typing this, I wonder what happens, when I want to extrude below this fixed 170°C. The code snippets that @CZDanol found indicate the "material" must be happy and the temperature must be above the magic constexpr of the screen source code of 170.

To respond to @CZDanol's to statement: No the extruder does not move as the function DUMMY_AXIS_E::IsTargetTempOk() checks the actual temperature against the materials's temperature. This function is good to guide unexperienced users, but restrains experienced users from fine-tuning.

As I said, I tried to fix it myselfe, but had no simulation environment to test it. With this branch I tried to use the actual cold-extrusion-temperature from Marlin Core instead of the magic screen code constexpr. Still the material's temperature would block the movement, but we use the temperature from the M302 gcode.

I finally was abled to run the simulator on my Windows machine as a MK4. But had no clue, how to send the M302 command to QEMU to actually verify my code worked. But it ran. 😅