Extruder Controller v3.6

Overview

flickr:5239144255

The extruder controller is a compact little board based on the Arduino Diecimila. This board contains all the electronics required to drive one extruder, as well as extra electronics to drive a heated/automated build platform. It has built-in USB, so you can talk to it and program it with a normal USB cable. It has been redesigned with much higher power needs, so it has an ATX power header to provide the power. This means power is not coming over the RS485 cable which has the side effect of reducing noise.

High Power MOSFETs

flickr:5241478671

This extruder controller is a powerhouse. We pored over datasheets to find the perfect MOSFET for our application. These MOSFETS don't even break a sweat when controlling demanding loads like the MK5 extruder or the Thingomatic Heated Build Platform. Both of those can draw upwards of 5A at 12v. Gone are the days of relays and workarounds for weak MOSFETs that overheat.

Thermocouple Support

flickr:5242073842

Accurate temperature measurement is critical for high quality 3D printing. Thermistors are nice for general, low-quality temperature measurement. Once you get above 150C, its time to step it up. Thermocouples are a really solid way to measure high temperatures. They are accurate, reliable, and high tolerance. They also have the side benefit of being easy to mount. Simply bolt the thermocouple to the side of your thermal core and you're ready to go.

Built-in USB

flickr:5242073914

We've added an onboard FTDI chip which means it is even easier to program your extruder controller. Simply plug in a standard USB cable and upload your program. No need for a special cable with confusing polarity instructions. One less thing to worry about on your journey to 3D printing perfection.

Interfaces

USB to Serial

With the onboard USB described above, the extruder controller can easily be connected to your computer. It will show up as a serial device and functions identically to a normal Arduino Diecimila. The board accepts a standard USB Type B connector.

flickr:5242074028

RS485

THIS IS NOT ETHERNET!!!

Do not plug this board into your router or computer ethernet port. This could cause Bad Things to happen.

The extruder controller talks to the Motherboard over a serial connection protocol called RS485. The RJ45 jack on the jack connects the extruder controller and the motherboard together using a low-cost, off the shelf cable.

Pinout

PIN NAME FUNCTION
1 RS485A This is channel A of the RS485 serial communications protocol.
2 RS485A This is channel B of the RS485 serial communications protocol.
3 N/C This pin is not connected to anything.
4 N/C This pin is not connected to anything.
5 N/C This pin is not connected to anything.
6 GND This pin is connected to ground on the extruder controller.
7 GND This pin is connected to ground on the extruder controller.
8 GND This pin is connected to ground on the extruder controller.
flickr:5241479099

Power Supply

The extruder controller is powered through a standard 4 pin Molex power connector. This connector delivers +12V which is used to drive the peripherals. This +12v is also converted internally to +5V in order to drive the rest of the electronics on the extruder controller.

Pinout

PIN NAME FUNCTION
1 N/C This pin is not connected to anything.
2 GND This pin is connected to ground on the extruder controller.
3 GND This pin is connected to ground on the extruder controller.
4 +12V This pin is where +12V should be provided.
flickr:5241479187

Thermocouple

The extruder controller now uses Thermocouples as its main temperature measurement method. Thermocouples are much more reliable, can handle temperatures of over a thousand (1000) degrees celsius. They are also extremely easy to mount.

In particular, this board is designed to be used with Type K thermocouples, which is a very standard type of thermocouple.

Thermocouples are polarized, so if you wire it up wrong, the temperature will not read correctly. The thermocouples we ship are color coded, so wire it up based on the colors.

It may also help to trim down the thermocouple leads so that they fit nicely in the terminals. About 5-6mm is the appropriate length for the bare wires.

Pinout

PIN NAME FUNCTION
1 T- This is the negative side of the thermocouple. It should be Red.
2 T+ This is the positive side of the thermocouple. It should be Yellow.
flickr:5242074408

DC Motor Driver

The extruder controller has an H-bridge on it that can control a single DC motor, such as the motor for a MK5 Plastruder. The H-bridge operates with +12V voltage levels.

Pinout

PIN NAME FUNCTION
1 1A This is one side of the h-bridge. Typically the red motor wire goes here.
2 1B This is the other side of the h-bridge. Typically the black motor wire goes here.
flickr:5242074560

Power MOSFETs (x3)

The power MOSFETs are what control the extruder heater, build platform heater, and the conveyor belt motor. These little chips are beasts that can handle 10A of current without breaking a sweat. They can easily power your MK5 or 120mm x 120mm heated build surface.

They are labeled 'Heater', 'Extra', and 'Fan' respectively.

The pinouts are the same for all 3 MOSFETs, and looking at the board with the USB port at the top, pin 1 is toward the bottom.

Pinout

PIN NAME FUNCTION
1 +12V This pin is connected directly to the +12V power supply.
2 Output This pin is connected to the drain of the N-channel MOSFET. When the MOSFET is on, this connects to ground. Otherwise, it is high impedance.
flickr:5241479635

Quadrature

The extruder controller has optional support for quadrature encoding. This allows you to measure the speed and position of the extruder motor. There is a 4-pin header on the extruder controller that you can plug into.

Pinout

PIN NAME FUNCTION
1 +5V This pin is connected to the +5V power supply and provides power to the encoder board.
2 GND This pin is connected to ground on the extruder controller.
3 A This is the input pin for the quadrature 'A' channel.
4 B This is the input pin for the quadrature 'B' channel.
flickr:5241479723

I2C

The ATMEGA168 chip that powers the extruder controller is capable of communicating over I2C. We have included a header that allows you to connect to the I2C hardware and hook up whatever you like to it.

Pinout

PIN NAME FUNCTION
1 +5V This pin is connected to the +5V power supply and provides power if needed.
2 GND This pin is connected to ground on the extruder controller.
3 SDA This is the I2C data line. It has a 4.7k pullup resistor on it.
4 SCL This is the I2C clock line. It has a 4.7k pullup resistor on it.
flickr:5241479811

ICSP

The ATMEGA168 needs to be initially programmed, and the ICSP header is the connection used to do that. We've created a header for our use, and you're welcome to use it for experimentation or hacking as well. Keep in mind, many of these pins do double-duty during active use of the board.

Pinout

PIN NAME FUNCTION
1 MISO Master In - Slave Out - SPI
2 VCC This pin is connected to +5V on the extruder controller.
3 SCK Clock - SPI
4 MOSI Master Out - Slave In - SPI
5 RESET A low voltage resets the extruder controller board.
6 GND This pin is connected to ground on the extruder controller board.
flickr:5242074984

Analog

The ATMEGA168 has a few extra unused analog pins. We've provided headers so that you can interface with them. The headers are simple .100" pitch headers which makes things simple.

Each set of analog has +5 and GND provided to make your life easy.

The analog pins available are: A2, A3, A6, and A7

Pinout

PIN NAME FUNCTION
1 VCC This pin is connected to +5V on the extruder controller.
2 GND This pin is connected to ground on the extruder controller board.
3 INPUT This is the analog input which is connected to an ADC pin on the ATMEGA168.
flickr:5242075092

Schematic

flickr:5218752364

Partlist / BOM

Source

flickr:5241501143

The Extruder Controller v3.6 is Open Source Hardware and is licensed under the GNU GPLv3.

Download

History

The Extruder Controller v3.6 is a derivative of the Extruder Controller v2.2 which was originally designed by Zach Hoeken of MakerBot Industries.

Unless otherwise stated, the content of this page is licensed under GNU Free Documentation License.