Migbot Prusa i3

From RepRap
Revision as of 06:01, 5 November 2016 by Replikeo (talk | contribs) (Upgrades)
Jump to: navigation, search

Note: This page is a work in progress, I am currently gathering info and FAQ from the Migbot forum thread - Ax

What is a Migbot?

A Migbot is a cheap and inexpensive Chinese mass produced Prusa i3 3D printer, which usually comes in kit form, where the frame is made from Acrylic. These can be bought from places like eBay, AliExpress, Robot Shop or 3D Printers Online Store. They generally look like the following image:

Migbot.jpg

Types

There are several variants with various parts changed out or modified. For example the Electron 3D Prusa i3 from 3D Printers Online Store or the Afinibot A3 3D Printer from Robot Shop. The base model comes with a 220x220 Aluminium bed. There are optional extras of a larger bed of 220x260 and Auto Levelling using an inductive sensor.

Hardware and Electronics

  • Laser cut Acrylic sheet Frame (usually Black)
  • MKS Base control board, which comes pre-loaded with Marlin
  • 6mm (?)Thick Aluminium build plate.
  • MK8 Direct Drive Extruder
  • Optional SN04-N NO Proximity Sensor for auto levelling
  • GT2 Timing Belts
  • 8mm/revolution 2mm pitch (to be confirmed) Leadscrews
  • Reprap Discount LCD Panel
  • 12V 20A Generic Power Supply

File Repository

The base firmware, build instructions and Migbot software can be found on GitHub at https://github.com/garynmckinney/3DPrinter.

Ax's Firmware repo: https://github.com/AxMod3DPrint/Migbot-Firmware - this is a custom version of the Migbot configuration, done by Ax. Note: The Standard bed (210x210) configurations are untested for the moment, but should work, use at your own risk

Basics

So you've got yourself a Migbot as your first 3D Printer, and you have it built. If you don't have auto levelling you should just be able to level the build plate using the screws and you're ready to go, however, if you have the auto levelling sensor, it's a little different. Be prepared to get your hands dirty with Firmware editing.

Auto Levelling Setup

First you'll need the correct firmware from the repository above (Ax's Repository is recommended as it's pretty much preconfigured) and you'll need to get the Arduino IDE software to edit and upload it, the link for the Arduino software is below in the FAQ. Got it? Move the Carriage to the centre of the build plate and slowly lower it manually until you can fit a sheet of Copy paper underneath the Nozzle with a little drag, you'll need to work this out and get a feel for what's right. Find something that's around 1.5-2mm, the SD Card usually is OK. Slide that under the sensor and adjust it so there is a slight drag when pulling the SD Card or whatever you have found around that measurement area. Now connect to the printer with Repetierhost or Pronterface, and run the following G Code:

Standard Bed
G28 ;home all axis
G29 ;run auto level sequence
G1 X110 Y110 F12000 ; move to centre of build plate - fast
G92 Z10 ;set Z to 10mm

Large Bed
G28 ;home all axis
G29 ;run auto level sequence
G1 X110 Y130 F12000 ; move to centre of build plate - fast
G92 Z10 ;set Z to 10mm

