MakerCentral blog

How to upload new firmware to Arduino/Ramps based 3D printer

Nov 19 2015
Maker blog >>

When starting out with 3D printing a lot of new things must be learned in order to get your printer up and running. One such thing is firmware. This article describes how to upload a new firmware.

It's recommended to first check if the arduino connects to your computer without anything connected to it. This prevents any unexpected behavior and may also prevent damage to the arduino, ramps or connected device.

Steps to upload firmware

This article is written for arduino and RAMPS 1.4 but other derivatives work the same way. It could be that the arduino and ramps are integrated like the RUMBA board. The processes are almost the same.

  1. Connect the arduino without ramps, check in device manager (or Max OS x equivalent) if the arduino is recognized. It should be recognized and run automatically if it's a genuine arduino. It's probably a good idea to intall Arduino Studio before connecting, it includes the drivers needed. If not, find the chip closest to the USB connector and lookup the chip code printed on it in Google. You'll most likely able to find suitable drivers for it. The exception is fake FTDI drivers. You'll need to find and download drivers with version or lower. Newer drivers will not work.
  2. Once the arduino is recognized, it will be assigned a COM port. You can find the new port in the device manager in windows XP up to 10 under Ports (COM & LPT).
  3. Download the arduino studio: Sometimes a certain firmware may not compile well with the latest version of the studio, so try older versions if there are compiler errors with a fresh copy of Marlin or Repetier firmware.
  4. Next download the firmware from Marlin or Repetier, or any other firmware that's compatible with your board. It could be that the printer supplier has made a custom version of the firmware. You can use that to get you started quickly as usually the configuration file is already setup for your printer.
  5. Unpack the firmware in a folder. I usually use the folder structure like this: "D:\data\projects\3DPrinter\Firmware
  6. Load arduino studio and load the .ino file in the firmware.
  7. In the tools menu, select the proper com port you've found in step 2
    Arduino Studio 1.0.6 setting the correct arduino board
  8. Select the correct board, usually this is the Arduino Mega 2560. In the newer versions you need to select Arduino Mega, then in another submenu you choose 2560.
  9. With a fresh copy of Marlin, it should compile without errors and upload to your printer. You'll need to edit the 'configuration.h' file to match the configuration of your printer. Select the board type ie. 34 for older versions of marlin, or 13 for newer version. In the newer version of marlin you need to setup what combination of extruder(s), heated bed and fans you have. Read the instructions in the configuration.h file.
  10. Once it's configured properly you hit the upload button and in half a minute the firmware is on the new device. It will start running immediately when it's done. You can connect using Pronterface or Repetier host to check if everything is working.
  11. If you upload a new or updated firmware, make sure you disconnect within Pronterface or Repetier Host first. If the arduino is no longer recognized, unplug and plug in the USB again.
  12. Whenever you connect or disconnect something from the board, power off the arduino/ramps, unplug the USB connector before changing anything. It's easy to damage something while you plug or unplug stuff. The power supply can supply very high currents, which may not be dangerous to you directly but can cause fire and damage the components.

Testing and checking

Now that you are able to upload new firmware to your board, you can start testing the components connected to the RAMPS board.

  1. First start with the temperature sensors of the hot end and heated bed if available. If one reads zero or 500 with a warning HIGH TEMP! the temperature sensor is not configured correctly in the firmware or is not connected on the board, or the wiring is faulty. Use a digital volt meter to measure the sensor. When using resistance metering, the NTC should be around 90-120K ohms.
  2. Once the temperature sensors are working and you get a readout in Repetier Host or Pronterface you can start testing heating the hotend and heated bed. Connect both to the board. Make sure the high current connector is connected to the PSU. Use 1mm diameter stranded wires, silicone coated RC car wires are recommended for the heated bed, or use thick loudspeaker wire if you don't have access to RC wire. 
  3. Start with a low temperature of 40 degrees and see/feel if it heats up and holds the set temperature. If it keeps heating up, turn off the power immediately and check wiring and firmware configuration. If it starts heating immediately without enabling heating the MOSFET on the  board may be faulty or there's an error in the configuration.h file.
  4. Now check the stepper motors one by one by trying to move them. If they move you can try to home them. If they move manually but don't home or move in the opposite direction, either put the end stop on the other side of the axis or edit the configuration to invert the homing direction. Make sure to configure the position of the endstop and which way is negative or positive.
  5. Congratulations! If all went well you have the basic setup ready for a test print!
  6. Now the more difficult part starts: calibrating your printer. I may write an article about calibrating it properly.


Here is the RAMPS 1.4 connector description taken from wiki:

 RAMPS 1.4 connector description

 Here's the connection diagram with all the parts:

Last changed: Nov 19 2015 at 4:23 PM

Back to Overview


No comment found

Add Comment