Sửa chữa Robot dân dụng
Sửa chữa Robot đồ chơi công nghệ

Fine Calibration & Software for Mendel type PI

Posted at: THUrsday - 27/10/2016 09:48 - post name: SuperG
Fine Calibration & Software

Fine Calibration & Software

Let's start with the coarse calibration of the machine. It is now time to connect the y tray with the z axis. Turn simultaneously by hand the two motors of the z axis in order to port the nozzle at least 3 cm above the y tray.

Let's start with the coarse calibration of the machine. 
It is now time to connect the y tray with the z axis. 
Turn simultaneously by hand the two motors of the z axis in order to port the nozzle at least 3 cm above the y tray. 
Now place the y axis table below the nozzle. Do not fix the y axis with the frame yet. 

Start moving the tray back and forth by hand in order to make sure that the a distance (a) indicaded at the picture below is always the same. 
Use a digital caliper in order to get more accurate readings. 

checking the y alignment 

Do the same with the other side of the tray (b) 

checking the y alignment


Now gently move the tray fully towards to you and make sure that the tray glass barely "covers" the nozzle by eye (c). 
If this not happens move the hole tray towards or backwards to you until the edge of the glass just covers the nozzle. 
Make sure that the distances (a) and (b) are stable. 

glass covers nozzle 

Once you are sure about the y axis you can screw it with the frame using 16 wood screws like the picture below. 
Recheck the alignments of the tray (a,b,c) every time you screw a new woodcrew. 

blocking y axis 

By the end of this procedure you have finished the coarse calibration. 
Now you have to oil the linear, M5 and M8 bars using low viscosity motor oil (SAE 30).
Just dip a cotton swab into the motor oil and cover with oil the metallic moving parts. 

oil all axis 

Now we have to motorize our machine.
Make sure you have connected all the cables like the schematic below. 

schematic of electronics prusa i3 

Also make sure you have placed the x,y,z endstops correctly by eye. 
Always place the endstops in a ultra-conservative way. 
The Z endstop place it always higher than is needed. 

z-x endstops 

y endstop 

Arduino is needed to load the firmware of our 3d printer. 
Download Arduino version 1.0.6 from the official site
You can use the 1.0.6 version of Arduino located at Previous IDE Releases page
The latest version of arduino for Prusa I3 is not needed since the project is based on Arduino MEGA 2560 board. 
Once you have downloaded and installed Arduino we need to install our firmware. 
We are going to use Marlin firmware version 1.0
We have a pre-configured version of Marlin for our direct I3 Prusa 3D printer that can be downloaded from here
If you want a more updated marlin version i recommend to download the latest stable version from the official marlin page
have not tested any other marlin versions other than the one preconfigured offered from this page. 

Unzip the "Marlin-Marlin_v1.zip" firmware and keep the zip files since you are going to minor changes into the unzipped files. 

Run arduino press "File" > "Open" and load the "Marlin-Marlin_v1\Marlin\Marlin.ino" file. 
You have to focus on "Configuration.h" tab like the picture below : 

arduino GUI 

From "Configuration.h" we can configure our 3D printer firmware. 

Let's start from some theory. Let's find out how we can pre-calculate the x/y/z/e-steps. 

The formula that give the X,Y steps/mm is : 
steps/mm = ( (360/MOTOR_STEP_ANGLE) * (1/(MICROSTEPS)) ) / (BELT_PITCH * TOOTH_COUNT) 

So in our case we have : 
steps/mm = ( (360/1.8) * (1/(1/16)) ) / (2 * 20) = 80 step/mm for the X and Y axis. 

For the Z axis the step formula is : 

So in our case we have : 
steps/mm = ( (360/1.8) * (1/(1/16)) ) / (0.8) *(1/1) = 4000 step/mm for the Z axis 

For the extruder we have the formula below : 

