-
-
Notifications
You must be signed in to change notification settings - Fork 0
Plugins
Plugins are what make your printer yours. Each plugin is a self-contained package that adds a capability — camera streaming, filament tracking, remote screen, and so on. Plugins install into /userdata/bespok3d/usr/local/plugins/<name>/ and integrate with Klipper, Moonraker, and nginx through symlinks.
All plugins listed here are confirmed working on the Snapmaker U1.
Hardware-accelerated camera streaming using the U1's built-in MIPI camera or a USB camera. Uses the Rockchip NPU for MJPEG encoding — no CPU overhead for the stream.
- Endpoints:
/snapshot.jpg(single frame),/stream.mjpg(MJPEG stream) - Requires: root access (kills
rkaiq_3A_serverto free the camera) - Autostart: yes
Mirrors the printer's built-in touchscreen to the web interface via a framebuffer capture stream. Useful for monitoring prints without physically being next to the printer.
- Autostart: yes, via
S90lmdoverride
NTAG215 RFID filament detection using the U1's built-in SPI RFID reader. Reads OpenSpool-compatible tags and writes the filament data to a shared JSON file that Moonraker-aware tools can read.
- Writes:
/userdata/bespok3d/var/db/rfid_data.json - Compatible with: OpenSpool tags, custom NTAG215 tags formatted for spool tracking
- Autostart: yes
Integrates with Spoolman — the open source filament spool tracker. Reads rfid_data.json (set by rfid-ntag) on startup and synchronises spool data with your Spoolman instance through a Moonraker component.
- Requires: rfid-ntag (for RFID-based spool detection) or manual spool entry in Spoolman
- Config: Spoolman server URL (portable across printers)
- Autostart: via Moonraker
The in-app plugin browser is in development. Until it's ready, plugins install from the command line over SSH using the POC install scripts.
Requirements: SSH access to your printer (enrollment must be complete first).
# Clone the repo
git clone https://github.com/lucio/bespok3d # replace with actual URL
cd bespok3d/POC_src
# Install a plugin — example: camera
./plugins/camera-hw-accel/install.sh root@<printer-ip>See POC_src/README.md in the repo for full installation instructions, exact commands, and known issues per plugin.
Plugins survive Snapmaker firmware updates. The canonical source of every installed file lives in /userdata/bespok3d/ — the persistent partition that OTA never touches. What OTA wipes is /home/lava/ (Klipper source, Moonraker source). After an OTA update:
- Re-run each plugin's
install.sh— this recreates symlinks from Klipper/Moonraker dirs into/userdata/bespok3d/ - Everything else (nginx, init scripts, Bespok3d config) is already in persistent storage and requires no action
The base layer itself (enrollment) is also persistent — you never need to re-enroll after an OTA.
- In-app plugin browser with one-click install
- Plugin updates and version management
- USB airgap install (drop a signed
.b3pbundle on a USB stick, auto-installs on the printer) - Plugin configuration UI
Bespok3d - open source under AGPL-3.0. Look mom, custom printer and no SSH.
Get started
Reference
Advanced