Joining the Microsoft 3D print ecosystem enables 3D printer manufacturers to offer a great plug-and-play experience on Windows 10. This strategy removes the potential for problems encountered by users when locating and manually installing drivers. Additionally, Windows Update ensures that the users are always using the latest driver for their device and are getting the best experience available.
3D print driver overview
A plug-and-play 3D printer on Windows 10 is implemented through a pair of drivers published on Windows Update:
Upper driver (Render filter)
Implements the slicer. The driver takes 3MF as input and produces G-Code or other similar machine level data.
Creates the print queue. The device appears under Devices and Printers and in the 3D Print Dialog for compatible 3D Printing applications.
Lower driver (USB driver)
Implements wire protocol (typically USB Serial or native USB)
Kernel mode driver creates the ENUM\3DPRINTER device node for the upper driver
User mode component (Partner DLL) sends the G-Code to the device
Reports device capabilities, job status and implements job cancel
Installs 3D print service and the 3D port monitor (3dmon)
Choosing the right driver model
3D print driver with custom slicer
Obtain and verify the device USB hardware ID
- Ensure the device firmware has a unique Vendor ID and Product ID (VID/PID) allocated by the USB Implementers Forum (USB-IF). For USBSER devices, we strongly recommended that you use a unique serial number to prevent conflicts on a USB port changes.
Install Microsoft tools and SDKs
Implement the USB driver
A manufacturer can use the Microsoft USB driver for their 3D printer by creating a partner DLL. For more information, see 3D printer custom USB interface support.
If the printer is using the Microsoft Slicer, the Hardware ID that it creates must be Enum\3DPrint\MS3DPrint
Note If the the printer is using a custom slicer, continue with steps 4-7
Build the Fabrikam driver (slicer template only)
- Build and obtain the driver package. This creates a x64 folder with the slicer part.
Adding the custom slicer
Modify the cpp file to include:
3MF parser (use the Windows 10 version 1607 3MF API)
Adding the printer node
Open the inf in Fabrikam Print driver
Replace the entries hardware IDs:
%DeviceName%=FabrikamPrintDriverV4\_Install,3DPRINTER\\Fabrikam1 %DeviceNamePlus%=FabrikamPrintDriverV4\_Install,3DPRINTER\\Fabrikam2 DeviceName="CONTOSO FABRIKAM 1" DeviceNamePlus="CONTOSO FABRIKAM 2"
Publish and distribute the driver
Follow the steps in these topics to publish your driver: