RepRap Builder

April 2014

RepRap Heating Issue


April 2014

RepRap Heating Issue

n April we returned to France for the summer. We could move into the house without problems: no leaking water tubing, no nasty insects, no excessive dust. One problem was however found outside the house. The telephone wire was broken due to excessive snowing on November 15, 2013. A broken telephone wire means no telephone but also no internet. Our neighbours had suffered from the same problem but their wires had long time ago been repared. Ours not, because we had not asked Orange -the operator- to repair them. Actually, we couldn't ask them because we were not there and when you don't ask Orange to fix something they certainly will not do that even when they have to repair the neighbour's broken wires that are hanging next to your broken wires. Of course they expect you to pay the monthly subscription bills as usual even when your telephone or internet is not working. At our neighbours we phoned Orange that we had broken wires and they promised to come five days later, despite the fact that we have a 24 hours assistance service contract. The day of the appointment we stayed all day home but Orange did not come. After a phone call at the end of the day they promised to come the next day. Again we stayed all day home and -yes!- they arrived at the end of the day. The broken wire was replaced by a new one and the system was tested: no signal. An investigation revealed that the next 600 meters of our telephone wire had several breakings and had to be replaced in total. Unfortunately the service men had not a sufficient length of wire in their car and promised to be back the next day or the day after next day, or so. They came after four days and the job was then completed. Finally we had (ten days after the complaint) a working telephone and internet! That is what 24 hour service means to Orange!
We realised that this experience is also part of the French culture and it is probably therefore what attracts us to live in France.

The RepRap had been waiting all winter and a quick start revealed that the problems with the heating of the extruder and the heated bed still existed. I had not really expected that they would have been resolved automatically, but I needed now to do a first check to identify the problems clearly.

The extruder heating was the first issue to tackle.
My RepRap has an extruder hotend from 3 dimensionshop (Dubielco, Poland). This company makes excellent hotends for an affordable price and offers fast delivery. Image 1 shows the hotend in an exploded view:

Image 1: Extruder, exploded view (image: 3dimensionshop, Dubiekco, Poland)

