Back to the first half:MOST RepRap build
Limit Switches[edit | edit source]
BOM[edit | edit source]
3 mechanical limit switches and wires 3 end stop holders (printed) 3 m3 x20mm screws 3 m3 washers
3 m3 nuts
6 m2x10mm screws 6 m2 nuts
6 m2.2 washers
Installation of Limit Switches[edit | edit source]
Mount your limit switches to the end stop holder. Plastiform threads into plastic and put on all the m2 screws. Mount the three limit switches to x, y, and z axes respectively.
The x switch is triggered by the x carriage. The y-switch is triggered by corner of the y frame (blue) and the z switch is right beneath the flexible arm (yellow). Put a m3 and two nuts to the flexible arm to enable you to do fine control of the z switch.
Power Supplies[edit | edit source]
Cannibalize an old computer or buy a power supply that provides a minimum of 15A at 12V.
Cut off the ends of all the black and yellow (12V) supplies, group them and solder together. Take the yellow and black bundles and extend with wire by soldering. Then plug these power lines into the Melzi Board. You will not need the other leads, but leave them on to prevent shorts and leave room for expansion in the future (e.g. adding a cooling fan).
Short the green wire with black ground in order to provide the 12V from your black and yellow. Do this by simply cutting the green wire and any black wire from the 24 pin power connecter on the power supply and soldering them together. You can then put some heat shrink tubing around the solder. If your power supply has a mechanical switch on the back a straight solder is fine, if there is no mechanical switch (i.e. you plug it in to turn it on) you may want to wire a switch between the green and black wire to turn it on and off easily.
Adjust your trim pots for your motors[edit | edit source]
- Find the trim pot on your board, it is located to the right of your stepper driver and below the large capacitors (below stepper driver and to the left of the large capacitor if you are looking at it while mounted on the frame). It will have a screwdriver like top surface.
- Notice that on the left side of the trim pot, there is a single large tab at the base and on the right side, there are two tabs. We are interested in the single left tab.
- If you're board isn't plugged into USB, plug it in. You do not need to power the entire board to adjust the trim pots. Ensure that the power selection jumpers is set to USB as well. The USB power is enough to allow for trim pot voltage readings.
- Use a multimeter and set it to DC Voltage within the range for 0-1V.
- Now measure the voltage from the trim pot, red probe goes to the left side, single tab of the trim pot. While the black probe goes to GRND (feel free to use the GRND from JP16).
- Be careful not to slip! You may short something!
- The voltage by factory default should be around 0.7V or so, which is high for most motors.
- Melzi has a sense resistor value of 0.2ohms, ultimately the math you need to know to set the right Vref is 0.28 * (max Current (A) of your motor). For us it is 0.28*1.7=0.476. If you are really curious about the math behind this tuning, check it out on the Reprap wiki .
- Turn the trim pot clockwise to turn down the voltage, clockwise to turn it up. BE AWARE THERE IS NO STOPPER ON THE TRIM POTS. It is possible to over turn the trim pots, so please use a multimeter when adjusting.
- Read the voltage and adjust until proper Vref is set. You can also overshoot by a little bit (roughly within 0.1V).
Plug in the power supply into the Melzi board– black is ground,
Software[edit | edit source]
The software tool chain consists of:
- Firmware: Firmware (is really software) that resides on the printer controller board (Melzi). It interprets g code into motion, controlling the motors, controls the temperature of the hotend and heated build platform, takes notice when limit switches are activated and echos responses when commands are executed or a problem occurs. Ideally, firmware is configured and uploaded onto the controller board once and the printer is then ready for use. If a printer is known to be functional, then it is unnecessary to complete the following steps pertaining to firmware configuration and uploading. Practically, firmware will be occasionally upgraded, so the practice of configuration and uploading is something worth acquainting oneself with.
- Printer interface: The printer interface is software that runs on the host computer attached to the printer via a USB cable. It provides an interface for controlling the printer; setting temperatures, moving axes, starting print jobs, etc. The printer interface essentially converts interactions with it into g code - when a button or linked image is clicked or text is entered into the printer interface, it is converted into g code that is then sent to the printer firmware for interpretation into some action.
- Slicing software: A slicer is software that converts a solid model (typically an STL file type) into the g code that the printer firmware can interpret into action. After slicing a model, the g code is either loaded onto a micro SD card which is then inserted into the printer control board and then activated through the printer interface or the g code is loaded into the printer interface and then transmitted to the printer controller board in small chunks over via the USB connection.
Sources[edit | edit source]
- Firmware: Marlin and Arduino IDE and Melzi driver and instructions
- Printer interface: Printer interface (Pronterface)
- Slicing software: Cura
Helpful sites and things to print:
Controller board installation[edit | edit source]
All operating systems except Debian GNU/Linux[edit | edit source]
- Download the Arduino IDE (Integrated Development Environment) for your operating system from the above link and follow their Getting Started guide for your operating system.
- Once you are able to open the Arduino IDE, download the Melzi driver from the above link and follow instructions to save the driver in the Arduino folder.
- Upon restarting the Arduino IDE, the Mighty 1284P 16MHz using Optiboot should be an option under Tools>Board. Select it.
Windows driver installation[edit | edit source]
- Plug the Melzi board into an available USB port on your computer using the supplied cable.
- If prompted to install a driver, select manual installation and locate the driver in Arduino folder under drivers under “FTDI USB drivers”
Linux installation (Debian; other distributions should work similarly)[edit | edit source]
- Install the arduino and arduino-mighty-1284p packages. (At the time of this writing, the latter is only available in unstable and testing.)
- Upon starting the Arduino IDE, the Mighty 1284P 16MHz using Optiboot should be an option under Tools>Board. Select it.
- There may be a warning that you should be a member of the dialout group. If so, follow the instructions.
Apple installation[edit | edit source]
Follow all operating system instructions, no extra driver needed.
Firmware configuration[edit | edit source]
The firmware is written for Arduino and Arduino-based controllers in a programming language known as C++. The firmware used for the HS builds is Marlin, available at the link, above. To install and configure:
- Download Marlin firmware from the above link and unzip it. From the resulting folder, move the Marlin subfolder into your arduino sketchbook directory (this is created the first time you start the arduino program; on GNU/Linux, it is in your home, named sketchbook; on Windows, it is in My Documents, named Arduino). After this you can remove the zipfile and the rest of the unpacked files.
- Open the Arduino IDE and then open Marlin from the File>Sketchbook menu.
- Note that the IDE opens a number of different tabs, select the tab Configuration.h.
- Locate the line starting with #define BAUDRATE and replace number with 115200.
- Scroll down the page and locate #define MOTHERBOARD and replace the number with 63 to set the firmware for the Melzi board.
- Scroll further down and locate the line #define TEMP_SENSOR_0 and set it equal to 1.
- Set #define TEMP_SENSOR_BED = 4.
- Locate the line starting with #define X_ENDSTOPS_INVERTING, set it and the two following (Y and Z) to false.
- Locate the line starting #define INVERT_X_DIR. Follow the instructions in the remarks for the six lines starting at that entry for Mendel printers and geared extruder.
- Scroll further down locating the line #define DEFAULT_AXIS_STEPS_PER_UNIT. The values in the parentheses represent an array; a number for each axis separated by a comma. These settings tell the printer how many steps are required to move a mm of whatever the axis moves (x, y and z move part or hot end, E moves filament). Using the RepRap calculator from Josef Prusa, we can figure out how many steps are required for x, y and z. The motors are 1.8 degree/step and the Melzi board is set to use 1/16 microsteps, yielding 53.333 for the 12 tooth pulleys on the x and y axes and 2560 for the z axis. Trial and error has yielded a setting of 750 for E. So the value should be (53.333, 53.333, 2560, 750).
- Save the updates (File>Save, Ctrl-S or click the down arrow in the tool bar; it will warn about updating to a new extension, that's good so accept it) and upload to the board (File>Upload, Ctrl-U or click the right arrow in the tool bar). Watch the prompt cues at the bottom of the window and wait for a the message "Done Uploading".
- Once the firmware is uploaded to the controller board, open the serial monitor (Tools>Serial Monitor or the magnifying glass on the tool bar). Set the communication rate to 115200 and click the reset button on the Melzi controller board. The current printer settings should be echoed on the serial monitor screen.
Printer interface and slicer[edit | edit source]
The Melzi board does not presently support stand-alone printing and requires a printer interface program on the computer to send print jobs to the controller:
- Download and install Pronterface from the above link. Note that there are precompiled binaries for different OSs if you scroll down the page a bit.
- Once Pronterface is running, select the communication port, set the speed to 115200 and click the connect button. A message will be echoed by the controller indicating that the printer is online if the connection is successful.
3-D solid models are sliced into individual layers for the printer by a slicing program (slicer):
- Download and install Cura from the link above.
Ready to print for first time[edit | edit source]
Load the filament through the tube while the hot end is still cold.
Ensure that your motor leads are all wired correctly by opening pronterface – connecting to the printer and using the x, y, z control to test directionality. If any of the motors are spinning the wrong direction switch all the leads.
Level the z-axis.[edit | edit source]
Position the hot end to the far right of the board- move the nozzle down until it is two paper widths from the stage. This is the home position – you can adjust this to perfection using a combination of moving the z-end stop, the z-micropositioner (see image), and the bolts holding up the z-axis.
Then move the hot end to the left of the stage and adjust the bolts on the left z-axis to make it level with the right. The hot end should go from the left to right and back the exact same height from the bed.
Modifications[edit | edit source]
There are some modifications from the standard MOST Prusa that can aid in ease of use and performance of the printer if you should be interested.
Easier Bed Leveling[edit | edit source]
If you mount the bed to the y-axis carriage directly, it could be challenging to level the bed properly and could result in poor prints. This may not be necessary if you will not be moving the printer and have a good level set during the initial calibration. However, if you plan on traveling with your printer the bed can easily move and need to be adjusted when you set it back up. Instead of the M3x10 screws in the BOM for the y-stage, use M3x20 (or M3x25) screws in the same fashion to expose thread above the circuit board. You may want to use M3 nuts on the opposite side of the plastic y-stage mounts to ensure the 20mm screws don't loosen over time (unless the holes were tight when the M3x20 screws were inserted). Then place a M3 nut a few millimeters above the plastic mount for the bed to sit on and place the bed on the screws. Now, tighten the bed down with M3 nuts added after the bed to lock it in place. You do lose a few millimeters in the Z axis but all that is required to level the bed are quick adjustments of the top and bottom nuts. This can also help with insulating the bed if temperatures aren't reaching 110C for ABS by giving a little space between the carbon fiber rods and the bed for insulating foam.