Validation has been built into the forms to only allow sensible min and max values, however this is not foolproof.
The gcode generated by this page has the following general characteristics:
+
Sliced for Marlin firmware, although in most cases will still be compatible with other firmwares.
0.2mm layer height
0.4mm nozzle
Base feedrate of 60mm/sec
@@ -59,7 +62,7 @@
Nozzle priming has been turned off to avoid bed clips or problems with deltas
A single layer skirt (except on the acceleration test)
-
To be compatible, your printer should have a miniumum bed size of 100 x 100mm. The largest print is 85x 95 x 30mm.
+
To be compatible, your printer should have a miniumum bed size of 100 x 100mm. The largest print is 85 x 95 x 30mm.
@@ -85,8 +88,7 @@
Lubrication
Lubrication is an important maintenance task to perform regularly. Compoents that are not adequately lubricated may bind and affect print quality. Use SuperLube Synthetic Grease. Lubrication needs to be performed regularly on any hardened rods, linear rails and lead screws.
Bed Levelling
-
Probably the most essential part of setting up your 3D printer. Most new users will trip up on this. If you have ABL, this includes making sure your Z offset has been set and saved. My method is included in the above video and this diagram is a handy reference:
-
+
Probably the most essential part of setting up your 3D printer. Most new users will trip up on this. If you have ABL, this includes making sure your Z offset has been set and saved. Dialing in the first layer has now been moved to its own tab.
PTFE Tube
If your printer has PTFE tube, such as a bowden tube setup for the extruder/hot end, it is essential to make the tube is fully inserted and seated in the coupler. Also ensure the coupler is properly tightened. You may wish to use a small retaining clip on the coupler to prevent the tube working loose: Creality PTFE clip by morfidesign.
Nozzle
@@ -123,6 +125,105 @@
It may be preferable to have the printer as close to printing conditions as possible during these tuning procedures. That means having filament loaded and the part cooling fan on for PLA temperatures.
+
+
+
First Layer
+
Aim:
+
To ensure the printer bed is both level and an appropriate distance from the nozzle. In the case of using ABL, to check if compensation is working and the Z offset is correctly set. This will result in a first layer with the correct amount of 'squish', meaning good adhesion, and greatly increasing the chances of the print being successful.
+
When required:
+
Initial setup of the printer, regular maintainence, if first layer quality diminishes, any time the frame or mechanical components have been disassembled or replaced, any change of bed surface or nozzle, a change in filament that has significantly difference bed/hot end temperatures. There is a lot that can throw the bed level off, but careful use of your printer without any hardware changes should see it remain consistent for an extended period of time.
+
Tools:
+
The gcode generator on this page. A standard sheet of office paper.
+
+
General Principles
+
Getting a good first layer is an essential part of 3D printing successfully and is probably the number one cause of failed prints for new users.
+
Firstly, the bed needs to be parallel to the plane the nozzle traverses when moving in X and Y. This is achieved by moving the corners of the bed up and down relative to each other. With manual bed levelling this is achieved by turning the levelling knobs in each corner.
+
Secondly, the vertical distance between the bed and the nozzle needs to be correct for the first layer to print correctly. In a manual system, this is achieved by turning the levelling knobs in unison to lift or lower each corner the same amount.
+
If this distance is too far, the filament will not be squished into the bed enough, potentially even printing in mid air, and the print will detach from the bed and fail.
+
If the nozzle is too close, there will not be enough room for the extruded filament to take the correct shape, and it will be forced to squeeze outwards. In minor cases, the extruded line will be wider than necessary and produce elephant's foot. Prints like this may be quite hard to remove from the bed.
+
In extreme cases, there will be no way for the filament to exit the nozzle, at best causing extruder stepper motor skipping, and even potentially even jamming the extruder/hot end.
+
A short animation of these concepts are shown in the following snippet:
+
+
Manual Levelling Procedure
+
There are many techniques available, but a common one is to move the nozzle to the various corners of the bed, turning the levelling knobs until a standard piece of office paper can just fit between the bed and nozzle. A 0.1mm feeler gauge can be used, but make sure it doesn't have any oil on it that will contaminate the bed surface. Typically, this procedure is done with the bed at printing temperature (essential), and the nozzle close to printing temperature - just cool enough to prevent filament oozing out (optional).
+
It is common to follow up with a first layer calibration print, and 'live level' the bed by continuing to adjust the knobs when the print is under way.
+
This process is depicted in detail in the following snippet, and a gcode generator is provided at the bottom of the page to generate a suitable test print:
+
+
Auto Bed Levelling and Z offset
+
Auto bed levelling automates the procedure to some extent. A sensor such as a BLtouch, EZABL, strain gauge or peizo transducer is used to probe the bed in a grid formation. At each location, it measures the vertical height, building up an array of stored values, called a mesh. Manual mesh bed levelling can also be used to probe such a grid, but is still a manual process and hence not considered 'automatic'. Here is a visual representation of a probed mesh, shown with the Bed level visualizer Octprint plugin:
+
+
During printing, the firmware will reference the mesh and compensate for an angled and/or warped bed by raising and lowering the nozzle using Z axis movement. This means the nozzle can travel up and down to match the contours of the bed, ensuring a good first layer.
+
In the printer's bed is perfectly flat, it is reasonable to claim ABL is not needed. Some users may still prefer it for the added convenience. In the event that the bed is warped (very common), it can be impossible to get a good first layer without ABL or manual mesh bed levelling. An example of this situation is shown in the following snippet:
+
+
The bed can be probed at the start of the print with a G29 command, with the resulting mesh immediately used to compensate as the initial layers are produced. Alternatively, the bed can also be probed some other time (while not printing), the mesh stored in the EEPROM and then restored with M420 S1 at the start of a print. In this case the print will start sooner, since we do not need to wait for a new mesh to be probed, although it may not be as accurate if anything has changed since probing. Either of these gcode commands should come after the G28 home command in the start gcode.
+
Although ABL can compensate for a crooked/non-levelled bed, it is still better to attempt to level manually first and get everything in the ballpark.
+
Probing the bed and building a mesh only accounts for an uneven or warped bed. Like manual levelling, we still need to set the distance between the nozzle and bed to get a good first layer. This is where the Z offset comes in, which is simply the vertical distance between where the probe triggers vs the nozzle tip. Here are some examples:
+
+
BLtouch/EZABL/Pinda probe - The nozzle is in mid air when these probes are triggered, which will require a negative Z offset.
+
Manual mesh bed levelling - The nozzle and bed will be very close when manually probing, requiring a Z offset close to zero.
+
CR-6 style strain gauge - The nozzle touches the bed and flexes upwards to trigger the probe. This means the trigger poiunt is actually higher than the nozzle tip, and requires a positive Z offset.
+
+
If BABYSTEP_ZPROBE_OFFSET is enabled in Marlin, setting the Z offset can easily be done as the first layer goes down. Don't forget to save to EEPROM afterwards. This process is depicted in the following snippet:
+
+
Another advantages of some ABL systems is that once the Z offset is set, you can interchange build surfaces of various thicknesses, with no changes needed for a successful first layer. Assuming the probe is triggered the same way on the bed surface, the Z offset is applied to this trigger point and the first layer height should be the same. On a manually levelled bed, the four corner knobs would need to be turned in unison to raise or lower the bed in accounting for thickness of the new build surface.
+
First layer gcode generator
+
The following form will create a series of five squares that you can use to live level your bed or set the Z offset. It is quick to print and features one square in the middle of the bed, with four others in the corners. You can use these to turn the levelling knobs in each corner until they are consistent, or ensure your ABL system is working if you have one in place.
+
+
+
Interpreting Results:
+
The following diagram and reference picture can be useful in determing if your first layer is too close or too far away from the nozzle. The reference image is quite large to aid clarity, you may wish to open it in a new tab to view it at maximum size.
+
If one side looks too close, but the other too far, adjust the levellng knobs to correct this. It is worth printing this gcode more than once after making adjustments to make sure the result is accurate and repeatable.
+
+
+
Baseline Print
@@ -238,6 +339,13 @@
Although starting a new print or power cycling will achieve this, it may be safer to put the printer back into absolute position mode after completing this calibration by sending:
G90
+
Storing the updated E-steps
+
Once you have determined the correct value, it must be saved to the firmware to take effect on subsequent prints. Although it can be hard coded into the firmware by recompiling Marlin, it is far easier to use gcode to achieve this.
+
In a terminal, enter:
+
M92 E[your new value]
+
Obviously, you would substitute in your E-steps value after the E. Save to EEPROM with:
+
M500
+
You can also use the Configuration menu on the LCD to make this change, but with a large change (eg. switch to geared extruder) it may take considerable time to turn the knob enough to reach the desired value. Don't forget to Store Settings to save to EEPROM.