This project came to mind after heading back into office expecting a new component for my stand to be printed. Instead of walking into the print room and seeing my new attachment, I was welcomed to a ball of goop left on the stencil of the 3D-printer. This made me question what I could have done to prevent this without sitting around and monitoring the print myself. This is what created the idea for LayerWatch.
FunctionalityThe LayerWatch application hosts a web server that uploads images periodically to show the status of a print. The web server is ran on the BeagleBone Black (BBB) and has access to the I/O to alter the relay and power off/on the 3D-printer. Thus, saving you loads of filament and saving you the time of freshening up your printer. On the LCD sits the web address for your server to be accessed to check on your print.
Installation1 - To use LayerWatch you must first clone the repo onto your BeagleBone Black (wifi enabled).
2 - Then cd into LayerWatch
3 - Advise to read the README.md
4 - Run the setup scripts
5 - Wire up hardware; Pins can be found in README.md;
6 - Begin the application or sudo reboot
6 - Head to your flask server address
Mine is "http://192.168.7.2:8081"
Command Line:
git clone git@github.com:hyacinsm/LayerWatch.git
cd LayerWatch
sudo ./install.sh && sudo ./setup.sh && sudo ./LayerWatch.sh
sudo website/app.py or sudo reboot
Using Layer Watch
After a print is stopped it is best to sudo reboot the BeagleBone or simple power cycle. Due to the application running on start up it easiest to power cycle with the Beagle configured with Ethernet to access the server once launched.
After the server is launched simply check your web address periodically to view the status of your prints.
Future Work
Modularity
Currently, the website and hardware are only capable of supporting one printer. For the website, allowing the user to add and remove monitor jobs would be a great addition. Considering the audience that would find this project most attractive would be those with print farms or generally multiple printers.
On the hardware side, we want to create a many-to-one relationship between the printers and the monitoring webcam. In order to do this while maintaining high-quality photos, we need to create a rig for a camera to move between each printer to take photos. Alternatively, you could use a USB extender and attach it to the Beagle Bone Board, but then you would need a camera per printer.
External Access/Authentication
Since the aim of this project is to be able to monitor prints currently in progress, we want to make the Flask server, hosted on the Beagle, accessible externally. However, due to security concerns and time constraints, we opted not to do this in our first iteration of the project. The next step in this area is to develop an authentication process to log into the website. After adding login, there would be enough security for us to be comfortable making the server externally accessible.
Video Streaming
Lastly, adding a mode to live stream a print in progress would be beneficial. Some people may prefer this over periodic pictures, and we think this would be a worthwhile addition to the project if we had more time.
More information can be found at LayerWatch
Comments