Duet Software Framework (DSF) is the bundle of software programs running on the Raspberry Pi that connects to and controls the Duet 3. This is refered to running in "SBC" mode, as opposed to running in "standalone" mode wihtout an SBC. Running in SBC mode is optional, it brings with it the potential to use the SBC to handle the networking and UI functions of the system. In addition it provides an API on the SBC to build plugins and other applications that work with the Duet controlled system.
Duet 3 mainboards are supplied with an SD card loaded with the Raspberry Pi OS suitable for Raspberry Pi 3 or 4. For a standard setup, the SBC Setup for Duet 3 page gives an outline how to get setup initially, and what to do if there are issues.
Duet Software Framework utilises .NET 6 so an ARMv7 processor is required for operation. This means a Raspberry Pi 3 or newer is required. Support for the Raspberry Pi Zero 2W will be added as part of the upcoming 3.4 software release.
DuetPi (Raspberry Pi 3 or newer)
DuetPi is the official Debian image based on Raspberry Pi OS that is customised for the Duet 3. If you are not very familiar with the Raspberry Pi, it is strongly recommended to use this instead of the stock Raspbian image. See SBC Setup for Duet 3.
Stock Raspberry Pi OS and other SBCs
If you have the latest Raspbian image installed on your Raspberry Pi or if you are using another SBC, follow these instructions to get started with DSF.
It is a good idea to keep your system up-to-date to eliminate potential bugs and security issues. The following steps describe how this can be achieved.
Since DSF is provided as a standard Debian package feed, the update is quite trivial. To update it, run a standard system update on the attached SBC using a Linux console:
sudo apt update
sudo apt dist-upgrade
This will automatically install the latest DSF components. You may achieve the same remotely using SSH.
Users of the latest DuetPi Bookworm image using v3.5 or newer can run
M997 S2 F"unstable"
followed byM997 S2
instead of the following.
This assumes that the unstable packages are a later version than the currently installed stable packages.
Change stable to unstable in /etc/apt/sources.list.d/duet3d.list:
sudo rm -f /etc/apt/sources.list.d/duet3d.list
sudo bash -c "echo 'deb https://pkg.duet3d.com/ unstable armv7' > /etc/apt/sources.list.d/duet3d.list"
Update your system:
sudo apt update
sudo apt dist-upgrade
Users of the latest DuetPi Bookworm image using v3.5 or newer can run
M997 S2 F"stable"
followed byM997 S2
instead of the following.
In a similar process to the above, this assumes that the stable packages are a later version than the currently installed unstable packages.
sudo rm -f /etc/apt/sources.list.d/duet3d.list
sudo bash -c "echo 'deb https://pkg.duet3d.com/ stable armv7' > /etc/apt/sources.list.d/duet3d.list"
sudo apt update
sudo apt dist-upgrade
These steps are only applicable when downgrading beta/rc versions from the unstable package feed. They do not have an effect if you are already on the latest stable version.
Users of the latest DuetPi Bookworm image using v3.5 or newer can run
M997 S2 F"stable"
followed byM997 S2 V"<version>"
instead of the following. Replace<version>
with a verison of your choice, e.g.3.5.1
.
To downgrade from an installed version to a earlier release requires a few extra steps to remove files newer than the release version. This example demonstates downgrading from an unstable release to a stable release, the process is similar for downgrading to an unstable release. Follow these steps:
Change back unstable to stable in /etc/apt/sources.list.d/duet3d.list:
sudo rm -f /etc/apt/sources.list.d/duet3d.list
sudo bash -c "echo 'deb https://pkg.duet3d.com/ stable armv7' > /etc/apt/sources.list.d/duet3d.list"
Refresh the package lists:
sudo apt update
Remove potentially left-over RRF packages
rm -f ./reprapfirmware*.deb
Download the latest stable RepRapFirmware package
apt download reprapfirmware/stable
Downgrade RepRapFirmware
sudo dpkg -i --force-depends ./reprapfirmware*.deb
Downgrade DSF
sudo apt install -y --allow-downgrades duetsoftwareframework/stable duetcontrolserver/stable duetwebserver/stable duetpluginservice/stable duettools/stable duetruntime/stable duetwebcontrol/stable duetpimanagementplugin/stable
Downgrading stable packages is NOT recommended. If you encounter problems after an upgrade, create a new thread on the forum instead. If you do need to downgrade anyway use
=X.Y.Z
(=.X.Y.Z-1
for RepRapFirmware) whereX.Y.Z
equals your desired stable package version (e.g.apt download reprapfirmware=3.4.5-1
). Be aware that successiveapt upgrade
calls will upgrade everything to the latest version again.
Users of the latest DuetPi Bookworm image using v3.5 or newer can run
M997 S2 F"stable"
followed byM997 S2 V"<version>"
instead of the following. Replace<version>
with a verison of your choice, e.g.3.5.1
.
This example demonstates downgrading from an unstable release to a specific stable release, the process is similar for downgrading to an unstable release. Follow these steps:
Change back unstable to stable in /etc/apt/sources.list.d/duet3d.list:
sudo rm -f /etc/apt/sources.list.d/duet3d-unstable.list
sudo bash -c "echo 'deb https://pkg.duet3d.com/ stable armv7' > /etc/apt/sources.list.d/duet3d.list"
Refresh the package lists:
sudo apt update
Remove potentially left-over RRF packages
rm -f ./reprapfirmware*.deb
Download the latest stable RepRapFirmware package
apt download reprapfirmware=3.4.5-1
Downgrade RepRapFirmware
sudo dpkg -i --force-depends ./reprapfirmware*.deb
Downgrade DSF
sudo apt install -y --allow-downgrades duetsoftwareframework=3.4.5 duetcontrolserver=3.4.5 duetwebserver=3.4.5 duetpluginservice=3.4.5 duettools=3.4.5 duetruntime=3.4.5 duetwebcontrol=3.4.5 duetpimanagementplugin=3.4.5
The first SD card (0:/) is emulated by DCS and its default directory is /opt/dsf/sd
. It may changed by editing the BaseDirectory value in /opt/dsf/conf/config.json
.
Duet3D provides some sample plugins for DSF which are available on GitHub.
Other third-party plugins are available on the forum.
If you want to get involved in plugin development, check out the DSF and DWC plugin guides.
Please use the forum to report any issues: https://forum.duet3d.com/