-
-
Notifications
You must be signed in to change notification settings - Fork 19.3k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Rewritten FILAMENT_CHANGE_ENABLE feature #3662
Rewritten FILAMENT_CHANGE_ENABLE feature #3662
Conversation
@thinkyhead Great! Thank you so much! |
This PR and #3605 will need to be reconciled before either one could be merged. Maybe we can put together a mashup of the two. It will have to be for 1.1.1 / 1.2.0 at this point. Feature freeze, and all that. |
@thinkyhead I am able to rewrite #3605 (Manual filament change) to be reconciled with my #3662 / #3638 (my Automatic filament change) if you want. Just say. I am ready to do it. |
@clexpert Please feel free to harmonize these features. If you need any assistance, don't hesitate to ask. |
@thinkyhead Thank you. I am going to do it. |
@thinkyhead I have great idea and one problem. My idea: |
@clexpert Why ? If we really need a pre-heat function why don we kill "ABS" and "PLA" and have only a "Pre-heat" LCD menu, when we click Marlin ask "Target temperature ?". Nowadays there are too much materials to have dedicated options to each one of them..
@clexpert Are you willing to rewrite it as an object ? |
@jbrazio I would like to make Marlin firmware very comfortable. So I would like to add several materials with their temperatures (with define enable/disable in configuration file). And these material configurations could be easily used in unload/load function. For example: unload PLA from extruder 2 (lower temperature) and load ABS to extruder 2 (higher temperature). Is it problem? Do you have any idea?
Please, would you make yourself clear? I did not understand what do you mean. |
We have multiple print materials now and each one of them requires a specific temperature, then inside each material you may have different temperatures according with the material color and/or manufacturer.. let's imagine 5 different materials, three colors each.. that's 15 different pre-heat temperatures. Instead of having all of this, we could have a Pre-heat function the user on the LCD would select it and click then the LCD would show something like With this method we would completely remove the two existing pre-heat options, they where introduced when only two printing materials existed.. this is no longer our reality. You have written your code using |
@jbrazio I think that selectable temperature in preheat, load filament, and unload filament is not comfortable. I could imagine several predefined temperatures in 10 degree interval, for example 210 - 220 - 230 - 240 - 250. It is partially comfortable. Better than manually +/- 1 degree - very poor and slow control. But 10 separate materials are the most comfortable. What do you think? I can write code using object/class c++ but I think that load and unload filament functions are not suitable for objects. That is only few lines of code in ultralcd.cpp. And it would have to be static class. Without any advantage in my opinion. |
Oh yes, once the code is in, this is a question of fine tuning the adder. I'm completely OK with it @clexpert ! |
Horray! We are already there. Use the nozzle temperatures directly. Let's drop the preheat stuff completely. Dealing with that many materials is a good job for a slicer. Alone the amount of string space for 10 materials makes me dizzy. (partly joking) If configurable from 0 to n and 0 deactivates as much related code as possible, the idea is ok for me. |
If done correctly we may scrap a few bytes.. @clexpert what do you think ? |
Ufff...Throw an user comfort due to few bytes of code? |
Why having the user to select from a list of names:
Can be worse than selecting the desired temp ? |
After you make your additional changes, you will then be able submit a PR to |
bb327ce
to
9e639ff
Compare
05aa73c
to
62d9f88
Compare
Ok, so I've added a helpful new macro to I've also made the display of the message lines dependent on whether the strings are defined. So now there's an option to do conditional definitions of these strings, if you want to leave out the second and/or third lines instead of defining them as a blank strings. I'm going to add the shorter message strings next and try not to make too much of a mess. Take a look at |
47c9f22
to
6a01e22
Compare
@thinkyhead Oh thank very much! I had some ideas before I went to bed, but this is incredible! What about making a condition on "Next options" - don't display heading when only 2 lines available so that user won't have to scroll. |
4366888
to
c2c5141
Compare
If this works well in testing, we could merge it anytime. |
417423b
to
9f1fd47
Compare
9f1fd47
to
a06c516
Compare
Follow-up the PR #3662 (Rewritten FILAMENT_CHANGE_ENABLE feature)
|
Um, about warning of format, it seems that it hasn't real harm. Also warnings of unused variable are no problem probably... |
@esenapaj Unused variable warnings are annoying, true. We could add |
@clexpert @petrzjunior do you care to write a markdown documentation for this feature so we can update the website ? |
@jbrazio Yes, of course. We are happy to do it. |
…E feature) ・Update a forgotten Configuration_adv.h of Cartesio
Which of these values controls how fast the print head returns back to the print area after a filament change. I find it too slow a the moment cause excessive ooze.
|
|
Update Firmware_sk.po Co-authored-by: ingbrzy <[email protected]>
Rebased and squashed commits on behalf of @clexpert
Reference: #3638
(Don't mix up with Manual filament change #3605)
Background
Months ago, someone suggested reworking (or at leats make existing function work) Auto filament change in #2926 and #2933. This function is working (as mentioned there) in Prusa's firmware and many other closed-source 3D printer. But neither of them is sufficient to be publicated for community of most used 3D firmware, with variety of printers, extruders and displays. So we started working on complete rewrite of filament change function, to make it work for us and then make it open to everyone here on GitHub.
Functions
This change rewrites Auto Filament Change controlled by G-Code M600.
The procedure of change is:
Every step is clearly documented with information messages displayed on the display. As suggested by others, KEEP_ALIVE is also used. Simple working procedure makes it easy to change filament for everyone.
TODO list for community