Heatbeds - A beginner's guide

From RepRap
Jump to: navigation, search

This guide assumes you have a PCB heatbed based on Josef Prusa's design, however the principles should apply to most heatbed designs.



If you pass an electrical current through a conductor it produces heat proportional to the amount of current flowing

The heatbed is designed to produce about 120W of power at 12v, or up to 200W (though usually a bit less) at 24v.

Using the basic formulae:

    <math>P = V x I</math>
    <math>V = I x R</math> 

(P = power in watts, V = volts, I = current in amps, R = resistance in ohms)

Rearranging the above formulae we get:

    <math>P / V = I</math>
    <math>120 / 12 = 10</math> amps


    <math>V / I = R</math>
    <math>12 / 10 = 1.2</math> ohms

So the resistance of the 12v tracks on your heatbed should be circa 1.2 ohms, in order to give 120 watts. If it's a lot less than this then the higher current could burn out the tracks on your PCB, much more than this and the heatbed will heat too slowly, or not at all.

Usage & Setup

Power connection

You can connect positive and negative either way, the board doesn't care about polarity. LED's do care about polarity, that's why you may have 2 on your board (so that one will light, whichever way you connect the power). Just make sure that you use the correct pads (12v or 24v) if your board has the dual power option.

Make sure that the wires you use can handle the current (remember, I = V / R)

Firmware settings (Marlin)

These are the relevant settings from configuration.h, the only ones you will need to adjust are sensor type for your model of thermistor (types for many common thermistors are listed in the table just above here in configuration.h), and PID. Min temp and Max temp are just safeguards, if the thermistor reads beyond those values then it is probably faulty (or you should bring your printer indoors).

    #define TEMP_SENSOR_BED 11    <<< set this value to match your thermistor using a value from the table at the start of "Thermal Settings" section
    #define BED_MINTEMP 5
    #define BED_MAXTEMP 150
    #define PIDTEMPBED
    #define MAX_BED_POWER 255 // limits duty cycle to bed; 255=full current
    #ifdef PIDTEMPBED
    #define  DEFAULT_bedKp 266.49    << replace this value with the value returned by M303
    #define  DEFAULT_bedKi 49.29       << replace with M303 value
    #define  DEFAULT_bedKd 360.23   << replace with M303 value
      // FIND YOUR OWN: "M303 E-1 C8 S90" to run autotune on the bed at 90 degrees C for 8 cycles.
    #endif // PIDTEMPBED

PID autotune

If you are using PID then you should run autotune to make sure it is correctly calibrated for your bed.

As the comment (above) in Marlin says, run:

    M303 E-1 C8 S90    //this will run autotune at 90 degrees, for 8 cycles

(90 degrees is just a good compromise between PLA and ABS temperatures, if you only ever print in one or the other then maybe pick the temperature you usually print at)

This should take your bed up to 90 degrees (as reported by the bed thermistor) and it will cycle around this temperature 8 times to "learn" how much current is required for a given temperature change. Once finished M303 will give you values for Kp, Ki, and Kd, you put those values into your copy of marlin and upload to your controller.

    Note:  Some people find that PID autotune (M303) fails with an error message "temp too high", if you get that then try pre-heating the bed to 50 degrees or so, before starting M303.

PID (when properly tuned) only kicks in once the target temperature is reached, you can tell it is functioning because the bed LED flickers as PID turns the power on and off (you want it on constantly while the bed is heating up, any time the LED is off the bed isn't heating). So if you have a slow heating bed look at the LED, if it flickers before target temperature is reached then you probably haven't tuned PID correctly.


This article isn't a printing guide, but as a general rule you want to heat your bed to around the glass transition temperature (Tg) of the plastic you are printing (maybe a little higher for the first layer, to aid adhesion), you will need to experiment to find what works with your printbed, and your filament. Tg will vary according to the composition of the filament (dyes and fillers added by the manufacturer can all effect Tg) but as a rough guide you can try the following as a starting point:

PLA Tg 55C

ABS Tg 105C

Remember that this is the temperature measured at the bed surface, when you see people quoting temperatures of 70C for PLA they are probably talking about their thermistor reading, not the bed surface temperature.

Problem with cheaper PCB's

As Joseph Prusa says, cheap PCB's may have too thin, or irregular copper thickness, this can lead to insufficient power, or uneven heating over the board. In my own experience a Chinese PCB (Mk2b) from eBay had a resistance of 1.1 ohms (so heat output was ok), but it gave very uneven heat over the bed surface (YMMV), I now use a better quality etched PCB.

What is normal?

I don't know, but to give a basis for comparison, I have a good quality (etched, not plated) Mk2b heatbed, its resistance is 1.2 ohms, and I use 12v. The gap beneath is insulated with 2 layers (about the same thickness as 2 pieces of corrugated cardboard) of a type of plastic quilted insulation which was meant to fit on the wall behind a hot water radiator, it has a reflective silver face on the top.

From ambient (about 21 degrees):

  • 70C takes approx 2 mins 45 seconds
  • 125C takes about 13 minutes (I place a piece of corrugated card on top of the bed while heating)

(these are thermistor readings, ie, temperature underneath the bed, not on top of the glass)

Troubleshooting checklist

Slow to heat:

  • have you tuned PID
  • did you check your boards resistance?
  • check you connected 12v to the 12v pad on the PCB, not the 24v pad.
  • is your power supply really supplying 12v under load?

NB: Many (most?) ATX power supplies require a load on the 5v rail in order to correctly regulate the 12v rail, if you find that 12v drops a lot when you apply a load (such as the heatbed) then try putting some load on 5v (a 47 ohm power resistor should be sufficient).