Linear Advance on an Ender 3 is something that you don’t hear about too often. It’s been noted on quite a few websites, including marlin’s own wiki that the bowden setup may not benefit from a linear advance. I was looking into ways to print faster while still maintaining the print quality of my slower prints; and I come across the linear advance setups that some other guys have posted about with success.
Initially I decided to use Linear Advance by itself, and to enable this option you first need to make sure that you have calibrated your Extruder E-Steps properly, and that the rest of your printer is running in a satisfactory manner. Linear advance will not help issues that are already present, but it can help you speed up your printing and decrease stringing on a well tuned printer.
If you have TH3D Firmware
If you are using TH3D Firmware as suggested on other posts from Print3D.world then enabling the Linear Advance option is quite simple. Open the Arduino IDE in your Firmware Folders, and ensure you have the TH3D configuration open. Open the configuration tab, and either use the “Search/Find Function” or scroll to the bottom of the configuration until you have found ” #define LinearAdvance ” options. You will remove the // in front of the settings, and I recommend leaving the K value at 0.
If you have Marlin Bugfix Firmware
Open your Arduino IDE, and choose the Configuration tab. Use the “Search/Find” function and look for “Linear Advance”. You will see an option that looks like “//#define linearadvance” and you will remove the two “//” in front of it. Below this option you will see an area to set your K value/factor. Leave it at 0, we will set this up in the Start GCode later.
Upload the firmware
Once you have enabled the firmware, you will need to go through your regular routine of uploading it to the printer. I always make sure I run these two G codes after I upload new firmware to ensure the flash memory has been reset and updated as well. Use your octoprint, or pronterface console and send the following two G-codes from the command line.
M502
M500
Calibrating your Linear Advance K factor
Once you have enabled the linear advance option in your configuration, and uploaded the new firmware you will have to run the K factor calibration tool and find the value at which you will use to print. This tool is helpful, and you may need to run it when you swap material types (PLA to PETG, or ABS etc). Follow the link below, and use the settings that I have listed below for your Ender 3. Don’t forget to choose the Auto Bed Leveling option box if you have ABL, otherwise don’t.
http://marlinfw.org/tools/lin_advance/k-factor.html
Diameter of the used filament (mm) Diameter of the nozzle (mm) Nozzle Temperature (°C) Bed Temperature (°C) Retraction distance (mm) Layer Height (mm) Print Bed:
Rectangular or round bed. Round beds will activate Origin Bed Center Size (mm) of the bed in X Size (mm) of the bed in Y Set the origin position (X0 Y0) to bed center instead of front-left corner Speed:
Use mm/s instead of mm/min Slow printing speed Fast printing speed. This should differ noticeably from Slow Speed Movement speed Retract Speed of the extruder Set printing acceleration (mm/s^2) Set the Jerk for the X-axis. -1 to use firmware default Set the Jerk for the Y-axis. -1 to use firmware default Set the Jerk for the Z-axis. -1 to use firmware default Set the Jerk for the Extruder. -1 to use firmware default Pattern:
Select version 1.0 for Marlin 1.1.8 and earlier. Select 1.5 for Marlin 1.1.9 / 2.0 and up Select standard or alternate pattern Starting value for the K-factor. Usually 0 but for bowden setups you might want to start higher, e.g. 30 Ending value of the K-factor. Bowden setups may be higher than 100 Stepping of the K-factor in the test pattern. Needs to be an exact divisor of the K-factor Range (End – Start) Length of the Slow Speed test-line (mm) Length of the Fast Speed test-line (mm) Distance between the test lines. This will impact print size Adds a frame around the start and end points of the test lines. May improve adhesion Rotates the print in 45° steps Prints the K-value besides every second test line Advanced:
Ratio between extruded line width and nozzle diameter. Should be between 1.05 and 1.2 Offset the Z-axis for manual Layer adjustment Level bed or load a saved mesh (i.e. for UBL) before printing. Bed leveling has to be activated in Configuration.h! Loading a mesh requires UBL to be activated! Use Firmware Retract. Needs to be activated in Marlin Usually 1.0 Prime the nozzle before starting the test pattern The default of 2.5 results in roughly 1mm of filament for 10mm line length Speed of the prime move Inserts a pause of x seconds before starting the test pattern to bleed off any residual nozzle pressure
Determining your best K value
Once you have generated the K factor calibration test, and run the print you will see some of the lines may have printed well, and some may have done bad. The point of this test is to get the most consistent line over the slow and high speeds. You should look over your lines and determine which one is the most consistent. If there is a value that is very close, but could use some more tweaking: modify the linear advance calibration pattern again but change the options to start below the setting you think looked best, and end just after it with a 0.05 increment. (Example: Start @ 0.40 End @ 0.60 with a 0.05 increment). Choose the best K value for your printer and material, and make sure you make a note of it.
Changing your Start G-Code to use K Value
Now that you have your new K value, you will want to use it when you are starting a new print. You will add the following line to your Start G-Code in Cura, where 0.00 should be replaced with your new K value.
M900 K0.00
Increase the Print Speeds incrementally and start testing! It’s time to see if your new linear advance setup will print just as good at a faster rate, later we will talk about getting more speed by increasing firmware default accelerations and max feed rates. With our Ender 3 running on Linear Advance we have successfully printed up to 90mm/s with fairly simple prints. 60mm/s is a walk in the park now!
Hi thank for your information, but as far as I know the linear advance does not work on ender 3 using any creality motherboard. They are some issues with drivers. Did you use another board or did you manage to work on the creality board?
I sent you an email regarding your comment, I verified that Linear Advance works on the stock board with the calibration Gcode. You can clearly see it working if you run that gcode. It is true that many people cannot get it to fit onto the stock board with ABL enabled; but if you setup your firmware properly it can be done from what I have seen.
As far as I’ve read, Ender 3 v2 is not capable of linear advance? Is this correct? I heard someone say the driver firmware was burnt in the wrong mode for it…
I’m unaware of that issue. The firmware could be wrong/not configured for it.
If you already have upgraded firmware just enable LA and try the Marlin K Factor calibration.. if you see a difference in the values it works fine.
Thanks for this articvle. Is there a way to check if your printer is currently using linear advance or not? Im running a SKR Mini v2 in an Ender 3 and am unsure.
My printer is running it. Google the marlin linear advance test code and run it. If you notice a difference it’s working.
this works fine with ar4988 drivers that are on most creality machines. Only the machines with tmc2208 drivers in legacy/standalone mode don’t work. So I believe it is all the creality silent boards that won’t work as none of these connected in the required are in UART mode?
Eg. 4.2.7(ender 3 V2) is silent tmc2208 and 4.2.2(later model ender3 pro) is ar4988.
So noisy board yes, silent board no?
hey anyone else have this issue? when i generate the code and try to print it will try to print off the bed…and if i try to have it begin in the center it crashes the extruder axis into the far right of the frame lol what am i doing wrong ??
Still need help?