Motherboard 1.2

From RepRap
Revision as of 13:48, 17 March 2010 by TheOtherRob (talk | contribs)
Jump to: navigation, search

Overview

Jump to the Index / Table of Contents

Motherboard 1 2-motherboard-modified-small.jpg


The top picture shows the board configured for RepRap. The second picture shows it configured for use in a MakerBot Cupcake machine. The few differences are described in the appropriate sections below.

This board is the brains behind the Generation 3 Electronics. The heart is a Sanguino which is an Arduino-compatible board that is powered by an ATMEGA644P chip. It has connectors to hook up all the various peripherals that you'll need to drive a RepRap machine. It has headers for three stepper drivers, as well as 4 RJ45 connectors for Extruder Controller Boards. Not only that, but it has an SD card and a connector to hook it up to an ATX power supply


Some highlights:

  • Onboard atmega644p - 64K flash space, 4k ram, 32 I/O pins, Arduino compatible.
  • 3 x Stepper driver connectors with min/max inputs.
  • Built-in SD card socket for printing from file and buffering large print jobs.
  • RS485 connection for noise-free communications with extruder / toolhead controllers.
  • ATX power connector for power. It can also turn the power supply on and off.
  • Headers to allow existing Sanguinos to plug straight in.
  • I2C headers for simple hookup of external peripherals.
  • On/Off switch for instant-kill and simple control of the entire system.


<div class="thumb tright">
Cache-3408779902 7575952594.jpg
</div>

Get It!

Fully Assembled

If you buy the fully-assembled version and you're making a RepRap you will have to de-solder a couple of components.

Do-it-yourself PCB

If you buy the PCB you will easily be able to configure the board for use either in MakerBot or RepRap.

Raw Components



Files

<div class="thumb tright">
Cache-3527845874 e9d5599f2c.jpg
</div>

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.

If you just want to peek at the files easily, check them out on Thingiverse.


Schematic

<div class="thumb tright">
Cache-3527845382 20a898c3a6 b.jpg
</div>

Interface

Pinout

Here is a handy reference that tells you what pins are hooked up to what features of the board.

<iframe width='600' height='720' frameborder='0' src='http://spreadsheets.google.com/pub?key=pmEMxYRcQzzCdmUPsPtJLbA&output=html&gid=3&single=true'></iframe>

Stepper Motor Headers

<div class="thumb tright">
Cache-3432260208 caaacca98a.jpg
</div>

See our IDC cable construction page for info on how to make the IDC cables.

Pin Name Function
1 N/C Not Connected to anything
2 GND Connect this to your uC to share a common ground.
3 Step A pulse on this line will make the stepper motor advance one step in the desired direction.
4 Dir If this pin is high, the motor will rotate forward, low it will rotate backwards.
5 Enable This pin allows you to turn the motor on and off. The definitions of high/low are determined by your stepper driver.
6 Min This is the signal from the 'min' sensor. The definitions of high/low are determined by your opto endstop.
7 Max This is the signal from the 'max' sensor. The definitions of high/low are determined by your opto endstop.
8 GND Connect this to uC to share a common ground.
9 GND Connect this to uC to share a common ground.
10 GND Connect this to uC to share a common ground.


RS485 Comms + Power

<div class="thumb tright">
Cache-3432258560 2753725d0b.jpg
</div>

THIS IS NOT ETHERNET!

Name Function
1 RS485 A
2 RS485 B
3 +12V
4 +12V
5 +12V
6 GND
7 GND
8 GND

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.

Both RepRap and MakerBot use the RS485 communications channels to control their extruders. But RepRap doesn't need the four black RJ45 connectors and doesn't distribute power from the motherboard. For RepRap leave those connectors off (this is described below when we come to soldering).

Since RS485 only takes up 1 of the 4 pairs of wires in a Cat5e cable, for MakerBot we decided to use the rest of the pairs as power. This allows us to send something like 10 amps over the wire which is more than enough for most extruder needs. 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

<div class="thumb tright">
Cache-3432255936 a433f16cd9.jpg
</div>
Name Color Function
1 Black GND
2 Brown CTS#
3 Red VCC
4 Orange TXD
5 Yellow RXD
6 Green RTS#

This is the serial communications header for programming and communicating with 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

<div class="thumb tright">
Cache-3431443259 567df0a510.jpg
</div>
PIN FUNCTION
1 VCC (5v)
2 GND (0v)
3 SDA
4 SCL

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.


SD Card Slot

<div class="thumb tright">
Cache-3431440243 4df0a8fc29.jpg
</div>

The RepRap motherboard can support SD cards up to 2GB. This means we'll be able to implement all sorts of awesome functionality like printing from card, full print job queueing, and many other awesome things that one can do with a 2GB non-volatile memory buffer. Get psyched.


ATX Power Supply Header

TODO: RETAKE

<div class="thumb tright">
Cache-3432252360 96e73197f0.jpg
</div>

For RepRap you replace this header with a couple of power supply components. In RepRap the motherboard is powered by its USB connection and doesn't need the ATX Power Supply Header.

For MakerBot, the RepRap motherboard uses this ATX power supply header. This allow us to power the Motherboard directly and it gives us a little bit of control over the power supply itself. The ATX power supply provides a digital on/off switch that we have interfaced to the Motherboard. This allows us to turn the power supply itself on or off digitally. That gives the motherboard the power to simply and easily turn the entire system on or off in one fell swoop: extruders, stepper motors, everything. The power supply provides a standby 5V supply, so the Motherboard itself will still be powered even if the supply has been turned off.


Circuit Board

<div class="thumb tright">
Cache-3408003241 82436e37bd.jpg
</div>

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

<div class="thumb tright">
Cache-3408810488 4c6e7ee6f3.jpg
</div>

<iframe src="http://parts.reprap.org/embed/module/RepRap+Motherboard+v1.2" width="620" height="920" frameborder="0">Visit http://parts.reprap.org/embed/module/RepRap+Motherboard+v1.2</iframe>


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:

  1. Apply solder paste to every exposed SMD pad
  2. Place each SMD component on its appropriate pad
  3. Place populated board on a cold hotplate. Turn hotplate on. Board solders itself!
  4. Solder in remaining through hole components.


1. Apply Solder Paste

<div class="thumb tright">
Cache-3408001061 4116740ed3.jpg
</div>

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.


<div class="thumb tright">
Cache-3407999941 3834cd1969.jpg
</div>

In order to get the right amount of solder paste on the pads for the small TQFP parts, use your finger to smear the paste like shown in this picture. It looks ugly, but you'll get much fewer solder bridges this way.


2. Place Components

<div class="thumb tright">
Cache-3526986531 86a241bbfe.jpg
</div>

This is probably the trickiest part, but its not too bad once you get the hang of it. The nice thing is that if you mess up, you can reposition the component all day. You can even wipe off the solder paste and start over if you like. Very forgiving to the beginner. The individual components to place are shown below.

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.


R4, R5, R6, R11, R12 - 1.8K ohm resistor (182)

<div class="thumb tright">
Cache-3407998543 d92a058975.jpg
</div>

This component can be placed in any orientation.


R1, R13, R14, R18 - 10K ohm resistor (1002)

<div class="thumb tright">
Cache-3408805734 6013de56a9.jpg
</div>

This component can be placed in any orientation.


R2, R3 - 1K ohm resistor (1001)

<div class="thumb tright">
Cache-3407996375 077563f1c0.jpg
</div>

This component can be placed in any orientation.


R7, R8, R9 - 3.3K ohm resistor (332)

<div class="thumb tright">
Cache-3408803534 496a204ba8.jpg
</div>

This component can be placed in any orientation.


R10, R15 - 4.7K ohm resistor (472)

<div class="thumb tright">
Cache-3407994305 7e03e24855.jpg
</div>

This component can be placed in any orientation.



C3, C5, C8 - 100nF ceramic capacitor

<div class="thumb tright">
Cache-3408801464 49324682f2.jpg
</div>

These components can be placed in any orientation.



C1, C2 - 15pF ceramic capacitor

<div class="thumb tright">
Cache-3408800432 4fe687b432.jpg
</div>

These components can be placed in any orientation.


Green and red LEDs

<div class="thumb tright">
Cache-3407991167 c4cf1bf1c3.jpg
</div>

These components can not be placed in any orientation! The red and green LEDs must be oriented correctly. If you look very closely, you'll see that one end of each led has small green stripes along the edges. Position the LED so that these stripes are facing in the same direction as the white dot on the silkscreen. Zoom in on the picture to make sure you get them right!


IC1 - SN75176A

<div class="thumb tright">
Cache-3407990227 5b2c1508e6.jpg
</div>

This is the RS485 communications chip. It must be placed in the proper orientation. Place the chip so that the line across one end of the chip matches up with the heavy line on the silkscreen. It should face the 'bottom' of the board.'


C6 - 10uF electrolytic capacitor

<div class="thumb tright">
Cache-3408797452 508a855e03.jpg
</div>

This component must be placed in the correct orientation. The black stripe on the capacitor should match up with the stripe on the silkscreen. Check the illustration to make sure you've got it right.


SD Card Socket

<div class="thumb tright">
Cache-3407988145 f5bf2e03a5.jpg
</div>

This one is really easy, and you can place it with your fingers even. If you look on the bottom of the SD card socket, you'll see two little nubs or 'bosses' that fit into corresponding holes on the PCB. When you line them up and place the SD card socket on the board, these will make sure that it goes in exactly the right spot. Nice.


IC2 - Atmega644P TQFP

<div class="thumb tright">
Cache-3407987181 bb2bd48fdd.jpg
</div>

This is the microcontroller that is the heart of the Sanguino. Before you put down the chip, smear away the solder paste a little-- this helps reduce solder bridges. The small smooth circle on one corner of the chip lines up with the dot on the silkscreen. Check the picture above to ensure that you have the chip in the correct orientation. Make sure you get this right-- if you solder the chip in the wrong orientation, it will be almost impossible to desolder it!


R16 - 180 ohm resistor (181) - OPTIONAL

This component is optional, so I would suggest you leave it out. It is on the board in case you need it, and it's in the wiki for completeness. If you don't KNOW that you need it, leave it out. TIf you're asking yourself right now "Do I need this component?" the answer is no. This is a spot for a termination resistor on the RS485 bus and is generally not needed on most systems.


Hot Plate Reflow

<div class="thumb tright">
Cache-3408792824 431db5ed5b.jpg
</div>

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, then 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 with tweezers or other non-finger device. Wait until you see the largest component leads go silver (usually the big capacitors). If it starts to smell really bad, kill the power and solder the rest by hand. Sometimes the capacitors wont fully solder, so just hit the exposed pad with a soldering iron after the fact.

Once they have soldered, simply turn the hotplate off and let it cool down.

For detailed instructions on how to do hotplate reflow soldering, please see the Hotplate Reflow Technique guide.


Clean up excess solder

<div class="thumb tright">
Cache-3527796528 8e382ab633.jpg
</div>

If you use the smear technique to apply the right amount of paste to the tiny TQFP parts, then you'll end up with what looks like solder sand near the chip. This is actually really easy to clean up. Simply take your hot solder iron and run it over the tiny beads of solder. It will pick them right up and the board will be nice and clean. You may want to click through for a better view.


Check for bridges!

Its important to check for potential bridging. It helps to have a magnifying glass, and backlighting. Just give it a thorough look-over. If you find bridges, they're easy to remove: Simply put some solder wick over the bridge, apply a hot iron over it, wait for the solder to wick up into the solder wick, then remove both. Double check the bridge. 90% of the time, enough solder will remain on the pins for a reliable connection. You may need to add a tiny bit of solder paste back onto the pin and re-solder it, but usually not.

Before

The fourth and fifth pins from the left are bridged. (Click through for huge sized pic.)

<div class="thumb tright">
Cache-3527797666 c77602ef17.jpg
</div>

After

The solder bridge is fixed. (Click through for huge sized pic.)

<div class="thumb tright">
Cache-3526982887 18cc8b316e.jpg
</div>

Check for Solder Balls

<div class="thumb tright">
Cache-3527793088 9cd7ef7777.jpg
</div>

Sometimes if you use a bit too much solder, it will ball up and squeeze out the sides. These balls are fairly harmless, but you should definitely remove them with tweezers or even a small brush. Theres a chance that when they break free during use (and they will) that they will short something out, and you dont want that.


Solder Through Hole Components

16Mhz Crystal

<div class="thumb tright">
Cache-3407982389 a22af04a3a.jpg
</div>

This can be inserted in any orientation. Make sure you trim the legs afterwards.


Reset Button

<div class="thumb tright">
Cache-3407981345 6bf340d6e5.jpg
</div>

The button will snap into place. Solder it in and you're good.


ICSP Header

<div class="thumb tright">
Cache-3407980099 97c5af9aa2.jpg
</div>

This is the ICSP header you'll need to burn the bootloader. Make sure you line up the notch with the notch on the silkscreen. It should be facing towards the inside of the board.


On/Off - SPDT Switch

<div class="thumb tright">
Cache-3407978311 1234ec8d9d.jpg
</div>

This is the on/off switch. You can insert it in any orientation. Push it all the way in and then solder it into place.


X/Y/Z Stepper Headers + JTAG

<div class="thumb tright">
Cache-3484375132 2826079235.jpg
</div>

These are the headers where you plug the stepper drivers into. Make sure the opening on the IDC header faces outward (and lines up with the silkscreen). Don't forget the JTAG connector in the Sanguino area of the board.


I2C - 4 pin female headers

<div class="thumb tright">
Cache-3408785266 1981341499.jpg
</div>

These are the headers for the I2C bus. They can be soldered in in any direction. Its easiest if you solder one leg on each one to tack them into place. Get a good grip and then re-heat the joint and push on the component until it is perfectly situated. Then you'll want to solder the rest of the leads.


10 pin female headers

<div class="thumb tright">
Cache-3407979247 36e2366b45.jpg
</div>

These headers give you direct access to the Sanguino pins should you need it. Pin headers do not come in 9-pin varieties, so you'll need to pull out one of the pins on a few of these to make them fit. This component is completely optional, but it doesn't hurt to solder it in.


6-pin serial header

<div class="thumb tright">
Cache-3408784340 8d323f8605.jpg
</div>

This is the header for the serial connection. You'll need to break off a set of 6 pins from the strip of pin headers included with the kit. Solder it into place.


R17 - 30 ohm / 5W power resistor

<div class="thumb tright">
Cache-3408783148 931c9d48ab.jpg
</div>

Leave this resistor off if you're building this board for RepRap.

This resistor is here basically to just suck power. Certain power supplies refuse to turn on unless there is a load on the 5V line. If you have one of those power supplies, then use the power resistor. Otherwise, feel free to leave it out. If you are not sure, then solder it in. It doesn't use much power in the grand scheme of things.


ATX Motherboard Header

<div class="thumb tright">
Cache-3407974383 45848b98b1.jpg
</div>

Leave this header off if you're building this board for RepRap.

This is the header where you plug the ATX power supply into. There is a 'ramp' on one side with a corresponding rectangle on the silkscreen, and the part may also contain locking tabs that fit into the holes next to the silkscreen. Insert the part so that it lines up with these markings and then solder it into place.


RJ45 Connectors

<div class="thumb tright">
Cache-3407973233 875e80732b.jpg
</div>

Leave these connectors off if you're building this board for RepRap.

This is not ethernet.

We're re-using these jacks to provide power and comms to the Extruder controller using RS485. They can only be inserted one way and they snap into place. So snap them in and then solder them all up.


RepRap configuration

Motherboard 1 2-motherboard-labelled-small.jpg

Put a link across two of the mounting holes where the ATX power connector would go for MakerBot (just to the right of C). Solder in a 3.3V regulator (78L33) and a 100uF smoothing capacitor at C. The flat on the regulator and the -ve wire on the capacitor are both towards the bottom of the picture.

Solder four 2.54mm 2-pin header connectors where the RJ45 connectors would go for MakerBot, as at D and to the left.

Make sure you have at least one connector for the SDA and SCL connectors at B. Also make sure that there is a jumper at A (this allows the board to be programmed correctly).


Motherboard 1 2-back-small.jpg

Then put a link on the back of the board as shown at A on the right between the third pin of the serial input (the red wire on the USB connector) and pin 2 of the ISP connector.

Your board can now be fully powered by the RepRap USB cable.


Burn the Bootloader

<div class="thumb tright">
Cache-3431721845 4126f4a775.jpg
</div>

Before you start, make sure you have installed the Sanguino software modifications to Arduino.

The atmega644p chips come totally blank, so you'll need to upload the special program called a bootloader to the chip so that you can then easily program it with the Arduino software. In order to do this, you'll need an AVR programmer. I highly recommend the USBtinyISP from LadyAda. Its cheap, simple, and easy to assemble. It is also rock-solid. I've used it to program almost a thousand chips and it works great.

Before you start, make sure your motherboard is not hooked up to anything. In order to program the chip:

  • Plug the USBtinyISP into your computer's USB port
  • Plug the USBtinyISP into the RepRap Motherboard.
  • Open the Arduino software, make sure the 'Sanguino' option is selected in 'Boards', and then choose the menu option of "Tools -> Burn Bootloader -> w/ USBTinyISP".

Once you do that, a bunch of lights should start blinking and flashing. If everything is successful, then the Arduino software should tell you that it all went A-OK.


Program It!

There really isn't much to test on the board that it can do itself, so the easiest way to test it is to program the production firmware and to try using it.

Sanguino Master Firmware

There are two alternatives here. One is standard for RepRap, and the other for MakerBot. However, both ought to work in either machine - they are so similar. But for the moment it's probably best to stick with the one intended for each.

Wire it Up!

History

Changelog

  • Moved power on/off switch to a better place
  • Added pulldown resistor to PS_ON pin
  • Various minor layout changes.
  • Wireing up split off to distinguish RepRap and CupCake.

Previous Versions

Index