Get our free book (in Spanish or English) on rainwater now - To Catch the Rain.

Delta Firmware:MOST

From Appropedia
Jump to: navigation, search

Sunhusky.png By Michigan Tech's Open Sustainability Technology Lab.

Wanted: Students to make a distributed future with solar-powered open-source 3-D printing.
Currently looking for PhD or MSC student interested in solar energy policy- apply now!
Contact Dr. Joshua Pearce - Apply here

MOST: Projects & Publications, Methods, Lit. reviews, People, Sponsors, News
Updates: Twitter, Instagram, YouTube


Tandem Build MOST Delta Navigation
Green indicate workshop tasks
Printer Primer
Soldering and tinning
Assembling hot end
Drilling Pilot Holes
Person 1 Person 2
Tie Rods and Pulleys Epoxying Magnets
Motor End Assembly Idler End Assembly
Extruder Drive Mount Bases
End Effector Frame
Printing Basics
  1. Download the firmware from github under the Repetier folder.
  2. Connect the Melzi controller to a host computer with a USB A to mini B cable.
  3. Open the Arduino IDE.
  4. Arduino IDE select correct board.
    Ensure that the proper hardware files for the Melzi controller have been installed by selecting Tools>Board and locate "Mighty 1284p 16 MHz using Optiboot". If not found in the list, return to overview and follow the instructions for installing the hardware files.
  5. Ensure that the Arduino IDE has selected the correct communication port by selecting Tools>Serial Port. If there are multiple ports available, perform an internet search for "serial ports" for the operating system installed (e.g. "windows serial ports") and locate the port assigned to an FTDI USB-serial device.
  6. Select File>Open and navigate to the location where the MOST printer firmware was saved and select Repetier.ino.
  7. Open the configuration.h tab.
    Note that the IDE separates the different files that make up Repetier firmware into different tabs along the top of the edit pane. Locate the Configuration.h tab and click on it.
  8. The bulk of the definitions are logically named and documentation is thorough. Likewise, most of the settings will not need changing, but a few will. It is well worth the time to read through configuration.h and learn what some of the settings do - you will want to tweak your printer and this is the place where tweaking is done.
  9. Locate the line containing #define DELTA_DIAGONAL_ROD and change the number to that recorded during assembly of the tie rods. Magnetic jointed tie rods have a length of 250mm unless otherwise noted.
  10. Locate the line containing #define PRINTER_RADIUS and change the number to 175. This number may need adjustment if the linking boards were not properly spaced during assembly.
  11. Upload the firmware to the Melzi controller (right arrow on toolbar or File>Upload). If the upload was successful, the printer should be ready for commissioning. Calibration is the last step that should be performed.
If you have trouble uploading double check your board choice and port, if correct and you still get this:
Binary sketch size: 56,256 bytes (of a 130,048 byte maximum)
avrdude: stk500_getsync(): not in sync: resp=0x00
Then move the jumper to touch both pins of the autoreset at the bottom of the board and retry uploading.

Notes on Repetier Firmware for the Delta

It's recommended that new printer builders use the firmware maintained by MTU-MOST at github. After having some experience, everyone is encouraged to download the in-the-wild Repetier firmware Note that there are two versions, a release (master) version and a development version. Since these exist in the public domain and almost anyone can change them, what is downloaded will not be configured for your printer - you MUST configure the firmware to work with your printer.

All of OS 3-D printer firmwares were originally written for Cartesian printers and were subsequently modified for use with the increasingly popular delta printers. With some annoying exceptions, most all of the configuration settings for Repetier are located in Configuration.h. As of the current version (development v0.91) the following settings are required (assuming the printer is built per the BOM):

#define NUM_EXTRUDER 1

#define MOTHERBOARD 63

#define DRIVE_SYSTEM 3

#define BELT_PITCH 5

#define PULLEY_TEETH 12


#define MICRO_STEPS 16

#define EXT0_INVERSE false


#define ENDSTOP_PULLUP_X_MIN false
#define ENDSTOP_PULLUP_Y_MIN false
#define ENDSTOP_PULLUP_Z_MIN false



#define INVERT_X_DIR false
#define INVERT_Y_DIR false
#define INVERT_Z_DIR false

#define X_HOME_DIR 1
#define Y_HOME_DIR 1
#define Z_HOME_DIR 1

Virtually anything else can be tweaked to the user's liking. If you notice nothing changes upon uploading a new configuration:

Setting EEPROM_MODE to anything other than 0 causes the firmware to load settings found in EEPROM - it will ignore changes to Configuration.h unless the value of EEPROM_MODE is changed.