Skip to main content

PrintGuard - Real-time Defect Detection on Edge-devices

Project description

PrintGuard - Local 3D Printing Failure Detection and Monitoring

PyPI - Version GitHub Repo stars

PrintGuard offers local, real-time print failure detection for 3D printing on edge devices. A web interface enables users to monitor multiple printer-facing cameras, connect to printers through compatible services (i.e. Octoprint) and receive failure notifications when the computer vision fault detection model designed for local edge deployment detects an issue and automatically suspend or terminate the print job.

Features

  • Web Interface: A user-friendly web interface to monitor print jobs and camera feeds.
  • Live Print Failure Detection: Uses a custom computer vision model to detect print failures in real-time on edge devices.
  • Notifications: Sends notifications subscribable on desktop and mobile devices via web push notifications to notify of detected print failures.
  • Camera Integration: Supports multiple camera feeds and simultaneous failure detection.
  • Printer Integration: Integrates with printers through services like Octoprint, allowing users to link cameras to specific printers for automatic print termination or suspension when a failure is detected.
  • Local and Remote Access: Can be accessed locally or remotely via secure tunnels (e.g. ngrok, Cloudflare Tunnel) or within a local network utilising the setup page for easy configuration.

Table of Contents

Installation

The project is currently in pre-release, so the --pre flag is required for installation.

PrintGuard is installable via pip. The following command will install the latest version:

pip install --pre printguard

To start the web interface, run:

printguard

Initial Configuration

After installation, you will need to configure PrintGuard. First, visit the setup page at http://localhost:8000/setup. The setup page allows users to configure network access to the locally hosted site, including seamless options for exposing it via popular reverse proxies for a streamlined setup. All setups require you to choose to either automatically generate or import self-signed SSL certificates for secure access, alongside VAPID keys which are required for web push notifications.

Cloudflare - A secure way to expose your local web interface to the internet via reverse proxies, providing a reliable and secure connection without needing to open ports on your router. Cloudflare tunnels are free to use and offer a simple setup process however, a domain connected to your Cloudflare account is required. Restricted access to your PrintGuard site can be setup through Cloudflare Access, configurable in the setup page. During setup, your API key is used to create a tunnel to your local server and insert a DNS record for the tunnel, allowing you to access your PrintGuard instance via your custom domain or subdomain.

Ngrok - Reverse proxy tool which allows you to expose the local web interface to the internet for access outside of your local network, offering a secure tunnel to your local server with minimal configuration through both free and paid plans. The setup uses your ngrok API to create a tunnel to your local server and link it to your free static ngrok domain aquired during setup, allowing access to PrintGuard via a custom, static subdomain.

Local Network Access - If you prefer not to expose your web interface to the internet, you can configure PrintGuard to be accessible only within your local network.

Usage

PrintGuard Web Interface The main interface of PrintGuard. All cameras are selectable in the bottom left camera list. The live camera view displayed in the top right shows the feed of the currently selected camera. The current detection status, total detections and frame rate are displayed in the bottom right alongside a button to toggle live detection for the selected camera on or off.
PrintGuard Camera Settings The camera settings page is accessible via the settings button in the bottom right of the main interface. It allows you to configure camera settings, including camera brightness and contrast, detection thresholds, link a printer to the camera via services such as Octoprint, and configure alert and notification settings for that camera. You can also opt into web push notifications for real-time alerts here.
PrintGuard Setup Settings Accessible via the configure setup button in the settings menu, the setup page allows configuration of camera feed streaming settings such as resolution and frame rate, as well as polling intervals and detection rates.
PrintGuard Alerts and Notifications When a failure is detected a notification is dispatched to subscribed devices via web push notifications, allowing users to get real-time alerts and updates about their print. On the web interface, an alert modal appears showing a snapshot of the failure and buttons to dismiss the alert or suspend/cancel the print job. If the alert is not addressed within the customisable countdown time, the printer will automatically be suspended, cancelled or resumed based on user settings.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

printguard-1.0.0b1.tar.gz (4.9 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

printguard-1.0.0b1-py3-none-any.whl (4.9 MB view details)

Uploaded Python 3

File details

Details for the file printguard-1.0.0b1.tar.gz.

File metadata

  • Download URL: printguard-1.0.0b1.tar.gz
  • Upload date:
  • Size: 4.9 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for printguard-1.0.0b1.tar.gz
Algorithm Hash digest
SHA256 be6d71bc192b7f77335d80ee721253b0d396f6f8c9e9cf9c07c3f096938c8c02
MD5 12f9f8729b9c7b33243b546bffe5b424
BLAKE2b-256 0390edd01aa0f18d91e5788d6468142e00e18445963e4bc124a88ff116cc1aaa

See more details on using hashes here.

Provenance

The following attestation bundles were made for printguard-1.0.0b1.tar.gz:

Publisher: python-publish.yml on oliverbravery/PrintGuard

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file printguard-1.0.0b1-py3-none-any.whl.

File metadata

  • Download URL: printguard-1.0.0b1-py3-none-any.whl
  • Upload date:
  • Size: 4.9 MB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for printguard-1.0.0b1-py3-none-any.whl
Algorithm Hash digest
SHA256 c424234fd24adce729dfc7a459a5b8cec6cd5984b6fab7d9dcf9a5bb538a7101
MD5 38482ba6247c3be41e28b77f1bd5acf2
BLAKE2b-256 13a567fa5ed3584c55d471d846627cd101667abfd2ac9683c27cc60e0ff615f9

See more details on using hashes here.

Provenance

The following attestation bundles were made for printguard-1.0.0b1-py3-none-any.whl:

Publisher: python-publish.yml on oliverbravery/PrintGuard

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page