Skip to content

Printers

Lucio edited this page May 25, 2026 · 7 revisions

Printers

Printers are managed in Settings → Printers. The main app window shows the plugin catalog for whichever printer is selected in the header; use the printer selector in the top bar to switch between printers.


Discovery

Bespok3d scans your local network using mDNS (Bonjour/Zeroconf) every 15 seconds. Printers running Moonraker will appear in the Add printer discovery list automatically — no IP address required.

If your network blocks mDNS between devices (common on guest WiFi or corporate networks), use the manual IP option instead. You can find the U1's IP address in the Snapmaker touchscreen UI under Settings → Network.


Adding a printer

Click Add printer in the app header:

  1. Select a printer from the discovery list, or switch to Manual and enter an IP address or hostname
  2. Give it a nickname
  3. Click Add

The printer appears in the header selector 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 next to its name:

Dot Meaning
🟢 Green Managed — daemon is running and reachable on port 4269
🟡 Yellow Online — printer is reachable but the daemon is not running (not yet enrolled, or daemon stopped)
🔴 Red Offline — printer not reachable at the last check
⚪ Grey Checking — status not yet determined

Status is refreshed every 15 seconds while the app is open. Managed status is saved to disk and restored when you relaunch the app — a previously enrolled printer will show as managed immediately on next open.


Enrollment

Enrollment installs the Bespok3d base layer and daemon on your printer. It is 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.

Retry and resume

If enrollment fails partway through, click Retry from this step on the enrollment screen. You do not need to start over — steps that already completed are skipped.

Enrollment history

In Settings → Printers, click the History button on any enrolled printer to see a log of every enrollment step, when it completed, and which adapter was used. Useful for confirming what version of the base layer is installed or diagnosing issues.


Managing printers

Nickname and icon

In Settings → Printers, each row shows an editable icon and name. Click the icon area to open the picker: choose an accent colour, upload a custom image, and adjust zoom. Changes are saved immediately.

Removing a printer

In Settings → Printers, click Remove printer on any row and confirm. Removing a printer:

  • Deletes the app's local record of the printer
  • Removes it from the printer selector and all dropdowns

It does not uninstall the Bespok3d base layer or daemon from the printer hardware. The printer keeps running exactly as before. If you re-add the same printer, you can re-enroll it without any manual cleanup.


What enrollment installs on the printer

For the Snapmaker U1, enrollment writes the following to persistent storage (all locations survive OTA firmware updates):

Location What it is
/userdata/bespok3d/ Bespok3d workspace root
/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 public key and bearer token
/userdata/bespok3d/etc/init.d/autostart/s10bespok3d-daemon Daemon autostart entry
/userdata/cfg/wpa_config.conf WiFi credentials backed up to persistent storage
/etc/udev/rules.d/70-wlan0-mac.rules Pins the WiFi MAC address to prevent IP churn

The following overlayfs files are also written (survive reboots as long as debug mode is active):

File What was changed
/etc/init.d/S99bespok3d Added — the plugin init dispatcher
/etc/init.d/S90lmd One line inserted delegating to S99bespok3d at boot
/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 pointing to Bespok3d's plugin drop-in directories. No existing config is overwritten.

Clone this wiki locally