From RepRap
Jump to: navigation, search

This page describes something which is no longer the most recent version. For the replacement version see: DarwinExtruderController 1 2

HOWTO: Building a stripboard Extruder Controller



Tools and consumables

  • A soldering iron and accessories (see Electronics Fabrication Guide).
  • Solder
  • Electric drill or at least a suitable drill bit
  • Some wire for jumpers/links - thicker wire for 12V lines.
  • Wire strippers
  • Small pliers or tweezers


  • An 18 pin IC socket
  • U1: PIC16F628 microcontroller
  • U2: SN754410 quad half H-Bridge
  • T1: TIP110/TIP120 darlington NPN
  • R1, R5: 200Ω or 220Ω resistor
  • R2, R3: 1kΩ
  • R4: Reference resistor, 10K typ. (*)
  • C1: 1μF electrolytic or tantalum capacitor(*)
  • Connectors. A simple low cost choice is to use header pins and matching sockets. Try to get keyed pins and sockets that prevent you from putting the connector on backwards, because if you do it will most probably destroy the module and possibly other connected modules. Take great care! Alternatively, you can directly solder wires into the board after putting the modules on the machine in which case you don't need any connectors. If you use connectors, you need:
    • J1, J2: four pin connector (for comms)
    • J5, J6: three pin connector
    • J3, J4, J7: two pin connector
  • A piece of stripboard with 2.54mm (0.1") spaced continuous track.

(*) These components must be calculated to match your thermistor. See below.


This is the schematic diagram of the circuit you will be building. See reading a schematic to understand the various parts.


Note: this schematic is out of date. The connector wiring is incorrect. Please update me! In the meantime, refer to schematic in repository.

Preparing the board

Unless the surface of the copper strips are bright and shiny, rub down with a fine wire brush, clean pan scourer or fine grit abrasive paper.

Making the board

BuildingAStripboardExtruderController-ExtruderStripboardTop SN754410.png

Extruder stripboard layout, component side.

Board connections

The connector pins are numbered from the top of the board down, when looking at it as pictured.

  • J1 Comms in
    1. Comms inward (from previous device in ring)
    2. +12V
    3. Ground
    4. +5V
  • J2 Comms out
    1. Comms outward (to next device in ring)
    2. +12V
    3. Ground
    4. +5V
  • J3 Heater element
  • J4 Thermistor (temperature) sensor
  • J5 Motor chopper sensor (optional)
  • J6 Out of material sensor (optional)
  • J7 DC Motor connector

Final steps

Ensure you have a heatsink attached to the power transistor.

When you first turn the heating element on, start with a low power. Check it is heating as expected and then incrementally check at higher power outputs.


More powerful motors

The 754410 is capable of supplying an amp on a reliable basis. Attempts to exceed that will result in sudden inexplicable motor stalls, intermittent halts, and finally a crackling death. It has been observed that an electric screwdriver motor will take significantly more than an amp, and these will need more powerful drivers such as a power transistor - which limits them to forward motion only. Don't forget a suitable anti-backlash diode.

Alternate power transistors

A BD681 is a suitable alternate part to the TIP110/TIP120 if more readily available. Note however that the pinouts are in the reverse order, so you must either wire the board differently or simply face it in the opposite direction. Also, the BD681 and TIP120 are rated at 4A continuous whereas the TIP110 is only rated at 2A continuous. This means with the BD681 or TIP120 you can heat more quickly and reach a higher temperature -- choose your heating element to suit.

Heating element

The heating element is made from nichrome wire. The correct length must be used to prevent drawing too much current for the power supply to handle or too little current to sufficiently heat the material.

First you must select a suitable power output, in general this should be as high as you can afford in your total energy budget. So for example, if your power supply is rated for [email protected] and the motors and other parts use 6A at peak, then you have 4A to play with for the heater. Ensure you don't choose a current that is too high for the switching transistor deal with. In the schematic above a TIP-110 is used which can handle 2A continuously and 4A for short pulses. For safety, we will restrict ourselves to 2A.

By Ohm's law, V=IR or equivalently R=V/I. So R = 12V / 2A = 6Ω (ohms). So the desired resistance for the nichrome wire is 6Ω.

If you check the specifications for your nichrome wire, it will have a value in ohms/meter at a given temperature. You want the value at around your anticipated working temperature. The resistance drops as the temperature increases. The dropping resistance raises the temperature, which in turn drops the resistance further. Luckily this doesn't go on forever but it leads to fairly inaccurate power consumption if you don't have it right.

Say your wire is rated at 13.4Ω/m at 208C (as mine is). Then to get the desired 6Ω, you need 6Ω / 13.4Ω/m = 0.447m or around 45 centimeters.

This should be connected with heavy gauge wire and wound around the object to heat (which much be non-conductive or electrically insulated).

Similarly, if you wish to drive 3A, which you can quite happily do with a BD681, you would use 30cm of wire.

If you decide to drive a higher current than your transistor is rated for, remember not to set the output power to full or you will probably damage the transistor (and possibly yourself). Not recommended

How to estimate the resistance at your working temperature if your wire specs only have it for a different temperature


See the main Extruder Controller page for firmware.

A snapshot of the latest source is available for viewing


If you experience trouble, please share the problems (and resolutions) with us.

Testing The Unit

Attaching the thermistor is currently essential. The extruder motor will not turn until the thermistor is connected.

Testing is accomplished with the "poke" command from the SNAP firmware/tools directory. First, test your communications link as per the serial controller board section.I used device /dev/ttyUSB0 - a serial USB adaptor. The -v option gives debugging, which tells you if the device is sending an ACK back or not. The device number for the first extruder is 8; further extruders may be added later.

Extruder Motor

To get the motor to go forward, start off gently and then increase the power initially, send the "extrude" command to extrude at rate 50:

echo 1 50 || poke -d 8 -t /dev/ttyUSB0 -v

and this turns it off:

echo 1 0 || poke -d 8 -t /dev/ttyUSB0 -v

If that doesn't make the motor move, and the circuit is not warming up, then increase the value from 50 to 200 and try again.

Testing The Thermistor

The command:

echo 10 || poke -d 8 -w -t /dev/ttyUSB0 -v

Should return 3 numbers on the end of the output that are related to the temperature of the thermistor. It's quite sensitive and you should be able to make the value change by holding the thermistor between your fingers. When you let go, it should return to its previous value.

Testing The Heater

Now to test the heater element. Ensure that your cables are up to carrying the amperage that your element will draw - add a set of screw terminals to allow a heavier duty supply if necessary. The following will set the heater element to 88:

echo 9 88 255 || poke -d 8 -t /dev/ttyUSB0 -v

[We also need to know when the element has reached working temp.]

See Also

-- Main.SimonMcAuliffe - 03 Feb 2006