attaching lcd panel to ramps board factory
In RAMPS 1.4 the capacitors and resistors are now surface mount (SMD) components. This provided more space for more passive components, as well as headers. This does add another set of steps to the assembly process, but we stuck with larger sizes to make it fairly painless.
There are multiple boards all based on the RAMPS 1.3/1.4 design with minor variations in form factors and components, for example Prusa, Ultimaker and others. Other incarnations combined the components of the Arduino ATmega and the RAMPS into a single board, some using ATMega128. They may have different power/rating capabilities but the basic structure and electrical behavior is very similar and we describe them as RAMPS compatible, in fact most boards in firmwares like Marlin are treated as derivate of RAMPS.
This section presents the basic steps to wire an assemble RAMPS 1.4 board assuming the more common scenarios. Check the #Assembly section to learn how to assemble your own Ramps 1.4 board.
Notice that the bed thermistor connects to a header block of three pairs. From left to right they are labeled T0 for the first extruder, T1 for the heatbed, and T2 for a second extruder.
The extruder has a heating element (heater cartridge) in the heating block that connects to the screw terminal labeled D10. The heating element must be 12V and consume an average of 2.5 amps. The temperature of the extruder is monitored by a thermistor also installed in the heat block. The thermistor is connected in the terminal labeled T0 (uses pin A15 in Arduino). (The thermistor does not have a polarity.)
The endstops are the switches that tell the firmware when one of its axis (X, Y, Z) has reached either (or both) its minimum or maximum limit. In the board you will find six 3 pin connectors labeled (from left to right) X-MIN, X-MAX, Y-MIN, Y-MAX, Z-MIN, and Z-MAX. While you may connect both endstops for an axis the common setup is to use only one per axis. (Note firmwares implements software endstops for the opposite side using the dimensions on the build area of the printer.)
To simplify the setup of the firmware it is easier to only use the minimum pins of each axis. The minimum is also know as the home location of your axis, on our traditional cartesian FDM printers we said that the end stop for the Z axis is in the bottom end of the frame, for the X axis is to the left of the frame and for the Y axis is somewhere near the back. (Note: all of this can be configured at will but requires more changes in the firmware. Check this excellent page explaining endstops from the Marlin Firmware guys.)
You have endstops with 3-pin connectors. Now days when shopping online is very common to find 3-pins endstops with leds, mainly due to all the Ender 3, CR-10 and similar clones that use them.
Is also common to find endstops with 2-pin connector or using only 2-wires (even if the connector has 3-pins). This is also the case when you wire your endstops directly, in which case only the COMMON and NC pins of the switch are used.
From top-to bottom you will notice that for each axis the first pin is the Signal S, the second is GND, and lastly the 5V pin. In a two pin connection the + pin is NOT used.
When wiring a 2-pin endstop the NC pin is connected to GND (-) on the board. The COMMON pin (marked as C or S) is connected to the S on the board. Usually the endstop will have their pins identified.
When wiring a 3-pin endstop is best not to make assumptions about the pinout on the endstop, check for markings on the PCB, read the manufacture"s information or use a multimeter to identify the pins.
Once you have figure out the type of endstops all that is left to do is to plug the corresponding connector for each axis using minimum pins in the board.
The board allows up to 5 independent motors using stepper motor drivers which today is mainly drivers using the board design of Pololu like the A4988, the DRV8825 or even TMC2130.
Before installing the driver you need to set up the jumpers corresponding to each stepper to set the steps. These jumpers define the microsteps for that particular driver. For A4988 setting all the jumpers will set the micro stepping to 1/16 of a step. For a DRV8825 setting the last jumper will enable 1/16 micro stepping.
Some notes on TMC2130: Getting TMC2130 stepper drivers to work on a RAMPS 1.4 board requires modifications to the board. TMC2130 stepper drivers are configure by software using SPI. TMC2130 drivers require the pins from AUX02 and AUX-3 to be available if for example you have an SD Card or and LCD, chances are that you won"t be able to setup the SPI interface for the TMC2130.
A RAMPS 1.4 board using traditional Pololu drivers provide from 1A to 1.2A of current and about 4V to a NEMA motor. The force a motor can produce is mainly measure by its holding torque (For example 3.2 kg-cm, You will also find this in Newtons or oz-in)
The force it can produce. The main metrics for this is the holding torque (For example 3.2 kg-cm, You will also find this in Newtons or oz-in). For most designs an average of 44 N·cm is enough force to handle your everyday prints.
The steps of a motor is how accurately it can move. This is given in degrees per step or steps per revolution. For example in 3D printing an average NEMA17 motor used is 1.8 or 0.9 degrees with 200/400 steps per revolution. If a motor makes a 1.8 degree rotation in one step, then to complete one revolution (that is 360 degrees in a circle) it will take 200 steps. Most common NEMA 17 motors are 1.8 degree steppers.
A motor will have 4 cables either directly attached or as a ribbon that has a (JST-XH) six pin connector in the motor. The other end of the connector will be a 4 pin header that attaches to the RAMPS board. (From the six pins of a motor only four are used on the connector.)
Since the motor has two coils (2 phases motors), each coil has two pairs of cables. Like shown on the above picture the trick is to identify what pin in the motor corresponds to a pair. The illustration shows two common combinations, we call them straight and cross. The straight has the pins for the coil in order and the cross switches the two in the middle.
The other thing with the two cables in a pair is their polarity. The polarity tells the direction of the spin. There is not such thing as wrong direction instead the direction is dictated by how is the motor used and the control board. For this reason in many motor diagrams you will NOT see polarity specified as is left for the implementation of the design to select the default direction.
Using a multimeter in continuity (resistance/diode test mode) you can test the combinations of pins until you find the pair that belongs to one coil. In continuity test you will have a low resistance value, some multimeters beep or read "short/closed" to indicate when you found a pair. Use the first picture as reference to check if you have a straight or crossed pinout.
Hint If you are swapping a motor in a printer or equipment already wired, then check both ends to see which are the pairs, use the picture "Common Coil Combinations" for reference. If your new motor came with a cable then compare the motor end of the new and old connector to quickly tell if its cross or straight. Usually black/green are in one side and blue/red in the other (don"t mind the order of the pairs), if you see one cable from one of these two pairs swap in the middle two pins, chances is that you have a crossed connector for your motor.
Connect the 12V power cables to the positive end (+) on the board. In your Power Supply (PSU) these cables may be yellow or red and are usually labeled V+ or 12V. The black cable is negative/ground and is usually labeled V- or COM. Always check the label on the power supply for actual cable details or see the manufacturer"s manual.
The board has two pairs of connectors for power, one labeled 11A and the other 5A, both of these pairs are 12V connections. The 11 amps pair is used to power the heated bed. The 5 amps source is used to power the board, the rest of the printer"s components and the Arduino board.
Your power supply should be able to deliver 16 amps, is ok if it delivers more. The generic S360-12 power supply is commonly used in 3D printers and provide about 30A/360W. Other variants are the S-480 and S-600 for 480W and 600W respectively.
The heater block on the extruder shares the 5A source, make sure that the amperage/current drawn by additional extruders can be supported by the board.
The RAMPS 1.4 has a 1N4004 diode labeled D1 which allows 12V to feed and power the Arduino Mega 2560 board. This diode is installed in most pre-assemble boards, thus the Arduino board is powered by the Ramps by default.
When the RAMPS is not powered or if the diode is not installed or cut/removed, the Arduino gets its power from USB or a power supply connected to its 2.1mm (center positive) power jack.
The Arduino provides a Vin connection to connect an external power source that can be from 7V to 12V, remember the diode D1 can not be connected if you plan to power the Arduino using its Vin.
The PS_ON pin is intended to switch your power supply on and off. Many firmwares support pulling this pin low with M80 command to turn the power supply on, and M81 to turn it off. This behavior is desired for ATX power supplies and can be modified in firmware to support 5V high power supplies like those borrowed from an Xbox.
If you want to use PS_ON to turn on your power supply then don"t use diode D1, you need your Arduino to be powered from 5Vsb otherwise when no USB is connected the PS_ON pin floats (and your power supply pulses on and off).
Or you can hack up a 12V laptop power supply, or other 12 V "wall wart" power supply. Make sure that the power supply can output 5A or greater. Additional 11A may be needed for heated bed support.
The 5V pin in that connector on RAMPS only supplies the 5V to the auxiliary servo connectors. It is designed so that you can jumper it to the VCC pin and use the Arduino"s power supply to supply 5V for extra servos if you are only powered from USB or 5V. Since there is not a lot of extra power from the Arduino"s power supply you can connect it directly to your 5V power supply if you have one. You can also leave this pin not connected if you have no plan to add extra servos.
First, the 1N4004 diode (Diode D1) connects the RAMPS input voltage to the Arduino Mega which has a recommended maximum input voltage of 12 volts. If your board does not have this diode soldered in (or if you cut it), you will need to power the Mega through the USB connector or through a separate 5v line, but this allows a higher RAMPS voltage.
Second, most boards use 25v or 35v aluminum electrolytic capacitors (C2, C3, C4, C6, C7, C9, and C10). To be safe, you should only go to half of your rated maximum voltage -- thus if your board has 35v capacitors (code VZA) then you should use a maximum input of 17.5v. The absolute maximum voltage is determined by the Pololu servo drivers, which themselves are limited to 35V.
DON"T secure Arduino/RAMPS with conductive screws through both mounting holes. The screw may cut into the positive trace creating a HIGH current short.
On R1+ board the extruder heater is connected to the plug labeled D9. This connector corresponds to the original D10 of RAMPS board and still responds to Arduino"s pin 10.
As of 2012 Marlin has built-in support for RAMPS 1.3 and Ramps 1.4 boards. Marlin"s Firmware up to version 1.1.9 and even version 2 compile with ease using new version of the Arduinos IDE. Compiling a firmware older than 1.1.x require changes to the code or to use an older IDE version.
The SRAMP Firmware is a fork of Marlin v1.1.9 exclusively tailored Mendel/Cartesian printers using 8Bit Microcontrollers. The firmware sports a new GCODE parser and aims to make it easier hobby builders to add features (LCD, SD, etc).
Working preconfigured Sprinter firmware can be downloaded here: File:UltiMachineRAMPS1-4Sprinter.zip. Mechanical is in the folder ending with ME, optical endstop firmware is in the folder ending in OE.
mechanical endstops (now the default ultimachine.com option) require #define OPTO_PULLUPS_INTERNAL 1 to be added to configuration.h if not there by default.
Note * You can use Female Headers which are not the exact size, but they are hard to break/cut so in this case buy some extra! (one wasted header per cut)
A BOM for sourcing the RAMPS components from Mouser is also available in this google spreadsheet (This list is incomplete and has missing or incorrect quantities.)
The surface mount can be done a few ways. Since all the SMT components on this board are large 2 pad parts you can do pin by pin soldering pretty easy with normal soldering equipment. Start by putting a small amount of solder on one pad. If you have flux, coat the soldered pad. Use the tweezers to hold the component down in position and heat the solder to tack the component into place (make sure the entire solder blob flows so you don"t get a cold solder). Then solder the other pad. Also popular is using solder paste for pad by pad soldering, Oven Reflow (need link), and HotplateReflowTechnique
These must be placed in the proper orientation. The board has the foot print of the components printed on it. The rounded corners on the base of the capacitor must line up with the white print on the PCB.
These must be placed in the proper orientation. The board has the foot print of the components printed on it. The rounded corners on the base of the capacitor must line up with the white print on the PCB.
Solder 1 1x6, 6 1x4, and 7 2x3 pin headers on top of the board. The long post should be standing up to take a connector. Solder one leg on each one to tack them into place. 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. You will get burnt if you touch the other side of the pin you are soldering.
Place the female headers for the stepper drivers on top of the board. You can use the 1x8 and 1x6 pin headers to jig them straight. Turn the board over and solder these pins.
This section assumes you are using Pololu, but there are other options. Insert two 1x8 pin headers into the board. If you bought a kit with one 16 pin header, simply cut it so that you have two 1x8. Make sure that the side with the labels has the long ends of the posts, and the side you want to solder is the side with the heat sink. Doing this backwards will cause you not to see the labels and will most likely not fit. Remember to apply a heat-sink to the largest chip on the back.
D1 should only be installed if the 5A rail is powered by 12V. It can be omitted and the Arduino will be powered from USB. You will want D1 installed if you add components to print without a PC. To reiterate, D1 MUST be omitted if you are powering the 5A rail by more than 12V, or the power is not absolutely clean, otherwise you may damage your ramps.
This is the smaller yellow fuse. This can be placed in any orientation. When soldering the fuses it is best to use a piece of 3mm filament or something similar to keep the ceramic coating on the pins from blocking proper solder along the through hole.
Since the fuses are the tallest parts, it is simpler and more convenient to solder them last. From this point on, solder the rest of the RAMPS in order of bottom pins, reset switch, terminals, mosfets and then fuses.
Place these on the bottom of the board with the long post out to plug into the Arduino MEGA. You can plug them into the MEGA to hold them in place while you solder. Do not overheat the pins while in Arduino or you may damage its connectors.
This must be oriented where the wire holes are turned towards the edge of the board. Solder a pin on each end and make sure the component is flat on the board and solder the middle pins.
Connect Motors (Do not disconnect or connect motors while powered; if the connection is loose, this will cause the motors to misbehave and possibly kill your stepper driver.)
As there are (by 2019) many different producers of the RAMPS 1.4 board, some who have made their own changes to the design files, thus some boards have some close to critical issues. See examples below.
A "thermals" design flaw has been noted in the RAMPS 1.4 Eagle CAD files. This has been confirmed by visual inspection of production boards, which consistently shows only between two and three (almost never four) thermal-isolating traces per side of the PCB, to power-carrying pins, of under a 0.5 amp carrying-capacity per trace, assuming a 1oz copper thickness.
This image is also in error (it isn"t: it"s a photograph of an existing production RAMPS 1.4 board), the left two unpopulated pins on the image are for the always on fan and use very little current. So are not an issue (actually it is)
The problem may be fixed in the Eagle CAD files - for a future version of RAMPS only - by disabling "thermals" on the GND, +12V and the +12V2 Copper pour. However on existing (mass-produced) RAMPS 1.4 boards, estimating the total widths (including all thermals from all tracks on both sides of the PCB) checking with an online copper width calculator and adding up the total current, assuming a 1oz copper PCB the maximum safe current on the fuses (giving only a 10C rise in temperature of the thermal-isolation tracks) is only around 6 (six) amps and in other areas the maximum safe current (assuming the same 10C rise in temperature) is around 8 (eight) amps.
This problem may potentially be fixed on existing RAMPS 1.4 boards by augmenting the power traces with suitably-thick insulated wires with sufficient current-carrying capacity, soldering them to all the relevant pins.
Minimum total parallel trace with measured on the bed power rail was about 80mil, which would equate to a 4 amp safe limit using the above considerations. Board is marked with "www.bigtee-tech.com" where the "UltiMachine" and "reprap.org/wiki/RAMPS_1.4" markings are in the original 1.4 design.
Note the decreased isolation of the copper pours. Slikscren has the "reprap.org/wiki/RAMPS_1.4" marking but not the "UltiMachine" found on the original design.
Using a "JY-MCU" (vendor Shenzhen Jiayuan Electronic Co.,Ltd.) Bluetooth modules (HC03, HC05, HC06 chipsets) to setup a wireless connection to the Arduino.
Before the module can be used, the default setting has to be changed. You can connect to and modify the BT JY-MCU module settings via the Arduino mega 2560 using the pin 10 and pin 9 as Rx and Tx terminals, respectively. Make sure you connect Rx on the BT module to the Tx on the arduino and vice versa, in other words Rx goes to Tx and vice versa. Upload the simple code to arduino located on an instructable entitled "Success-Using-the-JY-MCU-linvor-Bluetooth-Module". Use the serial monitor within arduino IDE or another terminal program, with baudrate set to 9600 and "No Line Ending" selected, enter the following commands:
Alternatively, you can connect to the module from PC via USB<->RS232 (RxD/TxD) interface with default settings (9600, N, 8, 1). The module shouldn"t be paired at that moment. Use the same AT commands as above.
On RAMPS/Arduino Mega the UART level are 5V but the BT module supports only 3.3V input. Therefore the TxD level has to be divided by resistor. This passive solution is fast enough for 115kBaud. Overall only 4 wires have to be soldered.
I"m working on a Laser cutter. I’m using the RAMPS 1.4 and Marlin software. To make the Marlin software work with a laser I’m inspired by this blog from dreammakercnc: Marlin Firmware modification for Laser Control
My plan is to use Inkscape to design and create the G-code. With Pronterface I will sent it to the laser cutter. My plan is to get the Marlin software to work like in this video:
I"m using stepper motors. They are working when I connect to Pronterface. I can control the motors when I"m using Pronterface. But when I load a G-code file, that I designed with Inkscape, the program seems to freeze. Nothing happens. It"s saying:
I haven"t connected any extruders, fan or bed to the RAMPS 1.4. I have connected one thermistor and one endstop. Both are working well. When I upload the Marlin software there are no problems.
About: Avid 3D printer builder, currently completing my 3rd printer design. If you like what you see and maybe even implement what provide, consider supporting subscribing to my youtube channel https://www.youtube.co…
In this instructable I will walk through all the components and steps required to setup a 3D Printer using the most commonly used RAMPS 1.4 controller board.
Please note that although most components on the 3D printer run 12Volts and less. You do need to connect your power brick to 110 Volts. BE CAREFULL, YOU ARE DEALING WITH LIVE POWER.
There are many other boards on the market and I"ve personally had good luck with the KFB2.0 board with acts almost identical to the RAMPS 1.4 but uses slightly different connectors.
The Type of extruder you purchase is up to you. You can choose from Direct Extrusion (motor on the Extruder) or a Bowden type of extrusion (motor feeds filamant through a tube to Hot-end) but it won"t make a difference in hooking them up.
it was pointed out, some of the pictures show wires directly screwed into components. It best to use fork connectors and ferrules for better connectivity:
The Shield should fit right on top of the Arduino board. The USB port on the Arduino should be on the same side as the Green power connector on the Shield. Make sure that all the pins from the bottom of the shield line up with the connectors on the Arduino. Push both boards snuggly together (this may sting a little)
Before adding the Stepper Drivers you need to decide what type of micro stepping is needed by the 3D Printer. I"m not going explain what exactly it means (there is plenty of articles on that). in general, when you buy a 1.8 deg. step angle (200 steps/revolution), the micro stepping becomes a multiplier. What"s important is that for the RAMPS 1.4 most precise stepping is 1/16th micro stepping (16 x 200 = 3200 steps/rotation).
In order to instruct the hardware to use 1/16th micro stepping, jumpers are added between the banks in which the stepper drivers will fit. For 1/16th stepping you need to add three jumpers under each driver. Make sure they are on straight, it"s easy to plunge one of these past the actual pin.
VERY IMPORTANT!! Note how the drivers A4988 Stepper drivers above have a little potentiometer on top (this little phillips screw). When inserting your stepper Driver MAKE SURE THE POTENTIOMETER POINTS AWAY FROM THE BOARDS POWER END (GREEN CONNECTOR).
If you are still unsure: Find a labeled pin on one or more corners of the stepper driver board (DIR, GND, ENABLE, VMOT) and match it up to the RAMPS pinouts.
I hate to say this but, sometimes you"ll find that the bays for these stepper drivers are too close, or the edges of your stepper driver are a bit too wide. In the image above you can see a gap between the top two drivers, whereas the bottom ones barely fit. It might make for a very tight fit and in cases where it doesn"t fit, you may have to file some of the edges from the stepper driver.
It"s a bit hard to see on the smart Adapter I have here, but but you can kind of make out that the left connector (10 pins) says EXP2 and the right connector says EXP1. These correspond with the EXP1 and EXP2 connectors on the LCD board
power comes in on two tracks into the Ramps 1.4 shield. One track is 12V 5A which powers the board and motors, the second track is 12V 11A which powers the heated elements like the extruder and heated bed.
Connect the wires as seen in the images. Be careful, as you can see, the 110V live wire is exposed. Unplug your power source prior to lifting the lid accessing the screws.
Also, note that when you plug in the RAMPS 1.4 with a USB cable to your computer the LCD will come one and you can program the Arduino that way. There is no power to run any motors or heating elements though. For that, you do need the external power source.
Stepper motors come in many varieties and with different power specifications. The printer built in the previous instructable uses Nema 17 0.4Amp Stepper motors. These aren"t the strongest steppers but they do just fine. My CoreXY printer that can handle more speed/torque runs 2.0Amp stepper motors.
Generally the Nema 17 Stepper motors and associated cables are configured correctly, so when you plug them in, they"ll run at first try. If your stepper motor is making funky jumps or just shakes, it generally means the wires from the motor don"t line up with the 2B 2A 1A 1B pins on the board.
If that happens you"ll need to closely look at the data sheet that generally is shown when you purchase the steppers (or it will say something like Black(A+), Green(A-), Red(B+), Blue(B-)). Granted when the wires don"t line up it can be a bit of a puzzle trying to figure out the proper combination.
If you"re building a Prusa/RepRap type printer, you"ll employ 2 stepper motors for the Z-Axis. The RAMPS 1.4 shield has accounted for this and offers two rows of connection pins for the Z-Axis.
Nowadays you can buy really fancy stepper drivers that feel resistance. Along with Marlin software changes you can do without end stops. In most printers though, you"ll need end stops to make sure your X/Y and Z axis don"t run off the rail (or worse; tear something of your printer apart).
The RAMPS 1.4 comes with 6 end stop connections (X Min, X Max, Y Min, Y Max, Z Min, Z Max). Rarely do you use all six. What you"re really interested in is either the Max or Min. If you know one, you can limit movement based on it"s location (0) via the software (if I can detect Min and know my bed is only 200mm wide then I can tell the software to not move beyond min+200)
The most common types of end stops are mechanical swithes, optical switches and proximity sensors. Proximity Sensors tend to only be used for the Z-Axis in conjunction with Auto Bed Leveling. I won"t cover inductive sensor wiring here but if you"re interested, I did write something on the wiring in this article Proximity-Sensor-Detection LJ12A3-4-Z-BX vs LJ12A3-4-Z/BY wiring
If you are using the most commonly used end stops "Makerbot Designed Mechanical Endstop Kit", it comes with little circuit board and wiring. It will light up an LED when triggered.
There are 3 wires coming from the end stop: RED/BLACK/GREEN IMPORTANT: make sure the wires correspond with the image above. If you turn around the connector on the RAMPS board and accidentally put the RED wire on the Signal (as opposed to +) YOU WILL SMELL SMOKE real fast.
If you forego the fancy Makerbot Switch (don"t do it for the price, it"s generally more about the size of the sensor) and instead go with a micro switch it"s my experience wiring is a bit easier. You really only need two wires. solder the wire to the two outside pins of the Micro switch and connect them to the -(minus) and s (signal) pin on the ramps.
You can test the micro switches and their behavior by opening an application like Pronterface or Octo Print and sending the g-code m119. It will show the state of all end stops. As seen in the video below.
The Extruder (the hot-end that spits out the plastic) generally has 6 wires associated and possibly more if you you use auto bed leveling and an additional Hot-end Cooling fan (Unlike the Heat sink fan, it cools the last layer of deposited plastic).
The normal wiring setup generally means we hook the heat sink cooling fan to the 12V fan connector on the RAMPS 1.4. These fan pins can be found between the fuses and the X Stepper Driver (see image above). On the image the left pin is + so make sure the red wire from the fan connects to that one. Oh, and for some reason all wires on 3D printers seem to come at 1 meter but the cooling fan wires generally never do. Be prepared to extend them.
The RAMPS Board has 3 Thermistor hookups (2 extruders, 1 heated bed). The Thermistor wire for the extruder (The white skinny wires) go on T0. Polarity does not matter.
Most heated bed you buy will come with wires and thermistor but are often not yet connected. The most common heated bed is the one seen in the image (the MK 2B by Joseph Prusa, or most likely some clone of it).
At the bottom of the bed you"ll generally see either two or three metal connectors to which to solder the power. If your printer is 12V follow the instructions and solder one wire to both 2 and 3 and the second wire to 1. Don"t bother with the LED connection, There really is no point to those.
The glass bead head of the thermistor goes right into the tiny hole at the center of the bed (this so it will close up to the material on top (like a glass plate).
There you have it. All the wiring that was done for the Laminated 3D printer. These instructions are pretty much the same of any other RAMPS 1.4 installation. There are additional options such as Hotend Cooling fan and Auto Bed Leveling (both of which can be done with the standard RAMPS 1.4) but I"ll save those for another instructable.
The only jumpers you really care about are the jumpers that will be under the stepper drivers. if you fill the three rows under each stepper driver you will use, it will set the micro stepping to the highest (1/16th on the A4988). each jumper oriented shield to shield (see ramps image below). Microstepping options in other image
Do you change the default value of the potentiometer in the stepper driver or do you let it be? I have a 2.6 V 1.2 A NEMA 17 Stepper motor but I am not sure what the current and voltage value on the stepper driver should be to get the best result.
You may have to end up tweaking it when running. I have mine at about 0.6v (If I remember correctly. You can change the pot meter when running the motor and kind of go by sound. If you want to do it right: https://youtu.be/OpaUwWouyE00
I searched more and figured out that there is not a universal standard for colors and letters. I used a multimeter to find out which wire is for what coil inside the motor.
Hi, I’m trying to use this setup for a robotics project, how would I include sensors to trigger motors on the 2560 if the ramps has used all the pins? Do I run a master/slave setup
How do you wire up a 3-wire endstop (makerbot) as a runout sensor? I know you have to use one of the servo ports but I don"t know which one and what wire goes where.
Can I use a MKS base board, v1.6 and control the printing action using Octoprint which will loaded on rasperby pi, instead of using the RAMPS kit ? and i was wondering how can i callibrate or it ? or if you have a guide to use step up the printer using MKS-BASE ?
I"m not familiar with the MKS 1.6 but when I started out with my KFB 2.0 board it"s closed "pin output" pal was the "MKS gen L". Wiring the KFB2.0 3D Printer Controller : 11 Steps (with Pictures) - Instructables Check it out and I think you"ll find the layout and setup very similar.
As for calibration; that will be independent of board and all configuration in the Marlin Software. Check out my other instructable starting at step 10: 3D Printer Cantilever 2.0 C3Dt/c : 14 Steps (with Pictures) - Instructables There"s also videos associated that walk you through some of the steps.
Hi, i have a question. My arduino mega works fine but when i fit the Ramps 1.4 board to it and plug it into my computer the leds on the mega board do not come on nor does my computer acknowledge it either aubily or on device manager. If i take the ramps board off the mega is recognised. Am i right in assuming the ramps board is faulty?
that hasn"t happened to me so I can"t be certain. Certainly doesn"t sound right. Here"s a link with what sounds like an issue similar to yours (with some things to try) https://www.reddit.com/r/3Dprinting/comments/39mzvb/help_ramps_board_makes_arduino_stop_working/0
The power source in this printer actually uses (ring connectors) and the power unit is covered but, you are correct. This was the very first printer I built (over 5 years ago) when forks and ferrules were barely on the radar. All my subsequent printer designs here use forks and ferrules.
I"ve installed Marlin on my Arduino board, no issue. Installed the jumpers and drivers to the Ramps 1.4 board, plugged the Ramps into the Arduino, added the LCD adapter board and connected the LCD screen. Plug it into the computer with the USB cable and voila, she fires up great, ready to go. Unplug the USB and connect the Ramps board to my 12VDC power supply + to +, - to -, and *nothing*. My VOM is showing 12.1 volts at the connectors on the Ramps board, but no LED"s on the boards light up and the display screen doesn"t work. Unhook the power supply, reconnect the Ramps to the computer with the USB cable and it comes back to life. What gives? I"ve triple-checked every connection and it all matches documentation in this instructable. Am I right in thinking I got a bad Ramps board?More CommentsPost Comment
RepRap Arduino Mega Polulu Shield, or RAMPS, is a board that serves as the interface between the Arduino Mega — the controller computer — and the electronic devices on a RepRap 3D printer. The computer extracts information from files containing data about the object you want to print and translates it into digital events, like supplying a voltage to a specific pin.
It takes many, many such pins turning on and off to tell a printer what to do. Unfortunately, the Mega doesn’t have enough power to actually operate the printer’s hardware.
That’s where the RAMPS board comes in. It organizes and amplifies the information coming from the Mega so that they’re properly directed down the correct channels.
For example, if the hot end carriage needs to move one step to the left, the RAMPs board routes the signals from the Mega to the X-axis stepper motor via the appropriate pins and wires.
RAMPS 1.4 arose from years of development by the RepRap project. It satisfied the need for a single controller board that used the Arduino Mega and Pololu stepper drivers to manage all the functions of a 3D printer.
In the spirit of RepRap, it was originally designed to allow home production. Soon, it became too sophisticated and the design switched to favor commercial boards.
The basic layout of the board started with RAMPS 1.2 and has continued to (at least) 1.7. Nevertheless, the most popular version has remained 1.4 (with thru-holes or surface mount components). This board has been widely copied and can be obtained and assembled for under $10 from Asian manufacturers.
The stepper drivers are the common Pololu drivers that are available from many sources. Because they are detachable components, should one cease to function, it can easily be replaced by pulling it out and replacing it with a new driver. Three of the stepper drivers are designated for the X, Y, and Z axes of the printer, while two are designated for extruders. The Z-axis connector allows two stepper motors to be driven synchronously. Each stepper driver can be configured to move its motor 1, 1/2, 1/4, 1/8, or 1/16 steps per pulse.
These are driven by MOSFETs and control the amount of power supplied to a device (and therefore the amount of heat produced). Typically, one driver will supply the hot end, one will supply the bed heater, and one will control a fan, which cools the plastic once it is extruded. The fan driver can also be used as a second hot end driver for dual-extrusion systems.
Thermistors measure the temperature of the devices connected to the heaters. The computer controller can use this information to monitor and control device temperatures.
The RAMPS board supplies enough end stop control to allow a 3D printer to detect motion at both extremes of the X, Y, and Z axes (left-right, front-back, up-down) to limit the range over which a stepper motor can move the printer parts along any axis. The end stops can be either mechanical or optical.
The RAMPS board allows you to attach an SD card reader so that you can read printable files straight from the SD card instead of connecting to a computer.
These include screw terminals for two 12-V connections, one for the bed heater and one for everything else. The power inputs are fused to prevent damage.
Five additional sockets provide access to unused pins on the Arduino Mega. This allows for the addition of extra fans, LEDs, servos, and a wide range of peripherals that add additional capacity.
The board is cheap, readily available, and has a bulletproof time-tested design. Recent warnings have been posted on the RepRap site about some very cheap RAMPS boards that place power and ground traces very close together. However, this is not part of the default RAMPS design, so boards purchased from reputable suppliers should not have this problem.
The board is available as an assembled board, a kit, a bare board, and as files to send to commercial circuit board manufacturers. The schematic of the board is widely available.
The Arduino Mega runs Marlin firmware, a highly evolved middleware that is easy to modify, is constantly evolving, and allows the RAMPS 1.4 board to run nearly any kind of 3D printer.
This website is using a security service to protect itself from online attacks. The action you just performed triggered the security solution. There are several actions that could trigger this block including submitting a certain word or phrase, a SQL command or malformed data.
(info from RepRap.org Wiki)This Smart Controller contains a SD-Card reader, an rotary encoder and a 20 Character x 4 Line LCD display. You can easy connect it to your Ramps board using the "smart adapter" included.
After connecting this panel to your Ramps you don"t need your pc any more,the Smart Controller supplies power for your SD card. Further more all actions like calibration, axes movements can be done by just using the rotary encoder on the Smart Controller. Print your 3D designs without PC, just with a g-code design stored on the SD card.
PO Box, APO/FPO, Afghanistan, Alaska/Hawaii, Algeria, American Samoa, Angola, Anguilla, Antigua and Barbuda, Argentina, Armenia, Aruba, Azerbaijan Republic, Bahamas, Bangladesh, Barbados, Belize, Benin, Bermuda, Bhutan, Botswana, British Virgin Islands, Brunei Darussalam, Burkina Faso, Burundi, Cambodia, Cameroon, Cape Verde Islands, Cayman Islands, Central African Republic, Chad, China, Comoros, Congo, Democratic Republic of the, Congo, Republic of the, Cook Islands, Côte d"Ivoire (Ivory Coast), Djibouti, Dominica, Dominican Republic, Ecuador, El Salvador, Equatorial Guinea, Eritrea, Ethiopia, Falkland Islands (Islas Malvinas), Fiji, French Guiana, French Polynesia, Gabon Republic, Gambia, Georgia, Ghana, Greenland, Grenada, Guadeloupe, Guam, Guatemala, Guernsey, Guinea, Guinea-Bissau, Guyana, Haiti, Honduras, Hong Kong, Indonesia, Jamaica, Kazakhstan, Kenya, Kiribati, Kyrgyzstan, Laos, Lesotho, Liberia, Libya, Macau, Madagascar, Malawi, Maldives, Mali, Marshall Islands, Martinique, Mauritania, Mauritius, Mayotte, Micronesia, Mongolia, Montserrat, Morocco, Mozambique, Namibia, Nauru, Netherlands Antilles, New Caledonia, Nicaragua, Niger, Niue, Pakistan, Palau, Panama, Papua New Guinea, Paraguay, Peru, Puerto Rico, Reunion, Russian Federation, Rwanda, Saint Helena, Saint Kitts-Nevis, Saint Lucia, Saint Pierre and Miquelon, Saint Vincent and the Grenadines, Senegal, Seychelles, Sierra Leone, Solomon Islands, Somalia, Sri Lanka, Suriname, Swaziland, Taiwan, Tajikistan, Tanzania, Togo, Tonga, Trinidad and Tobago, Tunisia, Turkmenistan, Turks and Caicos Islands, Tuvalu, US Protectorates, Uganda, Ukraine, Uzbekistan, Vanuatu, Vatican City State, Virgin Islands (U.S.), Wallis and Futuna, Western Sahara, Western Samoa, Zambia, Zimbabwe
The LCD screen is vital for operating the printer. Should you encounter any kind of trouble, such as a dead screen, corrupted text, or other issues, please refer to the guide below.
First of all, unscrew the LCD screen from the printer frame, remove both M3x10 screw holding it the LCD board in the plastic casing, and remove it from the casing. See if the problem still appears when the LCD is not pressed by the casing.
Firmware updates are necessary to keep your printer up to date. However, the installation of incorrect firmware can lead to letter corruption on the LCD screen. There"s an easy fix, though:
There is a small chance the printer"s LCD screen can glitch out by electrostatic discharge when inserting the SD card. Try to turn the printer off and on again.
This problem usually appears only on user-assembled printers. If your printer"s LCD screen remains blank or displays corrupted symbols after you turn on the printer, there is a chance it is caused by incorrect wiring. Follow these steps to fix the issue.
Double-check that all cables are properly seated and they are not visibly damaged. Depending on the model of your printer, please refer to the following guides for information on how to make sure the cables are properly connected: Einsy RAMBo electronics wiring (MK3/MK3S/MK3S+) and Mini RAMBo electronics wiring (MK2S, MK2.5, MK2.5S).
If you suspect that the LCD ribbon cables connectors are not firmly seated in the slots, disconnect the LCD ribbon cables and check the slots for any bent pins. If there are bent pins, you can use tweezers to fix them. However, be very careful not to break the pin(s) completely.
If none of the above resolved the problem, turn the printer off again and try to unplug both of the cables, lay them down on a flat surface and gently stretch them. Then plug them back in and turn on the printer.
In any case, just try to stay calm. Though it is complex, flashing firmware is a scientific process, and the rules of logic apply. Even when you’re looking at an error message telling you that you don’t have a certain library-- when you know for a fact that you’ve installed that particular library not five minutes ago-- and you can feel your blood boiling, just remind yourself that this isn’t a matter of life and death. We’ve been there, and there is a logical explanation that can (eventually) be found.
Make sure you are running the latest version of Arduino software and have the correct libraries installed. If your board is not Arduino-based, obtain the comparable software.
Not much to it, is there? Sometimes it is just that easy. If not, resources are available to help you along. See the section below, ‘Additional resources’.
What is Arduino? Arduino is an open source electronics company and platform which designs and sells microcontrollers. The boards they produce are the basis for many of the boards used for controlling 3D printers due to their open source nature and ease of use.
As mentioned in the last section, the Arduino platform is not the only platform used for running 3D printer controllers. Smoothie is another such platform, and requires different software to flash boards which use it. In this guide we’re going to focus on Arduino-based controllers, since most boards we deal with are based on them. The concept and general process will be the same, though, so most everything we discuss here should be good information no matter what platform your printer runs on.
Just make sure you get the standalone version, not the online IDE. The online version requires an account, and since we’re mostly familiar with the standalone version, we’re going to outline the process using that. You are welcome to try to follow along using the online IDE, but there may be differences that we don’t cover.
So what does the Arduino IDE actually do? This program loads the firmware files into memory, allows the user to edit code if necessary, compiles the code, and finally sends the compiled code to the board over a serial connection.
Firmware is the actual code that runs your printer. It starts as human-readable code, which defines the logic (i.e. how the printer is supposed to act given certain circumstances), is compiled into machine-readable code, then is uploaded to the memory on the controller board where it senses input and reacts according to the logic defined in the code. It’s very complex, and takes a lot of smart people a long time to develop.
Some of the common open source firmware solutions available include Repetier, Marlin, Sprinter, Smoothie, grbl, etc. We’ll touch on Repetier and Marlin specifically, though the same concepts will apply to most any of the others.
Now just so you know, firmware is provided in various forms. Hex files (.hex) are common, but they are a result of having already compiled the code and cannot be configured, so you will need to get the files that contain the code to be able to edit if needed.
If your printer’s manufacturer has a website, hopefully they host pre-configured firmware intended specifically for your printer. Lulzbot, makers of the TAZ, has firmware readily available for all their printers, for example. While they provide .hex files on themain page listing available firmware, if you dig down into theFTP siteyou can find the Arduino file along with the other code you need to edit and compile from scratch. For example, here’s a link to the Marlin folder that contains the .ino, .cpp, and .h files that make up the Marlin firmware for the TAZ 6:TAZ 6 Marlin Firmware
Once you have the firmware open you can edit the code. You probably don’t need to touch most of these files, as they have lots of variables and information already defined, and messing something up could cause a compiler error. Generally speaking, it’s best not to edit anything unless you know what it does and you are sure that you need to.
In Marlin and Repetier, the Configuration.h file is the one you’ll probably get to know the best. It contains most of the common user-editable settings that you’re likely to need to edit when doing a modification. Other firmware should have a comparable file, which will function similarly.
Below is a list of the most common settings you might want to change in both Marlin’s and Repetier’s Configuration.h files. For further information, you can consult the Marlin documentation atmarlinfw.orgor the Repetier documentation atrepetier.com. Repetier also has a handyonline configuration tool, so you do not need to edit the Configuration.h file directly.
Different thermistors have different resistances to measure temperature. Defining which thermistor your hot end uses is absolutely necessary to ensure that the temperature is measured correctly.
While motor wires can be physically swapped around to change the direction in which the motors turn, the firmware can sometimes more easily be changed. Changing the value for the direction of the motors will cause them to spin the opposite direction.
Knowing how many endstops the printer has and whether the switches are always on or always closed is important, and these settings are easily adjusted here.
If you upgrade your hot end (say, to an all-metal E3D v6 from a PEEK one), you’ll want to be able to increase the maximum temperature so that the printer knows it can go up that high. Temperatures can be manually set in degrees Celsius.
Now that you have made all the changes you want to your firmware configuration, it is time to set up Arduino to upload your new firmware to your printer.
Some firmwares require additional libraries to be installed. These are additional pieces of software which the firmware utilizes to perform certain functions. For instance, one library commonly used by printer firmwares isU8glibwhich handles graphical LCD displays. If your printer has a graphical (not text based) screen then you will need this library.
This is where you must select the type of motherboard that is installed in your printer. If you select the wrong board, you will most likely get an error when compiling.
Most 3D printer motherboards are based on the Arduino Mega 2560, so if you are in doubt then selecting “Arduino/Genuino Mega or Mega 2560” is a safe bet. In some cases, though, you will need to add a new board to Arduino.
This process varies depending on which board you need to install, and which version of Arduino you are running. The following outlines the process using the built-in Boards Manager in Arduino 1.6 or later. This works for the RAMBo board. For other boards you will need to follow the instructions in the links provided above.
This is the serial port you use to connect to your printer. This is the same as the serial port selected in MatterControl. If you have only one printer connected to your computer, then choose the only port available.
Compiling converts the human readable (if you are a programmer) source code into binary instructions which the processor understands. When you click the checkbox button in Arduino, it will compile the firmware. During this process it will check for any issues with the code. Cross your fingers. If all goes well then when it is done it will report the size of the compiled firmware in white text in the console area. If there is an issue, it will give you an error message in orange text.
Finally, click the arrow button to upload the firmware to your printer. It will be automatically compiled if you have not done so already, and then the transfer will begin. This will take a minute or two; just be patient. When the process completes your printer will reboot.
If you run into a problem, don’t panic. We have some common issues listed below. Check to see if your error message is among them. If not, you will probably have to go to the internet for help. Google is your friend. Arduino will often give you a very long list of error messages in the console. The most critical one is usually the first one. Search for the error message along with the name of your firmware or printer. You will likely find some forum posts pointing you in the right direction.
If you do not turn up anything in your research, you may need to ask a question on a web forum. The best place to ask is probably the forum for your specific printer. The most important thing to remember when asking a question online is to include the full text of the error message. Whenever Arduino gives you an error, there will be a button above the console area which lets you copy the entire text. You can then post it using a service likePastebin.
This means that Arduino is unable to communicate with your printer. Make sure that your printer is powered on and that you have selected the right port. Try pressing the reset button on your board after clicking upload. Some printers require special steps to be taken to put them in programming mode. Consult your printer’s documentation to see if there is a button combination you must press or hold down in order to flash the firmware.
If you are absolutely certain that your printer is powered and communicating with your computer then it may be possible that there is an issue with the microcontroller’s bootloader. Flashing the bootloader requires specialized equipment. If your bootloader is corrupt then you should contact your printer or motherboard’s manufacturer.
You are using an older firmware which is not compatible with the latest versions of Arduino. Arduino 1.6 and later broke compatibility with older versions. Some printers still use older firmware which has not been updated yet. You will need to install Arduino version 1.0.6. You can find it here:
This indicates that the motherboard you are trying to use (the one you have defined in Configuration.h) is not fully supported by your firmware. Specifically, the firmware is trying to use pins that have not been defined in that motherboard’s entry in pins.h. This may happen if you are trying to use a different type of motherboard than your printer came with.
You might also see a similar error message regarding Configuration.h if you opened the .zip file your firmware came in but did not unpack it. You must unpack the .zip in order for Arduino to read all the firmware files.
The Re-Arm micro controller board is more powerful and built with a faster processor, enabling faster feed rates for you 3D printer. The board has an SD card slot for firmware and configuration files, but also supports a second SD card connected via an LCD screen for project file loading. Having a separate configuration file outside of the firmware makes settings changes much easier than other boards which require new firmware for any and all settings changes. The configuration is a text file, making changes from a computer easy and fast.
Since SD cards appear as a drive in windows, it"s easy to drag and drop new firmware or edit the config file right on your computer without the need for specialized software.
Supports 2 SD cards - one for settings and firmware, installed directly onto this board as well as another for file loading, which connects on the LCD screen.
This Smart Controller contains a SD-Card reader, an rotary encoder and a 20 Character x 4 Line LCD display. You can easy connect it to your Ramps board using the “smart adapter” included.
After connecting this panel to your Ramps you don’t need your PC any more, the Smart Controller supplies power for your SD card. Furthermore, all actions like calibration, axes movements can be done by just using the rotary encoder on the Smart Controller. Print your 3D designs without a PC, just with a g-code design stored on the SD card.