In image 1 we can observe that a 5.6
Ω resistor rated at 7W is used to heat a brass nozzle and a brass heater ring, which together have a weight of less than 50 grams. These are the only metal parts in the construction. A 5.6 Ω resistor at 12 V draws a current of 2.14 A (V=I.R) and dissipates 25.7 W in the brass components (W=V.I).  From experience we know that heating up the extruder usually takes 5 minutes or more and now we can calculate the rise in temperature in the brass  components by using the  specific heat capacity equation: c=ΔQ/(m.Δt).
We assume that we heat with 25.7 W for five minutes (equals 300 seconds): W x t = 25.7 x 300 = 7710 Ws or 7.71 kJ:
7710 = (50 g).(0.380.(J/gC).(
Δt) or Δt = 15420/(50 x 0.380) = 405C; where c = specific heat capacity in joules per kilogram by Celsius, ΔQ = heat required for temperature change in joules, Δt = change in temperature and m = mass in gram.
In theory this means that, when we start heating at a room temperature of 20C, the extruder will heat up in five minutes to a temperature of 425C, assuming that no heat loss by radiation and convection will occur to the surrounding air and the PEEK and Teflon parts. Even when we take the temperature losses into account, the calculation learns us that we have sufficient capacity for heating the extruder to a printing temperature of 220C. Therefore we may conclude that the current heating problem is not caused by a design fault but that we need to look for other explanations.

It was clear that I had to set up an experiment to study the behaviour of the extruder temperature whilst heating.
The host program was set to manual mode and the heating of the extruder was instructed to heat to 50C (set point) and on the temperature graph in the host program I monitored the measured temperature that was reached after a while. I repeated that for a next step of 25C higher, i.e. at 75C and so on with further steps of 25C until a measured temperature of 150C was reached. From 150 onwards the steps were changed in steps of 10C until the final temperature of 220C was reached.
From the observations I learned that the measured temperatures remained in line with the set temperatures up to about 200C, where a deviation was introduced of the measured temperature being almost 1C lower than the set temperatures and around 220C the deviation was a steady 2C.

Because the extruder took about the same time to heat up to the required temperature at each increasing step of 10C my conclusion was that the deviation was not caused by a combination of heater incapability versus heat loss due to radiation and convection to the surrounding air, as we already had proven in a theoretical calculation. Should this have been the case than the time needed to (almost) reach the set temperature would have increased considerably at each further higher step until the point where heat added equals heat lost, i.e. the point where the measured temperature remains constant when the set temperature is raised. Therefore I guessed that the effect of the measured temperature not reaching the set temperature at t > 200C probably was caused by faulty parameters in the PID algorithm in the firmware.

A search on the internet confirmed my guess and I found a link describing tuning of the PID algorithm: PID tuning and also: More PID tuning.

The procedure is rather simple and is performed for my RepRap by entering in the host software (in manual mode) the following G-codes in the command line: "M303 E0 S220 C8" (without brackets). This is an instruction to heat extruder (E0) up to 220C (S220) and cycle around that temperature eight times (C8) and return the values for parameters P, I and D (M303). The generated values for P,I and D are then entered in the firmware in configuration.h.

Heated bed:
For the heated bed (at 110C) a similar tuning exists by entering
the following G-codes in the command line: "M303 E-1 S110 C8" (also without brackets).
However for the heated bed I have my doubts as it shows the behaviour of slowly reaching and staying at a steady temperature of about 103C when set at 110C. In my opinion this indicates a severe heat loss above 100C and an inability to dispose more heat.
Probably I will need to check the power connections first if losses occur from bad connections and/or I may need to add insulation beneath the heated bed to prevent too much heat loss.

Also the theoretical approach of making a calculation, as used for the extruder, seemed worthwhile to me.
Earlier I had measured that the resistance of my heating pcb was 1.2
Ω and it is connected to 12V. Therefore it draws 10A (V=I.R) and it dissipates 120W to the glass plate (W=V.I) and to surrounding air. The glass plate has a weight of 200g. Ignoring heat loss to the surrounding air and ignoring loss in the small gap between the pcb and the glass plate we can calculate Δt for a heating period of 10 minutes. This equals 120.10.60=72000 Wsec or 72 kJ.
The heating process in the heated bed is a multistage process: the copper traces on the pcb will heat up the pcb and the pcb transfers the heat (via a very, very tiny air gap and through an aluminium coating) to the glass plate. Ignoring the air gap and the aluminium coating we shall reduce the multistage process to a two stage process. The two stage process makes it a bit more difficult to calculate a Δt and it is therefore a better idea to see if the power capacity is sufficient to heat the bed up to 110C, starting from an ambient temperature of 20C. The Δt is than 110-20=90C and we shall calculate now the kJ needed to bridge this Δt.
For the pcb by applying the equation c=ΔQ/(m.Δt) we find for a Δt of 90, a grade FR-4 pcb with a specific heat of 0.6 J/gC and a weight of 156.7 gΔQ=(156.7 g).(0.6 . (J/gC) . 90(Δt) or ΔQ 8462 J. For the glass plate with a specific heat of 0.73 J/gC and a weight of 200 g by applying the same equation c=ΔQ/(m.Δt) for a Δt of 90C we find ΔQ=(200 g).(0.73 . (J/gC) . 90(Δt) or ΔQ 13140 J; where c = specific heat capacity in joules per kilogram by Celsius, ΔQ = heat required for temperature change in joules, Δt = change in temperature and m = mass in gram.

We have found now that for a temperature rise of 90C in the heat bed we need 8.5 kJ for the pcb and 13.1 kJ for the glass plate or in total 21.6 kJ, whereas we have 72 kJ available, an overage of more than a factor three. This may lead to the conclusion that we have sufficient heating power available for heating the glass plate from ambient temperature to 110C. However, we did not take into account that we also need to heat up the copper traces on the pcb and that we have an air gap between the pcb and the glass plate, that the glass plate has a reflective aluminium coating and moreover a constant heat loss (top side glass) over an open surface of 400 mm, as well as a second (bottom side pcb) open surface of 400 mm with a constant heat loss.

Apparently a deeper investigation in the technical aspects of the heated bed was required.


Last Updated on: Mon Nov 10 22:14:45 2014