T3P3 Kossel Mini Kit Release 3

Assembly Instructions

Chapter 16 - Commissioning, Calibration and Testing

Creative Commons License

This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License.

Think3DPrint3D Ltd


Revised 21 March 2016

  < Back                                                                          > Forward

1601 Overview - CAD/CAM Toolchain and Duet Electronic Controller

The installation of software and printer configuration and control will be covered in detail later on in this chapter. This section provides a general introduction.

The sequence of processes involved in producing a physical object by Computer Aided Design (CAD) and Manufacturing (CAM) is known as a toolchain. The picture below from the RepRap wiki illustrates this sequence. Versions of all the computer programs needed for the toolchain are available for download as Free and Open-Source Software, in keeping with the philosophy of the RepRap Project.

The first 2 steps above, CAD design and production of 3D .stl models are well beyond the scope of these instructions, but a vast range of prepared designs for printable objects is available on sites such as Thingiverse and Youimagine.

The third step, turning a design into printable Gcodes using utilities such as Slic3r and Cura is also outside our scope, but is well documented on the relevant websites. We provide copies of Slic3r and Cura and setup files as a starting point when printing with the Kossel Mini.

The last 2 items, printer communication and controller firmware are integrated in the Duet V0.8.5 32-bit controller and firmware supplied with your Kossel Mini Release 3. The Duet and its firmware were originally developed by Think3DPrint3D Ltd and RepRapPro Ltd. The Duet board runs RepRap Firmware originally written by Dr Adrian Bowyer of RepRapPro. This firmware has been modified and extended for use with delta printers like the Mini Kossel by David Crocker (DC42 on the RepRap forums). Your Duet is supplied with a current  version of DC42 firmware loaded, together with the necessary configuration files on micro-SD card. For more information on DC42 firmware features see the Github repository and RepRap wiki. Details of how to upload an updated release of the firmware are given in Appendix C and also on the RepRap wiki. Appendix D covers the configuration files required in some detail.

The Duet has an ethernet port and runs its own web-server, Duet Web Control (DWC), by ChrisHamm, provided on the SD card. It can therefore be controlled from a wired or wireless PC on a network, as well as directly over USB by conventional printer communication programs like Pronterface and Repetier. The web interface is the recommended control method as it gives access to the advanced features and settings of RepRap Firmware which are not available using conventional printer communication programs. We supply a copy of Pronterface as well for users who are not able to connect to their printer by network.

Some printer settings can only be determined by calibration of an individual printer, and this chapter will guide you through the calibration process. Calibration changes can be made by editing the configuration files in a text editor and then copying them to the SD card or uploading them to it over the web interface. Recent versions of DuetWebControl (1.08 and above) allow direct editing of the main configuration file on the Duet’s SD card over the web interface.

1602 Software and files supplied

The micro SD card supplied with the kit comes preloaded with RepRap Firmware configuration files as well as some free software to operate the machine in Windows. OS X and Linux equivalents are available for download. Please copy all the files from the SD card to somewhere safe on your computer - a USB micro-SD card reader is included in the kit in case you need one. You should copy the files even if you are using OS X or Linux as you will still need parts of the provided software.

Once you have copied all the files to a PC and set up the configuration files on the card, you must fit the card to the uSD card slot on the Duet - it cannot boot up correctly without it. For the same reason you should never remove the card from a running Duet.

The programs/files supplied are:-

Reprap Firmware configuration and operating folders: gcodes, macros, sys and www

Printrun/Pronterface: Printrun-Win-Slic3r-03Feb2015.zip

Cura: Cura_15.04.4.zip and  configuration files in Cura-config.zip

Slic3r: slic3r-mswin-x64-1-2-9a-stable.zip, slic3r-mswin-x86-1-2-9a-stable.zip and three Slic3r configuration files Kossel_R3_draft.ini, Kossel_R3_medium.ini, and Kossel_R3_fine.ini

Arduino: arduino-1.6.1-windows.zip

RepRap Firmware: RepRapFirmware-DC42-MiniKossel.zip

Test_objects: Various .stl files for calibration and testing

1603 First-time connection to the printer

1603.1 Introduction

RepRap Firmware is configured at run-time by means of files in the /sys folder of the SD card. This means that you must have an SD card in the on-board socket to use RepRap Firmware. You will not need to make any changes directly to the RepRap Firmware, only to the configuration files.


  1. These instructions require at least RepRapFirmware-1.10+4-dc42.bin to be loaded on the Duet and Duet Web Control Version 1.11 (part of the same firmware release) to be installed on the µSD card.
  2. If you are running an earlier version of the firmware you MUST upgrade your firmware before Section 1604.2 below.
  3. You should continue with these instructions until you reach the end of Section 1604.1 below.
  4. At that point you will be able to identify your firmware and DWC versions and upgrade if necessary.
  5. To access the Duet Web Control interface you will need a supported web browser. The web interface has been tested as working on Firefox, Chrome and Safari on Windows, Ubuntu, Mac OS X, Android and iOS.

1603.2 Back up files

The first step is to prepare the micro-SD card and configure the network information on it. Plug the µSD card into the PC you will be using for calibration, which should be close enough to the printer to connect to it by the supplied USB and network cables. A µSD to USB adapter is supplied in case your PC doesn’t have a card reader. Now open the µSD card in your File Manager of choice. You should see the following files and folders:-


If you haven’t already done so, copy everything to an archive folder on your hard disk. We suggest you then delete the .zip files from µSD card. They are not needed on the µSD card, but will be required on your PC for preparing print files, and when uploading new firmware releases (Appendix C). Leave the µSD card in your PC and go on to the next step.

1603.3 Configuration files to be edited

You will need to edit 3 files, bed.g, config.g and homedelta.g in the sys folder on the µSD card:-


You will mostly be working with config.g which contains all the printer-specific configuration and calibration settings. The config.g and other .g files are text files of g-code commands which pass instructions to the firmware . The RepRap G-code reference page has a list of g-codes, summarizing their meaning and usage.  Most of the setting changes to suit the Mini Kossel have already been made in config.g, but you need to provide details of the network you will be connecting to, then connect and calibrate.

You can make changes to config.g and other gcode files by opening and editing them in any text editor, e.g. Windows NotePad, Mac Text Edit, and Kate/Gedit on (K)ubuntu. The full text of the config.g file supplied with the Mini Kossel kit is given in Appendix D. The instructions following assume you will be commissioning your printer using the web interface, which is the preferred option.

Before editing config.g you need to establish the network settings required.

1603.4 Duet Network Settings

For the purposes of this Chapter we will assume that you are using a PC with a wireless connection to your network/Internet and an unused Ethernet socket (typically on a laptop). If you don’t have a PC with an unused ethernet port then you can use one of the other options for connecting the printer to a network as summarised in Appendix E. If you don’t have a suitable PC with a spare ethernet port and also don’t have or are not allowed to use a network, then you will have to use Pronterface over USB to connect to your printer.

Assuming you are able to use the ethernet socket on your PC, you will need the supplied ethernet patch cable to connect it directly to the ethernet port on the Duet. You will then need to set up a separate network between your PC and the Duet. This is done by configuring your PC’s ethernet port so it uses different settings from the rest of the network, and changing the Duet’s config.g to set its IP address and match the netmask to your PC.

Your PC will typically be connected to your wifi network and allocated an IP address by DHCP. You will need to obtain the IP address, netmask and gateway address it uses, and choose different ones for your previously unused ethernet connection as below. If you don’t know how to do this see Appendix E.

Typical wifi network addresses could be:-

ip address:



You should now set up a separate network (subnet) on your ethernet port (not the wifi port), by editing the TCP/IP settings to:

ip address:


Changing the third number in the ip address (from 1 to 2) creates a separate new network so that data sent to 192.168.2.[number between 0 and 255] will go to the ethernet port, rather than be routed to wifi.

Then set the Duet to be on the same subnet, by changing config.g.  Locate config.g on the µSD card plugged into your PC, open it in your text editor of choice, and locate the M552 and M553 lines near the beginning of the Prologue and Communications section. Change them to suit your network - in this example we will use the following:-

M552 P192.168.2.14             ; Set the IP address

M553 P255.255.255.0           ; Set netmask (Subnet Mask)

Save the modified file to the µSD card. We suggest you also save it to your hard disk as a record of the changes you have made. Remove the µSD card from your PC and fit it to the Duet.

Connect the USB cable from your PC to the USB port on the Duet to power it up on 5V only. Do not connect the 12V power brick yet. Connect the ethernet cable between the Duet and your PC’s ethernet port, and open a browser window. Wait a few seconds for the ethernet port lights to come on showing that a network connection has been established, and then connect to the IP address you chose for your Duet - for example:

and you should see the Machine Control page of the Duet Web Control (DWC) interface open as below. Note that by default when not connected to a Duet the DWC shows a 2-extruder machine (Heater 1 and Heater 2 in the screenshot below).


 Now click “Connect” in the top left-hand corner of the page and you should get the following screen, with only one heater shown:


If the DWC screen doesn’t change from 2 heaters to 1 when connected, then disconnect and connect again until it does.

Once you have successfully connected to the Duet you can go on to commission and calibrate your printer.

1604 Commissioning Tests

1604.1 Check firmware and DWC versions

Do not apply 12V power to your printer yet. The Duet should be powered by USB only until you reach Section 1604.5.

First check and confirm that you have at least RepRapFirmware-1.10+4-dc42.bin and DWC version 1.11. These were the latest versions at the time of writing (March 2016) and are needed to access all the features described in this Chapter. To check on your firmware and DWC versions click Settings in the lower left-hand corner of the screen:-


 The Settings page will open to the General tab:-


The required information is given on the left side of the General tab under Software Information:-


IMPORTANT:  If you are running an earlier version of the firmware you MUST upgrade to RepRapFirmware-1.10+4-dc42.bin and DWC version 1.11 OR HIGHER WHEN AVAILABLE  before proceeding further. New versions of the firmware are released regularly so you should check for later releases at https://github.com/dc42/RepRapFirmware/tree/dev/Release

If you want to upload a newer version of the firmware see Appendix C. For a fuller explanation of the entries in the configuration files see Appendix D. If you just want to start calibrating a newly built printer over the web interface then go on.  You will need a supported web browser - the web interface has been tested as working on Firefox, Chrome and Safari on Windows, Ubuntu, Mac OS X, Android and iOS.

1604.2 Adjust Settings

While viewing the Settings page it is worth making some minor changes to the way the DWC is set up, and noting other possible changes for future reference.

Set half Z-movements and display fan slider

The Appearance and Behaviour pane in the centre of the Settings window allows you to choose half-size Z-movements and display a fan slider control in the Machine Control window. We suggest you choose these options now.


Note the Apply Settings button at the bottom - you need to remember to click it to implement any changes made on the Settings page, so do so now.

Optional Settings Changes

You should explore the other tabs on the Settings page when convenient.

The List Items tab allows you to change the G-code shortcuts displayed in the Send G-code drop-down box and change the default temperatures for hot end, heated bed (and heated chamber if you fit one).


The Configuration File tab allows you to edit the config.g printer configuration file directly while connected to the printer. We will return to this later in this Chapter.


The Machine Properties tab shows Drive configurations and the Tools tab allows you to select, deselect, add and remove Tools. Both these topics are beyond the scope of these instructions.


1604.3 Test endstops.

Endstops allow the printer electronics to register where the carriages are. These tests will confirm that the endstops are working correctly.

First change back to the Machine Control page. Note that a message is displayed at the bottom of the Head Movement control section, advising that the axes A, B and C are not homed. These letters A, B and C refer to the carriages on the 3 delta towers, referred to as X, Y and Z in this manual, which should not be confused with the cartesian coordinate movement directions + X (left to right), + Y (front to back) and + Z (up and down).


You should NOT attempt to home the axes before confirming that the endstops are working correctly (this section) and the motors move in the correct direction (Section 1604.6).

Move the carriages to about 50mm below the endstops by hand so that the end-stops are not triggered.

Check that the endstops correctly show “not stopped” by sending the G-code “M119” from the “Send G-Code” box next to the Connect/Disconnect box in the top left-hand corner of the browser window.


The web interface should report that the endstops are not triggered:-


Now move the carriages up by hand until they are at the top of their range and have triggered the endstops. If necessary push the effector up to ensure that all 3 switches are triggered, then send M119 again.


You should get the above report that all 3 carriages are “at max stop”.


  • If the endstops do not show triggered in the correct order, double-check that the endstop cables are correctly plugged into the Duet board.
  • If an endstop does not show that it is triggered, double-check the wiring and ensure the connectors are seated correctly.

1604.4 Check and correct ambient temperature measurements (optional)

Next, check that the Bed and Heater 1 temperatures are reasonable. It is quite common for temperatures to read incorrectly when the thermistors are at room temperature. The temperatures are shown in the Heater Temperatures box near the top left-hand corner of the screen.


In this case the room temperature was about 18°C so the temperatures are rather low. To adjust them, use a thermometer to check what your room temperature is, or estimate it. Then, using the Send GCode box, send M305 P1 H0 with various numbers after the H until the reading next to Heater1 is correct. In this case sending M305 P1 H15 increased the Heater 1 ambient temperature to 18.1°C which is near enough:-


For the bed thermistor, do the same thing but use P0 in the command instead of P1. An adjustment of H50 was need to correct the bed thermistor:-


When you have identified the correct values, edit config.g directly on the µSD card in your Duet, as follows. First change to the Settings page and select the Configuration File tab. Now locate the M305 P0 and M305 P1 commands in the file:-

20-editable-HL-settings before.jpg


Change the H and/or R values to the ones you found. (If the text won’t allow you to edit it, click on another Settings page tab, then click back to the Configuration File tab and try again).


Now click on the Apply Settings button:-


An Upload Complete confirmation will flash on the screen, probably too quickly to notice it, followed by a Reboot Duet? query as below. Click on Yes.


You can now check that the ambient temperatures are reading correctly:-


1604.5 Connect power supply to printer and test heaters

Leave the USB cable connected to the Duet. Plug the Dell power brick mains lead into a mains wall outlet and plug its output into the power input plug on the printer (remember that it plugs into the the left-hand 8 ways of the 10-way socket as described in Section 1207).  Turn on the power at the wall and the printer. Nothing should show on the web interface, but the hot-end cooling fan should come on - check that it does. The electronics cooling fan under the print-bed should also come on, and you may be able to hear this, or feel a slight airflow.

Disconnect the USB cable for the Duet and the web interface should remain connected. The Duet is now running on 5V power provided from 12V by the Duet’s onboard regulator.

Heater temperatures are shown on the graph to the right of the Heater Temperature settings box. As shown below, with no active temperatures set, the graph lines are steady at room temperature.

Click on the arrow on the right-hand side of the Heater 1 Active temperature box and select a temperature from the drop-down menu. [Tip - If at any time you need to set a temperature that is not listed, you can type it in the box. You can also configure the temperatures that appear in the dropdown box on the Settings page].

Wait a few seconds and you will see the red line representing the hot-end (Heater 1) temperature begin to rise.

Click on the red Heater 1 label and the status will change from active to standby.

and the Temperature chart should show the temperature falling quite quickly (because of the hot-end cooling fan).

Now set the Bed temperature and you should see it heating up - but much more slowly.

Set the Bed to standby by clicking on Bed.

1604.6 Check motor direction and homing

1604.6a  X Y and Z motors

When the printer is powered up, the firmware will not know the positions of the carriages on the towers. As shown in the Machine Status box in the top right-hand corner of the screen, the positions are shown as n/a (not available).

The Head Movement control box in the centre of the screen also still shows a warning at the bottom that the axes are not homed.


Before testing the homing, you should test the motors individually by using the G1 (linear move) command.  In RepRapFirmware, using the S1 or S2 parameter with G1 on a delta printer causes the XYZ movement parameters to refer to the individual tower motor positions instead of the head position (and to enable endstop detection as well if the parameter is S1). We will use this feature together with relative positioning (set by G91) to move individual carriages up and down.

Move the carriages down by hand until the effector is about halfway to the bed. Send G91 to set relative positioning - all movements will now be relative to the starting position, rather than the homed position. Send G1 S2 X10 to move the X carriage up 10mm, then G1 S2 X-10 to move it down 10mm. Repeat for Y and Z carriages using Y and Z instead of the X in the G1 commands. If one or more carriages moves in the opposite direction to that expected, then its motor cable is probably reversed on the Duet - check and correct as necessary.

Now check homing: move the effector down to about halfway to the bed again. The homing speed in the homedelta.g file has been set very low to give you time to turn off the power if the carriages do not home correctly. With one hand on the power switch, click on the blue Home All button.  The carriages should all go up to the endstops and stop there, then move down a little, then back up to the endstops again, and finally drop to 5mm below the endstop trigger heights. (If they do not do this, power off and recheck endstop triggering and motor directions as described above).

The head positions in the Machine Status box should now show the correct head positions:


Once Homing is working correctly, you can edit the copy of sys/homedelta.g on your PC to increase the homing rate (this file cannot be edited directly within DWC). Open the file in a text editor:

and as instructed on the third line, change F250 in the fifth line to F2500, and save the file.

Now upload the file to the Duet’s SD card using the web interface.  Change to the settings page,

 make sure the General tab is displayed and click the Upload files button:


Navigate to the modified sys/homedelta.g on your PC and select it, and you should get an Upload Complete popup.


Click Close. You will now get the Reboot Duet query again - answer Yes.


After the Duet has rebooted it will not be homed, so click on Home All. The machine should now home much faster.

1604.6b Test Extruder Motor

Now test the extruder motor for correct rotation. You should not have loaded any filament yet - if you have, remove it. RepRap Firmware has a cold extrusion prevention function and so will not allow extrusion below 175C. You can override this by sending M302 P1 to allow cold extrusion. Then set the Feed amount to 10mm and the Feedrate to 10mm/s in the extruder control bar.

Click Extrude and the extruder big gear should rotate clockwise about ⅓ of a turn. Click retract and confirm it rotates anticlockwise.

NOTE: With filament loaded, you should never use a feed rate greater than 20mm/s with this extruder design, and then only when loading filament into the Bowden tube or withdrawing it. When actually extruding filament from the hot-end, for example when purging after changing colours,  you should only use a feedrate of 5mm/s, or preferably turn the big gear by hand after disabling the Extruder motor with the “E motors off” macro.

Troubleshooting Motors:

  • When testing homing, if nothing happens, double-check the power supply connection to the Duet. There should be 12V present on the screw terminals.
  • If some motors move in different directions (ie some up some down) check that the motor plugs are all plugged in in the same direction as shown in chapter 14.
  • If you still have a problem, email us for advice, providing as  much detail as possible on the fault symptoms and checks carried out.

1604.6c Test Print Cooling Fan

After selecting Show Fan Sliders in 1604.2 above, the Machine Status box should show an entry for Fan RPM, and a new miscellaneous box will appear the bottom of the screen with a fan slider control.

Test the print cooling fan by moving the slider all the way to the right and confirm that it is on when set to 100% and blows in the right direction, towards the hot end.

The fans provided have a limited speed variation ability but should operate down to about 70% speed. As the airflow is quite limited, for most prints you can set the slicing software to run the fan at 100% whenever print cooling is required.

1604.7 Test IR Z-probe

The differential Infra-Red level sensor board (“IR-probe” or “Z-probe”) supplied with our Mini Kossel Release 3 kit is designed and supplied by David Crocker (DC42 on the RepRap forums). He has written a detailed blog about the board to which you should refer for more detailed information and troubleshooting. The following commissioning and testing instructions are mainly from the blog.

Start with the hot end and sensor some distance above the bed. Power up the Duet: about 4 seconds after power is applied, the LED on the sensor should flash four times, indicating that the board has started in analog output mode. If it does not flash, check the power connections to the board.

Connect to the Duet from a PC using the web interface. On the Control page you can see a continuous readout of the Z probe reading.

