Klipper 3D Printer Extruder Calibration | also Marlin, Direct Drive, and Bowden E-Step Calculation
Вставка
- Опубліковано 11 вер 2024
- I walk though the steps of calibrating E-Steps for Klipper or Marlin firmware, and Direct Drive or Bowden setups. So this should cover calibration for almost any printer out there.
Patreon Support: / jjshankles
Filament I used: bit.ly/3MiZZDw
Digital Calipers: amzn.to/3hP2rnD
Stock 3D printer extruder calibration is usually fine for a while with PLA printing, but to start getting great prints or to try new filaments, it can help to have a good E-Step calibration. This is the amount of signals your controller needs to send to the extruder motor to get a millimeter of filament extruded. Both firmware options have their difficulties that make this a little confusing. Klipper has some extra equations needed, while Marlin firmware is a little more difficult to change the configuration values of the printer.
But by the end of this tutorial you will know that any issues you are having with printing won't be coming from a miss-calibrated extruder motor. There are several other issues that can cause over or under extrusion that you will then need to look into.
This calibration is a one and done thing. It isn't like bed leveling where you need to do it between prints. Unless you change hardware on your printer, then this won't need to be redone.
The gear I use:
3D Printer: amzn.to/3mpSBeZ
Favorite Teal Filament: amzn.to/3pHK9tv
Main Camera: amzn.to/2RNpEbV
Nifty 50 Lens: amzn.to/2Ls60ky
Sharpest Wide Lens: amzn.to/2XOj1v8
Telephoto Nikon Beast: amzn.to/2xqSUvz
Favorite Not RODE Mic: amzn.to/2C4W0se
Perfectly Smooth Gimbal: amzn.to/2MXBCgr
Camera Strap: amzn.to/2rvGtMd
Atomos Ninja V Recorder: amzn.to/2FL03LO
Affordable Studio Light: amzn.to/2rzdAic
Drone: amzn.to/2EgitUT
Great Camera Bag: amzn.to/2UykJg1
💼 Business Inquires : goattoaster9@gmail.com
I was having super splotchy prints on my first layer and realized my extruder was off 30mm. After recalibrating with the equations you gave it ran perfect. Thank you!
That's great! Glad I could help!
Where are you getting the 143.9 value from?
its from the above equation for klipper. He needs to know what his esteps are and the above formula for klipper is how you figure out your esteps. (my problem is i dont have a "full_steps_per_roation" section in my printer.cfg)
Edit: I believe if on marlin you can ignore this equation and just put in your current esteps in place of his 143.9
you don't even need it. He confused the heck out of me too! Just take your (original rotational distance) multiply by your (measured extrusion distance) and divide that by the requested distance. That will give you your new rotational distance. Example: Old rotational distance = 30, Measured extrude distance = 47mm, requested extrude distance = 50mm.Then (30 * 47) / 50 = 28.2. So 28.2 would be your new rotational distance.
To anyone wondering in klipper higher rotational distance results in less filament pushing through it basically just is reverse.
It would be way clearer if you'd show that you're taking full_steps_per_rotation and microsteps from you printer config, plug in actual numbers and show the calculation. It's hard to understand how you came up with 143.95 without that.
Also it's really super unclear why do you even need to convert from rotation distance to e-steps if in the end you're converting e-steps back to rotation distance. The full_steps_per_rotation*microsteps part will just cancel out on this step, and you end up with a proportion on rotation_distance itself, only reversed (1/rotation_distance).
For the CONFUSED KLIPPER USERS: just take your (original rotational distance) multiply by your (measured extrusion distance) and divide that by the requested distance. That will give you your new rotational distance. Example: Old rotational distance = 30, Measured extrude distance = 47mm, requested extrude distance = 50mm.Then (30 * 47) / 50 = 28.2. So 28.2 would be your new rotational distance.
@@GMCLabs Thank you
if you have a config with rotation distance, you can also use "rotation_distance = * / ", right?
Yes that is correct. I just wanted to simplify it into one single E-Step Equation to hopefully help with any confusion. But that equation works too.
This was much easier to config exactly what I needed. I tried following the video and for some reason at the end when it wanted 200x16 / New E-steps = Rotation distance, ended up being like 5X higher than my starting number, which I was supposed to be going in the other direction!
This is the way. This video is just confusing.
This calculation worked great, and was easy to determine. Thanks
This comment should be pinned
Dude thank you so much for this well put together tutorial. My extruder is now perfectly dialed in thanks to you!
Thanks for the video.
If you don't want to heat up the hotend, which I don't *think* is needed but not sure with a direct drive, you could add "min_extrude_temp :20" to your [extruder] segment.
Allows you to extrude way below the default 170C. Of course you could adjust 20 to something lower if your room has a lower then 20C temp.
@Christopher Easler no idea. I neve worked with OctoPrint.
There is no reason to convert the rotation distance to e-steps and back. Easier/better formula for klipper: rotDisNew = rotDisOld*(120mm - Rest)/100mm.
Thanks! I was wondering where they got the 200 in the formula... Yours works perfectly.
Thanks dude. You saved me a headache
What's Rest?
@@Frankie_Freedom the number you get after extruding, given you underextrude.
@@TheRockDK The number that's left over? hmm.. okay gotcha thanks
thank you even a year after your vid helped me calibrate the extruder and it was easy to fallow
😁
So glad it was helpful! Thanks!
Was about to look up calibrating E-Steps and then saw this notification, cheers.
Hope it helps, I always got annoyed by how convoluted some of the websites made it, so hopefully this can simplify the equations and steps a little.
How are you getting the full steps per rotation in Klipper???
Look for the full_steps_per_rotation setting in the printer config extruder section - right beside rotation_distance and microsteps.
@@ArchonLicht It is not there
Nice mug! And thank you for this tutorial, really helped a lot.
I used this on a Neptune 4 Pro and it worked very well. Thank you, saved my bacon
For the CONFUSED KLIPPER USERS: just take your (original rotational distance) multiply by your (measured extrusion distance) and divide that by the requested distance. That will give you your new rotational distance. Example: Old rotational distance = 30, Measured extrude distance = 47mm, requested extrude distance = 50mm.Then (30 * 47) / 50 = 28.2. So 28.2 would be your new rotational distance.
Well damn I got 20 thanks for putting that at the beginning.
Now already a year old. But used it to calibrate my Micro Swiss NG Direct Drive. Thanks :)
where i get the full steps per rotation ? i don't have that value
That depends on your stepper motor. My Kobra Go stepper motors are all 1.8° per full step which makes 200 steps per full rotation of the shaft.
Thank you so much for your efforts. Exactly what I was looking for.
kinda confused about where the bottom two numbers came from?
Thank you helped me understand how to do this, the only issue is that the common calculation does not work for my prusa mini+ since it under extruded more after the changes. I used your math method and the teaching tech website guide calculator.
I ended up doing it manually by changing from rotation_distance:26.2564 to rotation_distance: 24.99
Where are you getting the full steps per rotation? I see the rotation distance and micro steps but I am not seeing the full steps per rotation
I am in the same boat. My config file does not contain a setting. I don't see how I can use this process without that number either :(
Full steps is the specification that the stepper is sold with, for most 3D printers 200, multiply this by the micro steps (16 mostly) and you have the Klipper “full” steps
your full steps per rotation is 200, where did you origionally get 143.94?
This was extremely helpful, thanks so much!
My desktop and my printer are in completely different locations, so I am unable to achieve any kind of connection between the two. Is it possible to adjust the E steps by putting code into the starting g-code?
Great vid, but
Holy crap is that more complicated than it needs to be.
I know my way is not right, but it's quick & dirty.
I picked a random rotation_distance: 25, measured 120, then E100 F50, and had 88.87 left.
That's only 31.13% of the expected 100 so I took 31.13% of 25 for 7.7825
Re-ran it again and got 99.78 of the 100
He's just going by Klippers documentation and how it says to do it, which I absolutely agree is needlessly complicated. In fact coming from Marlin and Rep Rap I'm not really a fan of how Klipper handles this at all, really miss just editing steps per mm directly. it's goofy to me that they make you edit the part of the equation that's in the denominator as well as if you don't know the equation it doesn't make sense that you need to decrease the rotation distance to get more extrusion or vice versa. Your method is pretty much the same as mine.
@@aharkey1077 unfortunately for some reason I am way over extruding. With no nozzle in, when I put in 100 mm I get 100 mm +/-1, however when I print each layer is blobbing up into the next layer. It is clipping it and it sounds like sound paper. I'm running at an 84% flow to get good prints.
@@3sotErik dude that’s the exact issue I’m having! Built a V2.4 with stealthburner and I got it extruding exactly 50 mm but while printing it way overextrudes.
@@aharkey1077 So apparently we need to try it the right way, maybe. My steppers (not all are stock) didn't come with documentation, so I don't know what to put.
That was not easier.
What a wonderful video! Thanks! Subbed!
I'm under extruding, and with your formula, my rotation distance came out to be LOWER than my current setting is. Any ideas?
where are you getting the 143.9
I can’t seem to find the max extruder amount in my .config. Could it be called something else or can I just add it?
Hey JJ, would you happen to have examples of setting up load and unload filament macros for a Prusa Mini? I've recently flashed mine to Klipper and Mainsail and am having a hard time finding examples for bowden setups that will mimic the Prusa load/unload along with how to setup mesh bed leveling before every print. I love how great the whole thing is running compared to octoprint/prusa firmware.
6:47 where did the 141.12 comae from? where did the 200x16 came from? i did the math and its doing nothing
What's the point to do all this movement if we can do "new_rotation_distance = current_rotation_distance * actual_measurement / expected_measurement" and get the same value?
Hey can anyone help me, i got a new direct drive (ender neo SE direct drive) and it says the gear ratio is 3.5:1.. well when i set it to that on the sonic pad and hit extrude it makes a gnarly noise and then doesnt wanna work again till i completely restart my printer.. can anyone help me figure this out :(
you're a trekkie? i approve!
In the past few years I have really gotten into it, so far finished Next Gen, some of the Orignal Series, and almost done with DS9. I'm a total convert!
why do i keep getting different values and extrude distances every time i try this?
something isn't clear enough.
I started out as 33.5 default then got 20.1, 26.04 206.13, 33.843, and now 96.445
my marlin DEFAULT_AXIS_STEPS_PER_UNIT for E was 146.8
i feel like im trying to catch a donkey on bouncy castle.
i made a calculator in open office spread sheet and used your values to make sure it works right and i get the same rotation_distance.
I dont understand what im doing wrong.
Hey still here, where did you get the 143 e-steps number!?
When I first started 3D printing I used to calibrate my extruder this exact same way and never got really good consistent results.
As an engineer I always question why I was being told to calibrate an electric motor in free running mode with no load on it. This is not the way to calibrate an electric motor has electric motors whether they're steppers or not are designed to run with a load, running a stepper with no load is not a good idea.
So then I started experimenting with calibrating my e-steps through the nozzle at the temperature I was printing at. And lo and behold the quality of my prints improved exponentially.
So yeah if you're trying to calibrate your extruder do it at your printing temperature and extrude the filament at a fairly slow rate. Don't use the firmwares extrude button as it pushes the filament far too fast. You want to extrude it just about f60 in Marlin
So I usually execute a command sequence such as
G91
G1 E50 F60.
Prior to issuing this command I will trim exactly 60 mm of filament off the backside of the extruder. Then I measure the remaining filament after it completes the command and there should be exactly 20 mm of filament left. I find it much easier to use calipers to measure short distance is like this rather than trying to measure 100 mm piece of filament with a caliper.
I can usually get my printer calibrated within 3% using this method. You can't expect much more than that when you have filament that varies by + or - .003mm
Glad someone mentioned you should be calibrating it to the environment in which it will be working and not the theoretical perfect environment e.g. no load. This is why doing the math and setting the value isn't correct and you need to run a manual test in the first place.
I find the video helpful but I wish you had put the equations in the description as one part was blacked out in the video (I think because you mis-wrote and you fixed it in the voice over).
I tried to calibrate my Voron 2.4. I labeled it to 120mm and tried to extrude 50mm. But it turns out it extrudes 85mm. How can i fixed this? Newbie on voron here. TIA.
Here is the commands if you want to just copy them.
M83
G1 E100 F100 ;Make sure to heat nozzle first!
M503 :If you are not using Klipper!
ok, I can do esteps perfect in marlin but I have no clue what you're saying. Old esteps? original distance? length remaining? work it backwards? what?
Increasing flow rate was the route I had to take. Also considering maybe swapping to a .06 nozzle instead of .04
Wat
Hi JJ Shankles, just one noob question, I have a V0.1 with LDO motors and was trying to understand where did you get in Klipper the old E-Steps info? thanks
If you are looking for a baseline number to start with you can start with the stock numbers from the Voron website here: docs.vorondesign.com/build/software/configuration.html
After running M83 and getting new rotation distance set, do I need to run any other commands to take my extruder out of relative positioning?
I measured 28mm does that makes sence? I mean the first layer always has space between the lines with the bed leveled good, my prints however look fine..
So there were a couple of things I didn't understand, in your calculations at 6:43 - Where did you get the 200 x 16 from? I know the 16 is the number of steps, but I don't see the 200 anyplace on the chart and didn't hear it mentioned. I can only assume it is the full_steps_per_rotation setting I saw in your config.
So I basically did exactly what you did, 200*16 / and it still didn't extrude properly, it was way under by about 75%. So then I noticed you have a gear ratio in your config, mine was set to 1:1 with a Sprite Pro (that I now know has a 3.5:1 gearbox). It might be worth mentioning something about the gear ratio since it might be applicable to others as well.
The 200 is indeed the amount of steps a stepper motor with 1.8° per step needs to make the shaft turn 360°.
This should be emphasised more boldly, coming from Marlin, among other 100 new things to learn, this is kinda shock when you can not find where or how to calibrate your e-steps because Klipper use a different calculation. And i remember when i did not know anything about 3D printing steps/mm was pretty easy to understand in no time. Now i am still blinking what is this mm/step thing. I will come along, but still shaking my head a bit.
I mean I just did mine without any calculation at all. I just extruded, measured and saw it wasn't enough then changed the number and tried again. Turns out a smaller number makes it extrude more 😂. I just kept going incrementally until the number I got matched the 100mm extrusion that was supposed to happen. Took like 5 tries and I didn't have to use any math.
My config file doesnt have full steps per rotation. my printer is an ender 3 s1 pro with sonic pad klipper installation method
Beware when trying!
I tried this method, and it completely gummed up my hotend with a big old plastic plug. Luckily, I had some non marring parallel pliers to hold the hotend and some vise grips to hold the plug. After letting everything cool, I just unscrewed the plug.
Holy shit theres not a single simple explanation anywhere what the fuck
Did you do the wire sleeving on the wiring harness to the PCB yurself?
Yes that was all hand wired. It took way too long!
Great content
What is the best end Gcode for Klipper?
i have no idea where this 200x16 came from
200 = full steps per rotation, 16= microsteps. most steppers are a 1.8 degree stepper. so the steps it needs to make 200 steps for a full rotation(200 = 360/1.8). if you are using a 0.9 degree stepper, its 400.
@@askemerci3599 And how would I know the number of microsteps, if my stepper does a 1.8 degree, etc. these numbers appear to have come from thin air.
Where did 143.94 come from?!
I don't have full steps per rotation in my config...
My rotation distance only shows 7.5
No need to calculate anything 😂 just adjust the number until it extrudes the proper amount. if it's not extruding enough, on klipper the number has to go down. The rotation distance I found that worked was 23.38 for microswiss direct drive extruder for my ender 5 plus.
Has anyone have had an E-step calibration that sent you out in left field? I double and triple checked my math but I still get bad results. My measured estep is 66.10mm out of a 100mm. My estep in the machine is 93.0. I ended up with 1.513 with a new estep of 140.7. and ended up with almost 200mm of filament. Needless to say I cant get good results with this methods. Im wondering if I have a bigger issue.
Love this kind of video's and trying to check it in klipper. Where did you get the value 143.94. You one show the old rotation_distance 22.23. Maybe you could explain that also.
The 143.94 is the E-steps. I got that from (full_steps_per_rotation)*(microsteps)/(rotation_distance)
So (200)*(16)/(22.23) = 143.94
Sorry I didn't make that clear in the video.
@@JJShankles also depending on the motor installed.. Microsteps you find in the config. but the full_steps_per_rotation can be found by knowing what stepper motor you have..
I have a 0.9degree motor.
so 360 degrees / 0.9degree = 400 full_steps_per_rotation
default is 1.8 on many printers. but check the modelnumber and so forth.
Where did the old e-steps value of 143.94 come from?
JJ Shankles
10 months ago
The 143.94 is the E-steps. I got that from (full_steps_per_rotation)*(microsteps)/(rotation_distance)
So (200)*(16)/(22.23) = 143.94
Sorry I didn't make that clear in the video.
Great info. Klipper is more complicated than Marlin for this.
where did the 200x16 come from?
200 steps per rotation times 16 micro steps.
"Just go to your printer.cfg file". In a video tutorial its more important to show me how-to, than to keep your face in the video. I know more about your coffee cup than setting up my printer at this point.
things were going great until the maths bit......made absaloutly no sense