Skip to the content.

How to Print to a Snapmaker U1 From Your Phone

Snapmaker U1 Toolkit lets you send an STL, 3MF, or ZIP through Telegram, slice it locally with OrcaSlicer, review the plate and settings, verify the printer with a fresh camera image, and approve the print from your phone. The printer stays on your LAN, and the workflow does not start a print until you explicitly approve the exact prepared job.

← Back to the README

What the phone workflow includes

Phone → Telegram → local host → OrcaSlicer → previews → Moonraker upload
                                                      ↓
                           fresh bed photo → your YES → safety gate → U1

The Telegram chat is the interface, not the safety controller. Deterministic toolkit scripts handle the model, profiles, G-code, printer state, camera checks, upload, approval token, and print monitoring. Hermes and the local LLM relay the workflow’s choices and artifacts.

Before you begin

You need:

Native Windows can run the core toolkit, but the current Hermes deployment scripts target Linux paths. See Windows setup if the host is Windows.

1. Install and verify the core toolkit

git clone https://github.com/bbolinger/snapmaker-u1-toolkit.git
cd snapmaker-u1-toolkit
python3 -m pip install -r requirements.txt
cp .env.example .env

Edit .env and set SNAPMAKER_U1_HOST to the U1’s LAN IP, then run the read-only checks:

python3 tools/fetch_snapmaker_profiles.py
python3 scripts/u1_slice_workflow.py --help
python3 scripts/snapmaker_u1_status.py

Follow the main installation guide if a dependency or network check fails.

2. Prove slicing and upload-only mode first

Before involving Telegram, prepare one model from the command line without starting the printer:

python3 scripts/u1_slice_workflow.py model.3mf \
  --tool T1 --material PETG --orient auto \
  --profile 0_20_strength_snapmaker_u1_0_4_nozzle \
  --supports auto --upload-only --yes

List the profile slugs available on your host with:

python3 scripts/u1_profile_picker.py

--upload-only sends the prepared G-code to Moonraker storage with printing disabled. It is the safest end-to-end setup test.

3. Add the toolkit to Hermes

Run these commands on the Linux host or inside the Hermes container. Let each command finish before starting the next one.

hermes skills install bbolinger/snapmaker-u1-toolkit/skills/3d-printer-slicing-automation
bash deploy_to_runtime.sh
python3 adapters/hermes/install.py
bash tools/install_hermes_u1_hooks.sh

Restart the Hermes gateway from a separate terminal, then verify the operator hooks:

hermes gateway restart
bash tools/install_hermes_u1_hooks.sh --verify

If more than one Telegram user is allowed, bind approvals to the intended operator in the runtime .env:

U1_OPERATOR_BINDING=telegram:<your-numeric-telegram-user-id>

See Snapmaker U1 Telegram setup for the integration details and failure checks.

4. Send a model from your phone

In the private Telegram chat connected to Hermes:

  1. Attach one .stl or .3mf file, or a .zip containing multiple STL parts.
  2. Choose the parts, orientation, toolhead, material, profile, supports, and action when prompted.
  3. Review the plate preview, 3D toolpath view, and generated review.md settings summary.
  4. Inspect the fresh bed-camera photo.
  5. Reply YES only if the bed is clear and the prepared job is correct.
  6. Use the countdown’s CANCEL button or reply CANCEL if you need to stop the pending start.

The approval is single-use and bound to the operator, request revision, and G-code hash. A changed or stale plan is refused instead of started.

5. Monitor the print remotely

The toolkit can send first-layer, last-layer, pause/resume, and completed-print photos through Telegram. Monitoring runs as ordinary scheduled scripts and does not require an LLM turn.

The full jobs and cadence are documented under Always-on print monitoring.

Common setup problems

For detailed diagnostics, see TROUBLESHOOTING.md.


Install · Telegram setup · Headless OrcaSlicer · Safety model