The RepRaps we built used all custom electronics for the motor controllers, sensors, ADC, and heater control. The orginal RepRap
used 4 L298 H-Bridge chips to control the stepper motors. This setup also used the RaspberryPi Model B which only had a 26 pin header
which caused the changes for controlling H-Bridge chips which require four control pins per motor. To cut down on pins we used a 2
not gate chips (also called Hex inverters - TI 7404).
Another challenge using the RaspberryPi is it's lack of built-in analog to digital converter (ADC). So it lacks the analog I/O pins
the Arduinos have. In order to measure temperature of the extruder and heated bed of the RepRap, we must read an analog value over
the thermistor sensor for each heater. The first implementation used a 555 timer chips (we had a bunch of them) setup in
multi-vibrator mode with the thermistor setup in the so the output pulse varied as the temperature varied. We the used the GPIO
on the Pi to read the high pulse time of these 555 timers and used that to calculate the temperature. This was fairly accurate but lacked the
precission we needed to get good readings especially at the high temperatures needed to melt PLA.
We eventually ditched the 555 timer circuit and decided to use seperate ADC chip to handle the readings. We used the standard MCP3008 10 bit ADC chip
because it was available in the DIP package that we could use in a standard breadboard and there was existing Python libraries to read the values.
We setup a simple voltage divider for both the extruder and heated bed 10K Ohm NFC thermistors with 1K Ohm resistors. This gave a much better readings even
at the 200 degree C range. At this point we were done with the prototyping stage and went to fully a soldered board.