Skip to content
This repository was archived by the owner on May 6, 2025. It is now read-only.

Heated Chamber#166

Open
danthompson41 wants to merge 4 commits intomasterfrom
kd/enhancement-Heated_Build_Chamber
Open

Heated Chamber#166
danthompson41 wants to merge 4 commits intomasterfrom
kd/enhancement-Heated_Build_Chamber

Conversation

@danthompson41
Copy link
Contributor

sauna

Heated Build Chamber

Description

Makes it hot. Consistently.

Requirements

  • Diagnostics Test
  • Alignment run successfully
  • Free Ram looks reasonable
  • Approval 1
  • Approval 2

// There has been a recent error, if was more than a second ago, it is probably an error
else if (millis() > time_since_last_err[e] + TEMP_ERROR_INTERVAL) {
if(!Cartridge__FFFNotPresentHysteresis())
if(Cartridge__Present(e))
Copy link
Contributor Author

@danthompson41 danthompson41 Oct 26, 2016

Choose a reason for hiding this comment

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

So the point of the Cartridge__FFFNotPresentHysteresis function isn't to provide hysteresis for the error, it's to provide a time delay after the cartridge is inserted before triggering the error. If this isn't done, the error will be checked before the first temperature reading is taken from the cartridge. The temp will be reported as 1100, and the protection will be tripped. I would test this extensively before removing Cartridge__FFFNotPresentHysteresis, as I don't think this will work to prevent that scenario.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Also this should be in a separate pull request if it were to be made, it doesn't concern the heated build chamber.

Copy link
Contributor

Choose a reason for hiding this comment

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

Good point. The change I made is not equivalent to the original code as I initially thought.

As we discussed, setting time_since_last_err[e] = millis() when the cartridge is inserted might be a way to avoid triggering this error, but still maintain the modularity of the original cartridge insertion code.

The reason it is in this branch is because we need the same temperature/cartridge handling now that we have enabled the thermistor in T1 for heated build chamber. I COULD separate that into it's own branch... maybe...

Copy link
Contributor

Choose a reason for hiding this comment

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

Additionally, this requires that TEMP_ERROR_INTERVAL is enough time for the temperature reading to stabilize and not throw an error. We will need to check that.

}
else if (millis() > time_since_last_err[e] + TEMP_ERROR_INTERVAL) {
_temp_error(e, PSTR(MSG_T_MINTEMP), PSTR(MSG_ERR_MINTEMP));
if (Cartridge__GetPresentCheck()) {
Copy link
Contributor Author

Choose a reason for hiding this comment

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

This doesn't fix the previous comment if the cartridge is removed and then inserted again.

Removes unnecessary duplicate readouts
Reverted non working change
@danthompson41 danthompson41 changed the title Initial commit. Enable pin 1, add M141, enable chamber monitor Heated Chamber Oct 26, 2016
@danthompson41
Copy link
Contributor Author

I can't change the file as is due to git, so to make this work here are the changes you'll need to make:

configuration_adv.h line 44 (every other interval I tried was too short and brought false positives):
#define TEMP_ERROR_INTERVAL 30000

temperature.h line 46:
extern millis_t time_since_last_err[4];

cartridge.cpp line 229 (before break):
time_since_last_err[FFF_INDEX] == 0;

Appropriate changes have been made elsewhere.

Fixed cartridge checking
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants