Teaching Tech 3D Printer Calibration

De Asso Val Libre
Révision de 27 mars 2022 à 18:37 par Admin (discussion | contributions) (Post processing scripts in Simplify3D)

(diff) ← Version précédente | Voir la version actuelle (diff) | Version suivante → (diff)
Aller à : navigation, rechercher
Page fournie par Pierre Falek
 A traduire


This page serves as a companion for this video:

  1. 3D printer calibration revolutionised - Step by step to better print quality

It has received a major update to bring it up to V2 which is explained in this video:

  1. 3D printer calibration site V2 - Still free and better than ever!

It aims to make calibrating your 3D printer as easy as possible. If you find it helps you and you would like to say thank you, here is a donation link: PayPal.me

Special thanks to my Patrons for suggesting this video, helping define the contents and testing/proofing.

Watch the videos and then work through each tab. I have created a custom gcode generator to assist in making testing towers. This used to be a laborious process and beyond the skills of many users. Other times pre-sliced gcode was used from the internet, but it is impossible to have gcode available for every printer configuration. Until now!

 Warning - Read carefully!
 Every attempt has been made to ensure this is safe but ultimately there always is risk in running pre-sliced gcode from the internet. Preview the gcode   in your slicer or Zupfe GCode Viewer and print at your own risk.
 Only print this gcode when you are present, alert and capable of stopping the printer in case of emergency.
 Validation has been built into the forms to only allow sensible min and max values, however this is not foolproof.

How this site works

 The gcode generated by this page is originally from Simplify3D. This website then uses Javascript to modify the contents based on user inputs. This site is not a web based slicer, therefore it is limited in some ways.

The aim for the site is to provide compatibility with the majority of 3D printers. It aims to be beginner friendly and as such where possible the interface is kept as minimal as possible. Because of this, some requests for extra functionality will not be accepted. Something that makes the experience better for 1% of users but confuses 40% of others is not worth including.

Print Settings from the calibration S3D slicer profile

A 'calibration' slicer profile in S3D is used as the basis of the gcode on this site. S3D offers multiple processes to assist with splitting the towers into segments where the print settings can vary. Apart from this, the only special functionality used is post processing scripts to delete some lines, and to modify others with simple search and replace functions.

The general characteristics of the slicer profile are as follows:

  • Sliced for Marlin firmware, although in most cases will still be compatible with other firmwares.
  • A build volume of 120 x 120 x 250 mm (This site can accommodate anything as small as this and anything larger)
  • 1.75mm filament (However M221 S38 for 2.85 mm filament and M221 S34 for 3.0 mm filament can be applied in the custom start gcode field as compensation)
  • Absolute extrusion values (M82 as opposed to relative/M83)
  • 0.4mm nozzle and 0.2mm layer height, although now additional configurations are now possible
  • Line width on auto, typically 120% of nozzle diameter
  • Defaut feedrate of 60mm/sec. Modifiers include 60% for perimeters, 80% for solid infill, 166% travel moves, and 50% for the first layer
  • Travel moves of 20 mm/sec for Z
  • Flow rate of 0.90. Please see the note on the bottom of the flow tab for instructions on adapting this to your printer.
  • Nozzle priming has been turned off to avoid bed clips or problems with delta printers. Use the custom start gcode feature to insert the priming sequence from your slicer profile.
  • A single layer skirt (except on the acceleration test)
  • 100% part cooling fan for bridging
  • First layer height of 100%, width 120%
  • No minimum layer time, auto part cooling, etc
  • 4 top layers, 3 bottom layers, 3 perimeters
  • 20% rectilinear infill

The default start gcode is as follows (this can be completely replaced by ticking the approprpriate option on each form):

; G-Code originally generated by Simplify3D(R) Version 4.1.2
; This calibration test gcode modified by the Teaching Tech Calibration website: https://teachingtechyt.github.io/calibration.html
;M80 ; power supply on
M106 S0
G28 ; home all axes
;G29 ; probe ABL
;M420 S1 ; restore ABL mesh
G0 Z3; fix for delta printers that home at max`;

The default end gcode is as follows (this can be completely replaced by ticking the approprpriate option on each form):

G28 X0 ; home X axis
M106 S0 ; turn off cooling fan
M104 S0 ; turn off extruder
M140 S0 ; turn off bed
M84 ; disable motors

The information above is a summary, but if you wish to see the exact settings, the Simplify3D fff profile is available for download here.


Please note that non Simplify users can simply open this file in a text editor and everything will be listed.

You may notice settings related to temperatures, retraction, Z hop, part cooling, etc have set values, but these are altered by post processing scripts and this site to ultimately be set using the user's inputs. Several parameters work like this, please don't be fooled by what is in the slicing profile. Opening the final gcode file in a text editor and searching for 'custom' will show if the user's inputs have been successfully adopted.

Post processing scripts in Simplify3D

Unfortunately, there is no official reference for this provided by S3D. Instead, I have relied on this forum post.

The scripts in my profile perform the following tasks:

  • Strip out all comments apart from new processes and layers.
  • Strip out all start and end gcode. This gcode is instead provided by the site.
  • Find specific lines relating to retraction and zhop, replacing them with comments this site expects to find and modify further.
               {REPLACE "; process" ";process"}
               {REPLACE "; layer" ";layer"}
               {STRIP "; "}
               {STRIP "M82"}
               {STRIP "G90"}
               {STRIP "M106 S0"}
               {STRIP "M104"}
               {STRIP "M109"}
               {STRIP "M140"}
               {STRIP "M190"}
               {STRIP ";layer end"}
               {REPLACE "G1 E-5.0000 F2400\n" ";retract1\n"}
               {REPLACE "G1 E0.0000 F2400\n" ";unretract1\n"}
               {REPLACE "G1 E-5.5000 F2460\n" ";retract2\n"}
               {REPLACE "G1 E0.0000 F2460\n" ";unretract2\n"}
               {REPLACE "G1 E-6.0000 F2520\n" ";retract3\n"}
               {REPLACE "G1 E0.0000 F2520\n" ";unretract3\n"}
               {REPLACE "G1 E-6.5000 F2580\n" ";retract4\n"}
               {REPLACE "G1 E0.0000 F2580\n" ";unretract4\n"}
               {REPLACE "G1 E-7.0000 F2640\n" ";retract5\n"}
               {REPLACE "G1 E0.0000 F2640\n" ";unretract5\n"}
               {REPLACE "G1 E-7.5000 F2700\n" ";retract6\n"}
               {REPLACE "G1 E0.0000 F2700\n" ";unretract6\n"}

Changes made per test to the base slicing profile

The information below is mainly for my reference. However, if you wish to duplicate the tests yourself out of interest or perhaps to develop a new test for the site, then the steps must be followed exactly, including replicating the process names.

First layer test: No changes, although it should be noted that a single square is included which is then duplicated and positioned by this site. Non uniform scaling of the source STL needs to occur to suit certain nozzle/layer combinations. The square should be 25 x 25 mm with it's height scaled to match the target layer height.

Baseline test: No changes

Retraction test:

   Z seam alignment set to 50, 50 mm
   'Process-1' from 0mm
   'Process-2' from 1mm - 0% infill
   'Process-3' from 5mm - 5.5 mm retraction at 41 mm/sec - 0% infill
   'Process-4' from 10mm - 6.0 mm retraction at 42 mm/sec - 0% infill
   'Process-5' from 15mm - 6.5 mm retraction at 43 mm/sec - 0% infill
   'Process-6' from 20mm - 7.0 mm retraction at 44 mm/sec - 0% infill
   'Process-7' from 25mm - 7.5 mm retraction at 45 mm/sec - 0% infill

Temperature test:

   'Process-1' from 0mm
   'Process-2' from 9mm
   'Process-3' from 17mm
   'Process-4' from 25mm
   'Process-5' from 33mm

Acceleration test:

   5 perimeter wide brim instead of a skirt
   0% infill
   0 top and bottom layers
   2 perimeters
   Z seam alignment set to 0, 100 mm
   'Process-1' from 0mm
   'Process-2' from 5mm
   'Process-3' from 10mm
   'Process-4' from 15mm
   'Process-5' from 20mm

Speed tower test

   Single outline corkscrew printing mode
   0 top layers
   1 bottom layer
   100% outline underspeed
   'Process-1' from 0mm
   'Process-2' from 10mm
   'Process-3' from 20mm
   'Process-4' from 30mm
   'Process-5' from 40mm