Move a suitable target (e.g. white paper) up underneath the sensor and check that you get the following readings:

  • With the sensor a long way above any surface, the reading should be close to zero.

  • With the sensor close to a surface but slightly further away than the trigger height, the reading should be about 465.

  • With the sensor slightly closer to a surface, the reading should be about 535 and the red LED on the sensor board should illuminate.

  • If you place a surface right up against the sensor board, then the reading may drop to near zero again. This is normal.
  • If you see a reading of around 1000, this means that there is too much ambient IR for the sensor to function correctly. This normally happens only when direct bright sunlight is reflected from the bed into the sensor, or when you place a highly reflective surface below the sensor such as aluminium foil.

If you get the expected readings, then you can continue with commissioning. If not, check your wiring.

The IR probe offset will be measured during calibration and entered in config.g

1605 Calibration of Delta Geometry

1605.1 Set endstop heights approximately equal

If you did not do so in Section 1002, it would be a good idea to check now that your endstops are at approximately the same height. You can measure up to the bottom of the printed endstop mounts from the top of the motor brackets using a tape measure, or if you have digital calipers, measure down from the top of the towers.


Either way, you should be able to set them to within 1mm of each other, which is accurate enough. You can make fine adjustments to the endstop trigger heights using the endstop trigger screws fitted to the V-roller adapters if you wish, but this is not necessary when using auto-calibration as described below.

1605.2 Measure Z-probe vertical offset


There is a warning in config.g that the homed height is deliberately set too high to start with:

The reason for this is that if the actual printer Z-height is significantly greater than the config.g setting, it will not be possible to move the hot-end down far enough to touch the printbed. We therefore need to set it to go down all the way to the printbed, plus a little extra while calibrating. However, the ability to lower the hot-end until it hits the printbed, possibly at high speed, introduces the risk of printer damage. In this section you will need to move the hot-end nozzle down until it just touches the bed, carefully, so as not to cause a head crash.

The initial homed height is 250mm. The firmware then moves the head down 5mm after homing and so shows it at 245mm above the bed in the Machine Status box when homed.


Typical actual homed height as measured will be around 240 to 245mm, possibly a little more or a little less. It is therefore safe to drop the head from the homed position 200mm in 4 x 50mm steps, after which it will show as 45mm above the bed in the Machine Status box - but will actually be less. Do this now by homing the printer if necessary, then clicking 4 times on the Z-50 button in the Head Movement box while watching the Machine Status box.


You can follow this with up to 7 x 5mm steps, but be careful to check that there is clearly a gap greater than 5mm under the nozzle before the last 5mm step (if not sure use 0.5mm steps instead!). If you do 7 x 5mm steps as in this example then the Z-height shown will drop by 7 x 5 = 35mm, to 10mm as shown below.


The true height will be less, so from now on you need to keep checking visually and be careful not to hit the wrong button and crash the head into the bed.

Place a strip of standard 80 gsm printer/copier paper under the nozzle to act as a feeler gauge, and visually check the reducing gap as you lower the nozzle further. As the gap narrows, slide the paper backwards and forwards so that you can stop lowering the nozzle as soon as it just begins to snag on the paper. The objective is to sense when the nozzle is only just touching the paper very lightly. At this point you should still be able to push the paper backwards and forwards, and may be able to feel the nozzle vibrating or buzzing against the paper as you slide it.

Lower the nozzle in 0.5mm steps until you think there is less than 1mm gap left:


and then in 0.05mm steps until you feel it first touch the paper - at 3.90mm in this example, though your value will be different. The actual number is not important as auto-calibration will measure and adjust the Z-height later:-


Move it back up 0.05mm to check that it doesn’t still touch at 0.05mm higher. It didn’t in this example, so move it down again 0.05mm until it just touches again, and leave it there. Now remove the paper.

We also need to allow for the thickness of the paper. This is often assumed to be 0.1mm but the paper we use measures 0.08mm thick, so we will use this more accurate figure instead.  As the nozzle just touches the paper at 3.90mm, it will just  touch the bed 0.08mm lower.

To measure the Z-probe offset, we first set the true Z-height of the probe (0.08mm above bed level Z = 0.00) by sending G92 Z0.08 :-


The Machine Status box now changes to show the Z-height as 0.08mm:-



Move the nozzle up 5mm by clicking on the Z+5mm button in the Head movement box. Remove the paper feeler gauge.

Now measure the probe trigger height by sending G30 S-1


This moves the nozzle down slowly until the probe just triggers, and reports the trigger height above the bed in the Machine Status box.


This is the IR probe Z-offset, in this example 1.67mm. Yours will be different, but should be in the range 0.5 to 2.5mm. If you have a V1.1 IR probe with bulb-type through-hole LEDs then the trigger height can be adjusted - see Modifications at the end of David Crocker’s Mini IR probe blog. V1.2 IR probes with SMD LEDs can’t be adjusted, and will need to be replaced if the trigger height is outside the specified range.

You can test the probe triggering by raising the nozzle 0.05mm. The sensor status box will show a reading lower than the trigger threshold of 500 (usually around 465):-


Lower the nozzle by 0.05mm and the sensor status reading will change to more than 500 (usually around 535):-


Now enter the measured offset of 1.67mm in config.g by editing the configuration file on the Settings page:-


Remember to click on Apply Settings and reboot the Duet after making the change.

1605.3 Run Autocalibration

About Auto-calibration - taken from the RepRap Duet Calibration wiki:-

RepRapFirmware-dc42 supports a fast auto-calibration process. From a single set of bed probe readings, the firmware uses a mathematical model of the delta geometry to calculate the corrections needed so as to minimise the sum of the squares of the height errors at the probe points. It reports the RMS (root-mean-square) of the bed probe height error before probing, and the expected RMS error when the calibration has been done. On a typical delta printer, the auto calibration process takes about 30 seconds, this being the time taken to probe the bed.

The mathematical model of delta geometry used by RepRapFirmware assumes that the bed is flat, all diagonal rods have the same lengths, and all three towers are perpendicular to the bed. If these constraints are satisfied, then a single auto calibration cycle is sufficient. If not, you may need to run auto calibration two or three times before the corrections converge.

Auto calibration is performed by sending command G32 (which is the same command used to do auto bed compensation on a Cartesian printer). This command runs macro file sys/bed.g, so all the work is done there”.

The Duet Auto-calibration probe sequence set in the bed.g file supplied with your Mini Kossel kit has been generated by DC42’s RepRapFirmware bed.g file generator wizard. It probes 10 points and uses 6 factors to calculate the endstop height adjustments, delta radius, homed height and  X and Y tower angular adjustments. If you have upgraded your firmware from an earlier version than 1.09x then you should also run the bed.g file generator wizard to upgrade the probe points in  your bed.g file, using the settings below.

After running the wizard, block and copy the results into your bed.g file, overwriting the existing values, then upload the file using the web interface.

With an uncalibrated printer it is usually necessary to run auto-calibration several times until the results converge. The procedure is described below.

First set your hot end and heated bed to operating temperatures - hot-end 210°C and bed 65°C for PLA - and allow them to stabilise.


Switch to the  G-code Console tab where the auto-calibration results will be displayed, and send G32 from the usual G-code command box in the top left-hand corner of the page.


The printer will probe 10 points working clockwise from a starting point in front of the Z-tower, and finishing in the centre of the bed. Once the probing has finished the G-code console will report this, giving the deviation results before and after probing:-


In the above case the deviation of 0.182 before probing is large, and improves significantly to 0.052 after the calibration run.

NOTE:  To reduce the risk of head crashes when probing for the first time, the optional Dive Height parameter is used in the Z-probe section of config.g, and set to 30mm:-

M558 P1 X0 Y0 Z0 H30        ; Z probe is an IR probe and is not used for homing any axes

Probing from 30mm above the bed greatly increases the probing time. Once you have successfully probed the bed, you should edit config.g and remove the H30 parameter to revert to the default dive height and speed up the probing process.

M558 P1 X0 Y0 Z0         ; Z probe is an IR probe and is not used for homing any axes

Remember to click on Apply Settings and reboot the Duet after making the change.

Now send M665 from the G-code command box just above the G-code console log pane:


This reports the first group of results - delta radius, homed height, and X and Y tower angular adjustments - which are set by the M665 G-code in config.g. (Note that 6-factor auto-calibration does not measure or change the diagonal rod length and bed diameter which remain as set in config.g.  The Z-tower is also always set to 0.00° and the X and Y tower adjustments are measured relative to this).

