HOW TO: PID Auto-Tuning for Ender 3 and Other 3D Printers

Swings in temperature for your 3D printer’s hot end, such as the Ender 3, is just plain no good for quality print results. Steady, controlled heat is what you are looking for and getting it right can be great for your print results. PID auto-tuning is a way to control the temperature by using an algorithm to determine the values that the printer uses to heat and maintain temperatures. Below you will find the instructions to set your PID values. This method is going to change the values that are stored in your printer, and used every time it heats. This method is great for setting the PID values if you use very similar filament, and cooling most every time you print. If you use a lot of varying filament, or use cooling on some and not on others, you will want to modify your slicer printer settings to set the PID values for each configuration. Lets take a look:

  • First off, use a terminal command processor to send commands to your printer – such as OctoPrint, Repetier Host, or Simplify 3D.
  • Start your printer in a cooled state, with the material you are going to use (such as PLA) primed in the hotend – either from a previous print or heat the printer and push through a few inches of filament and let it cool back down
  • Start the cooling fans if you intend to use them as part of the results you want from the PID test. Send the command M303 E0 S205; to the printer for a temperature of 205C – change the S value to whatever target temperature you are looking to get stable heating for like this:
M303 E0 S205;
  • The printer will take about 5 minutes or so and run through the auto-tune test.
  • When it is complete, Marlin will spit out the test values for P, I and D looking something like this near the end of the output:
Recv: PID Autotune finished! Put the last Kp, Ki and Kd constants from below into Configuration.h
Recv: #define DEFAULT_Kp 27.44
Recv: #define DEFAULT_Ki 3.60
Recv: #define DEFAULT_Kd 52.26
Recv: ok
  • Now tell your printer that you have new defaults, sending in new values for the PID values that you received from the test. In my example I send it the values like this
M301 H1 P27.44 I3.60 D52.26;
  • And it returns a success looking like this:
Recv: echo: p:27.44 i:3.60 d:52.26
Recv: ok
  • Next up, you will want to save your settings to the firmware, or the next time you cycle the power, you will lose the settings, so send the save settings command like this:
M500;

There you go, you should be all set to go with stable PID settings that make your printer produce better prints . A couple of quick things to note:

  1. I have seen some varying settings and re-running the whole thing a few times will give you interesting variations in the values returned. The first time I ran this on a printer, the resulting values produced oscillating temperatures (around +-4 degrees C) which is a little too much. You are looking for tight temperature ranges – I was happy with the settings above that roughly stayed very solid in the 204-206 degree C range. Re-running the test a few times you may find a set of values that really tighten it up for you as well.
  2. Remember, if you are swapping in another brand of filament, a different type of filament (like going from PLA to PETG), or using fans vs. no part fans, you will want to either re-run this test and store them in firmware to use until you change them again, or send the M301 command in your printer profile with each of the values for P, I, and D for the configuration each time you go to print. This method takes a little more work, but ensures that the settings are correct for the config you are intending to use.

That’s it for today, if you have a comment or tip leave it below – we would love to hear from you. Happy printing!

HOW TO: Calibrate Ender 3 Extrusion

