Google+ post by DIY 3D Printing on 2014-01-16 23:19:44 UTC

But how to control the temperature of hotend and bed in software?
I haven’t found any viable output channels in MACH3 that one could use here and no good hardware to do this and that runs from a 45-48V stepper power supply.

there is an answer I think. they use some sort of additional controller boards. here: http://cnc2printer3d.wordpress.com/the-concept/

1: it’s a single person, not a group
2: he doesn’t control the temperature in software at all.
3: I have tried his Mach3 add-oh and it is buggy. e.g. something as simple as path handling doesn’t work. the STL files cannot be in a path that has a space in it’s name (like your very user directory in a German Windows)

linuxcnc is hackable enough so that anything is possible. Convert temperature to a variable frequency signal, read it on one parallel port pin, run a PID loop, and output PWM to the gate of a FET that controls the heater with another parallel port pin: http://www.anderswallin.net/2010/11/temperature-pid-control/

How do you read an analog signal on an LPT pin? …and why?

The quick-and-dirty hack for reading temperature we came up with was: Wire an IC555 timer to generate a square-wave output with a frequency set by an RC-pair. Have the resistor be a Thermistor. This creates a very nonlinear response of the frequency to temperature. Around 1Hz was room-temperature, and the extruder worked well at around 40-50 Hz IIRC.
Why? Because we wanted to do PID-control of the nozzle temperature with minimal hardware. One IC555+thermistor to measure temperature. One FET with PWM drive as the heater. Two (digital) parallel port pins used in total for temperature control.

What about a microcontroller? They cost cents, have ADCs, have outputs, have serial ports and can do PWM and PID much faster then any PC ever could.
They are INTENDED for tasks like that.