Similarly send M666 to report the endstop adjustments which are set by M666 in config.g.


Repeat the G32 > M665 > M666 sequence several times and you should see the deviations reduce and the M665/M666 adjustments converge, though they will probably not end up on exactly the same values from one run to the next due to machine tolerances. The screenshot below shows a complete sequence of 5 G32 runs. Remember that the results of the first run are at the bottom and the last run results on top.


If you study these results you should be able to see the following:-

  • Before-and-after deviations improve until they are within 0.010 of each other, though they actually get slightly worse after run 3.
  • Delta radius converges to a range of 104.50 to 104.56mm
  • Homed height converges to 246.17 to 246.18mm
  • X-tower adjustment is in the range -0.88° to -0.97°
  • Y-tower adjustment is in the range 0.14° to 0.32°
  • X-endstop adjustment converges to 0.14mm, Y-endstop to -0.34mm and Z-endstop to 0.21mm.

These are “real-world” results and although they are not perfect, the variations are quite small in real terms, and the really critical results  - homed height and endstop adjustments - converge to within 10 microns at most. Also note that running the autocalibration sequence 5 times without the optional H30 dive height parameter only took 5 ½ minutes.

To complete the auto-calibration, enter the results in config.g on the Settings page, Configuration File tab. We chose to use the last set of results even though the Y-tower angular adjustment is significantly different from previous runs.



Remember to click on Apply Settings and reboot the Duet after making the change.

1606 Check and calibrate the extruder

NOTE: The pictures below show an extruder with red printed parts, but all Release 3 kits are supplied with pre-assembled extruders using black printed parts.

Cut off about 500 mm of filament from the sample provided and cut a point on the end to be inserted. Click the E Motors Off macro button on the Machine Control page of the web interface. Feed the pointed end of the filament into the opposite side of the extruder from the Bowden tube by hand, rotating the big gear slowly clockwise until the filament emerges a little way into the Bowden tube, as seen on the right side of this picture.

Now, using an accurate ruler with the end against the flat face of the extruder block, measure off about 120mm up the filament on the input side of the extruder, and make a mark on it with a fine-liner or similar pen.

The exact distance is not critical, but you should mark and measure it accurately. This mark is at 121.5mm.

If you don’t have a suitable pen, or your filament colour is too dark to show a mark, then you can use a piece of masking tape or similar instead.

The tape is also at 121.5mm along the filament from the face of the extruder block.

Set the Feed amount to 100mm and the Feedrate to 20mm/s in the Extruder Control panel. Send M302 P1 to override cold extrusion, click Extrude, wait for it to finish, and now measure the distance from the extruder block to the mark or tape as accurately as you can.

In the picture above, the distance remaining is 18mm. The distance actually extruded by a command to extrude 100mm was therefore 121.5 - 18.0 = 103.5mm, so the default extruder steps per mm of 663 in config.g needs to be reduced in the ratio 100/103.5 to make it extrude less filament.  100/103.5 x 663 = 641mm. Edit config.g and make the necessary change.

[Note: the default config.g M92 entry may have 2 values 663:663 because the second 663 after the colon allows the E-steps to be set independently on dual-extruder machines. The second number is ignored when there is only one extruder, and can be removed].

Apply the settings and reboot the Duet, send M302 P1 again and then repeat the exercise above using a new section of filament that has not previously been through the extruder. The length extruded should be within 1mm of 100 mm, giving 99% + accuracy, which is good enough. If the length extruded is not within 1% of 100mm, then repeat the above calculations and amend config.g  accordingly.

Now remove the short length of filament used for calibration and discard it. Feed in the end of the filament starter pack provided by hand until it emerges into the Bowden tube. Select Heater 1 temperature of 210C, and when it reaches this temperature, use the Extrude button to feed 100 mm of filament at a time at 20mm/s until it is close to the effector end of the Bowden tube. It should need 4 x 100mm feeds. Then feed 10 mm at a time at 5mm/s until molten filament begins to emerge from the tip of the hot-end.

You have now successfully completed the calibration process, so shut down the printer and go on to the next stage - Test printing.

  < Back                                                                          > Forward