ReFilament’s electrical system consists of six major components and their integration, as listed above. The system is designed around an Arduino Uno (1), which manages two control systems. The Uno takes analog measurements from an NTC thermistor and uses them to control the high-power nichrome heater coil. It also takes digital diameter measurements from a set of digital calipers through a custom level shifter in order to change the drawing speed of our spooling system, thereby regulating the diameter of our filament.
The inputs to our control systems come in two very different forms. For the measurement of the extruder temperature, we’ve designed a Wheatstone bridge (3) to reject common-mode noise in the thermistor measurement, and the potential across the bridge is fed through a unity-gain instrumentation amplifier to an analog pin on the Arduino Uno. For the digital caliper measurement on the other hand, the 1.8V current-sink signal from the calipers has to be level-shifted to a 5V current-source signal. We achieved this with two op-amp comparators at ~1V, and referencing the calipers to a 1.8V linear regulator (2).
The control outputs to our extrusion system, in contrast to the inputs, are all very similar. They all take the form of an N-type field-effect transistor on the low side of a high-power plant. Our heater coil and extrusion motor are both low-side driven with PSMN022-30pl power FETs (4 & 5), and our smaller spooling motor uses a BS170 signal FET(6).
The Arduino also controls the enable input to our 200W server power supply, which allows it to wait to energize the high-power system, preventing any stray startup-sequence transients from affecting our large motors (1). In addition, it controls two indicator LEDs on a heads-up panel to inform the user of the state of the heater coil, and whether the extruder is of a sufficient temperature to burn (7). Inputs and outputs to the control system are synchronized over a serial interface with the Raspberry Pi that maintains the user interface.