-
-
Notifications
You must be signed in to change notification settings - Fork 0
Printers
The Printers tab is the main view in Bespok3d. It shows every printer you've added, their connection status, and whether they're enrolled.
Bespok3d scans your local network using mDNS (Bonjour/Zeroconf) every 15 seconds. Printers that advertise themselves will appear in the Add printer discovery list automatically — you don't need to know their IP address.
If your network blocks mDNS between devices (common on guest WiFi or corporate networks), enter the printer's IP address manually instead. You can find the IP in the Snapmaker UI under Settings → Network.
- Click Add printer in the Printers tab
- Select from the discovery list, or enter an IP manually
- Give the printer a nickname and optionally assign a custom icon
- Click Add
The printer appears in the list immediately. At this point it's online but not yet managed — the Bespok3d base layer hasn't been installed yet.
Each printer shows a status dot:
| Dot | Meaning |
|---|---|
| 🟢 Green | Online and managed — daemon is reachable |
| 🟡 Yellow | Online but not enrolled — printer is reachable over SSH, base layer not installed |
| 🔴 Red | Offline — printer not reachable at the last check |
| ⚪ Grey | Unknown — never been pinged or status check pending |
Status is refreshed every 15 seconds while the app is open.
Enrollment installs the Bespok3d base layer and daemon on your printer. It's a one-time process, and every step is idempotent — safe to re-run if anything goes wrong.
See Quick Start for a step-by-step walkthrough.
If enrollment fails partway through, you don't need to start over. The Retry from step button lets you resume from the failed step. Steps that already completed are skipped.
Click on a managed printer and open the History tab to see a log of all enrollment steps, when they completed, and which adapter was used. This is useful for diagnosing issues or confirming what version of the base layer is installed.
Click the printer name or icon to edit it. Icons are small images (PNG, JPG) — useful for telling printers apart at a glance in a multi-printer setup.
Click the printer's settings (⋯) and choose Remove. This removes the printer from the app — it does not uninstall anything from the printer itself. The Bespok3d base layer remains installed and the daemon keeps running. To uninstall from the printer, connect over SSH and run /userdata/bespok3d/sbin/uninstall.sh (coming soon).
For the Snapmaker U1, enrollment makes the following permanent changes to the printer's filesystem. All files are stored in persistent storage and survive OTA firmware updates.
| Location | What it is |
|---|---|
/userdata/bespok3d/ |
Bespok3d workspace root — all runtime data lives here |
/userdata/bespok3d/var/lib/demon/ |
Daemon Python source |
/userdata/bespok3d/etc/daemon/server.{crt,key} |
Daemon TLS certificate and key (unique per printer) |
/userdata/bespok3d/auth/acl.json |
Access control list — your GPG key and bearer token |
/userdata/bespok3d/etc/init.d/autostart/s10bespok3d-daemon |
Daemon autostart script |
/userdata/cfg/wpa_config.conf |
WiFi credentials backed up to persistent storage |
/userdata/bespok3d/var/db/dhcpcd/ |
DHCP lease database (moved here from volatile storage) |
/etc/udev/rules.d/70-wlan0-mac.rules |
Pins the WiFi MAC address to prevent IP churn |
Two overlay files are also patched (these are in the overlayfs write layer and survive reboots as long as the printer's debug mode is active):
| File | What was changed |
|---|---|
/etc/init.d/S99bespok3d |
Added — the plugin init dispatcher |
/etc/init.d/S90lmd |
One line inserted after the shebang, delegating to S99bespok3d
|
/etc/nginx/sites-enabled/fluidd |
One include line added for plugin location blocks |
/etc/wpa_supplicant.conf |
Symlinked to /userdata/cfg/wpa_config.conf
|
Klipper and Moonraker config files are extended with [include] directives that point to Bespok3d's plugin drop-in directories. No existing config is deleted or overwritten.
Bespok3d - open source under AGPL-3.0. Look mom, custom printer and no SSH.
Get started
Reference
Advanced