Calibrating your 3D printer’s extrusion rate is a great way to really dial in the quality of your prints. I find that when using the same brand filament I can get away with calculating the extrusion once, and checking it now and again to make sure I’m fairly close. When introducing a new filament or type (like switching from PLA to PETG for example) you probably want to run this quick check again and make sure you are within a few percent for the new stuff. Calibrating is easy, and if you use Octoprint or Repetier Host or Simplify 3D and can send terminal commands, it’s just this simple:

  1. Set your extruder to relative mode by issuing a M83; command
  2. Next mark your filament 120 mm from the entrance to the extruder with a Sharpie
  3. Then tell the printer to extrude 100mm of filament using the G1 E100 F100; command
  4. Now measure the amount of filament yet to enter the extruder. I had 30mm left over. That means that 10mm is not extruded, though the machine settings think it has. So lets fix that now. (If you have 20mm yet to enter the extruder, congrats. You are done and can go get a tasty beverage.)
  5. Lets find out what the current steps/mm setting is on the printer. Enter the command M503;
  6. You will get a bunch of settings returned, and we are looking for the M92 output, mine was:
    M92 X80.00 Y80.00 Z400.00 E93.00
  7. So lets calculate what we need here instead. I had 30mm left over. So 120mm-30mm= 90mm. My printer is pushing 90mm through, thinking it is 100. That is a 10% difference, and pretty significant. The original output above shows that my extruder steps value was 93 (see E93.00 above.) Lets calculate the correct value. A quick formula for this is (original step value x 100) / actual distance. In my case, this is (93×100)/90=103.333
  8. Lets set this value as the new extruder step value with the command M92 E103.333;
  9. And save those settings to the board with a M500;
  10. Now your extruder should be set, so lets test! Run through the instructions again by measuring another 120mm and running the
    G1 E100 F100; command one more time and you should be pretty darn close.

Happy printing! Leave a comment below if this helped your or you have feedback on your results.

How To: 3D Print PETG on an Ender 3

