Ultimaker's v1.1 PCB

From RepRap
Revision as of 06:54, 17 December 2011 by Glenn (talk | contribs) (-paragraph replaced by {{UltimakerPCB}})
Jump to: navigation, search
Version specific info
v1.5.7 | v1.5.6 | v1.5.4 | v1.5.3 | v1.3 | v1.2 | v1.1 (UM v1.1 PCB Fix) | v1.0
Crystal Clear action run.png
Ultimaker's v1.1 PCB

Release status: unknown

Eriks ultimaker v1 1.jpg
A 5 axis RepRap ArduinoMega Pololu Shield
CAD Models
External Link

Arduino MEGA Ultimaker Shield v1.1.brd (old) Eagle CAD files These are Eagle CAD files for the PCB layout media:Arduino MEGA Ultimaker Shield v1.1.brd --Erik Mon Nov 29 00:32:06 CET 2010
Arduino_MEGA_Ultimaker_Shield_v1.1.sch (old) Eagle CAD files These are Eagle CAD files for the electric circuit media:Arduino_MEGA_Ultimaker_Shield_v1.1.sch --Erik Mon Nov 29 00:32:06 CET 2010
Arduino_MEGA_Ultimaker_Shield_v1.1.htm Parts list This is a parts list (couldn't upload .htm... will add it later) --Erik Mon Nov 29 00:32:06 CET 2010

Version 1.1 of the electronics

Eriks ultimaker v1 1.jpg

Warning: this is for version 1.1 of the Ultimaker PCB. If you have a later version of this board, this guide does NOT apply.

This is a board that's very similar to other Pololu-based electronics implementations, including RAMPS, but it can support up to 5 steppers (three for X, Y, Z, one for an extruder and one for any other function). You can add as many steppers as you need. It is designed to run at higher voltages than 12 Volts, This allows you to put 90 Watts out of one MOSFET and run your stepper motors with more torque and higher maximum speeds.


  • Arduino Mega Shield
  • Compatible with Pololu A4983 stepper drivers
  • Controls up to 5 stepper motors.
  • 3x 5Amp MOSFETs outputs (with LED indicators)
  • All pins are broken out for maximum extensibility
  • Runs from 12V to 19V.
  • Three thermistor inputs. Designed for 100K thermistor, this one is recommended.
  • Has a IDC header for adding an LCD panel (movie here)

The tools you need

Soldering requirements.jpg

  • soldering iron
  • solder
  • wire-snip pliers
  • small hacksaw


On the bill of materials, you'll find a list of all the required components for this main board. You need 3 to 4 hours to solder all of the components onto this board.

TODO: bill of materials!

Bart Bakker - 25oct10 rev.3

Erik de Bruijn - 26 Nov. rev.4 + translation to English

Julius ter Pelkwijk - 03 Dec. rev.4 Full translation to English

Step 0 Preparations

In version 1.1, there's a small mistake, it's not problematic, but it's better to fix it.
The effect of this fault is the fact that the leds next to the mosfets are permantly on, instead of showing that the mosfet is conducting electricity to the PWM exit.
On the left is some place for three leds at R27, 28 and 29.
On the downside of each must be some cutting in the lanes of the island-hole, so that the island becomes a real island.

We did this roughly before offering the boards, but you are advised to check if the island is really free. If needed, follow these instructions to correct the mistake in the v1.1 PCB

Step 1 Arduino pinheads

Check again that this is the version of your board. If not, this one is newer.

We start at the back, the side without any text, with the male pinheads.
This will be the base where the arduino will be sitting later. Carefully break or cut the pinheads to size.

The best way to get the pins well-aligned, is to put these (with the large side) in the Arduino, and then the arduino with the pins still sticking out in the backside of the PCB.
This will make sure that the pins are aligned correctly with the Arduino.
Solder the pins on the front side of the PCB, and remove the Arduino afterwards.

Take care to remove it vertically by alternating between lifting the left and right side of the PCB. You will bend the header pins if you remove it and it finally releases with a twisting motion, see the picture:

When you're done, it should look like this:
thumb left

Now we are going to place the components on printed side (with the white silk-screened texts on it). It is good practice to start with the smallest or lowest components.

Step 2 Diodes

Oriëntation is IMPORTANT!!!

- 3 diodes D1, D2, D3 - The side with the little stripe points outward from the PCB, not inward.

thumb left This is diode 1.

Step 3 Resistors

The oriëntation of restistors does not matter.

- 10 Resistors of 4K7 (Yellow, Purple, Red) R1, 4, 5, 8, 9, 11, 20, 21, 23, 24

- 8 Resistors of 100K (Brown, Black, Yellow) R2, 6, 7, 10, 12, 30, 31, 32

- 3 Resistors of 3K3 (Orange Orange Red) R15, 17, 19

- 3 Resistors of 1K8 (Brown Grey Red) R14, 16, 18

- 4 Resistors of 1K (Brown Black Red) R26, 27, 28, 29

R3, 13 en 22 stay empty.

Step 4 Leds

Oriëntation is IMPORTANT!!!

PCB seen from above: Flat side (with short legs) facing the bottom (6 o'clock). The lower 2 leds with the flat sides (short legs) towards each other.

This means:

- 3 Red leds on the left side, near R27, 28 and 29. The long legs towards the side of the resistors. The short legs end up in the holes where we cut the tracks from. Dont cut the short legs, we need it at Step 11 for making a wirebridge.

- 2 Yellow leds on the lower left so that the short legs face each other.

- 2 green leds at TX and RX, short leg facing downward.

thumb left

Step 5 Reset button

- The RESET button in the lower left corner.
- 1 Resistor R25 1K (Brown Black Red) mounted VERTICAL next to the button.

thumb left

Step 6 Capacitors (electrolytic Capacitors, mostly called elco's)

Oriëntation is IMPORTANT!!!

WARNING: The capacitors are not all aligned logically on the PCB.
Check first for every capacitor before soldering!

- The electrolytical capacitors C1, C9, C10 of 10uF with the white stripe (min) on the left side.

- C8 of 100uF with the white stripe (min) facing towards R26.

On the right side of the board will house 5 daughterboards for the stepper motors.
Under this will house the condensators C2 to C6 of 100uFon their side.
Bend well so that the capacitors are nice flat, else the steppermotor-boards wont fit.
Solder all 5 capacitors with the white stripe (min) facing the outside of the board.

thumb right

C7 stays empty.

Check now the polarity to ensure that everything is soldered correctly.
If the capacitors are not aligned correctly, they will blow up and cause toxic fumes.

Step 8 Male headers/pinheads

- 2x a double of five long near GND 5V
- 5x a double of three long right center near the letters EN, those are the jumper blocks.
- 3x a single of three long lower right at PWR/FAN
- 1x a single of thirteen long next to the RESET-knop lower left
- 1x single of two long at JP7 lower left
- 1x single of 1 at GND back left at the side. NB: the wooden frame of version 0.9.2 is coming in conflict with this pin, solutions: Cut the pin almost identically straight to the surface, mounted or not, or adapt the wooden frame. The pin is not visible on the picture.

thumb left

Step 9 Female headers/pinheads

- 10x eight female pinheads on the side of the elco's C2-C6

NB: Cut a row of eight pinheads by sacrificing the ninth one. Cutting between the pinheads is mostly resulting in two unusable pingheads where one is guaranteed one of the counted eight, so you will end up with only seven usable pinheads! This one is unusable because the restmaterial will prevent you from fitting another one next to it.
The cutting goes best if you remove the ninth pinhead first by removing it with a pair of tweezers from the row before cutting (check first the amount before pulling). thumb left

Step 10 Wire terminals

Solder the Wire terminals on the board.
Cut the little pin from the power connector or drill a little hole (due to the power cord strain relief) en solder the connector on the board.
thumb left

Step 11 Wirebridge

Go to the bottom side, where the connections were cut.
Check if the leg is really free, bend the little leg en solder this leg/wire to each of the three red leds towards the connection with PWM.

thumb left

Step 12 MOSFETs

Orientation is IMPORTANT!!!

The flat side of the 3 MOSFET transistors must be above the white line.
Add heatsinks on the MOSFET transistors and then the PCB is ready.

thumb left

Step 13 Stepperboards

The stepper boards have really delicate components soldered on them so that there are multiple and pretty easy ways to destroy them, sending them to the electronics graveyard! There are roughly 3 ways to do it:

  1. Turning the potmeters too quickly (see further), by turning too far en/of using rough tools. Use care and delicacy when handling these potmeters.<BR\>
  2. Putting the stepperboards the wrong way. This will lead to an electronical explosion and destruction when powered on, also generating sparks. See the picture below for the right oriëntation.
  3. Wrong connections of a stepper motor. Look for the right connections of the wire: Black-Green-Red-Blue. Changing the order in Blue-Red-Green-Black doesn not damage the stepper board (only turns the way the stepper motor is working). Changing the order between each other will lead to burned stepper boards.

Mounting the stepper boards need to be done the same way as with the Arduino (step 1). Put the stepper boards on the male pinheads. Lay the boards with the component side up, so that you can read 2B, 2A, 1A, 1B next to the side of the crown stem. Put these on the PCB, they will be aligned correctly.
The X, Y and Z are sitting the same, but EXT for the extruder is mirrored.
(A will be staying empty at this moment)
Solder the pinheads on the PCB and then remove the stepperboards.

thumb left thumb right

Screw now the mini potmeters all the way to the left (minimal) and turn them 90 degrees to the right. Do this very CAREFUL!
These potmeters are reducing the power that is going through the steppers.
If they are turned too far right then you will give the chip too much power, thus heating up. If the heat is too much, security will kick in the chip wont work.
You can hear this due to a ticking sound with a frequency of 0.5 seconds.

Now we can put the arduino on the lower side. After placing the jumpers the PCB is ready to be tested.

The endresult will look like the picture above.

Step 14 Place Jumpers

Dont forget to put Jumper 7 between the yellow and red led's. This is a power release. This jumper can be used to connect an on/off switch.
Put for starters with every stepper board a Jumper, exception for the Z-motor (see picture).

thumb left

The Jumpers that came with the stepper boards have as function to set the (micro)stepsize of the steppermotors.
The stepper motors that are used have 200 steps for one rotation. With the use of microstepping it is possible to get between 2 steps another 16 steps. With the help of jumpers we can adjust if we want this to be full stepping, half stepping, 1/4 stepping, 1/8 stepping or 1/16 stepping.

The smaller the step, the bigger the accuracy, but slower the movement.

The steppers are called 1, 2 and 3. With 1 is the number 1 on the PCB. In the table below is shown how the jumpers can be set:

 jumper   Yes/No  stepsize
 1     2    3
 no   no    no    full step
 yes  no    no    half step
 no   no    no    1/4 step
 yes  yes   no    1/8 step
 yes  yes   yes   1/16 step

More information about pololu steppers.

Wiring it up

With the Ultimaker stepper motors you should wire it up like this: Black, green, red, blue.


Testing the electronics

Step 1 Preparation

Remove the stepper boards and the Arduino of the PCB. Power the board with a voltage of between 12 and 20V. There are power inputs on this circuit board, but also on the Arduino Mega, make sure you power this board, the other board will receive its power via USB.

Step 2 PCB

When you turn on the power of this Mega shield, a little LED should be lit now. A common mistake: Jumper 7 is not place (see step 14) or there is a short circuit during soldering.

Step 3 Arduino

Proceed if the LED lights up. Turn of the power and put the shield onto the Arduino Mega. Re-connect the power. If everything goes well then the yellow LED should burn again.


Step 4 Stepperboards

Turn the power off and add the stepper boards on the PCB. Watch out for the orientation (see step 13)! The top side of the board should always face outward... the bottom side should alight with the jumpers (that are used to set micro stepping). If everything goes well there should be a yellow led burning. If you want to be extra safe, you could decide to add them one-by-one.

The PCB is now ready to be mounted to the bottom of the Ultimaker or to your RepRap, Mantis or other machine. Also connect the motors and microswitches to the screw terminals.


Bernhards Simple LCD

You can directly hook up an LCD display. This features no buttons like the advanded LCD.

| GD   E     RS    N/C    N/C |
| 5V   DB4   DB5   DB6    DB7 |

And this goes connects to the "normal LCD layout". For pin 15/16 check the datasheet. They are only necessary if there is a background light.

pin name connect
1   VSS  GND
2   VDD  5V
3   V0   GND or mid poti between Gnd and 5V
4   RS   EXP1
5   R/W  GND
6   E    EXP1
7-10 DB0-3 not connected
11  DB4  EXP1
12  DB5  EXP1
13  DB6  EXP1
14  DB7  EXP1
15  A    Anode usually VCC, maybe needs a resistor
16  K    Cathode, usually GND

Firmware changes: Download the firmware from here

configuration.h: enable the fany stuff:

#define FANCY
#define FANCY_LCD

pins.h: add LCD_PINS and change error to warning

#elif MOTHERBOARD == 3
#ifndef __AVR_ATmega1280__
#warning Oops!  Make sure you have 'Arduino Mega' selected from the 'Tools -> Boards' menu.
#define LCD_PINS1 (byte)16 
#define LCD_PINS2 (byte)5
#define LCD_PINS3 (byte)6
#define LCD_PINS4 (byte)21 
#define LCD_PINS5 (byte)20
#define LCD_PINS6 (byte)19

compile while having board set to "arduino mega 2560".

LCD with buttons

This is an add-on board for Hitachi parallel interface LCD controllers.
. Currently the firmware uses two lines of 16 characters.

The two buttons are not implemented yet in software.

The LCD should be connected through the 2x5 pin header, called expansion header 1 (EXP1). The pin-out for expansion header 1 is as follows:

 1. 5V
 2. GND
 3. I/O pin 36 on Arduino
 4. I/O pin 22 on Arduino
 5. I/O pin 34 on Arduino
 6. I/O pin 24 on Arduino
 7. I/O pin 32 on Arduino
 8. I/O pin 26 on Arduino
 9. I/O pin 30 on Arduino
10. I/O pin 28 on Arduino

If you consider the PCB with the limit switch terminals and X, Y, Z axis terminals as the top side of the board, the pinout is as follows:

| 2   4   6   8   10 |
| 1   3   5   7    9 |

Through an IDC cable these should go into a ribbon cable. You can attach the ribbon cable to the display directly, or use a daugtherboard that maps the ribbon cable to the Hitachi 14 pin connector.

To make the daughterboard, you can use the following Eagle files (by JJShortcut):

The HITACHI display has a pinout header of 14 pins. These are:

 1. Pin 2 on cable = GND
 2. Pin 1 on cable = 5V
 3. Pin 9 on cable = 30
 4. Pin 7 on cable = 32
 5. Pin 5 on cable = 34
 6. Pin 3 on cable = 36
 7. Not connected
 8. Not connected
 9. Not connected
10. Not connected
11. Pin 4 on cable = 22 on Arduino
12. Pin 2 on cable = GND
13. Pin 6 on cable = 24 on Arduino
14. Pin 2 on cable = GND
15. Pin 1 on cable = 5V
16. Pin 2 on cable = GND

Thermocouple sensor (AD597)

When you have played a lot with DIY 3D printers, you'll find that an accurate temperature measurement of your extruder is very important to achieving the best result. Thermocouples are more reliable and more accurate sensors than thermistors, but the also are more pricey because you need to have the measured signal amplified with a special chip. This chip (in this case AD597) is on the tiny Ultimaker TC board.

Using it with the v1.1 PCB

There v1.1 board is fully compatible with this thermocouple sensor when you select the thermocouple firmware from ReplicatorG from the Ultimaker servers, but connecting it is slightly tricky. The only thing that you need to know is that it needs to amplify the signal of the type K thermocouple, so it needs power. If you give it 5V, the measurement will be correct, but the TEMP1, TEMP2 and TEMP3 headers only have signal and ground inputs.

Note: it is very important that the resistors R22 and R23 are NOT mounted. The resistors R22 and R23 are meant for use with a thermistor based measurement only! If they ARE installed, you can cut them without desoldering, because if you have a thermocouple it is unlikely that you will go back to thermistors. Similarly, if you use the other thermocouple inputs (therm2 or therm3) you need to leave out resistors R19 and R21 or R3 and R4 (which are all located next to R22 and R23).


Note: follow this specific order:

  1. Connect the 5V to the board.
  2. Power up the Arduino by connecting it to the USB port of your computer.
  3. Connect the ground (- or GND) to the thermocouple board. The blue LED should light up on the little thermocouple board.
  4. If you already have the software installed: Open up ReplicatorG, look at what reading you get in the control panel.
  5. Connect the signal wire. See if the value changes. If it does not, you have the wires connected incorrectly or the firmware tries to read a different input.

The thermocouple board has three connections to the Ultimaker PCB, signal, power (+ or 5V) and ground (- or GND). The preferred wire colors are brown or any other color, red and black, respectively. For the v1.1 board, the + is not available on a screw terminal, so you need to make a connection to the 5V header, which is the 2nd one from the right, as seen in this picture:


The Ultimaker thermocouples have Yellow and Red wires. The yellow one goes into the + of the little thermocouple sensor board, the red thermocouple wire goes into - of the thermocouple board. Cut the thermocouple wire to exactly 15 centimeters, this is optimal because the wire will pick up less interference (the shorter the better) but not be too short (which is a problem for the sensor chip, it thinks the inputs are shorted out).

Checklist / What to do if it doesn't work

  1. Always make sure you're running the Ultimaker firmware. Installation instructions can be found [http://wiki.ultimaker.com/Software_setup_guide#Firmware here
  2. The temperature goes DOWN to 0 if I heat up the thermocouple. This means that you have switch the thermocouple wires.
  3. The values are incorrect: Check if the resistors are left out or removed (see above).
  4. The value is 499.9 degrees: Check if all connections are correct, and if reliable wires are used.
  5. Does the temperature fluctuate too much? Check if C1, C9 and C10 are installed.
  6. The thermocouple is nothing more that two wires of a specific metal that are connected together at one end. This is the measurement end. You can make your own by fusing the end together (do not use solder, it will melt at normal operating temperatures of the extruder. The original thermocouple supplied with Ultimakers has a standardized thermal resistance to the aluminium heater block, so this will give the most reliable measurement.
  7. Using your own firmware? The AD597, as used in the Ultimaker thermocouple PCB, is fully compatible with the AD595. Make sure that the AD595_THERMOCOUPLE is defined and thermistor measurements are turned off.
  8. If you switched the black and signal wires, the LED can be lit, but this is no confirmation that you've wired it up correctly. Incorrect wiring may damage your thermocouple sensor board.
  9. The thermocouple always shows room temperature, but isn't changing when I warm up the thermocouple with a lighter: the AD597 chip is currently in self-measurement mode. If the + and - inputs of the thermocouple have a very low resistance, it will not give you the temperature of the thermocouple, but of the chip itself. Check this by placing a warm finger on the chip. If the value change quickly, this is indeed the case. Extend the thermocouple wires with terminal blocks or solder them together to get a higher resistance between the thermocouple inputs.