wingtangwong
Posts: 1
Joined: Fri Jul 10, 2015 1:55 pm

Issue: Ocassionally Stuck At Bed Preheating

Hello,

Version: 3.0.0
Printer: PrintrBot Simple Metal (2015)

Issue:

Sometimes, sits at preheating bed, even though the temp has hit the target temperature.

Case #1:

Using the printer interface to manually pre-heat the bed before starting a print, reached target temp of 80C. Switch to the "prepare for printing" and then "send print via usb", get the dialog "preheating bed"... and just sits there even though the bed is already at 80C.

Case #2:

A previous print completed. Bed temp is at 80C and I start another print job. As noted in Case #1. The printer reaches 80C from having dropped down to 78C or 79C. Then just sits there letting the bed stay heated at 80C.

Case #3:

Start printer up. Start up Simplify3D and start a print job. System is preheating bed. After about 30 minutes, no movement, so check on the printer. Bed is at temp (80C) but Simplify3D sitting waiting for preheating of bed.


It doesn't happen all the time, but it is happening about 1 in 3 times. Any solutions? Is there a misconfig on my end?
JoeJ
Posts: 1435
Joined: Sun Feb 16, 2014 10:52 am

Re: Issue: Ocassionally Stuck At Bed Preheating

Well I can tell you from experience that it's pretty easy to change something which will then cause the printer to wait indefinitely. Can you post your factory file (go to File > Save Factory File)?
JeffB
Posts: 7
Joined: Sun Oct 18, 2015 11:45 am

Re: Issue: Ocassionally Stuck At Bed Preheating

I too get stuck at the "preheating bed".

My setup is this:
I'm running on Window 7 Pro, 64-bit, with all the latest updates

Printing endlessly waits for the bed to heat up, even though the bed has reached the bed temperature.

I own a Taz4 with firmware v4.1 (Marlin 2014Q3)
(I checked the Lulzbot website and that's also the latest firmware)

When I print, Simplify3D isn't able to get past the "waiting for bed to heat up" phase.

Here are the repo steps:
1. Open Simplify 3D
2. Import a model
3. Click the "Prepare to print" button
4. Select the Process1 profile (Taz4 ABS medium quality profile, which Simplify3D auto-created)
5. Click the "begin printing over USB" button

Result:
The Taz starts up, in the sense that the fan on the CPU (not the fan on the nozzle) starts running, and the bed starts heating up.

(don't know if this is the issue or not, but while although the bed heats up, the nozzle doesn't heat up)

After a while, the bed gets to 90 degrees (the target bed temperature) but Simplify3D just waits, saying "Preheating Bed..." even though the bed heats up to the desired temperature of 90 degrees.
JeffB
Posts: 7
Joined: Sun Oct 18, 2015 11:45 am

Re: Issue: Ocassionally Stuck At Bed Preheating

And here is my factory file,

Jeff
test.factory
(41.45 KiB) Downloaded 820 times
CompoundCarl
Posts: 2005
Joined: Wed Aug 05, 2015 7:23 am

Re: Issue: Ocassionally Stuck At Bed Preheating

I don't see anything wrong with the gcode that would cause a problem. There's only 4 temperature commands in the whole file

M140 S90 ; set the bed temp to 90C
M190 S90 ; wait for the bed to stabilize at 90C before continuing
M104 S230 T0 ; set the extruder temperature to 230C
M109 S230 T0 ; wait for the extruder to stabilize at 230C before continuing

The firmware settings control what exactly "stabilize" means. Usually it's something like it stays within +/- 1 degree for at least 10 seconds.

I don't see anything wrong with what the software is doing. You might want to check the electronics and the firmware settings to make sure that isn't the culprit. For example, poorly tuned PID settings, loose connectors, or a bad power supply can easily cause these issues.
JeffB
Posts: 7
Joined: Sun Oct 18, 2015 11:45 am

Re: Issue: Ocassionally Stuck At Bed Preheating

No, the electronics aren't the issue. I can print fine with Cura and with PrintRun.
CompoundCarl
Posts: 2005
Joined: Wed Aug 05, 2015 7:23 am

Re: Issue: Ocassionally Stuck At Bed Preheating

Your gcode file is printing fine for me. I wonder if it's something odd with the firmware?

Try to print the file again and copy all of the SENT and RECEIVED printouts from the Communication tab of the Machine Control Panel. That should make it easy to see what the printer is doing. The moment you really care about is the back and forth communication after it reaches the desired temperature (but you can just copy and paste the entire thing to be sure you get it ;) )
kusmi
Posts: 8
Joined: Tue Feb 03, 2015 4:31 am

