Duet 3 integration plugin

Ok, so the new Duet 3 motherboard is usually set up with a Raspberry PI as a daughter board to host the Duet Software Framework, including the Duet Web Control (DWC). DWC talks to the framework server via a socket for deeper integration than g-codes on a serial interface allow. The framework server then talks to the board over SPI.

Now, running Octopring on the same PI is possible, but to talk to the Duet 3 one has to string an extra USB cable between the two. As a result one is then rescritected to the serial interface and the Duet software is basically disabled.

I wanted to get your opinion on a different approach. I've been looking at both the Duet API (there is one for Python as well as Go and C#) and the Virtual Printer plugin in Octoprint. I think it would be possible to create a Duet 3 plugin based on the Virtual Printer plugin that actually implements the functionality using the API.

Benefits:

  • The Duet Software Framework isn't circumvented and can participate in the work.
  • The interaction uses a high bandwidth communication channel
  • Deeper integration with Octoprint is possible beyond what can be done over a serial line.

If you are thinking I'm crazy and that won't work, please let me know. If you are intrigued and think that might be an elegant solution, do the same. If you're scratching your head, ask questions! :wink:

Cheers,
Oliver

That totally makes sense to me. I haven't looked into the Virtual Printer plugin and how it works, but pretty sure that's where the octoprint-comm-transport-serial-factory comes into play maybe?