Extruder Controller v2.0
Overview
This board is a combination of the
PWM Driver Board,
DC Motor Driver Board,
Temperature Sensor Board, RS485 comms, and an
Arduino! All on one board. It has screw terminals for easy hookup, as well as a power jack for power and an IDC header for the rotary encoder. Its an all-in-one solution for controlling an extruder.
Some highlights:
- Onboard atmega168 - program it just like an Arduino because it is an Arduino.
- 3 x MOSFET drivers for controlling up to 14A @ 12V. Perfect for heaters, fans, solenoids, etc.
- 2 x H-Bridges capable of up to 2A each. Control 2 motors, or control one stepper motor.
- A temperature sensor circuit for reading the standard 100K thermistor.
- RS485 connection for noise-free communications with the motherboard.
- IDC header for connecting a Magnetic Rotary Encoder.
- ICSP header for manual programming.
- It mounts directly to the Pinch Wheel Extruder!
Get It!
Fully Assembled
- Coming soon!
Full Kit
- Coming soon!
Raw Components
- Buy the components with ease at parts.reprap.org
Files
You can
download the release file from SourceForge that has a bunch of helpful files for this board. It contains:
- GERBER files for getting it manufactured
- PDF files of the schematic, copper layers, and silkscreen
- Eagle source files for modification
- 3D rendered image as well as POVRay scene file
- exerciser code to test your board.
Schematic
Interface
Pinout
Here is a handy reference that tells you what pins are hooked up to what features of the board.
H-Bridges
The extruder controller has two separate H-bridge chips onboard. The chips are the
Allegro A3949 which is a pretty sweet and modern full H-bridge chip with a simplified interface. This makes it really easy to control DC motors. Since there are two h-bridges onboard, you can control 2 DC motors either forwards or backwards. You could also control a single stepper motor if you like.
The interface for controlling these motors is very easy. There are two pins: PHASE and ENABLE. I like to call these pins DIRECTION and SPEED. The DIRECTION/PHASE pin controls the polarity of the output, aka which direction the motor turns. The ENABLE/SPEED pin controls if the output is on or not. By using PWM on the ENABLE/SPEED pin we can control the speed of the motor. Yay!
The outputs are labeled Motor 1 and Motor 2. Each motor has an A and B output. There are also LEDs associated with each chip nearby. There is a direction LED which lights up when the direction pin is HIGH, and a speed LED which lights up when the enable pin is high. Blinking LEDs FTW.
MOSFETS
The extruder controller has three separate power MOSFET chips onboard. The chips are the
NIF5003 which are protected 42V 14A N-Channel MOSFET chips. These bad boys can handle a lot of current, which is good for us and good for you.
Basically, these chips act just like little switches that can run a lot of juice. Two of the chips are wired up to normal Digital pins and can only be turned on or off. One of the chips is wired up to a PWM pin and can be controlled in full PWM mode. All of the chips are wired directly to the main power supply voltage which is usually 12v. The table below lists which pins have what functionality and their common usage.
Thermistor
The extruder controller has the onboard circuitry required to measure the temperature of a standard 100K
RepRap thermistor. If you wish to measure a thermistor with a different value, all you have to do is change the resistor value. There are screw terminals for you to hook up your thermistor which makes doing temperature measurement very simple. Just wire it up, use the proper thermistor table in your code, and you're good to go. The circuit is identical the the circuit in the previous
Temperature Sensor Boards so you can easily re-use the old code.
RS485
This is one of the major new features of the Generation 3 electronics.
RS485 is a robust serial communications channel. It uses differential signaling to provide very noise tolerant communications over relatively long distances, such as in a
RepRap machine. RS485 is how the
RepRap motherboard communicates with all the tool controllers. It is a very mature technology and is also pretty cheap. Definitely rad.
RS485 is a half-duplex channel, which means data can either be transmitted OR received at one time. This makes things a little bit tricky, but don't worry... we have it under control. What you need to know is that there are two wires that need to be hooked up: A and B. These are arbitrary names for the wires due to the differential signaling. Basically, you just have to make sure that all the A's and all the B's are wired up together.
To give a bit more insight into the way RS485 is implemented on the Extruder controller, we have given full control over the RS485 chip to the controller. It can independently enable or disable transmitting and receiving. One of the cool things about RS485 is that you can listen in to your own transmissions. This is a critical feature we exploit to ensure that we keep the transmit functionality enabled until all of our data has had a chance to be sent out.
Quadrature Input
This is a handy little feature of the extruder controller board. It has a built-in header to accept the
quadrature encoder input from the
Magnetic Rotary Encoder board. Since it uses and IDC cable, its very easy to hook up. Just plug and play!
Alternatively, if you'd like to use your own rotary encoder that outputs quadrature signals you can easily hack an IDC cable and plug it directly into the board.
DC Power Jack
The extruder controller gets its power from a DC jack. This is a 2.1mm barrel size jack, same as used on the Arduino. The extruder controller has an onboard voltage regulator to produce the 5v required for powering all the logic chips, as well as the optional servo motors. The H-bridges and MOSFETs are powered directly from this input voltage. The maximum allowable voltage is 18v to avoid overheating the 5v regulator.
Serial Header
This is the serial communications header for programming the board. It uses the same USB<->TTL header format as the
Sanguino,
Boarduino, or any of the other minimal Arduino clones. You can find out more information about the cable and where to get it on the
Sanguino website. Its very easy to use.
I2C Headers
The extruder controller has left the I2C pins open for use as an I2C bus. This means you can use any number of really cool peripherals very easily! One idea is to use an I2C based LCD screen to print out information about the extruder for example.
The SDA and SCL pins even have built-in 4.7K pullup resistors to make configuration of the I2C bus hassle-free and automatic. The table below lists the pin-out of the header. The labeling in the v2.0 board is not too good, so pin 1 is towards the top of the board and in to the top and the right in the picture.
Servo Headers
This may be my favorite feature of the extruder controller: servo headers! We had a few extra pins left on the Arduino after implementing the required functionality, so we decided to have some fun. Thats why the extruder controller has the capacity to control two servo motors in addition to everything else! Its really, really, really easy too, thanks to the Arduino
Servo library. Simply plug your servo in and its ready to go.
We use Arduino pins 9 and 10 for the servos because they are connected to the timer output pins. If you want to use pins 9 or 10 for something, you can just hook up to the headers directly. We supply the pin, 5v, and a ground pin which means you can easily hook them up to whatever you want. The pinout is the standard servo pinout, which is displayed below. The pins should be labeled, but it may be hard to see. Pin 1 is closest to the D9/D10 silkscreen.
Extra Headers
We had a few pins left over, so we decided to break them out for you to use however you like. The pins are A0, A6, and A7. The SMT version of the atmega168 has 2 extra analog pins, which means you get even more awesomeness. The pins are broken out exactly like the servo pins with the exception that they do not have Servo control built-in to the hardware. It is possible to use software to control extra servos, but it might be a bit tricky. However, it is easy to use the extra pins to measure analog signals. The pinout is below. They should be marked on the silkscreen, but like with the servos, the signal pin is closest to the pin name (A0, A6, A7, etc.)
Circuit Board
You can either
buy this PCB from a supplier, or you can make your own. The image above shows the professionally manufactured PCB ready for soldering.
Components
Build Process
This board contains surface mount parts. Trust me when I tell you that it is really, really, really easy! The hardest part about SMT soldering is getting over your fear and staying calm. I've shown complete beginners how to do it, and they had no problems.
There are four parts to building a surface mount board using the
Hotplate Reflow Technique:
- Apply solder paste to every exposed SMD pad
- Place each SMD component on its appropriate pad
- Place populated board on a cold hotplate. Turn hotplate on. Board solders itself!
- Solder in remaining through hole components.
Apply Solder Paste
Okay, so this part is pretty easy: get your solder paste syringe and start applying solder paste to every SMD pad. I like to use a squeeze/tap method. That is, I squeeze a bit of solder paste out, then tap the place where it goes, rinse and repeat for every exposed pad. Do not put solder paste on pads with holes in them. You'll solder those in step #4.
Place Components
This is probably the trickiest part. Its easiest with tweezers and some sort of magnification. A bit of patience and you'll get it no problem. Since nothing gets soldered yet, you can easily try and try again if you mess up.
TODO: Show pictures of each individual component placement.
Hot Plate Reflow
I prefer to start with the hotplate off. I burned a few boards one time by putting them on when it was already hot. Instead, carefully place the board on the cold hotplate, thn turn the heat up to a low temperature. Wait a few minutes for things to get cooking, and you'll see the small components begin to 'pop' as the solder goes molten. Keep an eye out for components that stick together. If that happens, simply nudge them apart. Wait until you see the largest component leads go silver. Usually the capacitors are the last to go.
Once they have soldered, simply turn the hotplate off and let it cool down.
Solder Through Hole Components
16Mhz Crystal
This can be inserted in any orientation. Make sure you trim the legs afterwards.
Quadrature Header
There is a notch on the part that lines up with the 'notch' on the silkscreen. It should face the outside of the board. Make sure to solder it in the proper orientation.
ICSP Header
There is a notch on the part that lines up with the 'notch' on the silkscreen. It should face the outside of the board. Make sure to solder it in the proper orientation.
Thermistor / RS485 Screw Terminals
These are the same component. Make sure you solder them with the openings facing the outside of the board.
MOSFET Terminals
These are the screw terminals for the MOSFETS. Make sure you solder them with the openings facing the outside of the board.
H-Bridge Terminals
These are the screw terminals for the H-Bridges. Make sure you solder them with the openings facing the outside of the board.
Servo Headers
These are the headers for attaching servo motors. Its easiest to solder them in if you put the long ends into an IDC connector and use that to hold them in. It can be a bit tricky though.
Serial Headers
These are the headers for the serial connection. Its easiest to solder them in if you put the long ends into an IDC connector and use that to hold them in. It can be a bit tricky though.
I2C Header
These are the headers for the I2C bus. Its easiest to solder them in if you put the long ends into an IDC connector and use that to hold them in. It can be a bit tricky though.
Reset Button
The button will snap into place. Solder it in and you're good.
Extra Headers
These are extra headers for the unused pins. Its easiest to solder them in if you put the long ends into an IDC connector and use that to hold them in. It can be a bit tricky though.
DC Power Jack
This is a power jack for powering the board. It will only solder in one direction, so solder it in and you're good to go.
Burn the Bootloader
Program It!
Index
to top