From 0c87213e8f209090a6d27d66dbbf08ca11c3db60 Mon Sep 17 00:00:00 2001 From: Rich LeGrand Date: Mon, 25 May 2026 16:04:33 -0500 Subject: [PATCH 01/11] Added plugin bitbang --- _plugins/bitbang.md | 93 ++++++++++++++++++ assets/img/plugins/bitbang/bitbang_config.png | Bin 0 -> 122853 bytes .../img/plugins/bitbang/bitbang_default.png | Bin 0 -> 136662 bytes assets/img/plugins/bitbang/bitbang_url.png | Bin 0 -> 23168 bytes assets/img/plugins/bitbang/bitbang_video.png | Bin 0 -> 337360 bytes assets/img/plugins/bitbang/camera_select.png | Bin 0 -> 22508 bytes .../img/plugins/bitbang/resolution_select.png | Bin 0 -> 17850 bytes 7 files changed, 93 insertions(+) create mode 100644 _plugins/bitbang.md create mode 100644 assets/img/plugins/bitbang/bitbang_config.png create mode 100644 assets/img/plugins/bitbang/bitbang_default.png create mode 100644 assets/img/plugins/bitbang/bitbang_url.png create mode 100644 assets/img/plugins/bitbang/bitbang_video.png create mode 100644 assets/img/plugins/bitbang/camera_select.png create mode 100644 assets/img/plugins/bitbang/resolution_select.png diff --git a/_plugins/bitbang.md b/_plugins/bitbang.md new file mode 100644 index 00000000000..036cbfa93f2 --- /dev/null +++ b/_plugins/bitbang.md @@ -0,0 +1,93 @@ +--- +layout: plugin + +id: bitbang +title: OctoPrint-BitBang +description: Remote OctoPrint access with live H.264 video via BitBang WebRTC. No account, no port forwarding, one shareable link. +authors: +- Rich LeGrand +license: MIT +date: 2026-05-25 + +homepage: https://github.com/richlegrand/OctoPrint-BitBang +source: https://github.com/richlegrand/OctoPrint-BitBang +archive: https://github.com/richlegrand/OctoPrint-BitBang/archive/refs/tags/v0.1.1.zip + +privacypolicy: https://github.com/richlegrand/OctoPrint-BitBang/blob/main/PRIVACY.md + +tags: +- remote access +- webrtc +- webcam +- video +- h264 +- raspberry pi +- timelapse + +screenshots: +- url: /assets/img/plugins/bitbang/bitbang_config.png + alt: BitBang settings panel + caption: Settings → BitBang configuration +- url: /assets/img/plugins/bitbang/camera_select.png + alt: Camera selection dropdown + caption: Auto-detected cameras +- url: /assets/img/plugins/bitbang/resolution_select.png + alt: Resolution dropdown + caption: Pick resolution up to 720p +- url: /assets/img/plugins/bitbang/bitbang_url.png + alt: Shareable BitBang URL + caption: Click the BitBang menu item to get the URL +- url: /assets/img/plugins/bitbang/bitbang_video.png + alt: Live video in the Control tab + caption: Hardware-encoded H.264 in the Control tab + +featuredimage: /assets/img/plugins/bitbang/bitbang_default.png + +attributes: +- cloud + +compatibility: + octoprint: + - 1.9.0 + os: + - linux + python: ">=3.10,<4" + +--- + +OctoPrint-BitBang gives you full remote access to your OctoPrint instance — including live H.264 video — over a single secure HTTPS shareable link. It uses [BitBang](https://github.com/richlegrand/bitbang) to create a peer-to-peer connection that requires no account, no subscription, no port forwarding, no tunnel, and no VPN. + +## What you get + +- **Full remote access:** Configure, upload G-code, start jobs, see live video — from anywhere, through a secure HTTPS URL. +- **One link, no account set-up:** Share the URL, share your printer. +- **Live H.264 video:** Hardware-encoded on Pi 4 (`/dev/video11` V4L2 M2M), software-encoded on Pi 5 or any other Linux host. Packetized by aiortc and delivered as a WebRTC media stream. CPU footprint is around 40% (single core) on Pi 4. +- **BitBang URL access is optional:** Video streaming also works with local-network URL access. +- **Pi CSI camera or USB webcam:** Auto-detected (IMX477, IMX219, IMX708, or any V4L2-capable USB webcam). +- **Camera controls:** Camera selection, live brightness slider, fullscreen button, image flip H/V buttons, and resolution selection (VGA up to 720p). +- **Snapshots and timelapse:** Integrates with OctoPrint's `WebcamProviderPlugin` API — snapshots are grabbed from the live stream, so no second camera pipeline to configure. +- **Mobile friendly:** BitBang URL works on phones and tablets. +- **PIN protection:** Optional PIN required to access the remote URL. + +## How it works + +- The `bitbang-python` package handles WebRTC signaling, identity, and the ASGI interface. +- This plugin wraps it with OctoPrint integration: settings UI, `WebcamProviderPlugin` hooks, camera auto-detect, CSRF-safe cookie handling, and the JavaScript that injects the `