Skip to main content

Site Navigation

Your Account

Choose Language

Connecting and configuring a chamber heater

RepRapFirmware supports a chamber heater, but by default no chamber heater is configured. To use a chamber heater, you will need a spare heater channel, and either the thermistor channel associated with that heater or another temperature sensing channel.

Connecting the chamber heater

Chamber heaters are typically AC mains powered, so you will need a Solid State Relay (SSR) to drive one. Use a zero-crossing DC/AC SSR such as Fotek SSR-25DA + safety cover, or Crydom D2425 + safety cover KS101. If your chamber heater draws more than about 5A then the SSR may need a heatsink.

Connecting a SSR to a heater output on the Duet, or Duex 2/ 5

SSRs generally accept anywhere between 3V and 32V input voltage, so you can connect the SSR to the heater terminal block. Make sure you connect the + and - terminals the right way round. The + terminal on the SSR goes to the heater terminal marked + or VIN, and the - terminal pin the SSR goes to the heater terminal marked -.

Connect the thermistor that measures chamber temperature to the associated thermistor input.

Connecting a SSR directly to the expansion connector

If you have a Duet without an expansion board and no spare heater channels, you can connect the input of the SSR directly to the expansion connector. The heater outputs of the Duet are active low, so connect the SSR - input terminal to the appropriate expansion connector pin, and connect the SSR + input terminal to +3.3V (pin 3 on the expansion connector).

You will also need a thermistor input channel to monitor the chamber temperature. If you are using a PT100 or thermocouple sensor for a hot end, then you can use the thermistor input pins that would otherwise be used for that hot end. The following applies to all Duet versions.

Configuring the chamber heater

You will need to add a M141 command to config.g to tell the firmware that you have a chamber heater and which heater channel it uses. You will also need a M305 command to configure the temperature sensor, and a M301 command to configure the PID parameters. Here is an example:

M141 H3 ; heater 3 is the chamber heater
M305 P3 R4700 T100000 B3950 ; heater 3 is monitored by a 100K thermistor with B=3950 and a 4.7K series resistor
M301 H3 B1 ; use bang-bang control for the chamber heater

To use a different thermistor channel form the heater channel, add a suitable XS parameter to the M305 command. For example, X1 would tell the firmware to use the thermistor channel associated with heater 1 (which is normally the first extruder heater).

You can use PID control of the chamber heater if you wish. RepRapFirmware uses low frequency (10Hz) PWM on the chamber heater channel so as to be compatible with most SSRs.

Using the chamber heater

Add the command M141 S### to your slicer start gcode, where ### is the required chamber temperature at the start. Also make sure there is a M116 command somewhere after the M141 command, to wait for all temperatures to reach their assigned values.

In your end gcode, either use the command M0 (which normally switches all heaters off), or the command M141 S0 to turn the chamber heater off.


Is there a way to have a chamber heater where the temperature of the heater is controlled to a maximum allowable temperature (as a safety feature) and the chamber temperature is controlled via that heater being switched in bang bang mode.

The reason for this is that many heaters would get dangerously hot when being controlled via a sensor, sensing the chamber temp - the heater will receive full current until the chamber reaches the set point.

Christian Bowes - Reply

PID controlling a heater to control its “surface temperature” is exactly equivalent to limiting the current through the heater. The easiest way to do that is not via a PID controller, but rather to intentionally “underrate” the heater voltage. For example, use a 240V heater on a 110V supply. Or wire two (or even three) heaters in parallel.

Of course, the chamber will take longer to heat with an underrated single heater… parallel heaters will help mitigate this.

Danal -

I am investigating ways to use a Duet 2 with no Duex expansion to run the e3d tool changer with more than two tools. I believe that with the information here, plus additional SSRs, that would be possible if using an extruding solution similar to the Prusa colour changer or a geared motor mounted to the tool-changer which slots in to a direct drive tool.

James Rowlands - Reply

potentially - best to discuss ongoing developments on the forum.

Tony -

Add Comment

View Statistics:

Past 24 Hours: 5

Past 7 Days: 35

Past 30 Days: 208

All Time: 3,565