You can also put this in a text file and save it with the .gcode extension, then save and run it via Repetier or Pronterface (USB does weird things(. You printer should home, run the auto levelling sequence, move quickly to the centre of the bed and Z should now be reading 10 on the display. We're now going to get your Z offset. Jog the nozzle down using the control panel - Prepare > Move Axis > Move 0.1mm > Move Z - so you can slide the paper under the nozzle with a little drag. Take note of the number that is now on the screen. Subtract that from the 10 you started with, and that's your offset. It should generally be around 0.5 to 1 but about 0.2 either side is fine. If it isn't then repeat the above with a smaller measure between the bed and sensor if it's too low or a larger if it's too high.

Firmware time! Navigate to the place you saved the firmware and extract it. Go into the firmware folder and into the Marlin folder. Look for the marlin.ino file. Open this up with Arduino IDE. Go to the configuration.h tab, scroll down and find the following:

 // these are the offsets to the probe relative to the extruder tip (Hotend - Probe)
 #define X_PROBE_OFFSET_FROM_EXTRUDER -20
 #define Y_PROBE_OFFSET_FROM_EXTRUDER 30
 #define Z_PROBE_OFFSET_FROM_EXTRUDER -0.8

Enter the number you obtained from the difference between 10 and the number you got to, eg 10 to 9.5 = 0.5. enter the number as a negative at the end of #define Z_PROBE_OFFSET_FROM_EXTRUDER (negative is down, positive is up). Save the firmware. Now to upload. You need to make sure you have the correct board and port selected. Go to Tools > Board: and select Arduino/Genuino Mega or Mega 2560. Make sure the Processor says ATMega2560 (Mega 2560). Then go to Tools > Port and select the port, usually COM4 on Windows or USB0 on Mac/Linux. Hit the arrow next to the Tick at the top of the Window and it will compile and upload. Auto levelling configured! For more on this or if you want a visual guide, check Thomas Sanladerer's video on YouTube at https://youtu.be/EcGFLwj0pnA

Start and End GCode

This is an enhanced version of the start GCode. It will perform a prime and wipe before starting the main print.

Slic3r

Start Gcode

G21 ; mm
G90; Absolute Pos
M107; Fan off
M190 S[first_layer_bed_temperature]; Set Bed Temp
M109 S[first_layer_temperature_0] T0; set nozzle heater to first layer temperature
G28; home all
//G29; auto level - uncomment if you have auto levelling
G92 E0 ; Zero Extruder
G1 Z0.3 ; move z to 0.3mm to avoid scraping bed
G1 X100 Y5 F4000 ; move half way along the front edge
G1 Z0.01 ; move nozzle close to bed
G1 E10 F90; extrude 10 mm of filament
G1 X10 F12000 ; move 50 mm towards the origin as fast as firmware permits
G1 Z1 ; lift nozzle to 1 mm ready to begin main sequence
G92 E0 ; zero extruder length

Simplify 3D, Cura

Start Gcode

G21 ; mm
G90; Absolute Pos
M107; Fan off
G28; home all
//G29; auto level - uncomment if you have auto levelling
G92 E0 ; Zero Extruder
G1 Z0.3 ; move z to 0.3mm to avoid scraping bed
G1 X100 Y5 F4000 ; move half way along the front edge
G1 Z0.01 ; move nozzle close to bed
G1 E10 F90; extrude 10 mm of filament
G1 X10 F12000 ; move 50 mm towards the origin as fast as firmware permits
G1 Z1 ; lift nozzle to 1 mm ready to begin main sequence
G92 E0 ; zero extruder length

End GCode

This will work for all slicers.

M140 S0 T0; set bed temperature to 0
M104 S0 T0; set extruder temperature to 0
M107 ; disable fan
G1 E-1 F300  ;retract the filament a bit before lifting the nozzle, to release some of the pressure
G92 Z0 ;Set Z to 0
G0 Z10 E-5 F5000; Lift Z Axis +10 - retract
G1 Y200 F5000; Bed to front of printer
G28 X F2500; home X axis
M84; disable all stepper motors
G90; Absolute Positioning
M117 Work Complete!

FAQ and Troubleshooting

This FAQ and Troubleshooting are taken from Common issues from the Migbot support thread at http://forums.reprap.org/read.php?406,507737,page=1

  • How do I upload the firmware to the printer?
    This can be done by using Arduino IDE from https://www.arduino.cc/en/Main/Software - This is cross platform, so it works on Windows, Mac and Linux. More info can be found on Thomas Sanladerer's video on YouTube at https://youtu.be/2RbcMvhatjU
  • My Migbot isn't printing in the centre of the bed after auto levelling, how do I fix this?
    This is generally caused by incorrect X & Y offsets. This can be fixed by going into the firmware and looking for the following in the auto levelling section in configuration.h

 // these are the offsets to the probe relative to the extruder tip (Hotend - Probe)
 #define X_PROBE_OFFSET_FROM_EXTRUDER 12
 #define Y_PROBE_OFFSET_FROM_EXTRUDER 60
 #define Z_PROBE_OFFSET_FROM_EXTRUDER -0.8

The offsets may not be the true offset of the probe to the nozzle to get it to print centrally, for example X could be 0 and Y could be -30
  • What Sensor should I get for auto levelling?
    The Stock sensor is a SN04-N NO Proximity sensor - this is pretty much plug and play and doesn't require any extra wiring or voltage dividing. The other sensor that can be used is the LJ12A3-4-Z/BX, this requires voltage dividing, how to do this can be found on Thomas Sanladerer's video on YouTube at https://youtu.be/EcGFLwj0pnA
  • How do I wire the SN04-N up?
    Looking at the Board in place with the 12V power input at the top, the colour coding from top to bottom is as follows: Black > Blue > Brown
  • What are the connectors on the MKS board?
    These are JST-XH, which are basically LiPo balance charger connectors. You can buy these pre-crimped from eBay and Amazon.
  • My Leadscrews are bent, what are the leadscrews so I can replace them?
    While it's not exactly first hand info and a chance find and there is very limited information, they seem to be 8mm/Revolution or a 2mm pitch. Combine that with the 1.8˚ step angle and 1/16 stepping that the Motors use, that comes to very close to what the default firmware is set to.

Upgrades

Purchase Link - https://www.3dprintersbay.com/electron3d-reprap-prusa-i3-kit

Migbot from 199$ - http://www.replikeo.com/en/3d-printer-kits/54-migbot-3d-printer-kit.html

CrackinX's Migbot Rework - https://drive.google.com/folderview?id=0B7nu00kvLxc9Y0lzTHJjT1R3MFU&usp=sharing

Ax's E3D Mount using the existing X Carriage - http://www.thingiverse.com/thing:1119606

Various Migbot parts on Thingiverse - http://www.thingiverse.com/tag:migbot