Printing beyond PLA on an Ender 3 can be tricky. Here are a few tips to get you started with printing PETG, a filament that is stronger and has some qualities like better heat resistance than PLA. If you head into a print with PETG using your stock tried and true PLA settings, you may be up for a surprise – it just isn’t that easy. After some testing, here are some tips that will help you get started:

  1. SLOW it DOWN – Running PETG through your Ender 3 is going to be troublesome on many prints running it through at the stock 60mm/s. You need to slow it down. 40mm/s may work, but 30mm/s is probably the sweet spot for this machine and filament. This one is going to be the key to your success. You might get lucky on some prints, like cubes or anything that is pretty continuous in laying down a layer, but for anything with even a bit of complexity, just slow it down.
  2. GET the TEMP RIGHT – This one is going to vary. You can choose a nice test cube and start at the low end of the temp range for the PETG you buy, let it print for a while, and up the temp by 5-10 degrees. Keep track of what you are doing, and when you are done give the layers some pressure with your thumb and find out where the strength and layers are really holding tight. If you head too high, you will get a solid print, but you will end up with stringy prints that take a lot of cleanup or just plain fail. Also, you will note that when you start getting to that sweet spot, the color will start to change from a milky white to clear. This is when you are getting the temp right. I find that most PETG likes it HOT! Try 250C – this may just be your Ender 3 sweet spot too.
  3. FAN all DAY LONG – Sure, let the first layer or two go down without a fan to get a nice adhesion, then blow on! Let the fan run on high, add better cooling by printing a better cooling duct for your machine (I like the PetsFang on Thingiverse – even went with the dual blower version).
  4. BED HEAT – PETG does not require a heated bed, and you may not need any heat there if you have a nice sticky magnetic mat or tape or the like but on glass and some other surfaces you may find that getting the surface up to 70C will help a bunch with keeping the print down, without warping or just plain coming loose.
  5. CLEAN the NOZZLE – Going from PLA to PETG or any other high temp filament is a huge bump up over what you have been using for PLA. Heat up your hot end to 250 degrees and let it sit for 15 minutes and clean it very thoroughly – pulling off everything you can find, even wire brushing around before you get started. You will not be happy if you skip this step and find an overnight print that has lumps of that awesome orange PLA that has dripped into your new PETG piece of trash.
  6. FLOW – Increase the flow (OK maybe decrease – but usually increase). PETG needs it hot, and if your hot end doesn’t keep up (slowing it down as I said in #1 helps a BUNCH) it will lay down layers that don’t have enough material. Use your slicer to increase the flow to 105% or more and see if the layers go down happier. This one you will need to test yourself. If you are doing a bunch of PETG prints, you may even want to calibrate the machine to the filament and your extruder to get it just right.
  7. THINK SUPPORT – Here you may want to just rethink some of the support that you are planning on printing for your model. I have found that the support blocking in Cura is useful for PETG sometimes – eliminating support that is unnecessary and causing you stringing issues that bleed into the quality of the finished product. Mess around here and find out which supports are going to work, and which are failing you. Another great thing to look into (in addition to standard brims potentially) is the ability to support your support with support brims – lol. Check it out in Cura 4.x, you can add brims to your supports while keeping skirts as your starting layer.
  8. BABYSIT those first few layers – and give them a a helping hand if need be. The first few layers are key to a great print. Babysit them for a while and use tweezers and clippers to remove anything that you can easily remove without stopping the print. Often a bunch of stringing or pulled over support issues can be solved by removing the offending clumps early on, making new layers take over and saving your print. This goes for any type of filament, but taking the time with your PETG will pay off even more in my experience.
  9. Lastly, use a profile for your slicing software that has some great extrusion and speed settings for retraction. This one should get you going for PETG if you are using Cura:

TOP 10: Best Ender 3 3D Printer Upgrades

Have a Ender 3 Printer, or getting one soon and want to know which upgrades you might want to take a look at? Well here is my list of the best of the bunch, in the order that, in hindsight, make the best upgrades. Some are better at making your prints turn out, some are for ease of use, some are just plain fun – let’s take a look:

  1. Upgraded extruder arm mechanism – this is the first thing you should do if you plan to print more than just now and then. Even then, you will want to do this in the long run. The plastic arm included in the stock Ender will wear and does not have the strength that an aluminum upgrade will give you. Upgraded extruder arm mechanism – this is the first thing you should do if you plan to print more than just now and then. Even then, you will want to do this in the long run. The plastic arm included in the stock Ender will wear and does not have the strength that an aluminum upgrade will give you.
  2. Glass Bed – A glass bed is just the best surface you can get (followed closely by #3 below). Get a glass bed and a can of Aqua Net Extra Super Hold hairspray and never look back. Perfectly smooth bottoms, no more dents in your stock build surface from improper leveling, and a great all around performer when it comes to adhesion.
  3. Removable Magnetic Build Surfaces – OK, the truth is, some days I think this is better than glass. I have 2 Enders, so I don’t have to choose. The removable magnetic build surface gives you a super easy way to remove prints, rarely needs cleaning because it sticks so darn well, and you will never drive a spatula into your arm trying to get a stuck on print to come loose.
  4. PetFang Cooling – This is a 3D print you can do yourself, for a nice improvement on finished products. The instructions take a bit to figure out which ones you need to print (and it depends on if you do #5 below) but it’s so worth the time.
    https://www.thingiverse.com/thing:2759439
  5. Dual Fans on the PetFang – While you are on #4, go ahead and add 2 fans to the Fang. If you get into PETG or just want great results on overhangs and no stringing, boost the airflow and rejoice.
  6. OctoPrint – Get a Raspberry Pi, an SD card, and install OctoPrint. Best thing you can do. Drag and drop files, monitor your progress on a PC, install some plugins to make everything more better, add a web cam and record that 3 day print. Just so much value here. Get this one done soon.
  7. Upgraded Rollers – Print these rollers out, and grab a few bearings for other fun projects while you are at it. This upgrade reduces drag and lets your filament be free to roll on! This Thingiverse link has a great wall mounted version, which I added to my space where 16 rollers now live to feed the printers. Awesome look, and they work really well. Print them at 50% infill or up for a nice solid roller and mount.
    https://www.thingiverse.com/thing:3020026
  8. Filament Guide – Get a guide to keep that filament away from your Z axis screw and the rollers on the motor. I like this one (
    https://www.thingiverse.com/thing:3275225 ) because you can stick it in when you forget (every time for me) and it stays nice and secure – also bonus is screwless install. Print an extra for the day when you break it off wresting with your printer or something nearby.  
  9. Firmware Upgrade – Grab an Arduino and upgrade your firmware to the latest Marlin code for advanced features and the most important runaway thermal protection. If you leave your printer alone a lot to do it’s thing, move this one up on the list.
  10. Main Board Gen L Upgrade – Pretty thrifty way to upgrade your printer to take cool upgrades (see steppers and auto bed leveling). The Gen L won’t really make your prints any better, but you can add more to the firmware and upgrade the steppers.
  11. Upgraded Steppers – You can do this with add-on chips for the stock Ender board, but I have heard that you don’t get much with that route. Adding the Gen-L above and upgrading your steppers will give you super quiet motors (your existing ones become very quiet). I used the TMC2130’s – on the X and Y only. You can replace all 4, but I went with 2x 2130’s and 2x A4988’s (direct replacements of the stock ones that come on the original). This gives you a pretty quiet machine, and leaves the Z axis a little noisier – which you only notice on homing, and makes for a great audio cue when a print starts to take a look and make sure those crucial first layers go down right.
  12. BL or 3D Touch – Here is one that you can print a mount from the Fang kit above and add auto leveling to your machine, and after doing so you may wonder why this is so far down on the list. I added this to both of the Enders, and really it is one of the best upgrades you can do but learning about leveling first really is handy – manually. You will learn a bunch of stuff about your printer and 3D printing in general that will help you troubleshoot a pesky print, and pays off if you don’t have that knowledge already. After you have that figured out, do this one.
  13. Color Touch Screen – I did this one on one of the 2 Enders I have and I love it. It is a nice upgrade that does absolutely nothing other than makes you smile. It’s a fun weekend project, has some wow factor, and if you do OctoPrint above, you will rarely if ever touch it. But it’s cool.

There it is, the complete getting started list. Leave comments below if you have a must have upgrade, or want to share your experience. Check out the Teaching Tech channel on YouTube for many guides on how to install this stuff, his content is superb. Happy Printing!

3D Printing Layer Shift Troubleshooting Tips

Nothing is less fun than finding that your long print on you 3D printer has failed due to shifting. Here are a few tips to look into if you find that you are having a shifting issue with your printer.

  • Check your belts. If you have belts on your specific printer, make sure they are really tight. Look at your print and determine which axis is shifting. Focus on that belt. A great tip here is to mark your belt and motor gear when you start a print with a sharpie, and see if you are getting slipping. Tighten. Repeat.
  • Check for missed steps. Same as above, mark your belts if you have them. This will show you what might need some tightening.
  • Check the voltage on your stepper motors. Find out what the voltage should be for your stepper motor drivers, use a multi-meter and make sure you have enough voltage heading into them (my Ender 3 for example has upgraded TMC2130 steppers, the correct voltage for these is about .76V)
  • Try different infill patterns. Some patterns jerk the printer around so much that it just can’t keep up, and you will get a shift. Start with a simple infill pattern in your slicer and see if it helps
  • Use a different slicer. I have used Cura, and found that some prints just don’t behave with whatever infill I use, due to the sliced output file. I keep Slic3r on my workstation and load it up there, usually with “different” results – sometimes a complete success, other times with clues to what might be tweaked elsewhere
  • Move the object in your slicer. Sometimes people have success with just moving the object off center in the slicer before exporting it to the printer. Try this if it’s small, otherwise make sure you go through the list above first – or risk printing some plastic trash
  • Slow down the print. My printer defaults to 60mm/s print speed. Some of the objects that I print just don’t like that speed, so slow it down! Try 40mm/s or something and see if your results vary.
  • Replace your stepper. Find the offending stepper driver, and replace it. If you don’t have another on hand, swap the offending axis driver with one that seems to work in your machine and print a test to find out if ordering a replacement might be in the cards for you

Do you have tips that would help with figuring out shift issues with your 3D prints? Let us know in the comments below. Happy printing!