Re: Issue: Ocassionally Stuck At Bed Preheating

I have a Printrbot Simple Metal and experienced this issue as well - it started somehow with release 3.0.

I usually manually pre-heat the bed and extruder (so I can insert the filament and prepare for the print) - when I then hit "print to usb" it sticks either on waiting for printbed-temp or extruder-temp... Even if the temperature has been reached.

I then have to stop the print, let the heat-bed & extruder to cool down a few degrees and then hit "print" again. It looks like, if the temperature is already reached before starting the print, it waits forever.
JeffB
Posts: 7
Joined: Sun Oct 18, 2015 11:45 am

Re: Issue: Ocassionally Stuck At Bed Preheating

I found out what's going on... even though the display on the Taz4 says the nozzle temp is 90, what it is communicating back is 89.9. I'm very new to Simplify3D, so I've got a lot to still learn, but this is what I'm doing now and it seems to work:

1. Modify my process setting in Simplify3D, and in the temperature tab page, uncheck "wait for temperature..."
2. Before I print, open the machine control panel, manually set the nozzle to 235, and the bed to 95 (both values more than the desired amount), and wait for the temp to get above 230/90
3. Then print. When the print starts, even if the nozzle and bed have been set to a higher temp, the get set back to 230/90.

Thanks everyone!

Jeff
CompoundCarl
Posts: 2005
Joined: Wed Aug 05, 2015 7:23 am

Re: Issue: Ocassionally Stuck At Bed Preheating

I'm pretty sure the firmware sends a special message once the preheating (M109 or M190) is complete. So it really doesn't matter what temperatures are getting sent back to s3d, those are just for monitoring purposes. Once the firmware says "preheating is done!" the software will move on and continue printing.

However, it is very possible there is some issue with the firmware where it somehow gets stuck and never sends the "preheat is finished" message. I know some of the temperature control logic for the heated beds in the Marlin firmware is pretty simple. For example, just using bit-bang heating until the temperature exceeds the desired setpoint. Perhaps the issue here is that you are never actually exceeding the 90C setpoint! If you look through the Marlin firmware logic, I don't think the firmware would ever exit the preheat state if you don't exceed the bed setpoint.

The relevant code from Marlin is below

Code: Select all

    case 190: // M190 - Wait for bed heater to reach target.
    #if defined(TEMP_BED_PIN) && TEMP_BED_PIN > -1
        LCD_MESSAGEPGM(MSG_BED_HEATING);
        if (code_seen('S')) {
          setTargetBed(code_value());
          CooldownNoWait = true;
        } else if (code_seen('R')) {
          setTargetBed(code_value());
          CooldownNoWait = false;
        }
        codenum = millis();
        cancel_heatup = false;
        target_direction = isHeatingBed(); // true if heating, false if cooling
        while ( (target_direction)&&(!cancel_heatup) ? (isHeatingBed()) : (isCoolingBed()&&(CooldownNoWait==false)) )  <<==== this is the important line!!
        {
          if(( millis() - codenum) > 1000 ) //Print Temp Reading every 1 second while heating up.
          {
            float tt=degHotend(active_extruder);
            SERIAL_PROTOCOLPGM("T:");
            SERIAL_PROTOCOL(tt);
            SERIAL_PROTOCOLPGM(" E:");
            SERIAL_PROTOCOL((int)active_extruder);
            SERIAL_PROTOCOLPGM(" B:");
            SERIAL_PROTOCOL_F(degBed(),1);
            SERIAL_PROTOCOLLN("");
            codenum = millis();
          }
          manage_heater();
          manage_inactivity();
          lcd_update();
        }
        LCD_MESSAGEPGM(MSG_BED_DONE);
        previous_millis_cmd = millis();
    #endif
        break;
Note that the while() loop will never exit unless the isHeatingBed() command returns false.

Code: Select all

FORCE_INLINE bool isHeatingBed() {
  return target_temperature_bed > current_temperature_bed;
};
And as you can see, that will never happen unless the current bed temperature is greater than or equal to the setpoint. Not sure if I would classify this as a firmware bug or perhaps just poorly tuned PID values that aren't driving enough current to the bed to exceed the setpoint temperature. Hard to say which one is at fault.

Return to “Troubleshooting and Bug Reports”