{"id":2120,"date":"2025-03-25T13:13:19","date_gmt":"2025-03-25T17:13:19","guid":{"rendered":"https:\/\/sites.williams.edu\/makerspace\/?p=2120"},"modified":"2026-04-13T13:15:44","modified_gmt":"2026-04-13T17:15:44","slug":"how-we-added-webcams-to-our-3d-printers","status":"publish","type":"post","link":"https:\/\/sites.williams.edu\/makerspace\/projects\/how-we-added-webcams-to-our-3d-printers\/","title":{"rendered":"How We Added Webcams to our 3D Printers"},"content":{"rendered":"<h2>The Importance of Remote Monitoring<\/h2>\n<div id=\"attachment_2121\" style=\"width: 380px\" class=\"wp-caption alignright\"><a href=\"https:\/\/sites.williams.edu\/makerspace\/files\/2025\/06\/Screenshot-2025-06-27-at-2.53.04\u202fPM.png\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-2121\" class=\"wp-image-2121\" src=\"https:\/\/sites.williams.edu\/makerspace\/files\/2025\/06\/Screenshot-2025-06-27-at-2.53.04\u202fPM-300x218.png\" alt=\"A screenshot showcasing the Prusa Connect web portal for a Prusa XL printer.\" width=\"370\" height=\"269\" srcset=\"https:\/\/sites.williams.edu\/makerspace\/files\/2025\/06\/Screenshot-2025-06-27-at-2.53.04\u202fPM-300x218.png 300w, https:\/\/sites.williams.edu\/makerspace\/files\/2025\/06\/Screenshot-2025-06-27-at-2.53.04\u202fPM-1024x743.png 1024w, https:\/\/sites.williams.edu\/makerspace\/files\/2025\/06\/Screenshot-2025-06-27-at-2.53.04\u202fPM-768x557.png 768w, https:\/\/sites.williams.edu\/makerspace\/files\/2025\/06\/Screenshot-2025-06-27-at-2.53.04\u202fPM-1536x1115.png 1536w, https:\/\/sites.williams.edu\/makerspace\/files\/2025\/06\/Screenshot-2025-06-27-at-2.53.04\u202fPM-413x300.png 413w, https:\/\/sites.williams.edu\/makerspace\/files\/2025\/06\/Screenshot-2025-06-27-at-2.53.04\u202fPM.png 1550w\" sizes=\"auto, (max-width: 370px) 100vw, 370px\" \/><\/a><p id=\"caption-attachment-2121\" class=\"wp-caption-text\">A screenshot showcasing the Prusa Connect web portal for a Prusa XL printer.<\/p><\/div>\n<p><span style=\"font-weight: 400\">This past academic year, I enabled remote monitoring for our Prusa XL and Prusa MK3S printers. I did this because it makes life a bit easier for us student workers. 3D printers are a fickle technology, and failed prints are common due to an object failing to adhere to the print bed, the filament becoming tangled, or a variety of other common issues. Because of this, many Makerspace workers have resorted to stopping by the Makerspace multiple times during long prints, making sure everything is going according to plan. For this reason, Prusa has designed a piece of software called PrusaLink that can connect both their older and newer printers to the <a href=\"https:\/\/connect.prusa3d.com\/\" target=\"_blank\" rel=\"noopener\">Prusa Connect<\/a> web portal. Upon learning of this, I began to work towards connecting our printers to the Internet so we could check on the status of prints in real-time and even cancel failing prints, all from our phones.<\/span><\/p>\n<h2>Bringing the Printers Online<\/h2>\n<div id=\"attachment_2123\" style=\"width: 310px\" class=\"wp-caption alignleft\"><a href=\"https:\/\/sites.williams.edu\/makerspace\/files\/2025\/06\/IMG_2388-scaled.jpeg\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-2123\" class=\"wp-image-2123 size-medium\" src=\"https:\/\/sites.williams.edu\/makerspace\/files\/2025\/06\/IMG_2388-300x225.jpeg\" alt=\"A close-up view of the Raspberry Pi Zero 2W Single-Board Computer with a 3D-Printed Bracket attached to it and 4 pins soldered to the board.\" width=\"300\" height=\"225\" srcset=\"https:\/\/sites.williams.edu\/makerspace\/files\/2025\/06\/IMG_2388-300x225.jpeg 300w, https:\/\/sites.williams.edu\/makerspace\/files\/2025\/06\/IMG_2388-1024x768.jpeg 1024w, https:\/\/sites.williams.edu\/makerspace\/files\/2025\/06\/IMG_2388-768x576.jpeg 768w, https:\/\/sites.williams.edu\/makerspace\/files\/2025\/06\/IMG_2388-1536x1152.jpeg 1536w, https:\/\/sites.williams.edu\/makerspace\/files\/2025\/06\/IMG_2388-2048x1536.jpeg 2048w, https:\/\/sites.williams.edu\/makerspace\/files\/2025\/06\/IMG_2388-400x300.jpeg 400w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><p id=\"caption-attachment-2123\" class=\"wp-caption-text\">A close-up view of the Raspberry Pi Zero 2W Single-Board Computer with a 3D-Printed Bracket attached to it and 4 pins soldered to the board.<\/p><\/div>\n<p><span style=\"font-weight: 400\">For our Prusa XL, this task was easy. The Prusa XL, being a newer printer, has native support for Wi-Fi and simply requires connecting it to the Williams College network. However, some modifications were necessary for our older Prusa MK3S printers. For each of those, I connected a <\/span><a href=\"https:\/\/www.raspberrypi.com\/products\/raspberry-pi-zero-2-w\/\" target=\"_blank\" rel=\"noopener\"><span style=\"font-weight: 400\">Raspberry Pi Zero 2W<\/span><\/a><span style=\"font-weight: 400\"> single-board computer. This small board, the one pictured above, is an entire computer that can connect to the back of our 3D printers using four pins I soldered to it. These pins transfer power from the 3D printer to the tiny computer, as well as data about the printer which is then sent over the Internet. This is achieved through a software called <\/span><a href=\"https:\/\/github.com\/prusa3d\/Prusa-Link\" target=\"_blank\" rel=\"noopener\"><span style=\"font-weight: 400\">PrusaLink<\/span><\/a><span style=\"font-weight: 400\">, a custom Linux-based operating system developed by Prusa that runs on the board.<\/span><\/p>\n<p><span style=\"font-weight: 400\">I soldered these pins, installed the operating system onto a micro-sd card, and mounted a 3D printed bracket designed to prevent electrical shorts with double-sided tape.&nbsp; I then plugged the boards into the back of the 3D printer and powered them back on. Once powered on, we connected to the IP address listed on the printer\u2019s screen, configured them for remote monitoring, and were able to start monitoring! We could now view the current status of the printers, control them, and upload files to them remotely! However, there was still one problem &#8211; we could not yet visually monitor the prints.<\/span><\/p>\n<h2>Installing Cameras<\/h2>\n<div id=\"attachment_2126\" style=\"width: 380px\" class=\"wp-caption alignright\"><a href=\"https:\/\/sites.williams.edu\/makerspace\/files\/2025\/07\/img_1360.png\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-2126\" class=\"wp-image-2126\" src=\"https:\/\/sites.williams.edu\/makerspace\/files\/2025\/07\/img_1360-300x225.png\" alt=\"A 3D-printed camera mount attached to a Prusa MK3S.\" width=\"370\" height=\"278\" srcset=\"https:\/\/sites.williams.edu\/makerspace\/files\/2025\/07\/img_1360-300x225.png 300w, https:\/\/sites.williams.edu\/makerspace\/files\/2025\/07\/img_1360-1024x768.png 1024w, https:\/\/sites.williams.edu\/makerspace\/files\/2025\/07\/img_1360-768x576.png 768w, https:\/\/sites.williams.edu\/makerspace\/files\/2025\/07\/img_1360-400x300.png 400w, https:\/\/sites.williams.edu\/makerspace\/files\/2025\/07\/img_1360.png 1280w\" sizes=\"auto, (max-width: 370px) 100vw, 370px\" \/><\/a><p id=\"caption-attachment-2126\" class=\"wp-caption-text\">A 3D-printed camera mount attached to a Prusa MK3S.<\/p><\/div>\n<p><span style=\"font-weight: 400\">For all of our printers, we ended up designing custom mounts for the camera module we purchased, the <\/span><a href=\"https:\/\/www.arducam.com\/product\/arducam-ov5647-standard-raspberry-pi-camera-b0033\/\" target=\"_blank\" rel=\"noopener\"><span style=\"font-weight: 400\">Arducam OV5647<\/span><\/a><span style=\"font-weight: 400\">. This module was chosen because of its cheap price, good-enough visual quality, and direct connection to the Raspberry Pi\u2019s camera connector via a ribbon cable. Our main design principles were that we wanted a mount that followed the nozzle so the current layer was always in the center of the camera, while still showing the print below. I attached this mount to the X motor carriage on the Prusa MK3S, as this allows the camera to stay focused on the printhead. The hexagon pattern matches Prusa\u2019s design language with their printers while preserving airflow, as the fan on the printhead can move very close to the camera mount. I have released this design to the public, and you can find both the STL and Fusion 360 files on the <\/span><a href=\"https:\/\/www.printables.com\/model\/1155575-arducam-ov5647-mount-for-prusa-mk3smk3s\/files\" target=\"_blank\" rel=\"noopener\"><span style=\"font-weight: 400\">Printables website<\/span><\/a><span style=\"font-weight: 400\">.&nbsp;<\/span><\/p>\n<div id=\"attachment_2127\" style=\"width: 310px\" class=\"wp-caption alignleft\"><a href=\"https:\/\/sites.williams.edu\/makerspace\/files\/2025\/07\/73ED6F52-C31F-469C-93C3-A25DA0E98453_1_201_a-scaled.jpeg\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-2127\" class=\"wp-image-2127 size-medium\" src=\"https:\/\/sites.williams.edu\/makerspace\/files\/2025\/07\/73ED6F52-C31F-469C-93C3-A25DA0E98453_1_201_a-300x226.jpeg\" alt=\"A case designed to hold a raspberry pi zero and a camera module monitors a print on the Prusa XL.\" width=\"300\" height=\"226\" srcset=\"https:\/\/sites.williams.edu\/makerspace\/files\/2025\/07\/73ED6F52-C31F-469C-93C3-A25DA0E98453_1_201_a-300x226.jpeg 300w, https:\/\/sites.williams.edu\/makerspace\/files\/2025\/07\/73ED6F52-C31F-469C-93C3-A25DA0E98453_1_201_a-1024x771.jpeg 1024w, https:\/\/sites.williams.edu\/makerspace\/files\/2025\/07\/73ED6F52-C31F-469C-93C3-A25DA0E98453_1_201_a-768x578.jpeg 768w, https:\/\/sites.williams.edu\/makerspace\/files\/2025\/07\/73ED6F52-C31F-469C-93C3-A25DA0E98453_1_201_a-1536x1157.jpeg 1536w, https:\/\/sites.williams.edu\/makerspace\/files\/2025\/07\/73ED6F52-C31F-469C-93C3-A25DA0E98453_1_201_a-2048x1543.jpeg 2048w, https:\/\/sites.williams.edu\/makerspace\/files\/2025\/07\/73ED6F52-C31F-469C-93C3-A25DA0E98453_1_201_a-398x300.jpeg 398w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><p id=\"caption-attachment-2127\" class=\"wp-caption-text\">A case designed to hold a raspberry pi zero and a camera module monitors a print on the Prusa XL.<\/p><\/div>\n<p><span style=\"font-weight: 400\">For the Prusa XL, a different design was used. The XL has all the functionality of PrusaLink built in, but without a way to directly connect a camera. Therefore, we used the same single-board computer, a Raspberry Pi Zero 2W, running the 64-bit release of Raspberry Pi OS Lite. This gives us a very lightweight operating system that is accessible through the command line for running software. On this computer we set up <\/span><a href=\"https:\/\/gist.github.com\/mandreko\/1ac7e189967f7a170485c4a04c459c57\" target=\"_blank\" rel=\"noopener\"><span style=\"font-weight: 400\">this code<\/span><\/a><span style=\"font-weight: 400\"> by a github user, which uses the API provided by Prusa to send snapshots from the camera every 10 seconds to the Prusa Connect web portal. I found this <\/span><a href=\"https:\/\/www.printables.com\/model\/423432-prusa-xl-series-camera-mount\" target=\"_blank\" rel=\"noopener\"><span style=\"font-weight: 400\">mount<\/span><\/a><span style=\"font-weight: 400\"> for a standard webcam on the Printables website, and built my design based on this, adding a box where the webcam would normally mount onto it that holds the Pi Zero and the camera module. This design ended up working perfectly, and is what we are using today.<\/span><\/p>\n<h2>Real-Time Slack&nbsp;Notifications<\/h2>\n<div id=\"attachment_2128\" style=\"width: 380px\" class=\"wp-caption alignright\"><a href=\"https:\/\/sites.williams.edu\/makerspace\/files\/2025\/07\/Screenshot-2025-07-07-at-1.09.06\u202fPM.png\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-2128\" class=\"wp-image-2128\" src=\"https:\/\/sites.williams.edu\/makerspace\/files\/2025\/07\/Screenshot-2025-07-07-at-1.09.06\u202fPM-300x105.png\" alt=\"Prusa XL Printer Notifications. Text Reads: Prusa XL: Printer requires your attention. Check it personally to make sure everything is in order. Prusa XL: Print job Body1_PETG_2h11m.gcode was stopped. Remove the printout from the printer and prepare the printer for the next print job.\" width=\"370\" height=\"129\" srcset=\"https:\/\/sites.williams.edu\/makerspace\/files\/2025\/07\/Screenshot-2025-07-07-at-1.09.06\u202fPM-300x105.png 300w, https:\/\/sites.williams.edu\/makerspace\/files\/2025\/07\/Screenshot-2025-07-07-at-1.09.06\u202fPM.png 490w\" sizes=\"auto, (max-width: 370px) 100vw, 370px\" \/><\/a><p id=\"caption-attachment-2128\" class=\"wp-caption-text\">A photograph of a slack notification for our Prusa XL printer.<\/p><\/div>\n<p><span style=\"font-weight: 400\">The remote monitoring system shares temperature data, the percentage of the project remaining, visual photographs, and also notifies us if the printer encounters an issue or if the print fails. If, for example, the spool runs out of filament in the middle of printing, the print pauses and we get a Slack notification letting us know details about the issue. The notification contains a link to the Prusa app (on our phones) for more information. This lets us solve these problems when they come up, instead of finding out the next day.<\/span><\/p>\n<h2>Conclusion<\/h2>\n<p><span style=\"font-weight: 400\">Connecting our printers to the Internet has been a major help at the Makerspace. It makes monitoring easier, allows us to upload files directly from our laptops to the 3D printers (via our network), and lets us confirm that prints are going smoothly or catch issues before they become a major problem &#8212; without having to step foot in the office. Remote monitoring for our 3D printers has been a massive help in allowing us to continue providing high-quality 3D prints for our community.<\/span><\/p>\n<h2>Next Steps<\/h2>\n<p><span style=\"font-weight: 400\">This summer the Makerspace will be <\/span><a href=\"https:\/\/www.prusa3d.com\/product\/original-prusa-i3-mk3-s-to-mk4-upgrade-kit\/\" target=\"_blank\" rel=\"noopener\"><span style=\"font-weight: 400\">upgrading our MK3S Printers<\/span><\/a><span style=\"font-weight: 400\">, and building two new high-speed <a href=\"https:\/\/www.prusa3d.com\/product\/original-prusa-mk4s-3d-printer-5\/\" target=\"_blank\" rel=\"noopener\">Prusa MK4S 3D printers<\/a>. I plan to connect all of our 3D printers to our remote monitoring system. If you are interested in connecting your own Prusa 3D Printers to the Internet with Prusa Connect, you can find official guides on how to do so <\/span><a href=\"https:\/\/help.prusa3d.com\/article\/prusa-connect-and-prusalink-explained_302608\"><span style=\"font-weight: 400\">here<\/span><\/a><span style=\"font-weight: 400\"> for all compatible models.<\/span><\/p>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>The Importance of Remote Monitoring This past academic year, I enabled remote monitoring for our Prusa XL and Prusa MK3S printers. I did this because it makes life a bit easier for us student workers. 3D printers are a fickle &hellip; <a href=\"https:\/\/sites.williams.edu\/makerspace\/projects\/how-we-added-webcams-to-our-3d-printers\/\">Continue reading <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":3183,"featured_media":2146,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"ngg_post_thumbnail":0,"footnotes":"","_links_to":"","_links_to_target":""},"categories":[23],"tags":[15,69,67,56],"class_list":["post-2120","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-projects","tag-3d-print","tag-makerspace","tag-prusa","tag-raspberry-pi"],"acf":[],"_links":{"self":[{"href":"https:\/\/sites.williams.edu\/makerspace\/wp-json\/wp\/v2\/posts\/2120","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/sites.williams.edu\/makerspace\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/sites.williams.edu\/makerspace\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/sites.williams.edu\/makerspace\/wp-json\/wp\/v2\/users\/3183"}],"replies":[{"embeddable":true,"href":"https:\/\/sites.williams.edu\/makerspace\/wp-json\/wp\/v2\/comments?post=2120"}],"version-history":[{"count":10,"href":"https:\/\/sites.williams.edu\/makerspace\/wp-json\/wp\/v2\/posts\/2120\/revisions"}],"predecessor-version":[{"id":2132,"href":"https:\/\/sites.williams.edu\/makerspace\/wp-json\/wp\/v2\/posts\/2120\/revisions\/2132"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/sites.williams.edu\/makerspace\/wp-json\/wp\/v2\/media\/2146"}],"wp:attachment":[{"href":"https:\/\/sites.williams.edu\/makerspace\/wp-json\/wp\/v2\/media?parent=2120"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/sites.williams.edu\/makerspace\/wp-json\/wp\/v2\/categories?post=2120"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/sites.williams.edu\/makerspace\/wp-json\/wp\/v2\/tags?post=2120"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}