Open Source 3D Printing Cluster
Contents
Introduction
This project is intended to be a Distributive Enterprise which allows for a cloud-based 3D printing service. Payment is included in this service.
OSE Implementation
Hint: See 3D Printer Cluster for OSE's implementation started by Christian Log
Used For
- 3D Pronting of parts
- as a component of the Open Source Automation Construction Set
Development
Team
See Christian Log for July 2017 entries.
Working Doc
Cluster Features - Requirements
- Control of 24 printers with one raspberry pi
- Logging of total print time for every machine
- Logging of total number of prints
- Logging of print failure. Suggestions - upon starting a print on a given machine, you are asked whether the last print was successful.
Phases
- 1 - printing, 12 printers
- 2 - Online Ordering of 3D Prints. Software activates printer automatically, and prints shipping label automatically. Shipping via Pickup. Automatic print labels.
- 3 - Integration with postage printing.
- 4 - Addition of Stickers printed on demand.
- 5 - Open source color laser printer and inkjet printer.
Industry Standards
- Polar Cloud - https://polar3d.com/ - Cloud 3D print platform; proprietary, but uses open source OctoPrint.
- Prusa's Latest Print Farm
Minimum Viable Product
- Open Source
- Modular
- User Maintainable
- User Upgradable
- Uses the D3D Printer (although this could be adapted to other machienes in the Open Source Digital Fabrication Construction Set
- Diverse Networking Options (ie USB, Thunderbolt 3, Ethernet, Infiniband, Wifi, Bluetooth, Lifi)
- Scalable From 2 Printers to 1,000 Printers (maybe more...)
- Intigration with the Open Source Automation Construction Set
- User Freindly
Basic Design
Printer
- D3D Printer (Although others could possibly work with the software+any additional hardware too)
Hardware
- Something like a rasberry pi/mini PC (or custom board) takes in the network signal, then this passes it off to the printer's microcontroller+servo controller via USB
- Because it is usb connected and not soldered in this allows for easy upgradability, and modularity
- This could all go in a 3D Printed Enclosure
Communications
4.7.18
To Chris Rupp - I'm working on the print cluster - and it appears that Octoprint does not support SD card printing, but only streaming from the Raspberry Pi. I have not found any source showing how to use an SD card to store the print file - it appears that the standard route is streaming from the Pi to the 3D printer. Is that so, or am I mistaken?
This is important because, say we have 6 printers connected to a Raspberry Pi - we don't want 6 of them to fail if the Pi crashes. We need to have this designed such that each printer is running from its own SD card - and can finish a print job even if the server fails. This limits failure modes to only power outages on the 3D printer itself - which is also addressable in the future.
I am exploring different possible configurations - and am questioning our prior route because of the issue in this email. -MJ
4.7.18
If I remember correctly, this should be possible, however it was not tested on my part so far. This issue here suggests that its possible https://github.com/foosel/OctoPrint/issues/1216 However, I don't have the gui here, so I cannot assure how exactly it should be done... So maybe just look around the options, it seems like you can upload it to a printer and then send the command to print it
4.7.18
No problem yet with failed Linux servers, but server failure (which will happen from time to time) is a point that we want to eliminate by design. I'm thinking when thousands of people will be using our system. So that only single printers can fail, not entire batches of printers.
I did some more research - and it appears that transferring files to SD without taking out the SD card is painfully slow:
- Going to an SD card via the RAMPS is painfully slow, so it is not practical at this point to send files from a user's computer to an SD card on the 3D printer itself. [ https://shop.prusa3d.com/forum/original-prusa-i3-mk3-f30/is-copying-files-to-the-printer-sd-card-i-e-via-us-t6341.html ]
- It appears the only solution for achieving only single-printer-failure in a print cluser is to use a Pi Zero attached to the 3D printer, with Pi Zero streaming to the RAMPS.
It appears that the only solution is then to break the cluster into parts. So that we limit the number of 3D printers per Pi. Maybe 2-4 printers per pi in a 100 printer cluster.
I read about Octoprint, and apparently only 1 printer is allowed per Octoprint instance, so one must run many Octoprint instances. How many Octoprint instances do you think that a single Pi can handle?
It would be nice if we could send the print file over to the SD card of RAMPS. Then a single Pi could control an unlimited number of printers: it would just send the file over to SD, and then that instance of Octoprint can be shut down.
Can you think of any other ways to get the frint file over to the RAMPS SD Card? Is there some SD card writer that could write to the RAMPS SD without going through the Arduino, but directly from the Pi to the RAMPS SD?
Marcin
Notes
- Going to an SD card via the RAMPS is painfully slow, so it is not practical at this point to send files from a user's computer to an SD card on the 3D printer itself. [1]
- It appears the only solution for achieving only single-printer-failure in a print cluser is to use a Pi Zero attached to the 3D printer, with Pi Zero streaming to the RAMPS.