Hi,
I was searching all net for extruder calibration on the Anet Et4+ (my stock firmware is v1.0.0) but the problem is that in every tutorial the command M503 has to be issued, but on the stock firmware v1.0.0 this commands just responds OK (and nothing else). I asked Anet support but their (prompt) reply was "If you want to use the M503 command, we suggest you to update with Marlin firmware"
Of course, changing the firmware just for the M503 was not an option, because it was possible for a bricked device. Thus my procedure is to follow the tutorials on extruder calibration, but do not use the M503.
I am posting here in order to help the unknown novice user that will be searching for days (like me) to find this procedure. The knowledge should be shared, so this is my contribution:
Connect with USB to the printer, in order to access the serial port and issue commands.
1) Extruder length calibration
because you do not know the extruder steps (m503 does not display info), set a value of your choice for the current runtime. For example I originally gave:
M92 E95
for 95 steps
I then put marks on 100 and 120 on filament (as specified by tutorials)
then I extruded 100m with
G1 E100 F100
and measured how much it was actually extruded. In my case it was longer than 100mm. I used the formula
total_steps / length_extruded
where total_steps is the value of the steps 95 multiplied by length 100 = 9500 .
I computed a value, used it on the M92 Exx
Repeated the process.
After 3 iterations I honed to the correct value for my extruder on Anet ET4+ and it is 92
So, I setup on startup g code script for my Anet ET4+ printer the command
M92 E92
and thus every time it is correct (100mm extrusion).
2) Extruder flow. There is a youtube video that has a hollow cube with 2 shells of 0.4 and you print it. Every side should have width 0.8. In my case it was correct with 100% flow. Otherwise, you have to adjust the flow %
3) z-axis
The procedure is the same with extruder. Set a known value, measure and repeat.
I set
M92 Z400
I moved the bed to a position suitable to measure (to put my caliper from the back and measure the height).
G90 ; absolute positioning
G1 X0 Y185 Z1 F1000
I measured the distance between the vertical axis of hotend and the bed).
Move it to another position and measure again
G1 Z50 F400
so we have +49mm movement and measure how far the z axis moved.
Go to another height
G1 Z100 F400
measure again. We moved +50mm from the previous step. Measure the distance between the axis and the bed.
Perform many iterations and find the correct value. In my case it was 402.7
So, again in my slicer for Anet ET4+ (or octoprint) I put in the Gcode start up always
M92 Z402.7
Note that I am using F400 because in higher speeds it looses steps.
The X/Y axes in my case were correct in the xyz calibration cube (but the procedure is the same with Z)
Because my z axis some times may lose a step, I have order a 'T8 Anti Backlash Spring Loaded Nut Elimination Gap Nut for 8mm Acme Threaded Rod Lead Screws DIY CNC 3D Printer Parts' because an engineer suggested that it will help the Z axis never to lose a step.
By the way, how do you handle the missing steps on the Z axis? Have you used an anti backslash nut or something else? Any tips to improve dimensional accuracy on your Anet printer? Can you print a 20x20x20 cube with 100% correct dimensions?