Skip to content

Capstone-Projects-2025-Spring/project-3d-printer-security

 
 

Repository files navigation

Open in Codespaces

3D Printer Security

Report Issue on Jira Deploy Docs Documentation Website Link

Authors

Ellie Fiera, Rafael Rodriguez, Sami Jafri, Sergiy Pliss, Shafiq Rahman, and Christopher Christmas.

Release Date

01-27-25 Verion 1.0.0

Project Abstract

3D Printer G-CODE Validation and Security Application

The increasing accessibility of 3D printing has revolutionized manufacturing of prototyping or re-producing a part virtually anywhere. However, with the widespread use of printing 3D parts, there is a growing risk of maliciously altered or error-prone G-CODE files that could damage the equipment, result in injury, or fire.

This project aims to develop a solution to mitigate these problems by:

  • Scan G-CODE files for potential threats or errors.
  • Ensuring a safer and more reliable 3D printing experience.
  • Further Scan G-CODE of files to identify issues such as out-of-bound commands.
  • Incorrect temperature settings and other user errors.

After scanning a g-code file, an alert with pass will allow the client to take action to halt printing depending on the scan result. If the scan is approved, then it can be printed successfully.

This project’s goals include:

  • Enhancing 3D printer safety by mitigating the risks of hardware damage by stopping malicious code from running on the 3D printer.
  • Streamlining the printing process and increase productivity and prevent downtime.
  • Providing a user-friendly interface to scan and print. This application has the potential to be a vital tool for 3D printing enthusiasts and professionals, ensuring higher print reliability, prevent downtime, and safer operation.

High-Level Requirement

The application will provide a standard distributable plugin for OctoPrint. It will be available as a feature tab within OctoPrint and will be used after CURA or PRUSA has completed slicing a file into G-code.

The G-code file can either be:

  • Sent to OctoPrint over the network, or
  • Accessed by OctoPrint via network storage.

The client will be presented with a dropdown file selection interface to choose a G-code file for scanning. The scanner will analyze the file and return a Pass or Warnings status before printing.

Conceptual Design

The team will develop the application as a plugin for OctoPrint. OctoPrint can run on the network to receive a print job as well as provide web access to scan the file before printing. The designed application functionality includes scanning for incorrect temperature ranges out of bound commands, malicious commands to disable limit switches, and including to prevent malicious code from colliding the print head into the part. The job of the software will be to stop the print job from being executed on the printer.

Background Summary

In government and military computer usage policies, USB drives for storage are highly regulated. This makes using USB drive scanning before printing makes it impracticable. Therefore, all agencies under this umbrella use secure networks for printing and communication. To ensure compatibility and functionality, the G-code scanning application will have network capability.

  • Seamless integration with all networked devices where 3D printing security is in high demand.
  • Future scalability to handle multiple files and print multiple jobs sent to more than one printer.
  • Octoprint provides documentation for creating plugins for developers to enhance or upgrade features.

Other information on addressing 3D printing security. https://asmedigitalcollection.asme.org/computingengineering/article-abstract/21/4/041007/1089710/A-Blockchain-Based-G-Code-Protection-Approach-for?redirectedFrom=fulltext

Instruction of Usage

To use this gcode scanner, you must download Octoprint. Once you have Octoprint downloaded, you should use this instruction via the URL and the Plugin Manager to successfully download this gcode scanner.

Instructions for development

Mac - Download Rasberry Pi OS to your Mac, run the program, select "Choose OS", navigate to the "other specific OS option", then 3D printing, OctoPi is one of the first results, and select the preferred release and storage device (SD card). Insert in the Raspberry Pi, and after launching, set up an Admin account and go to the plugins menu within settings. From here you can install the scanner plugin from the repository link, https://github.com/Capstone-Projects-2025-Spring/project-3d-printer-security.git

You then connect the Pi to the 3D printer via a hardline connection, then on your Mac connect via the IP address of the Raspberry Pi or by octopi.local in your preferred web browser, and are now able to scan and print

Recommended Resources

The following resources will aid in the plugin development.

  • OctoPrint Plugin Documentation
  • Raspberry PI 4
  • 3d Printer
  • Remote VPN access to the computer for working remotely to test code (Optional).
  • SD Card
  • A camera pointed at the 3d Printer for remote testing (Optional).

Collaborators

ApplebaumIan
Ian Tyler Applebaum
leighflagg
Null
shafiq9018
Shafiq Rahman
efiera
Ellie Fiera
RRodriguez26
Rafael Perez
Stapletonchris
Christopher Luckie Christmas
sh-jafri
Sami Jafri
sergiyPliss
Sergiy Pliss

About

capstone-projects-2025-spring-classroom-95fb36-applebaum-projects-creation-tu-cis-4398-docs-template created by GitHub Classroom

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages

  • JavaScript 69.3%
  • Python 14.1%
  • Jinja 12.7%
  • CSS 3.8%
  • Less 0.1%