Skip to content

Printers

Lucio edited this page May 24, 2026 · 7 revisions

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.


Discovery

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.


Adding a printer

  1. Click Add printer in the Printers tab
  2. Select from the discovery list, or enter an IP manually
  3. Give the printer a nickname and optionally assign a custom icon
  4. 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.


Status indicators

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

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.

Re-enrollment

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.

Enrollment history

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.


Managing printers

Nickname and icon

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.

Removing a printer

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).


What enrollment changes on the printer

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.

Clone this wiki locally