-
-
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
HB not heating during G29 #5698
Comments
RC8 Bug fix 1.1.0 |
I would check your thermistor wiring. It is likely broken somewhere. |
I'm getting the same issue on my printer. |
Hmmm. Well, I have a Prusa i3, which has a ramps 1.4 on an Arduino Mega 2560. I've had that issue a few times and it was a broken thermistor wire in both cases. I have run RC6, RC7, RC8 and RCBugFix. No issues with the firmware for the board I have. So...IDK. |
|
Swap the hotend and bed thermistor plugs at the board. See if you get a MINTEMP instead of MINTEMP BED error. |
My thermistor is working correctly and the temperature is appearing on the display. I also don't see the heat LED lighting up when performing G29. So I really think that when performing auto-level the heat bed control is stopped. Another user has just posted the same issue: #5702 |
Blue-Marlin I have used 10x10 points so it takes a long while. to get a profile like this attached. |
If I disable the HB before the G29 everything works but the HB drops fom 75° to below 50°C. |
I normally don't heat anything before a G29 and everything works fine. My printer sits in a room that drops the temps as cold as 4°C and it still works. But, I'll heat my bed to 50°C (my normal running temp for PLA) and see what happens. |
I checked it again with the current BugFix (Downloaded 22.1.2017). 00:22:25.417 : G29 Auto Bed Leveling It should be easily be reproduced. Can anyone test it on another printer? |
Up to now I know that that the error is triggered because current_temperature_bed_raw(28137, 31846) i is above bed_minttemp_raw(16079) |
I deactiveted the the trigered alarm (see zip file). Now it is working. I see that there are random temperature spikes (see screenshot). Due to some reason "current_temperature_bed_raw" has random values sometimes. The main question is: Is it my hardware(Anet A8) or the software. If someone could reproduce the error or show that it works on another printer that would be great. The temperature.cpp file attached with deativated alarms is for test and debug only. I do not recomend deactivating the temperature alarms. |
My issue was similar, though while I was printing instead of while I was running a G29. I performed analysis of the pin and while I could not see any voltage change with my oscilloscope, the A/D value jumped up which seemed to indicate the temperature dropping very low suddenly. I haven't been able to resolve it and have switched to Smoothie for the time being. |
If folks are getting around this by disabling the thermal protections -- I wonder if the thermal protection logic is faulty, or if that many of us are running faulty printers. I noticed that the older RC3 version I was running had the thermal protection commented out. Mine is dying either during G29 or after the print starts. I did a few prints without G29 on RC8 (non-bugfix) that worked fine. I'm not sure what my issue is. Mine looks like extruder 1 (my active extruder) having the issue: |
I have recently upgraded 2 printers to RC8 and both printers are exhibiting the same issue. To reproduce I use pronterface to set the bed temp to 110 and then click the home button while the bed is heating up. The AirWolf 3D homes all axes and then displays the error and stops every thing. The PrusaI3 Homes X and Y and then Moves the Z axis to deploy the Z probe using the servo, then the mintemp error is shown and stops everything. If I let the bed heat to temp first the error does not get shown on either printer. If I roll back to RC6 then it works correctly again. I have not updated my Delta due to this issue. |
The bed temp is supposed to be above the mintemp, if not, the mintemp error will stop the printer. Anyone consider faulty thermistors? or faulty thermistor wiring? |
It would be surprising if suddenly all these thermistors started having issues after the update, but not impossible. I hooked an oscilloscope to mine but couldn't see any change in the voltage when the MINTEMP was hit. |
Anything is possible, the question what is likely:
Any other sugestions? Or input? |
I cannot reproduce this issue on my Prusa i3 running the latest RCBugFix + some other unrelated PR's. |
Although I do not use ABL anymore, I did try heating the bed to 110C and while it was heating, initiated a G29. Points were accepted with no issues. I did not have any mintemp issues. All is ok for me. With that, how can anyone say that this issue is a firmware issue? What I CAN say is a firmware issue, is that when I was on my 9th probing point, I issued a M84 then a G28. The steppers turned off then everything homed. But, my LCD was still on the screen for probing the 9th point. I had to reset the printer to get it out of the MBL mode. |
Anyone using ABL....try the |
All 5 thermistors started having issues after the update? BTW, I am using a type 6 for the hotend and type 1 for the bed. |
I'm just saying it's possible that it's my board. I did everything I could to determine that it wasn't my wiring, hooking a 2GS/s oscilloscope up to it and triggering on a voltage change, but even when triggered, I'd validated that that line on the IC was still receiving the correct voltage. Unless my ATMEGA chip just decided to up and die/become intermittent when I loaded RC8, i'm not sure where else to look. The fact that there's more than one or two people having this issue seems to indicate we have some common issue. |
@chorca: I have seen weird stuff that cannot be explained, in my days. Change the thermistor and see if that changes things. |
I put SERIAL_ECHO("min: ");
SERIAL_ECHO(bed_minttemp_raw);
SERIAL_ECHO(" Raw: ");
SERIAL_ECHOLN(current_temperature_bed_raw); above the line for the min temp test if (bed_minttemp_raw GEBED current_temperature_bed_raw && target_temperature_bed > 0.0f) min_temp_error(-1); In the I know serial port prints here are changing timing but I believe the HOME Function is either calling the ISR or causing the interrupt to signal too often. In the result below you can see where the home function causes the glitch. If the bed is heating when this glitch happens too many ADC results get accumulated in the "current_temperature_bed_raw" and then the min test traps the error. (In the test below the bed is not heating so this is the readout of ambient temp and when the glitch happens the bed is not moving.)
|
Looks as if the temperature ISR is biting its tail. Try
(Serial output during an interrupt alters the interrupt timing. So the result we see here may be caused by the debug-output you added. |
Alternatively you could try to deactivate In the
while the temperature interrupt is running`, is NOT restoring the original ISR settings, but alters them. |
To fool this
should be a bit more difficult. |
Wow, thank you schustercp and Blue Marlin. I didn't understand everything, but as far I understood this is caused by a interrupt interference. Is this a work aroud or a solution for the next RC? |
1 and two are things to experiment with. If that works, 3 is possibly one of several solutions to your problem. |
Just chiming in, I had a Mintemp halt today on a bed that never had any issues before. I occasionally see spikes in temperature readings which are otherwise rock-solid. I use Bilinear leveling, and just compiled LIN_Advance in during my last flash, however I did not use its "effects" (K=0). |
I've had mintemp errors also on hardware that's always been fine, it seems to happen if the bed is at or below 17°C when I hit print, the LCD briefly shows the temp drop to below 5° which triggers the mintemp error. I need to load my previous version to see if it still happens. |
I've started prints @ 3 degs and no issue. I dropped my mintemp to -10 because I didn't want to have the mintemp error if I started it too cold. |
This tells me that you have a broken thermistor wire or a bad/weak connection. |
So i recompiled the RCBugFix branch I had, and did nothing but switch off LIN_ADVANCE, and the print that previously failed consistently with MINTEMP errors went through just fine. Seems like @Blue-Marlin is on to something |
Could it be that CC: @Sebastianv650 |
I read through the issue, I think we should seperate two possible causes. In more than the first half of the issue, there is no mentioning of an active advance so I guess it wasn't enabled from the persons reporting there. If I'm wrong, please raise a hand. Therefore I see maybe two issues:
void Temperature::isr() {
//Allow UART and stepper ISRs
CBI(TIMSK0, OCIE0B); //Disable Temperature ISR
sei(); How it should be re-executed with this combination: The ISR is disabled, then afterwards global ISRs are enabled again. Nevertheless, it should be easy for someone having that problem to prove this by inserting the change Blue-Marlin provided above, checking for in_temp_isr is true and throwing an error message over serial if so. But I can think of another scenario where the raw value might get garbled: The temperature ISR might become delayed due to serial events inside the stepper ISR or also due to stepper and serial events inside the temperature ISR that much so that the time frame between the first (delayed) loop where an ADC conversion is started and the next (maybe not delayed) loop where the result is captured gets too short. Somebody has in mind how much time "safety" Marlin has at the moment between two ADC conversions vs the time it needs to do one conversion? On a first look, Marlin isn't checking if the ADC conversion is finished when grabing the raw value.
|
Just claimed I'm printing without errors since weeks - just guess what happened to my recent print: Mintemp error. And I have to say there is in fact a way to re-enter the temperature ISR. I wasn't seeing it before. I did the changes @Blue-Marlin wrote above to my local Marlin copy and print the part a second time now. I'm sorry, if that's the cause it's my fault for all the temperature errors and maybe also freezing issues! |
@Sebastianv650 |
I see you already have an even better version. We only have to keep an eye on all the ISR re-enable sections. There is one inside the ISRhandler with advance enabled, but also 2 or 3 inside the stepper ISR if advance is disabled. And I would like to add another cli() at the end of the temperature ISR before re-enabling the temperature ISR again. Edit: Just recognised it's @AnHardt PR. I will update my PR just to have the changes in one place, but feel free to close it and use AnHardts if you want. |
Got some calls keeping me busy at least the next 12 hours. So please do it yourself - you got the idea. |
This may be fixed by #5829 |
This issue has been automatically locked since there has not been any recent activity after it was closed. Please open a new issue for related bugs. |
I tried to perform an G29 with a 10x10 matrix with the HB at 70°C to measure the distortion of my HB over temperature. After some pints I get an "ERR: MINTEMP BED". I asume that the HB thermal control is inactive during G29. Is this by purpose or a bug? (Is there a work around?)
The text was updated successfully, but these errors were encountered: