Arduino Mega Pololu Shield

From RepRap
Revision as of 11:48, 28 October 2010 by TheOtherRob (talk | contribs) (Showcase)
Jump to: navigation, search
Crystal Clear action run.png
Arduino Mega Pololu Shield

Release status: Experimental

Arduinomegapololushieldangle.jpg
Description
A circuit board that fits on the Arduino MEGA and holds Pololu A4983 stepper driver carrier and the rest of RepRap's electronics.
License
Author
Contributors
Based-on
Categories
CAD Models
External Link



Summary

RepRap Arduino Mega Shield, or RAMPS for short. It is designed to fit the entire electronics needed for a RepRap in one small package for low cost.

This board is mostly based on Adrian's Pololu_Electronics and work by Tonok.

Features

  • It has provisions for the cartesian robot and extruder.
  • Expandable to control other accessories.
  • 3 mosfets for heater / fan outputs and 2 thermistor circuits.
  • Fits 4 Pololu A4983 stepper drivers
  • Pololu boards are on pin header sockets so they can be replaced easily or removed for use in future designs.
  • The pin headers for the stepper motor outputs are placed on top of the Pololu boards saving routing them on the main shield.
  • The X and Z endstops are on interrupt pins.
  • I2C and SPI pins left available for future expansion.
  • All the Mosfets are hooked into PWM pins for versatility.
  • Servo style connectors are used to connect to the endstops, motors, and leds. These connectors are gold plated, rated for 3A, and very compact.


RepRap Arduino Mega Pololu Shield wired to Mendel.

<videoflash type="youtube">0k_KArg_sgA</videoflash>


Assembly Instructions

The printed bottom of the board.

Component Soldering

Use your preferred circuit board manufacturing method. :) If you are doing point to point wiring make sure to read that section first
Rampsresistors.jpg
  1. Solder the top wires. (This step is not required if using a two sided PCB)
    • Place the connectors shown below to make sure the top wires do not interfere with their future placement.
  2. Solder the resistors as shown to the right.
    Rampscapacitors.jpg
  3. Solder the capacitors as shown lower right.
    • They must be inserted in the correct orientation. + to the top or left. Place the caps and bend their leads so that they are in the desired position (without leads shorted) before soldering.
  4. Solder the rest of the components. It is usually easiest to place components in order from shortest to tallest, saving the stackable headers for last.
    • Mosfets must be oriented correctly.
    • You can insert strips of pin headers into the female connectors to keep them aligned while soldering.
    • The diode(optional) must be oriented correctly. This will power the Arduino from the shields 12V input. If you are using higher than 12V to power the shield you should omit the diode to prevent damage.Warning: The Pololu boards are designed to accept up to 35V, but if you do this the heater and other high side outputs will be at that voltage also. You may need to adjust the heater resistance, etc.
  5. Thoroughly check for shorts (This is crucially crucial for DIY etched boards.)
    • Check for continuity between each and every pin to the pins next to them and GND, 12V, 5V (VCC).
    • Set your meter to beep for continuity, hold a probe on GND and check all soldered pins. If it beeps check if it is supposed to be GND and contine. Repeat for 12V and 5V.
  6. Solder the pin headers on to the stepper driver boards.
    Close up of Pololu Driver Board
    • For this design the power and control pins go down towards your new shield and the motor pins(1a,2b,2a,2b) on top of the board (component side) so the motors can be plugged directly in.
    • See image on right.
  7. Make the cables up for the endstops.
    • WARNING In order to keep the PCB at a printable resolution two wires have been flipped from the traditional opto endstop boards. The signal pin has been moved to the outside of the connector.
    • Hooking these up incorrectly can damage the components.
    • Endstop End: Vcc-Sig-Gnd ; Shield End Vcc-Gnd-Sig
    • Connect at least the minimum endstops.
  8. Put the connectors on the motor wires.
    • Shown is the type used for servos in RC projects. See Stepper Motors for info on motors.
  9. Use a 4 pin 0.1" connector to terminate the thermistor wires.
    • Use the two receptacles on one end, leaving the other two open for extra thermistors.
    • Connect the cable so the 2 wires go to T0
  10. Connect the 2 heater wires to E0H and the + connection above it.
    • If changing to an unverified firmware it is best to verify heater circuit function with a meter before connecting heater to prevent damage to the extruder.

Point to point wiring when using a proto shield

Make sure to check the prototype shield you use for pin holes that have traces tying them together. You most likely will have to cut some traces to keep from shorting circuits together that do not belong. The board used here is the Arduino Mega shield one manufactured by Arduino. I only had to cut traces in about 4 places and it only took a couple seconds each with the little grinding bit on a dremel tool. Pictured below are the traces that need cut on the Tinker-It shield, both traces need cut in the small red circle, the top trace cut twice in the big circle to isolate the pins there.

If wiring a shield make sure to leave the area above the usb jack and ISCP header clear of components or the board is spaced / electrically insulated sufficiently to avoid shorts to the Arduino Mega board components.


This is the front of the shield. The traces that need cut on the Tinker-It shield.

Firmware and New Pin Assignments

You will need the Arduino software at http://www.arduino.cc/en/Main/Software to upload the firmware to Arduino Mega.

Here are the pin definitions for this board.

RAMPS v1.1c

New version now available at UltiMachine.

The following values need to be entered to "Arduino Mega pin assignment" in the "pins.h" file of the firmware.

The FiveD Firmware uses Timer1, which is also used for PWM on pins 11 and 12, so we can not use those pins for the heater in FiveD Firmware. This first set of pin definitions is tested on the FiveD firmware.

I recommend Revision 3810 or later of the FiveD firmware as it defaults to PID disabled on the extruder and poorly tuned PID settings can be hazardous for your bot's health.

// RAMPS v1.1c
#define DEBUG_PIN        13

#define X_STEP_PIN (byte)26
#define X_DIR_PIN (byte)28
#define X_MIN_PIN (byte)3
#define X_MAX_PIN (byte)2
#define X_ENABLE_PIN (byte)24

#define Y_STEP_PIN (byte)38
#define Y_DIR_PIN (byte)40
#define Y_MIN_PIN (byte)16
#define Y_MAX_PIN (byte)17
#define Y_ENABLE_PIN (byte)36

#define Z_STEP_PIN (byte)44
#define Z_DIR_PIN (byte)46
#define Z_MIN_PIN (byte)18
#define Z_MAX_PIN (byte)19
#define Z_ENABLE_PIN (byte)42

// Heated bed

#define BED_HEATER_PIN (byte)8
#define BED_TEMPERATURE_PIN (byte) 1


//extruder pins

#define EXTRUDER_0_STEP_PIN (byte)32
#define EXTRUDER_0_DIR_PIN (byte)34
#define EXTRUDER_0_ENABLE_PIN (byte)30
#define EXTRUDER_0_HEATER_PIN (byte)10
#define EXTRUDER_0_TEMPERATURE_PIN (byte)2 

#define EXTRUDER_1_STEP_PIN (byte)23
#define EXTRUDER_1_DIR_PIN (byte)25
#define EXTRUDER_1_ENABLE_PIN (byte)27
#define EXTRUDER_1_HEATER_PIN (byte)9
#define EXTRUDER_1_TEMPERATURE_PIN (byte)8 

RAMPS v1.0

Original PCB that was available from Ultimachine in Sept 2010.

Because of the usage of pins 10, 11, and 12 this can only be used with Tonokip_Firmware controlled by RepSnapper Manual:Introduction software with the baud rate set to 115200. Other firmwares make use of Timer1 which uses these same pins.

// RAMPS v1.0
#define X_STEP_PIN         26
#define X_DIR_PIN          28
#define X_ENABLE_PIN       24
#define X_MIN_PIN           3
#define X_MAX_PIN           2

#define Y_STEP_PIN         38
#define Y_DIR_PIN          40
#define Y_ENABLE_PIN       36
#define Y_MIN_PIN          16
#define Y_MAX_PIN          17

#define Z_STEP_PIN         44
#define Z_DIR_PIN          46
#define Z_ENABLE_PIN       42
#define Z_MIN_PIN          18
#define Z_MAX_PIN          19

#define E_STEP_PIN         32
#define E_DIR_PIN          34
#define E_ENABLE_PIN       30

#define LED_PIN            13
#define FAN_PIN            -1
#define PS_ON_PIN          -1
#define KILL_PIN           -1

#define HEATER_0_PIN        12
#define TEMP_0_PIN          2   // MUST USE ANALOG INPUT NUMBERING NOT DIGITAL OUTPUT NUMBERING!!!!!!!!!

Schematic

This is the schematic of the shield.

This is the schematic of the shield.


Warnings

The endstop pins are Signal - VCC - GND, instead of the VCC - Sig - GND like the rest of RepRaps boards. Make sure to wire them correctly. This is done to allow squeezing fatter traces on the printable board.


Ingredients

Source

Eagle_Library

File:ArduinoMegaPololuShield.zip

copper etch resists methods suggested by Vik circuit design based mostly on Adrian's Pololu_Electronics Used Joaz's pin definitions for initial layout

Bill of Materials

ID Description Quantity Part Number
U1 Arduino Mega 1
U2,U3,U4,U5 Pololu A4983 carrier 4
C4 100nF capacitor 1
C5,C8 10uF capacitor 2
C6 100uF capacitor 1
R1,R7 4.7K resistor 2
R2,R3,R4,R5,R6,R8,R9 100K resistor 7
Q1,Q2,Q3 N-channel Mosfet 3 STP55NF06L
D1 Diode 1 1N4004
F1 PTC resettable fuse 1 MF-R500
J2 5.08 Eurostyle screw terminal 1 282837-6
LED1 5mm Green LED 1
S1 Push button switch 1 FSMRACD
X1 Power jack 1 MSTBA1 (5.04mm spacing 2 connector)
2 x 12 pin header 2
2 x 9 pin header 1
10 pin header 1
2 x 18 Pin Stackable Female Header 1
8 Pin Stackable Female Header 5
6 Pin Stackable Female Header 1
16 Pin Female Header 4
Circuit Board 1 v1.1


Wish list

This shield would like to replicate with the following external boards

  1. Additional Stepper Driver
  2. DC Driver
  3. Thermistor
  4. Thermocouple
  5. SD Card
  6. Control Panel w/LCD
  7. Ethernet
  8. Host USB


Showcase

The two boards pictured below this line were printed on a RepRap Mendel with the etch resist method http://reprap.org/wiki/Plotting#Using_cad.py

Everything soldered.

Crude attempt at printing labels.


Two-Sided PCB Built

Two-sided PCB Built


Back of the shield

This is the back of the shield.

Change Log

  • v1.1 September 30, 2010
  1. Replaced power barrel jack with plug-able screw terminal
  2. Added jumpers to select micro-stepping on stepper driver boards
  3. Added debug LED
  4. Changed mosfet pins to be compatible with FiveD firmware
  5. Reduced number of 100uF capacitors to 1
  6. Added 100nF capacitor to 12V input
  7. Put auxiliary 12VIN and GNDIN pads in a straight line
  8. Silk Screen and bottom layer cleaned up
  • v1.0 Original RAMPS PCB design
  • v0.1? Point to point wired Arduino MEGA Prototype shield