Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

CaliLantern Guide V3.1

Download as pdf or txt
Download as pdf or txt
You are on page 1of 36

CALILANTERN GUIDE

Instructions manual for 3D printer calibration using CaliLantern

Version 3.1.0
Contents
INTRODUCTION .................................................................................................................................................................................................................................. 4

PRINTING THIS MANUAL ................................................................................................................................................................................................................................................................................... 4


GETTING HELP..................................................................................................................................................................................................................................................................................................... 4
GIVING FEEDBACK............................................................................................................................................................................................................................................................................................... 4
REVIEWS ................................................................................................................................................................................................................................................................................................................ 4
CALCULATOR....................................................................................................................................................................................................................................................................................................... 4
LICENSE ................................................................................................................................................................................................................................................................................................................. 5
LATEST VERSION.................................................................................................................................................................................................................................................................................................. 5
SHARING ............................................................................................................................................................................................................................................................................................................... 5
UPDATES AND CHANGE LOG ........................................................................................................................................................................................................................................................................... 5

COMPATIBILITY ................................................................................................................................................................................................................................... 6

SLICERS .................................................................................................................................................................................................................................................................................................................. 6
FIRMWARE............................................................................................................................................................................................................................................................................................................. 6
PRINTERS............................................................................................................................................................................................................................................................................................................... 7
PRECISION............................................................................................................................................................................................................................................................................................................. 7
BEFORE USING THIS TOOL .............................................................................................................................................................................................................. 9

SUMMARY OF HOW TO USE ........................................................................................................................................................................................................... 9

PRINTING .............................................................................................................................................................................................................................................. 10

EXISTING CALIBRATION PARAMETERS ................................................................................................................................................................................... 11

MEASUREMENT .................................................................................................................................................................................................................................. 13
HOW TO TAKE MEASUREMENTS .................................................................................................................................................................................................................................................................... 13
WHERE TO TAKE MEASUREMENTS ................................................................................................................................................................................................................................................................. 14
RESULTS ................................................................................................................................................................................................................................................ 16

UNDERSTANDING THE RESULTS..................................................................................................................................................................................................................................................................... 16


Size.................................................................................................................................................................................................................................................................... 16

Page | 2 2
Skew ................................................................................................................................................................................................................................................................. 16
Extrusion ......................................................................................................................................................................................................................................................... 19
SCORE ................................................................................................................................................................................................................................................................................................................ 20

ADJUSTMENT ...................................................................................................................................................................................................................................... 21

SKEW .................................................................................................................................................................................................................................................................................................................. 21
Klipper.............................................................................................................................................................................................................................................................. 21
Marlin ............................................................................................................................................................................................................................................................... 24
RepRap Firmware (Duet 3D) ...................................................................................................................................................................................................................... 30
SIZE ..................................................................................................................................................................................................................................................................................................................... 30
Super Slicer ..................................................................................................................................................................................................................................................... 30
Cura .................................................................................................................................................................................................................................................................. 31
Part Scaling ...................................................................................................................................................................................................................................................... 32
Steps/mm and Rotation Distance ............................................................................................................................................................................................................... 33
EXTRUSION ....................................................................................................................................................................................................................................................................................................... 34

VALIDATION........................................................................................................................................................................................................................................ 35

SHARE RESULTS! ................................................................................................................................................................................................................................ 35

CHANGE LOG ...................................................................................................................................................................................................................................... 36


THIS DOCUMENT ............................................................................................................................................................................................................................ ERROR! BOOKMARK NOT DEFINED.
CALCULATOR................................................................................................................................................................................................................................... ERROR! BOOKMARK NOT DEFINED.
STL .................................................................................................................................................................................................................................................... ERROR! BOOKMARK NOT DEFINED.

Page | 3 3
Introduction
Congratulations on getting started with your CaliLantern calibration! This documentation exists to help you through the
purchase, usage, guide you where to get help and support, and hopefully answer any questions you may have.

Printing This Manual


If you need to print this guide out onto real paper then you can do it. It has been written in black and white so use of a laser
printer is suggested, however, I would strongly recommend against printing the manual out in light of considering the
environmental impact and having latest information available. Please don’t print it unless you absolutely have to, even then
consider printing part of it and not the whole thing.

Getting Help
You can ask on the Vector 3D discord in the #calibration channel,
we’re here to help so come and join us using this link:
https://discord.gg/xXmuUpJhxc

