- Common elements
- Machine Control
- Print Status
- G-Code Console
- G-Code Files
Duet Web Control is a full featured UI for the Duet family of electronics. It is adaptive and what is displayed changes depending on the configuration of the printer connected. The screenshots in the example below is for a printer with 2 extruders, each mounted on their own X axis however the descriptions are valid for any printer setup.
This manual is for DuetWebControl version 1.2.1-b2 and later.
When opened in a browser Duet Web Control starts in the machine control screen, when viewed on a large screen will look similar to this:
Machine Control Page for an Cartesian IDEX printer
- The DuetWebControl display is dynamic so tools, axis and other features will be displayed only if they are configured
- To help illustrate this dynamic display this manual uses screen shots from a single tool delta printer and a multi tool IDEX printer.
The Duet Web Control layout will adapt to smaller screen sizes as required however all the features can still be accessed through drop down menus, as shown here on an Android Phone:
Machine Control Page for an Cartesian IDEX printer on Android mobile phone
Note that Chrome and Firefox browsers fully support DuetWebControl however Edge, IE have problems so avoid those. DuetWebControl file editor works in Safari 10.0.1 and later. (Won't work in any earlier versions). These issues are due to some browsers failing to implement the HTML 5 standard.
Some elements of the DuetWebControl are common across all pages.
''The header bar and the printer status can be fixed or allowed to scroll. This is selected in settings->user interface""
The IDEX printer in this example has 3 tools defined, only defined tools are shown
Selecting Tools, Setting Temperatures
Tools can be in three states::
Clicking on the tool cycles between active and standby. The Control All menu allows for all tools to be turned off, as well as setting global active and standby temps:
Only one tool can be active at any one time (but a tool can be made up of multiple hotends, for example on an IDEX printer when printing in mirror or ditto modes see: configuring multiple independent X-carriages on a Cartesian printer). Making a tool active sets the remainder to standby (unless they are off, in which case they stay off.
Selecting a Tool
The currently selected tool is underlined and the background is light blue (in the default skin):
The heater(s) of the active tool are set to the defined active tool temperature, heaters of standby tools are set to the standby tool temperature, tools that are "off" have their heaters turned off. In the image above, tool 2 uses both heaters so they are both at active temperature. In the next image, tool 1 is selected and heater 2 is thus active, heater 1 is at standby.
Tools can be selected or deselected using the right click menu
The load filament option runs a load filament macro that is defined on the filaments page which will be covered later.
If you have a mixing setup with a lot of different tools defined for different ratios then it may be easier to view the heaters, rather than tools. Selecting the heater view shows each heater, and the associated tools:
The temperature of each heater is displayed in the temperature chart. The colours of the lines on the chart relate to the heater colours.
These images illustrate a more complex setup, just having 1 tool per heater is more common):
Additional temperature inputs from "virtual" temperature sources such as the MCU and stepper over temperature channels can be configured . Once configured they will show up as an option to display on the graph under this tab
Virtual heaters 100, 101 and 102 are preconfigured to use temperature sensor channels 1000 (MCU), 1001 (TMC2660 on Duet2) and 1002(TMC2660 on Duex) respectively.
If you send the following command:
you should get the response "Heater 101 uses TMC2660 temperature warnings sensor channel 1001". But as this virtual heater has no name, it doesn't show up in DWC. You can fix that by sending:
M305 P101 S"DuetDriversTemp"
M305 P102 S"DuexDriversTemp"
This displays the current axis positions, extruder drive positions, VIN and Z-probe reading.
When printing the heat position and extruder drive amounts can change rapidly and the refresh rate on DuetWebControl means the values are not the exact position at all times.
The Z -Probe value is either 0 or 1000 for digital probe inputs. Analog probes can be any value between 0 and 1000.
The machine control page is composed of the following elements:
Axes and extruder control
Macros and miscellaneous
Homing and Moving Axes
Before some axes can be moved they must be homed, This can be overridden in the Settings on newer DuetWebControl versions but it is best practice to ensure all axes are homed before moving them.
The Web interface is using the same G-Codes to home as if the G-Codes were entered manually in the console or over USB. See the section below about configuring system macros for links to more details on how this works.
Once the axes are homed they turn from orange to blue:
Axes can be moved using the buttons in large or small steps and the axes co-ordinates are shown in the machine status box:
Note that by default an axis will not be allowed to move outside of the printer dimensions set in the printer configuration file. The axis movement speed is set in the Settings->UserInterface->Machine Control section.
Adjusting movement amounts
The values of buttons to move each axis by a certain step size (e.g. 100,10,1,0.1) can be adjusted by right clicking on the button in question and entering a new value. Note that this value will be used for both positive and negative movement for that axis. These values are not saved unless you go to the settings page and "apply settings".
Probing the Bed
The "Auto Bed Compensation" button on a Cartesian or "Auto Delta Calibration" button runs G32. This has different functions . On a Cartesian/CoreXY/SCARA machine it is used for Bed levelling using multiple independent Z motors. On a delta Delta it is used for calibration.
Clicking on the drop down menu gives access to the mesh bed levelling commands:
Once setup correctly Mesh bed compensation probes the bed in a number of points and then uses that mesh to compensate for uneven bed surfaces.
This mesh is automatically saved onto the SD card as sys/heightmap.csv. You can view, disable and reload the saved heightmap using this menu.
Macros and Miscellaneous
To run a macro simply click on the macro name, or select it from a sub directory drop down:
Defining macros is shown in a later step in these instructions.
The Miscellaneous box is not shown by default, when options are selected within the "settings" page to display the ATX power control and Fan slider they appear here.
The print status page does not display any useful information until a print is started. Once a print is started though it shows information about the file being printed, layer times and estimates for print time remaining. It also allows for Fan, extrusion ratio and print speeds to be adjusted in real time:
Print progress bar
This bar bar shows how through the layers and filament the print has progressed.
The print control allows the print to be paused:
Pausing runs the "pause.g" system macro so the actions on pausing can be user configured (e.g retract some filament, move the head away from the print). Editing system macros is covered later in this manual
Once the print is paused it can be resumed or cancelled.
Resuming runs "resume.g", cancel "cancel.g" system macros.
The print control section has a check box to "Enable Auto-Sleep". If this is selected then the M1 G-Code is sent at the end of the print which runs the "sleep.g" macro file. This for example would allow the shutting down of the main power supply once the print had complete (assuming the printer hardware is setup to allow this).
Z Baby Stepping
This allows for the Z axis to be lowered or raised by small steps - sometimes known as "Baby Stepping". The size of each baby step can be configured in the user interface setting covered later in this manual.
This reports information from the file header that is provided by the slicer The reported information is reliant on the slicer placing the correct information at the end of the G-Code file in a format the Duet Web Control understands. Newer versions of the following slicers are reported to provide this information:
- Simplify3d (v4 and later)
- Slic3r (1.29 and later, Slic3r PE)
- Kisslicer (Pro)
- Cura (2.7 and later)
Fans configured in firmware are displayed, along with their current setting as a %. Clicking on the fan name selects and deselects the display. In the image above Fan 0 and Fan 2 are displayed, Fan 1 is not. The Tool Fan slider related to the currently active tool (as different tools may use different print cooling fans etc).
- fans need to be configured in config.g explicity show up on this list. if the default fan settings are fine for a fan the use:
M106 Pn H-1
where n is the fan number that you want to configure as a non thermostatic fan and have displayed in DuetWebControl.
- Thermostatic fans are not displayed.
Speed and Extrusion Factors
Set and override:
- The print speed factor. This scales all feed rates so should be used with caution.
- The extrusion factor, per extruder.
Print progress estimations
Duet Web Control displays three estimations of print progress based on filament usage, file progress and layer time. The Filament usage and layer time estimates rely on the G-Code file having sufficient header information provided by the slicer (see the File information section earlier in this manual). Different print jobs will have different properties so the accuracy of each estimation varies by the print job. Simulating the print can provide a more accurate estimation. See the section on simulation later in this manual.
Data and layer statistics
As the print progresses data is collected and displayed in the table. this particular print was started with the nozzle and bed warn so no warm up time was registered. a graph showing the time taken (Y axis) for each layer (x axis) is shown. This graph can be zoomed in and out (using the mouse scroll wheel):
hovering over a point in the graph will provide more information about that layer:
The G-Code console provides a log of G-Codes entered, responses and errors/warnings/notifications received from the Duet by the webinterface since the browser was last refreshed.
In the example below the error (red) of trying to move the Z axis when it was not homes homed is shown along with a other G-Codes entered in the console (green). Information (blue) returned from the firmware is also shown. In this case the the unsucessful and then successful simulation of a file.
The console output can be downloaded as a plain text or CSV file.
Gcodes can also be entered in the quick G-Code entry box at the top of the page with the output shown in the console. If the console page is not selected any output from the quick G-Code entry box is also shown as a popup message.
This also shows that previously entered commands in this session are shown as quick select options.
A description of all the G-Codes that RepRapFirmware supports is well beyond the scope of this manual. The "?" button links to the G-Code documentation page which has this detail.
The G-Code Files page allows for g-code files for printing to be uploaded, downloaded, deleted and sorted into sub directories. A summary of the print time and other information is shown if the slicing software adds it to the header (see the File information section of this manual above). As shown in the image, there is a drop down menu to select the external SD card if one is attached to the Duet 2 Wifi.
Uploading and organizing G-Code files
Files can be uploaded by browsing for them or dropping them onto the "Upload G Code Files(s) button The file upload functionality cannot be used during a print to prevent interference with reading the SD card for an ongoing print:
Files can be dragged and dropped in to sub directories for organisation. Files can be organised through the headings.
Right clicking on the file opens a menu with options to print, simulate, download, edit rename or delete the file.
Editing a print G-Code file
In order to edit a file the file needs to be downloaded from the SD into the local cache. This can take a while, especially for large G-Code files:. Editing allows for quickly changing settings such as the start print temperature, more complex editing is best done by downloading the file, using an offline editor and re-uploading it.
Simulating a print
The simulation option "prints" the file without heating any heaters or moving any axis. the firmware works out how long moves would have taken and thus can determine an accurate estimate of the print time.
The results are reported as a pop up and in the console:
Starting a print
Clicking on a file prompts you if you want to print it.
Selecting print from the right click menu does not prompt before starting.
You can also use the upload and print button in the header bar to quickly start a print.
Macros are a powerful addition to RepRapFirmware and Duet Web Control as they allow automation of any process that can be described in Gcodes. There are two general types of macros: system macros which will be described later, and user macros which are described here.
The Macro screen shows a list of all the user macros that are in the on-board SD card in the Duet (in the /macros/ directory):
Macros can be organised into sub directories and dragged and dropped between them. As well as editing macros in a text editor and then uploading them, they can also be created and edited within Duet Web Control in the browser:
In this example there is a macro called "PreparePrinter" being edited. This macro homes the printer, sets the hotend temperatures, waits for them to be reached and then calls another macro (using M98) to purge both hotends.
For examples of commonly useful macros have a look at the Macros documentation page.
The filaments page allows for the configuration of filament types and their associated load and unload macros. See the Filaments documentation for more information.
The right click menu allows for the filament to be deleted, renamed and for the load and unload macros associated with that filament to be edited:
The settings page has a number of sub pages which give information and allow for the configuration of both Duet Web Control, and the Duet to be updated. These settings are stored by Duet Web Control as a local cookie however there is an option to store them on the Duet.
Note that changes do not come into effect until "Apply Settings" is clicked. To revert to the default settings use "Load Factory Defaults", followed by "Apply Settings"
This shows the versions of the firmware, webserver and DuetWebControl installed, along with a button to upload new firmware:
When a new firmware file is uploaded the web interface will prompt you if you want to install it immediately:
Multiple firmware files can be dropped at once and then installed one they have all uploaded.
You do not need to install the firmware immediately as it can be initialted from the console/over USB/from a PanelDue at a later point.
Also on this page are setting for DuetWebControl in the browser communicating with the RepRapFirmware running on the Duet. The default communication and reconnect settings should work well however if you are having intermittent network issues resulting in AJAX errors then increasing the maximum number of AJAX retries will help.
Many elements of how the user interface looks and behaves can be set on this sub page.
Display File Sizes with Binary Prefix: Display file sizes with a base of 1024 instead of 1000.
Always show info area and main menu: Turning on this option ensures the info area and the main menu are always shown on larger displays. This option has no effect on small devices.
Show Fan Controls:Show Fan Sliders allowing you to control the Fan Outputs.
Show Fan RPM in Sensors: Display fan RPM of a 4-pin PWM cooling fan in the sensors area.
Store Web Interface Settings on the Duet:Store the settings of Duet Web Control as a file on the Duet SD card, rather than just as a local cookie. this allows the settings to be portable across browsers and devices accessing the Duet.
Language: choose from languages that are added to DuetWebControl. To add additional languages see the "internationalisation" part of the readme on the DuetWebControl github page.
Theme: currently only three choices. Custom themes can be written in css.
Default Move Button Feedrate: Default Feedrate for axis movement controls. The value must be greater than or equal to 60 mm/s. The extruder feedrate is selectable in the Machine Control window.
Z Distance per Babystep: Z Amount per Babystep, 0.05 is a sensible starting default for most FDM printers.
Allow moves if axes are not homed: Send movement codes with the S2 parameter to allow movements while the axes are not homed. This is useful for commissioning and trouble shooting but is not recommended for normal operation.
Confirm Emergency STOP: Confirm emergency stop by displaying a message box. This adds an extra step to the emergency stop so it not recommended.
Show ATX Power control:Show a small panel on the Control page to toggle ATX power. This is only useful if the duet is wired to control an ATX or similar power supply.
Over ride the default setting to run TfreeN, TPreN and TpostN G-Codes when tools are changed. Generally it would be better to edit these files to perform as desired (including being empty if nothing was required at a particular step). This global override can be useful during troubleshooting.
Show HTML5 desktop notifications: Use HTML5-based desktop notifications when the page is hidden.
Automatically close messages: Activate these options to automatically close user-generated firmware messages / error messages. This stops a lot of messages stacking up and filling tthe screen but can mean (important) error messages are not immediately noticed unless you switch to the console to view them. Use with caution.
Show Pop-Up Notifications: for
- Codes that completed without a response: only select this for certain troubleshooting scenarios otherwise there will be many messages that are not useful.
- Info/Warnings/Errors messages: It is not recommended to suppress Warning or Error messages.
Default Notification Timeout: Time after which default notifications are automatically closed.
Max. number of notifications:Maximum number of simultaneously displayed notification pop-ups. If you have a large number of notifications at once the new ones will force the old ones off the bottom of the screen so it is not flooded.
Always Convert G-Codes to Upper-Case: Convert every G-Code to Upper-Case before sending them, does no hard in most situations although RepRaFirmware will recognise lower case G and M codes.
Clear Cached File Information: Duet Web Control has a local cache of the G-Code file information that is shown on the G-Code files page (as describes earlier in this manual). this clears that cache and forces Duet Web Control to reload the file information. Useful if files have been edited offline.
Setup to display the output from an optional IP camera.
The list items sub page allows for certain drop down options to be changed or added to with the DuetWebControl User Interface.
The "Default G-Codes" is a legacy setting to provide options for the quick G-Code and consolde G-Code entry box. This is now replaced with DuetWebControl's ability to remember previously entered G-Codes.
Default temperature selections for hotend/bed/chamber heaters can be added to make setting these quicker.
All the configuration of RepRapFirmware is carried out by G-Code commands stored in specifically names G-Code files within the /sys/ directory on the on-board SD card. These are also known as system macros or system G-Codes.
Changes can be made by downloading the files and editing them in a text editor before uploading them (this has the advantage of maintaining a local copy). Alternatively all the changes can be made by editing the files within the web interface:
In this case The config.g file is being edited to change the printer name from "DWCExample" to "BigBoxIDEX". After the config file is saved the web interface prompts to reboot:
Setting changes to config.g do not come into effect until the duet is rebooted, in this case after reboot then printer name is changed:
Changes to other system macros such as the homing, tool change, pause etc macros come into effect without rebooting as they are read every time the printer is homed, tools are changed, a print is paused etc.
The contents of the system macros is outside of the scope of this manual. There are documentation pages dedicated to the specific settings within config.g, the various homing and tool change G-Codes:
- Configuring RepRapFirmware for a Cartesian printer
- Configuring RepRapFirmware for a Delta printer
- Configuring RepRapFirmware for a CoreXY printer
- Configuring RepRapFirmware for an IDEX printer
- Configuring RepRapFirmware for a SCARA printer
- Configuring RepRapFirmware for a CNC machine
- Configuring RepRapFirmware for a Polar printer
- Configuring RepRapFirmware for a Hangprinter printer
- Tuning the heater temperature control
- Setting up automatic probing of the print bed
This table provides a summary of the configuration of the various drives within the Duet 2 Wifi and expansion header/board, along with endstop trigger status, z probe information and other miscellaneous information. The Firmware diagnosis button runs the M122 G-Code which outputs a detailed diagnostic dump to the console.
Show the configured tools and allows for tools to be added or removed. Currently these additions and removals don't persist through hardware resets so it is recommended to add tools using the M563 G-Code in config.g file as described in Configuring RepRapFirmware for a Cartesian printer.