-
Notifications
You must be signed in to change notification settings - Fork 75
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
Live Extrusion factor control from LCD #208
base: master
Are you sure you want to change the base?
Conversation
Interesting, have you looked at my fork? This is going to be merged there...I'll look at the retraction scenarios |
Merged it, I'll also test the live extrusion multiplier and see if I calculated correctly the positive vs negative extrusion values. Test it if you want. |
I'm taking a look at it right now, and I think I now understand how retractions can be handled by this.
Point 2) also applies when having "extra restart distance" set up in your slicer. This means when your slicer wants to do a retraction by 7mm, it will reprime with some amount !=7mm (both greater and smaller amounts can make sense). Your current code won't recognize that the first 7mm of that reprime are, in fact, just a repriming step, and scale it up/down. So summarizing: to correctly handle retraction/repriming when applying an extrusion multiplier, we'd have to keep a running tally of how far up the heatbreak the filament currently is, and only scale those parts of movement commands that actually lead to extrusion. That being said, even my simple version of live extrusion control has proven useful to me, and these caveats are edge cases. (On a different note: You at some point merged and then reverted (part of?) my changes from #207. Do you mind putting the revert in its own commit? Then I could cherry-pick your branch and try implementing the running tally version without losing my part cooling fan 😅) |
Done, take a look, if you want to enable your method, instead of using the COOLING_FAN_PWM use the COOLING_FAN_PWM_ON_DISPLAY Don't use both, as it won't compile 👍 As for the filament extrusion mods, you're right, effectively you reprime straight, but on pushing filament, it could blob or miss some material, the only way, as you said, is to check if we reprimed before via some variable (using small DIFFERENTIAL var in this case could be of use, I don't think that during a print you reprime tons of filament) edit: re-edit: |
anyway, this question needs another post in here: from what I understand, you're using simplify3d, have you tried my GPX code in my repositories? this is made especially for simplify3d, since they have that code closedsourced, i reversed their modifications and published the code, it currently works, since I'm using the same programme, and if you use it, you don't need your cooling_fan_pwm method... |
ed24634
to
0e727ec
Compare
0e727ec
to
87b1547
Compare
Ok, I've added the logic for ignoring retractions and reprime movements. (I haven't tested it yet, since I'm not anywhere near my printer.) I'm now keeping track of the current amount of retraction in a Overflows/signedness errors will only happen if the retraction values involved exceed 16 bits worth of steps, which should never happen in any realistic setup (even with a geared extruder with a 1:3 reduction ratio, the math holds up to retractions of 20cm) As for your fork of GPX: I initially considered doing the same, but I didn't want my printing setup to require modified software on both the host and the printer. |
using that gpx will remove the temperatures limit, for example I also use materials like this: and it don't quite like the 120 fixed temperature of the HBP, it needs at least 125°C...the limit into the original firmware is 280 for extruders, 130 for HBP, but in the gpx distributed by simplify3d the limits are lower..guess why... |
I got fed up with powerlessly watching over- or underextruding prints turn themselves to mush. This lets you set a global factor for all extruder movements. This does also affect retractions (since there's no easy way of differentiating retraction from non retraction movements), so diverging too far from 1.0 will probably introduce some stringing, but since stringing is much easier to correct post-printing than overextrusion, this shouldn't be much of a problem.