Running my Ultrabase (glass plate) through a MOSFET on an stock A8 board with Marlin 1.1.8. When I do PID tune through Pronterface (by using the M303 E-1 C8 S70 command) the bed heats up no problem and completes the tune, but when printing from SD or using the Preheat PLA command on the printer to heat the bed, nothing happens and then I get "Bed heating failed".

As its working through Pronterface I know the wiring is okay.



Anet A8 Stock Board
Ultrabase 220x200 12v
PID Values extracted from Pronterface Via M303 E-1 C8 S70 from cold bed
Message take about 1 minute to appear, seems to be a timeout as opposed to an instant error

Disabling PIDTEMPBED and enabling MAX_BED_POWER resolves the issue allowing the printer to heat the bed

Thermal protection for bed set to

#define WATCH_BED_TEMP_PERIOD 180               // Seconds
#define WATCH_BED_TEMP_INCREASE 2               // Degrees Celsius

When using PIDTEMPBED the LED on the bed does not light, but when using MAX_BED_POWER / PIDTUNE it does

  • $\begingroup$ what G-code is executed to get PID tunning? $\endgroup$ – profesor79 Nov 22 '18 at 13:59
  • $\begingroup$ M303 E-1 C8 S70 $\endgroup$ – NXSmiggy Nov 22 '18 at 14:00
  • $\begingroup$ Please add some details in your question (by edit) on printer size/type, voltage, how you got the PID values (e.g. heated bed first or from cold)? Also explain if the message pops up instantly, or after a few seconds. $\endgroup$ – 0scar Nov 23 '18 at 8:02
  • $\begingroup$ @NXSmiggy Disabling PIDBDTEMP results in bang-bang heat up. PID is bypassed. $\endgroup$ – 0scar Nov 23 '18 at 9:57

I thought this was an easy problem to fix as the previous Configuration.h you shared had PID incorrectly configured.

I'm guessing that you experience this LCD screen:

"Bed heating failed" message

What I experienced myself when PID tuning the bed is that it matters whether the bed is preheated or not. At first attempt the command such as the M303 E-1 C8 S70 you used did result a failed PID tuning (note that you should perform the test from a cold bed).

Your PID values:

// PIDTune from Pronterface
#define DEFAULT_bedKp 305.95
#define DEFAULT_bedKi 60.24
#define DEFAULT_bedKd 388.4805

are similar results as I have for a 24V 300 x 300 x 3 mm bottom cork insulated heat plate with 3 mm glass.

You have not added the "Configuration_adv.h", but this file contains the advanced settings for the printer and most probably contain:

  #define THERMAL_PROTECTION_BED_PERIOD 20    // Seconds
  #define THERMAL_PROTECTION_BED_HYSTERESIS 2 // Degrees Celsius

   * As described above, except for the bed (M140/M190/M303).
  #define WATCH_BED_TEMP_PERIOD 60                // Seconds
  #define WATCH_BED_TEMP_INCREASE 2               // Degrees Celsius

This describes that the software waits for 60 seconds for the bed to increase 2 °C. If the temperature increase is not observed, there is no heat input to the bed, or it does not reach the set temperature. Please check your values.

  • $\begingroup$ Updated with requested information, Disabling PIDTEMPBED and re-enabling MAX_BED_POWER allows the printer to control the bed again $\endgroup$ – NXSmiggy Nov 23 '18 at 8:29
  • $\begingroup$ Additional information provided as requested $\endgroup$ – NXSmiggy Nov 23 '18 at 17:13

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.