Skip to content

Quick Start

Lucio edited this page Jun 6, 2026 · 10 revisions

Quick Start — Snapmaker U1

This guide walks you from a stock, factory-fresh Snapmaker U1 to a fully enrolled printer ready for plugins. The whole process takes about 10 minutes, most of which is the printer rebooting.


Prerequisites

Before you start, make sure you have:

  • A Snapmaker U1 connected to your WiFi network
  • The Bespok3d app installed on your computer (macOS, Windows, or Linux) — [download link]
  • Your U1's SSH password — the default is snapmaker; change it in the Snapmaker UI if you already have

The app communicates with your printer over your local network. Both your computer and the printer must be on the same WiFi.


Step 1 — Add your printer

Open the Bespok3d app. Click Add printer in the top header:

  1. If your printer appears in the discovery list, select it — mDNS finds it automatically
  2. If it doesn't appear, switch to Manual and enter its IP address

The Add a printer dialog, with the Scan and Manual tabs

The printer appears in the header's printer selector with a status dot. At this point it's online but not yet managed — the base layer hasn't been installed yet.


Step 2 — Enroll your printer

Enrollment installs the Bespok3d base layer on your printer. This is a one-time process that:

  • Enables the overlayfs write layer so changes survive reboots
  • Creates the /userdata/bespok3d/ persistent workspace
  • Hooks into the boot sequence so plugins start automatically
  • Installs and starts the Bespok3d daemon

To start enrollment:

  1. Click Enroll next to your printer (or open Settings → Printers and click Enroll there)
  2. Enter your SSH credentials (user: root, password: snapmaker by default)
  3. Click Start enrollment

The enrollment progress screen shows each step as it runs. The printer will reboot once during enrollment — this is expected. The app waits for it to come back automatically.

What the enrollment steps do

Step What happens
Preparing the printer Backs up WiFi credentials to persistent storage, creates /oem/.debug to enable the overlay write layer
Persisting WiFi Moves DHCP leases to persistent storage and pins the WiFi MAC address
Rebooting Restarts the printer; app waits up to 5 minutes
Creating workspace Creates /userdata/bespok3d/ directory tree
Installing startup manager Installs S99bespok3d — the plugin init dispatcher
Wiring into boot Patches S90lmd to hand control to S99bespok3d at boot
Stabilising network Clears stale DHCP lease data; pins the WiFi MAC address
Patching nginx Adds an include hook so plugins can expose their own endpoints
Klipper/Moonraker includes Creates include directories so plugins can drop in their own configs
Deploying daemon Uploads the Bespok3d daemon
Generating TLS cert Creates a self-signed cert for secure daemon communication
Enrolling credentials Writes your GPG key and bearer token to the printer's access list
Starting daemon Launches the daemon and verifies it responds
Verifying Final sanity check: workspace present, startup script installed, daemon alive

Total time: 3–8 minutes depending on your network speed and how long the printer takes to reboot.

If a step fails

The enrollment screen shows which step failed and the error message. Click Retry from this step to resume without redoing earlier steps — enrollment is fully idempotent.


Step 3 — Verify

After enrollment completes, the printer's status dot turns green and shows managed. The Bespok3d daemon is running on your printer and ready to accept plugin installs.


Step 4 — Browse and install plugins

The plugin catalog is now available in the main app window. Browse all available plugins, filter by category and trust tier, and click any card to open its detail panel. The detail panel shows what the plugin does, what it requires, and what files and endpoints it creates on your printer.

Click Install on any plugin card to install it to your printer. The app transfers the package to the printer over the daemon connection and shows live progress. Installed plugins appear in your installed list immediately.


After a firmware update — OTA recovery

Snapmaker firmware updates wipe /home/lava/ (Klipper and Moonraker sources). Your plugin files in /userdata/bespok3d/ survive the update, but the symlinks into Klipper and Moonraker need to be re-created.

Bespok3d detects this automatically. After a firmware update, the next time you open the app with that printer selected you'll see a yellow recovery banner at the top of the window listing how many plugins need recovery.

To recover:

  1. Click Recover now in the banner (or any time from Settings → Printers → Recover)
  2. The enrollment screen opens in recovery mode — enter your SSH credentials and click Start
  3. Bespok3d re-enrolls the printer (re-creates the overlay, re-installs the daemon)
  4. Once the daemon is back up, plugins are re-applied automatically in dependency order
  5. A results modal shows which plugins recovered successfully and which (if any) were deactivated

Plugins that cannot be re-applied are deactivated: their files are kept in place but their symlinks are removed. A deactivated plugin shows in the results as failed with a reason. Check for an updated version of the plugin in the catalog.


Troubleshooting

Printer not appearing in discovery mDNS requires your computer and printer to be on the same network segment. Guest WiFi and some corporate networks block mDNS between clients — use the manual IP option if that's the case. You can find the U1's IP in its own touchscreen UI under Settings → Network.

Printer doesn't come back after the reboot step Wait a full minute — the U1 takes time to boot. If it still doesn't reconnect, the app will prompt you. Check that the printer is on, then use Retry from that step once it's back on the network.

A step fails with an SSH error SSH errors are usually transient. Click Retry from this step — it will reconnect and try again. If it keeps failing, confirm the printer is reachable (ping <printer-ip>) and that your SSH credentials are correct.

Enrollment completed but the status dot doesn't show managed The app pings the daemon via TCP every 15 seconds. Wait one cycle, or close and reopen Settings → Printers to trigger a fresh check. If it still shows online/unmanaged, click View history on the printer to see the enrollment log and confirm the daemon-start step completed.

Clone this wiki locally