Arduino Mega Pololu Shield
English • العربية • български • català • česky • Deutsch • Ελληνικά • español • فارسی • français • hrvatski • magyar • italiano • română • 日本語 • 한국어 • lietuvių • Nederlands • norsk bokmål • polski • português • русский • Türkçe • українська • 中文（中国大陆） • 中文（台灣） • עברית • azərbaycanca •
RepRap Arduino Mega Pololu Shield, or RAMPS for short. It is designed to fit the entire electronics needed for a RepRap in one small package for low cost. RAMPS interfaces an Arduino Mega with the powerful Arduino MEGA platform and has plenty room for expansion. The modular design includes plug in stepper drivers and extruder control electronics on an Arduino MEGA shield for easy service, part replacement, upgrade-ability and expansion. Additionally, a number of Arduino expansion boards can be added to the system as long as the main RAMPS board is kept to the top of the stack.
Version 1.4 uses surface mount capacitors and resistors to further cover edge issue cases. As of version 1.3 in order to fit more stuff RAMPS is no longer designed for easy circuit home etching. If you want to etch your own PCB either get version 1.25 or Generation 7 Electronics. Version 1.25 and earlier are "1.5 layer" designed boards (i.e. it's double sided board, but one of layers can easily be replaced with wire-jumpers) that is printable on your RepRap with the etch resist pen method, or home fabbed with toner transfer.
This board is mostly based on Adrian's Pololu_Electronics and work by Tonok. Copper etch resists methods suggested by Vik. Also inspired by Vik's work with EasyDrivers. Circuit design based mostly on Adrian's Pololu_Electronics. Joaz at RepRapSource.com supplied initial pin definitions and many design improvements. Much inspiration, suggestions, and ideas from Prusajr, Kliment, Maxbots, Rick, and many others in the RepRap community.
- It has provisions for the cartesian robot and extruder.
- Expandable to control other accessories.
- 3 mosfets for heater / fan outputs and 3 thermistor circuits.
- Fused at 5A for additional safety and component protection
- Heated bed control with additional 11A fuse
- Fits 5 Pololu stepper driver board
- Pololu boards are on pin header sockets so they can be replaced easily or removed for use in future designs.
- 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, very compact, and globally available.
- USB type B receptacle
- SD Card add on available -- Available now made by Kliment - Sdramps
- LEDs indicate when heater outputs on
- Option to connect 2 motors to Z for Prusa Mendel
Voltage and current notes
Standard RAMPS has a 5A PTC fuse that runs the Arduino Mega, the stepper motor drivers, and the D10 and D9 outputs. This PTC fuse is rated for a max of 30V, however other components on the board are rated for lower voltages, so care should be taken when using any voltage >12V.
Standard RAMPS has a 11A PTC fuse that runs the D8 output. This PTC fuse is rated for a max of 16V.
RAMPS was developed with 12V systems in mind, but it is possible to run it at 24V with various precautions. Most RAMPS boards will happily run at 13.8V or slightly higher with no modification. It is not recommended to exceed 15V for a standard setup, especially if you've bought your board from a cheaper supplier who may have used lower spec components than are recommended.
- Some variants of RAMPS have real fuses in place of the PTC fuses (eg: GRRF RAMPS). The max current limits will of course be different.
- Many PSU's overestimate their max current capability. The max current you require will depend on all your components and the voltage you run them at. For a standard RAMPS board, running a machine with a heated bed, your PSU should generate 12V at >16A (20+A is better, as some PSU's overestimate their capabilities).
| Once you start putting electricity into your RepRap - even at just 12 volts - you have to take basic, common sense precautions to avoid fires.
Just in case these fail, test your workshop smoke detector. Don't have a smoke detector? Get one!
The primary channel for RAMPS support is the RAMPS Forum
Build and Use
Current schematic shown. For older versions click the image. Click again for full image.
|File:ArduinoMegaPololuShield.zip||Eagle Files||These are the files you need to make the board.(Use the File: link to the left to access older versions of the file.)||media:ArduinoMegaPololuShield.zip|
|File:RepRapjr.lbr||Eagle Libraries||The components used in this board are here. see Eagle_Library||media:RepRapjr.lbr|
Will have locking connectors for the motors. Uses the MAX6675 thermocouple sensor, which essentially replaces the AD595. Less vias, which should also increase building time. Bottom only, to enable the possibility of a RepRap or toner transfer method to fabricate the board. Moved the power LED to the front for easy identification. Providing the user has a proto-shield for Mega, there is plenty of pins left for them to play with. By using another tiered board, will alow the possibility of more extruders and LCD all of which can communicate over the I2C protocol.
printed on a RepRap Mendel with the etch resist method Using_cad.py
- 1.4 August 4, 2011
- Changed capacitors and resistors to surface mount components
- Added LEDs to mosfet outputs
- Added bulk capacitors for each stepper driver
- Added pull up resistors to enable to override the Pololu drivers default enabled state
- Added mosfet gate resistors
- Added pull-ups for I2C
- Servo1 connector moved to pin 11 to free 7 for ADK
- Fixed thermals
- Servo 5V supply is only connected to VCC if a jumper is added
- Reset switch changed for small footprint
- Moved Aux conectors around a bit and increased board size ~0.1"
- Added some space around Q3 for a small heatsink
- 1.3 May 13, 2011
- Added 5th stepper driver socket
- Added 3rd thermistor circuit
- Added Heated bed circuit w/ 11A PTC fuse, changed to 4 position pluggable input jack to accommodate additional current
- Increased board size to 4"x2.32"
- Pin order on heater outputs changed
- Increased spacing increased to accommodate different connectors
- Added connectors for optional 2 motors on Z driver
- Added connector for PS control
- Improved expansion connector layout
- Moved LED towards corner and added resistor to LED circuit
- No longer optimised for home etching :(
- License changed to GPL v3 or newer
- v1.2 January 04, 2011
- Added 0.1" motor connector to RAMPS for each driver (motors no longer have to be connected on top of stepper drivers)
- Added breakouts for serial and I2C
- Changed extra power and pin headers around for easier connection to extra boards.
- Lost most extra analog breakouts
- More silk screen and bottom layer fixing
- v1.1 September 30, 2010
- Replaced power barrel jack with plug-able screw terminal
- Added jumpers to select micro-stepping on stepper driver boards
- Added debug LED
- Changed mosfet pins to be compatible with FiveD firmware
- Reduced number of 100uF capacitors to 1
- Added 100nF capacitor to 12V input
- Put auxiliary 12VIN and GNDIN pads in a straight line
- Silk screen and bottom layer cleaned up
- v1.0 Original RAMPS PCB design
- v0.1? Point to point wired Arduino MEGA Prototype shield
How to get it
Bare PCB and components are available from
- for maintainability purposes this section is going to be consolidated in the near future with the reprap buyers guide buyers guide all future webshop additions should go there
Fully assembled board are available from
- Ultimachine RAMPS Original Developer
- Austrian Reprap
- eMotion Tech
- RepRap Z eBay
- Charlie's 3D Technologies
- Fabster3D Ebay
- electronic things GmbH
- BCNdynamics store
- Moebyus Machines
- 3D Printer Czar
- Replicator Warehouse
- NIOZ (Ru)
- Garage Days 3D (Esp)
- Createc 3D (Esp)
This shield would like to replicate with the following external boards
- Additional Stepper Driver.
- Replace the resettable fuse with a traditional holder. Blade fuse 15A (AU) and holder (AU US)? Surface mount fuse (US) and holder (US)?
- DC Driver
- Two additional Thermistors (for a second extruder and heated chamber)
- Include a second resistor in parallel to the thermistor to reduce self heating. See here
- SD Card -- Available now made by Kliment - Sdramps
- Control Panel w/LCD
- Host USB
- Replace current MOSFETS with IRLB8743PBF, it's less expensive and has significantly lower Rds On.
- Check List
- RAMPS shield firmly seated on Arduino MEGA
- No stray wires/metal to cause short
- All connections firmly seated, screws tight
- Power connection oriented correctly, connected to RAMPS shield (only USB is connected to MEGA)
- Thermistor connected to T0
- Firmware uploaded
- Stepper driver potentiometers to a sane setting (maybe 25% from CCW to start, adjust to enough power to drive axis + not overheat)
- Heater wires properly connected
- Power supply functioning properly
- Cannot connect?
- Verify firmware and host software baud rate matches
- Disconnect USB, reconnect, and retry
- It may be a problem with the software you're using (repsnapper). Try using pronterface.
- Stepper motor getting too hot?
- Adjust the potentiometer (small screw) on the stepper driver in question by rotating the screw counterclockwise to decrease the current going to the stepper motor.
- My fan is not working.
- If you have RAMPs 1.3+ and sprinter firmware (set with the default pins for RAMPs 1.3), try attaching the fan to D9 output.
- In pronterface, the fan can be turned on by using the M106 command and turned off with M107.
- Hot end/heated bed not working.
- Check resistivity by disconnecting from RAMPs and measuring with multimeter
- Check that host software obtains readings from thermistors
Stepper Driver Testing
If you are not sure whether you have a problem with your RAMPS or the stepper drivers you can test that the driver is getting the power and signals it needs to work.
- Stepper motors getting too hot?
- Adjust the potentiometer (small screw) on the stepper driver by rotating the screw counterclockwise to decrease the current going to the stepper motor.
Use a meter of some sort to test the signals at one of the motor drivers. Be careful not to short anything out. You can use a (-) pad in AUX-1 for ground and test the voltage on VMOT, VDD, EN, STEP, and DIR. If all of these are working correctly then the stepper driver is likely bad.
High(5V) when disabled, Low when enabled EN-| |-VMOT 12V (or voltage at 5A side of input power connector Set by Jumper MS1-| |-GND 0V Set by Jumper MS2-| |-1A ---------------| <Motor Coil A Set by Jumper MS3-| |-2A ---------------|____ Not used (tied to SLP) RST-| |-1B -----------------/ | <Motor Coil B Not used (tied to RST) SLP-| |-2B -------------------/ Pulse High for each step STEP-| |-VDD 5V Switches between High and Low when driven direction changes DIR-| |-GND 0V
Known issues and limitations
1. Overheating 5V regulator on the Arduino Mega
Unless you provide external 5V power or provide 5V through USB cable, the regulator on the Arduino supplies 5V power to the Arduino, the RAMPS (which uses very little) and anything else connected to it. With nothing else powered from the RAMPS, the voltage regulator will run quite warm but not overheat (in tests, I was even able to turn up the input voltage from 12V to 15V without overheating it). With a 20x4 LCD connected, it's still OK with 12V input. However, if you power a servo or a graphic LCD from the RAMPS, then you will almost certainly overheat the voltage regulator. The usual symptom is that the system will not work unless it is connected to a PC via USB. Or the system may work for a few minutes, hours or days, then fail.
Workarounds include (a) removing D1 on the RAMPS and providing external 5V power to the Arduino/RAMPS; (b) driving the backlight of the graphical LCD from 12V through a series resistor instead of from 5V (a 120 ohm 1W resistor is about right for 12864-type displays), (c) using an Arduino variant with a more powerful voltage regulator (e.g. Taurino).
2. Overheating bed heater MOSFET
The STP55NF06L mosfet is not really adequate to drive a 10A heated bed without a heatsink, so on boards supplied without a heatsink it runs very hot. This is often exacerbated by the previous issue (overheating 5V regulator), which causes the voltage on the 5V rail to be significantly lower than 5V and insufficient to turn the mosfet fully on.
Workaround: either add a heatsink, or (preferably) replace the bed heater mosfet (Q3) by a better type such as IRLB8743PBF or IRLB3034PBF. Also check that the voltage on the 5V rail is close to 5V, preferably at least 4.75V.
3. USB data rate fails to keep up with the printer, resulting in slow, poor-quality prints
This is due to the lack of a true USB port on the Arduino Mega, which uses USB-over-serial instead, and the consequent lack of driver-level flow control. As a result, flow control has to be done at application level by the host program waiting to receive "OK" after sending each command. General purpose host operating systems such as Windows and Linux cannot do this efficiently. Some host programs and operating system combinations work better than others, but this issue has even been reported by some users running Octoprint on a dedicated Raspberry Pi host.
Workaround: print from SD card instead of over USB.
- What power supply you recommend for your ramps board. I have just finished assembly and looking at the diagrams for a pc power supply and wondering about the separate amperages for the extruder and heated bed. Can they be higher amps without damage?
Yes, the power supply being capable of more amps than required is the desired configuration. The current shown are the max supported by RAMPS and is the minimum the power supply should be capable of. It is also OK to have both of the inputs on RAMPS connected to one PSU with enough capacity. If you are not using a heated bed the entire thing can run off the 5A side (D8 will just not work).
- I got a RAMPS V1.3 as part of a kit, but it doesn't have any installation instructions - just a schematic. Can you point us to a good tutorial for connecting everything? (i.e. stepper motors, opto flag pcb's, power, data, etc) Some of it (like the single USB port) is obvious, but some of it isn't.
See RAMPS1.3 for instructions for version 1.3. There is a version navigation bar at the top of the RAMPS pages that allow you to jump to a specific versions instructions. There is a very helpful graphic under Final Check section.
- For RAMPS V1.3 the power section of the schematic shows several places with GND/12V (C4/C6, X4-2/1, X4-4/3, VCC/D12). Which one is the GND/12V from the power supply? Is it the round power plug like a laptop power plug? Also, is the outside of that plug GND while the inside is +12V? My kit came with a note warning not to reverse the input power or it would cook the board . . . and a plug adapter with no labels that can be installed either way.
See the connecting power section of your version's page. The round plug is on the Arduino MEGA and will only power the MEGA. You need to power the green pluggable connector, it should not be reversible and the board should be marked (+) and (-). If for some reason your board is not marked you can follow the diagrams and pictures in the wiki.
- What connectors can I use to attach my own wires to the board? 2 pin 3 pin and 4 pin headers with wires are good and sold, but what if I want to make my own with Dupont terminals and crimps or with JST connectors and crimps(which are cheaper).
Can JST connectors be used, what contact pitch- 1mm or 2mm, will there be enough space on sides on standard RAMPS board?
The pins on the board are on .100" (2.54mm) centers, which is standard configuration. Standard single-row headers are .100" (2.54mm) wide. As long as your connectors are not larger than .100" x .100" (2.54mm x 2.54mm) they will fit.