Good day All Makers!
I am very happy with Octoprint and OctoPi efforts, but now that I have 4 active printers connected with OctoPi, all with NFS Share to the GCode store, all with a Timelapse NFS Store, MQTT to monitor the printers and to start prints. This is all great!
But there are some architectural limitations I am running into with the current structure of Octoprint.
- Plugin data is not share-able: It takes a while for a large GCode repo to be scanned by each Pi3, it's results are then saved locally.
EG Slicer Thumbnails, it allows me to show the part printing on the OctoPi 's Dashboard and since I like to glance at each printer display, it would be nice to see it there on the Dashboard.
- Resource Management:
Again with shared resources, the RaspPi is not the best tool for GCode Analysis or Timelaspse renders, I have Docker Containers that I can process that offline.
I propose the following changes to OctoPrint's structure:
- Folder Paths UI to support Base Path for all other sub Paths, with override check box to allow special paths to be set.
- Introduction of 'Shared Plugin Data' path setting for Folders that would support the share of things like the Slicer Thumbnails
- Inconsistency correction : When folders are changed, the OctoPi needs to restart for the change to be recognized, this should be a soft event in the event management structure to refreshed. Or for the time being, put a warning on the Folder Dialog that changes are not shown until restart.
- Ennoblement or disablement of background tasks: GCode Analysis sucks the life out of a older pi, this would be great if we can do a Pub/Sub management of this process
- Timelapse Rendering: again this is a processor, IO and Memory intensive task for a Raspberry Pi, options for generating events for render start and complete over the Pub/Sub would be greatly appreciated for advanced users.
- Timelapse TMP Folders on NFS: For the life of me, I have not got the frame captures to be stored on NFS, the folder setting does not seem to work for me.
Python is not my best forte, but I have hacked a few AI scripts out of it, but my best skill is that in Architecture and Integration, and this is why I am trying to sell more PUB/SUB into OctoPrint task management where it becomes the Edge Compute module to feed and interface the printers where we establish a command and control system that in my farm, I can knock out a multi part build from my 'Control Room'
Oh and I've been coding a Swagger 2.0 for the Rest API, it would be nice to farm this out and collaborate on it as it too simplifies the integration of good tool.
Any thoughts? Is there a architectural design considerations for core Octoprint that need to be done?