Skip to content

Temperature offset feature #61

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

Merged
merged 6 commits into from
May 23, 2021
Merged

Conversation

WyattNielsen
Copy link
Contributor

based off of Sven Lohrman's implementation of this feature in FilamentManager.

It works, but right now it uses the temperature values for the offset. I just wanted to test feasibility, should probably be new fields if the feature is added in.

Also currently only works with one tool, if there are multiple tools will need to figure out how to set the appropriate bed and enclosure offsets.

@OllisGit
Copy link
Owner

Hi @WyattNielsen ,

thanks for the PR. I will take a look on it in the next days.

@WyattNielsen WyattNielsen marked this pull request as ready for review December 18, 2020 15:10
@OllisGit
Copy link
Owner

Hi @WyattNielsen,
thx a lot for the PR. I appreciate it very much, I will take a look into this the next days...really!

I saw in some issues that the users use the temp. fields like this: 180-190...so just picking this value will not work.

I think a final solution could be like this:

  • add prefix label to the existing fields "Best Temperature Tool"
  • new temp offset fields in the dialog, only accept integer value
  • improve the confirm-dialog after print-button was pressed. dialog should show the current spool and a checkbox to use the temp-offset of the spool

Your PR is a really good starting point. What do you think?

PS. Sorry, for being late to the party, but I made a "Octoprint sabatical" (no coding, no printing) the last months.

@OllisGit
Copy link
Owner

OllisGit commented Jan 23, 2021

Hi @WyattNielsen,

I tested your implementation and I never used the OP-Temp-Offset feature before, so I am not sure of the correct behaviour....

  • The spool temp-offset is shown next to the temperature-table (e.g. 50)
  • Print is started, the actual and target temperature is 200. The gcode use 200 and the offset is 50, so I expected that the actual temperatur is increasing to 250, but I didn't

image

Any ideas?

@OllisGit OllisGit added status: inProgress I am working on it status: waitingForFeedback Wating for Customers feedback and removed status: analysing labels Jan 23, 2021
@WyattNielsen
Copy link
Contributor Author

WyattNielsen commented Jan 24, 2021

The offset had to be set prior to starting the print. The offset is applied to temperature values when the gcode is sent to the printer.

Unfortunately my printer is currently out of commission, but I was using this code successfully for weeks. I'll try to look at my printer next week so I can help troubleshoot further.

@WyattNielsen
Copy link
Contributor Author

Hi @WyattNielsen,
thx a lot for the PR. I appreciate it very much, I will take a look into this the next days...really!

I saw in some issues that the users use the temp. fields like this: 180-190...so just picking this value will not work.

I think a final solution could be like this:

  • add prefix label to the existing fields "Best Temperature Tool"
  • new temp offset fields in the dialog, only accept integer value
  • improve the confirm-dialog after print-button was pressed. dialog should show the current spool and a checkbox to use the temp-offset of the spool

Your PR is a really good starting point. What do you think?

PS. Sorry, for being late to the party, but I made a "Octoprint sabatical" (no coding, no printing) the last months.

I think your plan for these updates make a lot of sense, as I mentioned before I don't have a working printer right now so I would be unable to fully test any changes. Hopefully I can get my printer working next week then I'll be able to update the pr accordingly.

@yceoshda
Copy link

Hi,

The way I use it in the "old Filament manager" plugin is: I slice all my models with a base temperature of 200C for the nozzle and 60C for the bed, then for each spool I specify an offset for these (I.E.: I print Prusament PLA at 215/60 so my offsets are 15/0)

Hope that helps.

@HaukeRa
Copy link

HaukeRa commented Feb 2, 2021

Octoprint does not apply the offset value to target temperature values set in the GUI for some reason. They are only applied to GCode Commands. So in my understanding (haven't tested this explicitly) the offset value must be set before the print job sets the target temperature. Usually this is only set once at the beginning of a print job, so changing the offset value during a print has no effect.

The old filament manager also only applied the offset when a spool was changed. So after configuring a temperature for a spool you had to manually switch back and forth to make it affect the print. Meaning: It would be nice when the offset would be actually set also when the config of the spool was updated.

I'm willing to do tests btw. as I really want this to work :D

@OllisGit
Copy link
Owner

OllisGit commented Feb 2, 2021

fyi: currently I am working on next printjobhistory release..and hopefully I can release a new version of spoolmanager in two weeks.
Btw. I didn't found the issue why the offset is not reflected to the temp after I started the print...hmm, strange.

@WyattNielsen
Copy link
Contributor Author

@OllisGit The offsets only apply to gcode commands. That allows you to update the temperature via setting the target value. If I slice a file to print at 200°C when the print starts the tools target will be set at 205°C. Updating the target value overrides any offset.

I have updated the PR as requested with new temp offset fields in the dialog and an updated confirmation message.

Updated spool settings with new fields:
image

updated confirmation message:
image

@jbienz
Copy link

jbienz commented Apr 8, 2021

Just playing devils advocate here... is specifying offset values really the right way to go? I ask because this approach does require the user to always slice with known static values (like @yceoshda does with 200/60).

Spool Manager already has slots for "Best" Tool and Bed temperature. I understand that the offsets only get applied when the GCODE is loaded, but is there any way for Spool Manager to insert itself right before that happens and calculate the offset automatically? This would allow any file sliced at any target temperatures to receive the proper offset.

I understand the title of this feature includes the words "Quick and dirty". But since the UI is being updated to include slots for manually calculated offset values, I thought I'd at least ask the question.

@HaukeRa
Copy link

HaukeRa commented Apr 9, 2021

So if we are talking about the right way to go, for me that would be:

Slicing without any temperature but rather an offset. Because my spools know best at which temp they work right, but I might want to change the offset while slicing. For example to make the filament flow better when printing fast, or lowering the temp for a different surface finish (e.g. some PLA is glossy on higher temps and more matte on lower ones).

Sadly I can't think of a way to implement that offset in a generic way. Once could slice with reference to 0 degrees (and take the actual temp as an offset), but I don't know if that is really a good idea.

@WyattNielsen
Copy link
Contributor Author

These are both changes that would need to occur in OctoPrint itself rather than in this plugin. Altering the temperature at that level is beyond the scope of a spool manager plugin.

@WyattNielsen WyattNielsen changed the title Quick and dirty temperature offset feature Temperature offset feature Apr 9, 2021
@yceoshda
Copy link

yceoshda commented Apr 9, 2021

@jbienz As a matter of fact, I do slice everything at 200/60 this way I know my reference for the offsets :-). Having the offset being calculated automatically would be great but I beleive far more complicated than this.

@HaukeRa the goal is to have the same gcode printable with multiple filament with re-slicing not the other way around ;-).

@Dag0d
Copy link

Dag0d commented May 22, 2021

I'm running WyattNielsen's version, and it does exactly what I would expect from a temp offset!
hopefully it's merged soon.

@OllisGit OllisGit merged commit c016d04 into OllisGit:master May 23, 2021
@OllisGit OllisGit removed the status: inProgress I am working on it label May 23, 2021
@OllisGit OllisGit added status: inNextRelease Will be implemented/fixed in next release and removed status: waitingForFeedback Wating for Customers feedback labels May 23, 2021
@@ -281,6 +306,7 @@
<div><sup>2</sup><small>Needed for filament usage prediction</small></div>
<div><sup>3</sup><small>See <a href="https://bitfab.io/blog/3d-printing-materials-densities/" target="newTab">https://bitfab.io/blog/3d-printing-materials-densities/ (without warranty)</a></small></div>
<div><sup>4</sup><small>Not send to the printer</small></div>
<div><sup>5</sup><small>Temperature offset enabled via Plugin Settings -> temperature tab</small></div>
Copy link
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Btw. Why is this enabled globally and not in each single spool?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I thought it makes more sense as a global setting because that's how I use it. Setting this globally makes the plugin look for the setting and turns off the offset if it isn't configured on the spool.

@OllisGit
Copy link
Owner

OllisGit commented May 23, 2021

@WyattNielsen your PR is now (together with multi-tool-support) merged into master-branch. Please take a look.
It's not released, yet!!!

Btw. what should be used (bed/Chamber) for a multi-tool print? currently, the last spools wins ;-)

OllisGit added a commit that referenced this pull request May 24, 2021
- PR #161, #117, #133, #134, #153 multi tool support. Big thanks goes to @codingcatgirl
- PR #61, #59 temperature offset. Thanks a lot @WyattNielsen

- E/B #118 use newodometer.py
- E add "implementation-api"

- B #150, #116 CSV import fixed

..other tickets
- #102, #132, #135, #140, #142
@OllisGit OllisGit removed the status: inNextRelease Will be implemented/fixed in next release label May 24, 2021
@WyattNielsen
Copy link
Contributor Author

@WyattNielsen your PR is now (together with multi-tool-support) merged into master-branch. Please take a look.
It's not released, yet!!!

Btw. what should be used (bed/Chamber) for a multi-tool print? currently, the last spools wins ;-)

I don't have a good answer for the bed/chamber offset either and had a comment in code about this. I guess you could check to see if it is different for the multiple spools and use a dialog to allow the user to choose it in that case?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

6 participants