Giving Feedback
An important part of making CaliLantern the best it can be is to collect feedback and create improvements based on that
feedback. You don’t have to provide feedback if you don’t want to, but it is always welcome. You can send an email via discord,
the ‘contact us’ page on the website.

Reviews
If this tool has been useful to you, or you just want to share your opinions on, the Vector 3D website now has an area for reviews
by validated purchasers. If you have purchased and used CaliLantern I would love to see your opinions shared in a written review
on the shop page, you can keep it short, but it will help both myself and future buyers so please consider doing so.

Calculator
The main calculator that gives you the results you need to use to modify your 3D printer is locked by default which prevents
modifications and hides the behind-the-scenes calculations. The reason for this is, from my experience, even talented excel
wizards can make mistakes when using a spreadsheet, especially one designed by somebody else, maybe down to miss click, typing
the wrong thing, not noticing something you changed etc. The spreadsheet is locked so that you can’t change anything that i s

Page | 4 4
critical to its function. If you want to unlock it, it’s not hard but I’m not going to guide you. It’s not a secure form of protection,
I’ve just used it as a first line defence against mistakes.

License
This product is not open source. Purchasing it does not permit for any kind of re-distribution and usage is limited to personal use
for a single customer. For multi-user and commercial use please contact for a quote. I promise my rates are reasonable and
remember that by paying for it you’re ensuring I can create more great calibration designs for other aspects of your 3D printer in
the future.

Latest Version
Over time there are likely to be updates to this manual, the calculator, and the CaliLantern itself. I recommend that you always
make sure you have the latest version when calibrating your printer. The best way to get the latest version is to head over to
Vector3D.co.uk and login to your account, head to the downloads section and download the version shown there which will
always be the latest one available.

Sharing
Once you have completed your calibration, please share your results with me on twitter, on Instagram, TikTok, on the
vector3d.co.uk website reviews section or in the community in discord by tagging @Adam_V3D or whatever my handle is on
those other platforms. I love hearing about your experiences.

Updates and Change Log


If you are wondering about the changes in the latest version of this manual, the calculator, or the STL, the changes are listed at
the end of this document.

Page | 5 5
Compatibility
While I’ve tried to make CaliLantern tool as effective and universally accessible as possible, it can’t be perfect for everyone, so I
want to let you know some of the limitations before you purchase so you know what to expect.

Slicers
Implementation of material shrinkage compensation is done via modifying a slicer setting but not all slicers have this setting. If you
use a slicer which does not provide the required setting, then you will have to find an alternative method for implemented
material shrinkage.

Slicer Material Shrinkage Setting Alternative


Super Slicer Filament Properties > Shrinkage N/A
Prusa Slicer Disabled Super/Orca Slicer
Orca Slicer Filament Properties > Shrinkage N/A
Bambu Studio None Orca Slicer
Cura None Preferences >configure cura > Settings > search
‘shrinkage’ > Check boxes with Shrinkage settings

Firmware
Implementation of skew correction typically requires adjustment of the firmware and it cannot be done via the slicer. Marlin,
Klipper and RepRap firmwares (the most popular firmwares to my knowledge) all have the capability to implement skew
correction but the difficulty and accessibility differs between them and will even change between printers.

Firmware Method of Skew Correction Alternative


Marlin Firmware or G-Code Methods None
RepRap M556 configuration G-Code None
Klipper Printer.cfg firmware configuration None

Page | 6 6
Printers
The goal of CaliLantern is to improve geometric accuracy of your 3D printed designs, however, some 3D printers, particularly
those by Prusa, already include some geometric tools such as skew calibration. Additionally there are printers which use different
types of kinematics which don’t align to the bed and therefore won’t really work well with this model.

Printer Comment Alternative


Prusa i3 Mk3 (s+)/Mk4 Includes automatic XY Skew calibration Use as validation tool for included calibration procedure.
Prusa Mini (+) Closed firmware, no skew adjustment. Use to measure skew, and compensate via adjusting the
physical printer if necessary. See prusa knowledge base
for instructions.
Flashforge Creator Closed Source Firmware None at this time (replace electronics?)
Any Belt Printer Bed doesn’t align with gantry. None at this time
CoreXY All ok -
Delta Printers Not currently tested -
Most Bed Slingers All ok -

Precision
One of the most important things I want to clarify when it comes to using CaliLantern is that your printer will never be
objectively perfect. The degree to which you are ‘successful’ merely depends on the quality of the printer and precision with
which you measure the result.

If you print something 100mm long and measure it with 1mm increments, it might look like it’s bang on 100mm. But if you use a
more precise, and accurate, tool, you’ll measure that it’s slightly over or under. Remember also that thermal expansion exists,
changing the temperature of your callipers will change the dimension they read, it’s all a matter of precision and determinin g what
range we are focused on.

My point is that I have designed CaliLantern to minimise skew and if used correctly it will do that, but if you’re achieving 0.01° of
skew and asking why it’s not getting any better, it’s because your printer is already as good as it can get. Typically build tolerances

Page | 7 7
will be anything from 0° to around 1° of skew and using the calibration tool and firmware correction you should be able to being
this down to below 0.1° and probably better if you’re printer is well built, and you have high quality measuring tools.

Precision, accuracy, engineering tolerance, manufacturing tolerance and metrology are all quite complex topics. If you want to
know more I would recommend reading up a little on them as they are quite interesting and very applicable to 3D printing.

Page | 8 8
Before using this tool
Accuracy is the name of the game when it comes to calibration. This means that your printer needs to be printing well before you
use CaliLantern. The worst culprit for issues is warping as this will mean the print is a significantly different shape to what was
printed. Other issues like insufficient cooling, surface blobs, extruder skipping can all affect the important surfaces you want to
measure so your printer needs to be working well first.

So, before using this tool I would recommend:

• PID Tuning
• First layer calibration and good consistency from print to print
• E-steps calibration
• Retraction calibration
• Calibration fan cooling for chosen material
• Input shaping calibration

For best results I also recommend doing/having the following:

• Speed and Acceleration tuning


• A reasonably good slicer profile that you plan to use for long term usage.
• Pressure Advance or Linear Advance calibration
• Disabling any existing skew correction

Summary of how to use


In short, all you need to do is print CaliLantern, measure its dimensions, plug the numbers into the calculator, implement the
results, and then re-print and measure for validation. As always though, the devil is in the detail, so I’ll cover all of those steps in
greater detail.

Page | 9 9
Printing
Firstly, make a note of any existing printer calibration settings that are already enabled. In marlin you’ll probably need M503 but
for klipper and RRF you can just checked your configuration files (see the next section for using these). You have the options of
keeping these enabled, therefore performing iterative calibration, or disable them entirely and start from scratch.

Placement of the model is simple. For most users, just drop it into your slicer, it will automatically sit in the correct orientation.
Even if you have delta or coreXY, there is no need to rotate. However, if you have setup auto-rotation upon import then you will
need to counter rotate to get it back to its intended orientation (This is sometimes done for CoreXY machines). There are
arrows on the print which indicate the direction of the X and Y Axis to help you.

Figure 1: Arrows showing X and Y directions for print orientation

For the scale, if you have a particularly large printer then you may want to increase the size. Just remember that whatever size
you print, you will also need callipers that can measure that size. For example, 200% size will need 200mm callipers.

For your slicer settings, print with your ‘normal’ profile. You probably have different profiles for different scenarios, just pick the
most common. The main point is not to pick or use specific settings for running calibration. One thing you may want to consider
if your profile is not well tuned is that this print requires quite a bit of retraction and overhangs, and the later need to be good
quality for good measurements. Increase the layer time for the cooling settings can help ensure you have good overhangs.

Page | 10 10
This is not a fast print, it is not designed to be, and likely never will be. It will take quite a while to print, don’t try to make it
faster and compromise on the outcome. The name of the game is accuracy, not speed. Sacrificing quality here will only lead to
unsatisfactory results.

For your first calibration I’d recommend using the material you print with most often, unless that’s flexible material which won’t
provide great results due its flexibility making accurate measurements difficult. Typically, this will be PLA which will normally also
be the easiest due to its low warp and dimensional stability.

For the very best results, specifically considering material shrinkage, you will need to calibrate for each of the materials you use,
but I would confine this to the generic categories of ABS, PETG, ASA etc rather than doing it for each colour or specific brand of
each of these materials. Skew is a property of the printer rather than the materials so you shouldn’t need to create skew profiles
for each material.

For printing this, the slicer ultimately shouldn’t really matter, as long as it has the basic features expected from most slicers, you
should be able to print and measure just fine. However, there are some features that will be necessary for getting the best results
when it comes to implementing the results, those factors will be explained in the section on Adjustment.

