User:Johnnyr/sandbox

From RepRap
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
Electronics
CAD Models
External Link



Summary

The board is now printed on RepRap Mendel and tested to work all circuits. It is currently working as shown built on an Arduino manufactured Arduino MEGA Shield. It has been designed with an eye towards being made on a RepRap. The traces are wide, with wide gaps between them where possible. We tried to use minimal vias and traces on the side needed for easy soldering to connectors. This board is mostly a copy from Adrian's Pololu_Electronics, but it was also inspired by all the other awesome RepRap contributors on the blogs, IRC, and forums - thank you guys. It is designed to fit the entire electronics needed for a RepRap in one small package for low cost. It has provisions for the cartesian robot and two extruders and a heated bed. It fits five Pololu A4983 stepper drivers, 4 mosfets for heater / fan outputs and 2 thermistor circuits.

RepRap Arduino Mega Pololu Shield wired to Mendel. Everything soldered. The printed bottom of the board. Crude attempt at printing labels.

This is the front of the shield.


Description

A couple tricks that stand out are placing the Pololu boards on pin header sockets so they can be replaced easily in case of failure. Placing the Pololus up as another stacked layer allows you to put the capacitors and pull up resistors for each stepper driver underneath it giving us much needed board space. The pin headers for the stepper motor outputs are placed on top of the Pololu boards, freeing that valuable board space and ideally reducing noise in the crowded board.

The I2C pins are 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 so they can be assigned to heater, fan, heated bed, or other duty.

This board uses servo style connectors to connect to the endstops, motors, and leds. These connectors are gold plated and rated for 3A.

This is an angle view of the shield.
This is the back of the shield.
Arduinomegapololushieldmegamodification.jpg


Assembly Instructions

Printed, etched, or manufactured board

Use your preferred circuit board manufacturing method. :)

    1. Place the connectors shown below to make sure the top wires do not interfere with their future placement.
    1. Solder the top wires.
    1. Solder the resistors as shown below.

Rampsresistors.jpg

Point to point wiring with 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.

The traces that need cut on the Tinker-It shield.
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.

To Do:

Add external boards

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

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
C1,C2,C3,C9 100uF capacitor 4
C5,C8 10uF capacitor 2
R1,R7 4.7K resistor 2
R2,R4,R9 100K resistor 3
R3,R5,R6,R8 47K resistor 4
Q1,Q2,Q3 N-channel Mosfet 3 STP55NF06L
D1 Diode 1 1N4004
F1 PTC resettable fuse 1 MF-R500
J1 Power Jack 1 RAPC712X
J2 5.08 Eurostyle screw terminal 1 282837-6
LED1 5mm Green LED 1
S1 Push button switch 1 FSMRACD
20 pin header 1 (extras for additional pins)
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

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. The following values need to be entered to "Arduino Mega pin assignment" in the "pins.h" file of the firmware.

These pin definitions have changed twice. For 1.0 and newer versions use the pin definitions below. For the pre-1.0 version of the board need the history version from June 13, 2010. The original point to point used the history version 21:18, 3 June 2010.


#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!!!!!!!!!