I implemented the simplest form of temperature control, known as bang bang control, which is just turn the heater on if it is too cold and turn it off when it is too hot. This seems to work well, here is graph to compare with the last post. The time divisions are 4 minutes.
The warm up time has reduced from about 10 minutes to just over 1.5 minutes and you can't really notice any change in temperature while it was extruding.
Here is a graph on a faster time base of 1 minute per division showing the heater control signal. This one has not been inverted so temperature is upside down.
As you can see there is some ripple on the temperature of the order of about 10°C. I could probably improve that with PID control but I don't know if it will make much difference to the build quality. I might do it as an exercise out of interest as I have not implemented PID before.
There is a lot of noise in the system, which is not surprising with wires all over the place. It should get better when I make a PCB or veroboard version and mount it near the extruder. Fortunately glitches don't really matter because the thermal time constant smooths it all out.
The next task is to link it to the main controller and see if I can get accurate temperature readings back from it.