Existing Calibration Parameters


As I mentioned in the previous section, there is now facility for using any existing calibration settings to perform iterative
calibration. This means, instead of having to start from zero each time, you can hone in on the final calibration value by doing the
same print one after the other and in theory the skew will reduce each time until you are around the limits of your printer, or
your measuring tool.

Using existing calibration data requires you to gather the current skew data, and input that at the top of the calculator. This
process will be different for RRF, Klipper and Marlin since they all treat skew differently. For Klipper you need the three values
saved in the printer.cfg file under the named skew profile section. For marlin you need the three skew factors, one for each plane.
For RRF, you need the S, X, Y and Z parameters for the M556 command which sets skew. Then the name of your firmware, or
use the dropdown, into the box next to ‘use skew model’ to tell the calculator which data you are using, the rest will be ignored.

If you are starting from scratch then set the ‘use skew model’ box to empty, this will ensure none of the values below it are used.

Page | 11 11
Since for size calibration, you can simply multiple the results for iteration, I’ve not included them in this calculator but may be
added as a minor upgrade in the future.

Once you have populated this existing skew data it can be used in addition with the measured data to find a new skew angle for
each plane.

Page | 12 12
Measurement
How to take measurements
Good measurements are fundamental to acquiring the potential benefits from CaliLantern. I’ll guide you through where to
measure in just a moment, but first knowing how to measure will be the most important.

Before taking any measurements, you’ll need to remove the print from the bed. It is really important that you wait for it to cool
before doing this. Doing it while warm could not only lead to damage on the print from the removal process, but also if the print
is still a little flexible it will cool with a different geometry to how it printed, impacting the validity of the results.

CaliLantern is designed with the use of callipers in mind, including digital, dial gauge and vernier types. You’ll need to be familiar
with two of the three ways of using these tools for taking internal and external dimensions, and then how to read the dimension.

Luckily, using callipers is pretty easy. Before taking any measurements ensure the jaws are clean, set them to zero, and ensure the
measurement reads zero exactly. Then, for taking external dimensions, you use the large jaws. Open the jaws beyond the size you
want to measure, slide them in toward the final size, and then press the roller wheel against the slide and gently roll it inwards to
the final dimension. Stop when the jaws touch the object. This is one of the places high quality callipers help as their motion is
very smooth and uniform making it easier to detect contact. If you apply additional pressure you will crush the object a little and
change the dimension so try to avoid doing this.

For measuring internal dimensions, use the small jaws on the top side of the callipers. Extend near to the desired dimension, and
again use the roller wheel to gently slide the jaws into place, stopping when they contact the object.

Reading digital callipers is easy as it’s just the number that is shown on the display. Dial gauge callipers take a little more effort.
The slide will show the closest integer millimetre and the dial shows 100 increments with the needle showing the current
position. So, 99 millimetres on the slider and the dial showing 76 is a reading of 99.76mm.

Vernier callipers are the most confusing to read, but once you understand how it works, it its quite easy to use. It’s very wordy to
explain so instead I’ll point you to this great youtube video by WeldNotes.

Page | 13 13
Where to take measurements
There are quite a few locations to take measurements on this calibration design, 14 positions in total, and each should be
measured three times. It sounds like a lot, but it is worth taking time over to get it right. All dimensions are 50mm or 100mm. If
what you measure is not close to this, within 2mm, then you are probably measuring in the wrong place.

Figure 2: Label numbers for all the measurement locations.

As already mentioned, when taking measurements, always do so at the same location three times. This is important because
accuracy is the name of the game. Taking three measurements and calculating an average will results in a more accurate reading of
the true value.

The calculator has a table where you can enter three readings (1 – 3) for each of the label numbers (1-14). The ‘Type’ lets you
know if you need to be measuring an inner or outer dimension. The average will be calculated for you.

The status column will provide an indicator of whether you have performed a good reading or not. It will warn you if the
measured value is too far from the expected value, or if there is too much variation between the readings. Both of these indicate
that there may be an issue with how you have taken measurements. The status does not tell you anything about the quality of the
print you have completed, it’s accuracy, or anything about the skew, it is purely an indicator that you measured it correctly.

Page | 14 14
Page | 15 15
Results
While the measurements are just numbers, results are distilled into meaningful information about your printer. However, if you
don’t understand what they mean, then they may misguide your corrections. In this section we’ll run through reading the results
and adjustments will be made in the next section.

Before talking about that though I want to reiterate what I said at the start. We are dealing with the real world here, the real
world is messy and imprecise, with nearly unlimited variables and potential for error. Do not expect perfection, you won’t get it.
Demand improvement instead.

Understanding the results


The results are broken down into four sections, size, skew, extrusion, and score.

Size
Size or scale results indicates the error in the overall size of your print compared to the intended dimension. A negative error
indicates that your printer is producing prints that are smaller than they should be while a positive error indicates the opposite.
For example, if the X error is -0.16% then your print is, on average, 0.16% smaller than it should be. For a 100mm print, you
would be getting around 99.84mm.

As another example, if the Y error was 0.12% then your print is, on average, 0.12% larger than it should be. For a 100mm print,
you would be getting around 100.12mm.

In many cases you may find that the Y and X values are different. There are many factors that could cause this and it isn’t
necessarily a big problem. If you have printer where there are independent stepper motors for the different axis then check if the
steps/mm are correct for both. If you have a printer that uses co-dependent stepper motors such as CoreXY then ensure
steps/mm or rotation distance are the same. The other most likely cause is a slight difference in belt tension between the two
axes. Tightening the belt will make the print slightly larger, while loosing will make the print slightly smaller.

Skew
Skew results indicate the difference between perpendicular and the actual angle between two intersecting axis. In simple terms it’s
the angle difference between a square and a parallelogram.

For example, the difference between a perfect 3D printer, and one with skew on the XY plane would look like this:

Page | 16 16
Figure 3: Demonstration of Skew (angle exaggerated)

You can see in Figure 3 the skew turns the square (grey dotted line) into a tilted parallelogram where the skew angle, theta 𝜃, is
the sum of the two smaller angles theta one 𝜃1 , and theta two 𝜃2 . If you simplify it, it looks like this:

Page | 17 17
Figure 4: Demonstration of skew angle (exaggerated and simplified)

This is just a representation using two axes, when you also include Z, you get three skew angles, one for each plane.

As you can see from this example, skew is not a property of a single axis, X, but instead a relationship between two axis like X
and Y, essentially a plane. 3D printers have three dimensions, X Y and Z and thus have three planes, XY, ZX, and ZY, where each
plane is made up of two of these axis including their intersection point.

The XY skew angle shown in the results matches the angle shown in Figure 4. For ZX and ZY the angle is in the same place and
the Z axis replaces where Y is in this image. A positive angle will be skewed like in the image, a negative angle will skew the other
side of the dotted line.

Page | 18 18
Figure 5: Positive skew angles for ZY and ZX planes (exaggerated and simplified)

Extrusion
Much like size or scale, extrusion quantity will affect the size of your print. It should be quite easy to visualise how extruding more
plastic than intended will cause the line width and therefore object size to change. The key difference between size and extrusion
is that one scales with distance. For example, for distance, if we double the distance from 50mm to 100mm we will also double
the error. An error of 0.1mm at 50mm distance, becomes 0.2mm at 100mm distance.

However, with extrusion, it is independent of distance, so if we have 0.1mm error at 50mm we will also get 0.1mm of error at
100mm because the amount of plastic we are extruding is the same in both positions.

We use this information to, as much as possible, understand how much any print errors are affected by extrusion, and how much
is related to its size.

The data is represented as a percentage of inner and outer. If you imagine measuring to two sides of the same line. Inner is the
near side, and outer is the far side. If inner is too small, and outer is too large, this suggests that the line is too wide (over
extrusion). If inner is too large, and outer is too small, it suggests the line is too narrow (under extrusion). If inner and outer are
both too small, it suggests the line is in the wrong position, likewise if inner and outer are both too large.

Page | 19 19
The reality is that if your print is smaller than it should be, the space for the filament is reduced and thus the walls get wider so
there will be a combination of scale errors and extrusion errors; the goal is to minimise these.

The inner and outer values shouldn’t just be placed into the slicer as an instant fix, in fact they can’t be. Instead consider them an
indicator that helps you decide.

Score
The calibration score is a generalised summary of the printer skew and size calibration. It is given as an integer number between 0
and 1000. 1000 represents a perfect score with all axis perfectly perpendicular and all sizes perfectly accurate. For obvious
reasons 1000 is an impossible score to reach. A score of 0 is where all axis are greater and 0.25 degrees off perpendicular, and all
motion has an error greater than 0.6%. Everything else, falls in between these two bounds.

Page | 20 20
Adjustment
This section on adjustment is just about taking the numbers you see in the spreadsheet and implementing the changes to your
printer, firmware, or slicer. If you want to understand the results a bit better, which I recommend, read the previous section on
results.

In the following instructions there multiple ways to do the same thing. This is to ensure that as many people as possible can
benefit from its use in many different circumstances. I’ll do my best in these instructions to make it clear what changes to make
and when it is an alternative method. Duplicating corrections is quite clear to spot in the validation step because the errors will be
the same, but with the sign flipped. So for example 0.1° skew will go to -0.1° skew if you implement skew correction in two
different ways at the same time.

All the commands you need for implementing adjustment are included in the calculator with the results built into the command so
you don’t have to work anything out.

One thing that may catch you out when implementing adjustments is the decimal separator. If you use a decimal separator other
than “.” Then this will cause issues when copy/pasting the commands. The best way to get around this is to temporarily change
your language settings on excel or libre office to use “.” As the separator. To change this in excel use the instructions here.

Skew
Skew correction is not currently something that exists in slicers, so cannot easily be done for different materials however with
the use of custom macros it could likely be done in both Klipper and RRF but that’s not something I’m going to cover here.

Klipper
For Klipper, there is only one method for skew correction. This will all be done via the web interface, typically Fluidd or Mainsail.
I’ll provide instructions specific to the use of this calculator but more general skew information for Klipper can be found here.

Firstly, add the skew correction section to your printer.cfg file. If you have already done skew calibration then you can skip this
first bit, but if you have no setup skew previously you will need to add it, like this:

Page | 21 21
(in Fluidd when you add a section it automatically creates a documentation link)

Then, click save and restart. Upon rebooting the skew correction module will be enabled.

Go to the console and send the SET_SKEW command with your customised skew data like this:

Once your command it sent skew is enabled but has not been saved

Save the profile by sending the following command (you can change the name after ‘SAVE=’ to anything you like):

Page | 22 22
The profile will be saved with that name. Keep those changes by sending the SAVE_CONFIG command which can be done by
clicking the command in the console, then click send. The printer will restart.

Even though the skew profile is now saved, it will not be used for printing unless it is loaded up.

You’ll need to modify your start G-code with “SKEW_PROFILE LOAD=my_skew_profile (be sure to use the same name that you
used to save your profile):

This is only a partial view of the start macro for this printer. The start macro section is typically [gcode_macro PRINT_START]. It
is important that the skew profile is the last thing to be loaded and depending on your machine you may want to move the nozzle
to the centre of the bed before loading the skew profile to prevent any motion errors.

You also need to clear the skew profile at the end of the print so add “SET_SKEW CLEAR=1” to the end of your end gcode
macro typically named [gcode_macro PRINT_END]

Page | 23 23
Once both of these changes are made to your macros, save and restart. Skew is now fully enabled for your Klipper 3D printer.

Marlin
Unfortunately, skew adjustment for Marlin Firmware is a little more difficult than Klipper and RRF as the firmware must be
recompiled. I’m not going to cover that here but if you need help you can check these two links for help installing or help
configuring Marlin . You’ll probably want to start with the modified firmware for your printer provided by the manufacturer.

There are three methods in total for Marlin skew correction, pick one of them.

Firmware Method 1
This is the first, and preferred, method for Marlin Skew correction. In this method all the skew correction calculations are already
done, and we just tell marlin what the skew factor is. Skew factors are very small numbers so all the decimal places are needed,
don’t cut them down.

Before modification the firmware will look something like this:

Page | 24 24
Firstly, remove the double slash in front of ‘#define SKEW_CORRECTION’, this will enable skew correction for the XY plane.

In the middle of this section, you’ll see “#define XY_SKEW_FACTOR 0.0”. Copy and paste the XY skew information from the
calculator in here. If there are two slashes in-front of this number, be sure to remove them.

Next, remove the double slash in front of “#define SKEW_CORRECTION_FOR_Z”. This will enable skew correction for the ZX
and ZY planes. As with the XY skew factor, copy and paste the skew factors for XZ and YZ into the firmware. For your
information ZX and XZ are the same thing, its just a name for the plane using Z axis and X axis. Likewise, for ZY and YZ.

When using copy/paste be sure that the indentation remains the same. This is important to prevent errors in compiling the
firmware.

When you’re done, it should look something like this:

Page | 25 25
Firmware Method 2
The second method for firmware is to provide Marlin with the measured data. This method is less optimal in my opinion because
it relies on the skew correction calculations built into marlin which assume X and Y motion are both perfectly identical in their
motion, which is likely not true.

Before modification the firmware will look something like this:

Page | 26 26
Firstly, remove the double slash in front of ‘#define SKEW_CORRECTION’, this will enable skew correction for the XY plane.

Next, copy the three lines from the calculator over the three lines where it says “#define XY_DIAG…” and ‘#define XY_Side…’
and be sure to keep the indentation the same (doing this one line at a time can help). These values will be about half the ones
shown. This is fine and has no effect on the accuracy of the skew. You may need to add a double slash in front of the XY skew
factor to prevent it overriding the values provided.

Next, remove the double slash in front of “#define SKEW_CORRECTION_FOR_Z”, this will enable skew correction for the ZX
and ZY planes. As with the XY plane, copy and paste the five values that define skew correction for the XY and ZY plane. Again,
keep the indentation the same. You may need to add double slash to each of the skew factor lines to prevent override.

Once you are done, this section of the firmware should look something like this. Continue with configuring or flashing marlin
firmware as normal.

Page | 27 27
G-Code Method
The final method for Marlin is mostly a G-code method, but it does somewhat rely on firmware begin configured in a specific way
in order to work. So if you made your own firmware already and had the foresight to enable “#define
SKEW_CORRECTION_GCODE” and EEPROM then you’re in luck today. If not, then this method is not significantly better than
those used above. However it will still be advantageous to enable this if you wish to re-adjust skew in the future.

“#define SKEW_CORRECTION_GCODE” is a firmware configuration option that allows you to change the printers skew
properties via an M852 G-code command. If you send an M852 command and it doesn’t work, its probably because this setting is
not enable in the firmware.

Page | 28 28
EEPROM is Electrically Erasable Programmable Read-Only Memory that persists when the power is off essentially a small storage
drive on the printer controller. If you want to enable it I recommend following this Marlin guide for EEPROM.

If this features is NOT enabled, you will need to enable it first.

Before modification the firmware will look something like this:

Firstly, remove the double slash in front of ‘#define SKEW_CORRECTION’, this will enable skew correction for the XY plane.
Next, remove the double slash in front of “#define SKEW_CORRECTION_FOR_Z”, this will enable skew correction for the ZX
and ZY planes. And lastly, remove the double slash in front of “#define SKEW_CORRECTION_GCODE” to allow for modifying
skew using g-code. Once these are all removed, you will need to compile and flash the firmware as normal.

If this feature is enabled, connect to your printer via any method that allows sending of G-code commands such as via
Pronterface and USB, or web interface using Octoprint, and copy-paste the command from the calculator such as:

Page | 29 29
M852 I-0.00022851 J-0.00365202 K0.00015037

Then send M500 which will save this skew data to EEPROM and load it each time the printer starts.

RepRap Firmware (Duet 3D)


For RRF, there is only one method for skew correction. This will all be done via the web interface known as duet web control
(DWC). I’ll provide instructions specific to the use of this calculator but more general skew information for RRF can be found
here.

Start by accessing your printers web interface (normally using IP address in a web browser) and open the config.g file which
contains your printers configuration information.

Copy the M556 command from the calculator and paste it somewhere towards the bottom of the file. It needs to be after all the
axis and motion are setup but the position in the file doesn’t matter too much.

Save and restart to… save… and restart.

Size
As I mentioned previously, it’s important that your printer prints reasonably well before using this fine tuning calibration method
so the steps/mm (a.k.a rotation distance in Klipper) should already be correct according to the mechanical properties of the
printer like gear ratio, teeth numbers, belt pitch etc. Therefore, this size step is designed to refine the size properties of the print
based on the contraction of the filament as it cools. Different filaments behave differently with temperature so I would
recommend repeating for each material type you use. I wouldn’t bother with doing it for different colours or manufacturers
though.

Super Slicer
While Super Slicer has the best implementation for this setting currently, it still only works for XY. This is typically ok as layer
thickness typically compensates for Z material shrinkage but still not perfect. The ‘Shrinkage’ setting in ‘filament properties’ area
of the ‘Filament settings’ tab is the one you want to change.

First you need to put the current settings into the calculator, it will then provide a new value to put back into the slicer. This the
average based on X and Y.