So in our case (Greg's Wade Reloaded Extruder) we have : 
steps/mm = ( (360/1.8) * (1/(1/16)) * (47 / 9) ) / (6 * 3.14) = 887 step/mm for the extruder.


Notice : 
The X/Y/Z steps should be spot on with the formulas. Very little variations should have with these three numbers. 
On the other hand the Esteps is a rough estimation. It is better to start from 650 step/mm for the esteps So in your "Configuration.h" file a good starting point for the axis steps for this machine is : 

#define DEFAULT_AXIS_STEPS_PER_UNIT {80.00,80.00,4000.00,650.00} 

It is time to find out the optimal layer height values for Z axis. 
This is a value that we will put in our slicer tool later. 
For now just write down the valid layer heights of your machine. 
The formula below helps you to select layer height in a way, that Z axis moves only by full step increments : 

For example if you set 65 integer steps your layer height would be : 
layer height mm = 65 / (4000 / (1/(1/16))) = 0.260 

for 64 steps would be :
layer height mm = 64 / (4000 / (1/(1/16))) = 0.256 

for 63 steps would be : 
layer height mm = 63 / (4000 / (1/(1/16))) = 0.252 

for 62 steps would be : 
layer height mm = 62 / (4000 / (1/(1/16))) = 0.248 

for 61 steps would be : 
layer height mm = 61 / (4000 / (1/(1/16))) = 0.244 

for 60 steps would be : 
layer height mm = 60 / (4000 / (1/(1/16))) = 0.240 

As we can see a layer height of 0.26mm is obdainable like is the 0.24mm but a 0.25mm value is not a valid layer height for our machine. 

So keep in mind that valid layer heights for our machine are : 
0.06 / 0.08 / 0.1 / 0.12 / 0.14 / 0.16 / 0.18 / 0.2 / 0.22 / 0.24 / 0.26 / 0.28 / 0.30

Also keep in mind with our nozzle (0.4 diameter) we can not print layer heights more than 0.30 mm safely. 
Best results are obtained when layer height is between 15-75% of nozzle diameter : 
0.4*0.15=0.06 min layer height for a 0.4mm nozzle
0.4*0.75=0.30 max layer height for a 0.4mm nozzle
With the 0.4 E3D nozzle you can print easily down to 0.1mm. 
Below that layer height it is better to use a smaller diameter nozzle and use ventilation. 
For starters use 0.2 mm as layer height 

An easy to use calculator for your prusa I3 can be found at calculator.josefprusa.cz 

As you can see the default "Configuration.h" is already preconfigured for you. 
At this file you should only do minor changes
Let's see how we can upload our firmware and fine tune the configuration values. 
First of all you need a normal printer usb cable 1,5m ( male USB Type A to male USB Type B ) 

usb cable 

Plug your USB cable with the RAMPS board. I suggest to leave this cable permanently in the RAMPS port since it is relatively difficult to access it. 
It is far better to unplug the 3D printer from the other end (PC). 

ramps usb connection 

Once plugged the printer into the PC in Windows 7 for the first time either a "Found New Hardware Wizard" Dialogue window will appear, or a dialogue baloon box "not successfully installed", either way just close the respective window. 

Go to Start -> Control Panel -> System -> Device Manager. 
You should see "unknown device" under "other devices" or "Arduino Mega" under "Ports". 
If you see "unknown device" you should install the Arduino drivers. 
To install the drivers right click over the "unknown device" and select "Properties". 
Now select the "Update Driver ..." button 
Select "Browse my computer for driver software".
Select "Browse".
Select "Ports (COM & LPT)".
Hit the "Have Disk..." button.
Select "Browse" 
Go to arduino\drivers folder and load the "arduino.inf" file 
Select "Ok"
Select "Arduino Mega 2560" then select "Next".
Select "Install this driver software anyway".
After a short while (it could be up to a few minutes depending on your computer speed) the success message should appear, then select "Close".
You should have now installed correctly the drivers under Windows. 

Now go to : 
Start -> Control Panel -> System -> Device Manager -> Ports -> Arduino Mega 
and find your COM port used by the USB cable. 
In this example we see that the communication port is : COM8 

find COM port 

If Arduino Mega is not listed at Device manager even if you have installed the drivers take a look at the official documentation of arduino here 

Run arduino press "File" > "Open" and load the "Marlin-Marlin_v1\Marlin\Marlin.ino" file. 
A new arduino GUI window opens. 
Close the old window 
From "Tools" > "Board" select "Arduino Mega 2560" 

arduino set board 

From "Tools" > "Serial Port" select the COM port found before (COM8 in our case) 

arduino set COM port 

Now hit the upload button like the photo below 

arduino upload sketch 

In a few seconds the firmware should be loaded at the arduino board.
You should get a "Done uploading" into the status bar like the picture below: 

arduino done uploading 

To summarize : 
#define DEFAULT_AXIS_STEPS_PER_UNIT {80.00,80.00,4000.00,650.00} sets the number of stepper motor steps required to move the axis. 
#define DEFAULT_MAX_FEEDRATE {500, 500, 1.2, 25} sets the maximum movement speed for each axis in mm/sec. Do not change these values. 
#define DEFAULT_MAX_ACCELERATION {1000,1000,4,3000} controls the maximum acceleration of each axis. 
Again the given settings are ok.
#define DEFAULT_ACCELERATION 3000 sets the acceleration for normal axis moves during a print. Do not change 
#define DEFAULT_RETRACT_ACCELERATION 3000 sets the acceleration for extruder retracts. Do not change 
Leave XYJERK , ZJERK EJERK as is. 
Jerk is the rate of change of acceleration or in other words is the derivative of acceleration with respect to time 
#define DEFAULT_XYJERK 10.0 // was 20.0(mm/sec) do not change 
#define DEFAULT_ZJERK 0.4 // (mm/sec) do not change 
#define DEFAULT_EJERK 5.0 // (mm/sec) do not change


We have successfully uploaded a valid default pre-configured firmware into our printer !

Before starting our fine tuning calibration we need to pilot the machine using Repetier-Host for Windows. 
Notice that the new versions of Repetier-Host do not have that great manual support. 
I recommend using the "Repetier-Host Windows 0.95F" version from the older versions section. 
If you have problems finding this old version you can download it from here (yandex disk). Download and install Repetier-Host at your PC. 
Now press "Config" > "Printer settings" 

repetier host configure 

Press the "Connection" tab and do as the photo below : 

repetier host settings 1 

Press the "Printer" tab and do as the photo below : 

repetier host settings 2 

Press the "Printer Shape" tab and do as the photo below : 

repetier host settings 3 

If for any reason do not like repetier host or you just have problems you can try pronterface instead. 
Set it up like this : 

pronterface settings 

Now hit "Settings" > "Options" and do like the pictures below : 
"Printer settings" tab : 

pronterface settings 

"User interface" tab : 

pronterface settings 

Pronterface unfortunatelly does not detect the current position of the machine so we have to add a custom button with the gcode command M114. 
We hit the "+" button from the bottom of the main screen. 

pronterface settings 

Now we fill the "Custom button" window like this : 

pronterface settings 

By hitting the "CURRENT POS" button we get the actual position of our printer. 

Click on "Port" in order to detect all available COM ports. 
Select the COM port of your printer from the list. 
Select 250000 as speed and hit the "Connect" button 

In this tutorial we will use repetier host in order to pilot our printer but you can use pronterface similarly. 

Now power up the printer : 

power up the printer 

Run repetier host. 
Press the "Connect" button. Once successfully connected the "Connect" button should become "Disconnect" 

repetier connected 

Now you can pilot your printer manually for the first time by pressing the "Manual Control" tab. 

repetier manual operation 

The first thing to do is to move up the z axis by 1mm 

repetier move up z axis 

You should have no errors by doing this. If you get problems make sure that you have oiled the M5 threaded rods and that the X axis if perfectly horizontal. 
If you hear strange noises as last bet try lowering the acceleration of the z axis from 4 to 3.4 for example. 
To do this press the "Disconnect" button at Repetier-Host go to Arduino IDE and load "Marlin.ino" 
Hit the "Configuration.h" tab and do this change : 
from : #define DEFAULT_MAX_ACCELERATION {1000,1000,4,3000} 
to : #define DEFAULT_MAX_ACCELERATION {1000,1000,3.4,3000} 


Save it and press the upload button in order to update the new firmware. 
Now reconnect with Repetier-Host. 
Notice : the given default accelerations should not have problem if you have followed our tutorial. 
We have tested in more than one machine these values with success out of the box. 
So before trying modifing the firmware watch for mechanical errors first. 

If everything is ok move another time up the z axis for 10mm this time and while the machine moves up the z axis press by hand the z-axis endstop switch. The z axis should stop. 

Do the same procedure with X and Y axis. Move at most 1mm the machine when you first try. Test all three endstops by hand. 

Now test the home button for the X axis. 

repetier home x 

Do the same with the Y axis. 

Before homing the Z axis make sure that the endstop work and it is placed at least 5cm above the glass of the tray. 
Now home carefully the Z axis the nozzle should be away at least 2 cm from the glass. This is ok for now. 

Now it is time to do the bed levelling of the machine. 
Loose almost fully all four screws of your headbed in order to find the fully decompressed max level.

Z bed decompressed


Now start screwing all four of the screws and move down at max 5mm the bed. Do not overtight the screws. 

Z bed move down 

Now move down the nozzle by moving the z endstop gradually and by using the Z-Home button from Repetier-Host. You have to place the nozzle between the fully decompressed / fully compressed levels. 
This is pretty easy to do since you have 5mm gap. 
Once the nozzle is between this zone secure tightly the Z-endstop. You have successfuly and permanetly fixed the Z-endstop. 

Z bed compressed 

Once the nozzle is between the fully decompressed / fully compressed levels now you can unscrew slightly all 4 screws in order to decrease the noozle / glass gap to 2 mm. 
If the gap is too small tight all four screws. 
The final result should look like this : 

Z axis ok 

Try homing Z axis again. Make sure you have a gap of 2mm at least. 

Now it is pretty easy to fix the X and Y endstops. 
Let's start fixing the X endstop. Try homing the X axis.
Fix the x-endstop when the nozzle reached the white line of the heatbed like the photo below. 
Note that you can also be off the white line a bit (closer to the glass edge) like the photo below. 
Once you are reaching the white line secure tightly the X-endstop. 

x endstop 

Now move the nozzle 10mm in X-axis direction and home the Y. 
By homing the y axis you should arrive at the edge of the glass and not off the glass. 
Position the y endstop trying to reach the edge of the glass (or a bit inner) like the photo below. 
Once you are covering the glass secure tightly the Y-endstop. 

y endstop 

At this point you should have fixed X,Y,Z endstops correctly. 
Now we have to level the bed with the nozzle. 
To do so divide virtually the headbed in four regions BackLeft/BackRight/FrontLeft/FrontRight like the photo below : 

heatbed regions 

Go using manual control at Repetier-Host to the FL region. 
Unscrew the FL bolt until a A4 papper can exactly pass between nozzle and glass. 

heatbed calibration 

Now slowly move the x axis 10 mm at a time and check if the gap increases or decreases (points : 1,2,3,4,5,6). 
Do not move more than 10 mm at a time. Please take your time adjusting only the FR/FL screws. 
If increases the gap unscrew the FR bolt else screw more the FR bolt. 
Now move back to the FL region (decrease x gradualy). (points : 7,8,9,10,11,12) 
Once you are happy with the front regions go from the point 12 to the point 13 moving the y axis again at most 10mm at a time. 
If the gap increases unscrew the BL screw else screw more the BL bolt. 
Screw/Unscrew the BR screw only if the BR/BL level is really not horizontal. 
Do all the path (12,13,...23). Once you are happy with the gap at the points (12..23) go to the FL region again. 
Recheck the triangle (FL/FR/BL 1-23 points). Do not bother too much with the BR for now. 

heatbed calibration 

Now move the nozzle into the FR region . 
Do the same procedure for the triangle (FR/FL/BR 30-53 points) 
In this triangle try to adjust only FR/FL/BR avoiding modifying BL 

heatbed calibration 

By finishing these two triangulars your heatbed should be leveled.
For more fine tuning do the remaining two triangulars. 
So move the nozzle into the BR region. 
Do the same procedure for the triangle (BR/BL/FR 60-82 points) 
In this triangle try to adjust only BR/BL/FR avoiding modifying FL 

heatbed calibration 

At last move the nozzle into the BL region . 
Do the same procedure for the triangle (BL/BR/FL 83-103 points) 
In this triangle try to adjust only BR/BL/FR avoiding modifying FR 

heatbed calibration 


By doing this procedure your headbed should be leveled with the nozzle. 
This procedure works because a plane is always defined by 3 points not by 4. 

The common mistake is to calibrate the heatbed doing rectagulars (all vertices) and not triangulars. 

At this point you have set up all the endstops correctly and you should have leveled the heatbed successfully. 
Now you can move in all directions (x/y/z) more freely. 
Let's calibrate the x/y/z axis steps. 
The method is the same. 
Home all 3 axes. Move the X by 100mm using Host-Repetier. 
Now measure the distance using a digital caliper. 

digital caliper measures x distance 

If you are way off the 100mm take a look at the X-axis and tighten or loose the X screw of the tension belt shown in the picture below. 
There must be some error with your 3D printer. 


tension belt x 

If you have done everything right you should get exactly 100mm as measured distance. 
As you remember the steps from our configuration firmware are : 
#define DEFAULT_AXIS_STEPS_PER_UNIT {80.00,80.00,4000.00,650.00} 

Now instead of 100mm you get 101mm even if you twicked the belt use the formula below : 
new_firmware_steps = (repetier_distance_mm/measured_distance_mm) * current_firmware_steps 

So in our case : 
firmware_new_steps = (100/101) * 80 = 79.20 
Now disconnect Repetier-Host go to Arduino IDE and load "Marlin.ino" 
Go to "Configuration.h" and change like this : 
#define DEFAULT_AXIS_STEPS_PER_UNIT {79.20,80.00,4000.00,650.00} 

Now save it and press the upload button in order to update the new firmware. 

Reconnect Repetier-Host and home all axes again.
Now move again 100mm the x axis and rechech the distance. 
Repeat the process if needed. 
For example now you are getting 99.96mm 
firmware_new_steps = (100/99.96) * 79.20 = 79.23 
So disconnect Repetier-Host, modify the firmware, save it and then re-upload it.

At this point i have to stress the fact that in all of my machines that i have made the X/Y/Z steps are 95% the times spot on. 
So before changing the firmware steps specially if the numbers are way off take a look at your machine. 
For example make sure that RAMPS uses 1/16 microstep mode (all three jumpers are used under each driver) 

Now it is time to calibrate the y axis steps. 
Home all 3 axes. Move the y by 100mm using Host-Repetier. 
Now measure the distance. If you are way off the 100mm take a look at the y-axis and tighten or loose the y screw of the tension belt shown in the picture below. 

tension belt y 

Again the correct steps for this calibration is 80.00 or as close as you can get. 
Take your time tweaking the y-belt 


The Z axis is even simpler since we do not have any belts 
If you have follwed our tutorial the z-steps should be 4000.00 
Again if you have small variations use the formula: 
new_firmware_steps = (repetier_distance_mm/measured_distance_mm) * current_firmware_steps 
like before. 

Now it is time to tune our two thermistors. 
The one located at the extruder and the other on the heatbed. 
For this project we have used EPCOS B57560G104F thermistors. 
So at our "Configuration.h" we have used 
since "1" is 100k thermistor - best choice for EPCOS 100k (4.7k pullup) 

Notice that E3D v6 nozzle now uses : 100K Semitec 104GT2 NTC thermistor 
so you have to use TEMP_SENSOR_0 5 
since "5" is 100K thermistor - ATC Semitec 104GT-2 (Used in ParCan & J-Head) (4.7k pullup) 

#define TEMP_SENSOR_0 1 //was -1 0 ignore temp 
#define TEMP_SENSOR_BED 1 //was 0 

There are two supported methods in order to control thermistors. 
The bang bang mode which simply opens and closes the thermistor when need it and the PID method. 
The PID method produces more accurate results (the temperature oscilate a lot less) but needs more CPU. 
On the other hand bang bang mode needs less CPU. 
We are going to use the bang bang mode for the heatbed thermistor and the PID mode for the extruder. 
We will start calibrating the heatbed thermistor since it is easier. 
As you can see from the "Configuration.h" file the PIDTEMPBED is commented (has // at the beggining) meaning that we are using bang bang mode for the bed and not PID 
//#define PIDTEMPBED 

Remember our power supply is 12V and 20A. 
So the maximum power is Psupply=V*I=240W 
Now remember that we have 4 motors at 1,2A / 12V so the motors consume Pmotors=4*1.2*12=57.6W 
The resistor of the extruder is rated Pextruder=40W (Infact i measured the resistor end was 3.6 Ohm . V=I*R=>I=3.33A Pextruder=12*3.33=40W)
The motor of the extruder is Pextruder_motor=1A*12V=12W 
The heatbed has a resistance of 1 Ohm => V=I*R => I=12A and Pheatbed=12A*12V=144W 
So the Ptotal=Pmotors+Pextruder+Pextruder_motor+Pheatbed=253W which is bigger that the Psupply=240W ! 

In real life using my Prusa at max i got a Ptotal=210W this is due to the fact that Pextruder is limited by the PID. 
Anyway it is not recommended to stress that much your power supply. 
So i suggest to lower the Pheatbed from 144W to 110W by changing MAX_BED_POWER from 255 to 200. 
This change is already done by default by me at the given firmware in order to protect your power supply. 
Feel free to lower even more that number (180 for example). 
Calculate the power you want by doing : Pheatbed=144*MAX_BED_POWER/255 Watts 

#define MAX_BED_POWER 200 // limits duty cycle to bed; 255=full current 

Using my wattmeter my Prusa I3 with MAX_BED_POWER 200 consumes max 175Watts. (Normally 50W when it does not heat the bed which is the 85% of the time) 

Using PLA you need to add glue in the glass in order to stick your print with the bed. 
You need to use UHU glue stick or Elmer's Washable Repositionable Glue Sticks
You need a glue stick that is based on PVA or PVP.
Do not use hair spray lacquer or Pritt glue stick. 
I do not use ABS so i can not recommend anything. 
For gluing down ABS i have heard about a solution of acetone with ABS but as i said i have not tested anything about this. 
This tutorial is focused on PLA. 
Since we are going to use glue stick and PLA the temperature we need for the bed is at most 40ºC. 
Anything above 40ºC is not recommended. 
I personally use 30ºC since that temperature "activates" the glue. 

glue sticks 

Now run Repetier-Host and press the connect button. For security reasons bring the nozzle to a distance of 10cm from the heatbed. 
Now set 30ºC and hit the "Heat Printbed" button. 
Take a look at the "Temperature curve" tab.
Notice that you have 80% peaks into the "Output Bed chart" located at the bottom of the screen 
Also notice the oscillation that bang bang mode has (blue line) 
Watch the curve for 10 minutes and see if everything works ok. 
If you have problems check your thermistor connection with the RAMPS. 
Once you are happy about the results feel free to stop heating the bed. 

heatbed repetier 

Now let's move on to the extruder thermistror. 
Again make sure you move the nozzle to a distance of 10cm from the heatbed (z axis). As we said in this case we are going to use the PID mcontrol method. 
As we can see from the "Configuration.h" the PIDTEMP is uncommented (enabled ): 
#define PIDTEMP So we need to define the Kp Ki and Kd values 
The given firmware has these values which work well : 
#define DEFAULT_Kp 12.53 //22.2 
#define DEFAULT_Ki 0.61 //1.08 
#define DEFAULT_Kd 63.85 //114 

Let's tune more these values. We are going to set a target temperature of 200ºC which is a really good starting point for printing PLA. So hit the "Toggle Log" button from the top of Repetier-Host and then hit the "Manual" tab. 
Also hit the "Temperature curve" in order to see what is going on. 
Now write the command : M303 S200 and hit "Send". 

PID send command 

Now wait for 3/4 minutes . Repetier host from the Log file will give you the Kp, Ki and Kd values that you need to insert into your firmware. 

PID test 

Fell free to repeat the test and take the averange values for Kp, Ki and Kd. 
Write down your Kp, Ki and Kd values. Now disconnect Repetier-Host, load "Marlin.ino" into Arduino GUI go to "Configuration.h" and change DEFAULT_Kp, DEFAULT_Ki and DEFAULT_Kd values. 
Save the file and press the upload button. 

Now we need to test the extruder thermistror with our new values. 
So we go to Repetier-Host and re-connect to the printer. 
Press the "Manual" tab and. 
Set 200ºC and and press the "Heat Extruder" button. 

heat extruder 

See how stable is the temperature line. 

temperature curve of extruder 

Temperature line should be stable, if not, you have to redo the PID test or make sure which thermistor do you use in reality and in the firmware. 
Notice : do not go over 210ºC for PLA. Play around 190-205ºC. 

Now we only need to calibrate the extruder (Count e-steps / Coarse calibration). 
Again make sure you move the nozzle to a distance of 10cm from the heatbed.
For this calibration is better to use a light colored filament. 
Now open the Greg's wade port and insert your PLA 1.75mm filament. 
The filament should go around 9cm deep 
Screw the two horizontal bolts of the extruder port. 
Press heat the extruder and wait till you reach 200ºC. 
Now set a speed of 100mm/min and set extrude[mm] to 30mm. 
Now press the extrude down button. 
You should not get errors and make your first extrusion. 
If you have problems check your extruder assembly and recheck if you inserted the filament correctly. 
If you hear noise (clogging) then try lowering the speed but again most of the times is a hardware problem. 
Recheck your machine starting from the extruder assembly. 
If simply you did not extruded nothing try extruding another 30mm of fillament. 

extrude filament using Repetier-Host 

Below you can see the extruded filament : 

extruded filament 

Once your extruder is extruding correctly measure with your digital caliper 100.00 mm of filament from the top of the extruder port like the photo below. With a pen mark the 100.00mm distance. 

measure filament 

Now extrude 50mm of filament using Repetier-Host at a 100mm/min speed. 
Re-measure from the spot the distance to the top of the port like the photo below : 

measure remaining filament 

In our case we have 50.12mm remaining filament. 
So we effectively extruded 100-50.12=49.88mm of filament instead of 50mm (under-extrusion)
Again using the formula : 
new_firmware_steps = (repetier_distance_mm/measured_distance_mm) * current_firmware_steps

we have in our case : 
new_firmware_steps = (50/49.88) * 650 = 651.56
To be honest i am currently using a 950 estep value. 
So i need to change my e-steps : 
new_firmware_steps = (50/49.88) * 950 = 952 but i prefer to under-extrude a little bit. 
As you can see 650 is really a small number for Greg's Wade extruder but is always better to start under-extruding and slowly increase the e-steps. 
It is way better to under-extrude than over-extrude since you are risking breaking the small 9-teeth pulley of your extruder. 
This happened to me twice. 
Infact one of your first prints should be this small pulley ;) 

Now disconnect Repetier-Host go to Arduino IDE and load "Marlin.ino" 
Go to "Configuration.h" and change like this : 

Now save it and press the upload button in order to update the new firmware. 
You can go ahead and re-connect Repeter-Host.
Doing this calibartion again is always a good tip. 


Once you have calibrated the heaters port the bed at 30ºC degrees and the nozzle at 190ºC. 
Move the hot nozzle at zero height and redo a bed levelling. 
Make sure that the small papper still passes below the nozzle. Try different X,Y points as always. 
We have finished our coarse calibration of the machine. 


Extra more with Da Vinci:

 I have a Da Vinci 2.0 with two extruders and I needed to set one to 97.09 and the other to 99.0. Here are the calibration instructions I used.

#1 use a ruler to measure 15 cm from the top of the extruder tool head and use a marker to mark your filament. It doesn't matter if your ruler has a few millimeters of blank space before the actual measurement marks start.

#2 use Repetier host to extruder 100 mm of filament.

#3 Use your mark on the filament to measure the actual distance the filament moved. You want to measure the difference away from the 15 cm mark. So if your mark is at the 6 cm line then the filament moved 9 cm. 15-6=9.

#4 If your mark is exactly on the 5 cm line then you are done and correctly calibrated. If not go to step 5.

#5 In Repetier Host when your printer is connected. Click the Menu at the top Config > Firmware EEPROM Configuration. Look for Extr. 1 steps per mm. Or Extr. 2 step per mm if you are calibrating the second extruder on a Da Vinci 2.0.

#6 Do this math. (100 * [Your steps per mm value]) / [Distance the filament traveled in mm] = [you new steps per mm value]
For example 100 * 96 = 9600 9600 / 90 = 106.67 You would use 106.67 as your new value.

#7 Repeat Steps 1 - 6 until you move exactly 100 mm.


Now we are ready to start printing ! 

Article reviews
Total number of articles is: 5 in 1 rating
You click on a star to rate article

About us

About us We provide 3D printers for retail and wholesale, We produced and assembled at Hanoi, Vietnam with many type: Cube, Delta, Mendel, scara, robot arm, custom by client...  - Repair 3D printers - Provide 3D printing materials...

1 1 1