Page | 30 30
If you want to also compensate for Z shrinkage then you’ll need to scale the Z axis according to the instructions below.

Cura
Cura also has an in-built method for material shrinkage, but these are hidden by default and a plugin is required to get the most
out of it.

To enable material shrinkage compensation in Cura you’ll need version 5 of Cura, the latest as of writing is 5.2.1. From the top
menu bar got to Preferences > Configure Cura. In the Settings tab on the left, search for ‘shrinkage’ and tick all three boxes.
Close the window to accept the new visibility of these settings.

Page | 31 31
Now when you modify your slicing settings you can fine shrinkage compensation under the material settings or by searching for
‘shrink’.

The plugin which is recommended is called ‘material settings’. This is a plugin by fieldofview that allows changing of visibility of
print settings on the materials pane. To get the plugin, open Cura and click Marketplace in the top right corner. Search for
“material settings” with the quotation marks and it should be the only result, click install, and then restart Cura once it has
installed.

To use the plugin, go to the material settings pane, select any material, and then the ‘print settings’ tab. At the bottom right of
this tab is the new ‘select settings’ button. Click this and search for “shrink” to find the shrinkage settings again, tick all three to
make them visible you can now adjust the material shrinkage for each material. If you choose to use this plugin you may actually
want to hide the properties on the main print settings page so that they are only configured by the selected material.

Part Scaling
Since PrusaSlicer unfortunately doesn’t have a setting for material shrinkage then this needs to be done via scaling the part each
time you print. This is different for each type of material.

To do this, first fill in the scale of the part you are going to print. Typically, this will be 100% for the original size (2x is 200% etc.).
Then use the new percentage to scale the part in X and Y.

Remember that most slicers lock the size of X, Y and Z to scale the part uniformly, but you will need to unlock this to allow for
slight changes for each axis. Typically adjusting X and Y to be the same will be fine.

Page | 32 32
If someone says, “this part is designed for ABS so do this or that”, it basically means that the tolerances are appropriate for ABS.
You still need to adjust for material shrinkage for the best outcome. Nobody designs parts with 0.2% adjustments to every
dimension because it would just be a nightmare to work with.

You will probably only need Z scaling if you are post processing your print in a way that significantly changes it geometry such as
tempering. A separate value is provided in the calculator for Z scaling. Be aware when doing Z scaling that a rough top surface or
poor first layer can greatly impact the result and may result in unexpected behaviour.

Steps/mm and Rotation Distance


These two properties are essentially the same thing but given different names. They essentially determine the ratio between
motor rotation and axis motion. This should be set based on the mechanical properties of the printer rather than precision tuned
as it can affect things undesirably. That being said, it can be an option for compensating for size issues but I do not recommend
this method. Note that this is different to Steps per Rotation which is a motor property in Klipper which must be 200 or 400
depending on the step angle.

If you have tuned your prints size using material expansion or part scaling, you do not need to use this method, it is an alt ernative
which I don’t really recommend. The only time I would consider this potentially useful is if you always print with the same
material and similar settings on the printer.

Page | 33 33
To adjust, firstly you must take the data from you print and place those into the ‘current’ steps /mm or Rotation distance on the
calculator. Then take the new value provided and paste that into your firmware. For marlin, this may require recompiling if you
modify the firmware off the printer.

Extrusion
The last parameter for adjustment using this method is extrusion. Because internal and external dimensions are measured, we can
use this to determine effective wall thickness variation. However, because of reality and the large number of variables that affect
this result it is more of a general guidance and indicator than it is a precise measure.

Page | 34 34
Validation
The idea of a validation print is to check that the changes you made actually made the difference you were hoping for. As I’ve
already mentioned, we’re dealing with the real world here so there will always be some variation.

All you need to do is make sure you’ve implemented the changes you’re after, than then just run a new print. If you only changed
firmware, use the same g-code, but if you changed slicer settings then be sure to slicer a new file too.

Common issues found during validation is that you implemented two methods for skew and now it skews the same amount in the
opposite direction, or that you created skew profiles, but they were not loaded during printing.

Share results!
Once you’ve done you’re CaliLantern prints and calibration, be sure to share you’re success in the discord, twitter or anywhere
else you fancy! Don’t forget to leave a review too.

If you’re not sure what to do with your completed prints, why not use some tissue paper and an LED lamp to turn them into
actual lanterns?

Page | 35 35
Change Log
• Moved to “change notes.txt”

Page | 36 36

You might also like