Skip to content

Quick Start

Daniel Heinen edited this page May 9, 2026 · 1 revision

Quick Start

This page walks you from a clean checkout to your first print in roughly five minutes. For deeper detail see Installation, Configuration, and Web UI.

1. Get the code

git clone https://github.com/Django1982/ankermake-m5-protocol.git
cd ankermake-m5-protocol

2. Pick a runtime

Python (any OS, fastest first launch)

pip3 install -r requirements.txt
./ankerctl.py webserver run

Docker (Linux only)

cp .env.example .env             # edit if you want a custom port / API key
docker compose up -d
docker compose logs -f ankerctl  # follow startup

The web UI is now reachable at http://localhost:4470.

3. Connect your AnkerMake account

Open the UI and go to Setup → Account. Pick whichever fits:

Method When to use it
Import From eufyMake Studio Windows, eufyMake Studio is installed and signed in
Upload login.json / .ldb You have a file from the AnkerMake desktop or the eufyMake LevelDB cache
Manual login You only have your email / password (CAPTCHA may appear)

A green banner confirms the import. The page then shows your printer's serial number and DUID.

CLI alternative:

./ankerctl.py config import         # auto-detect cache
./ankerctl.py config login DE       # email + password (replace DE with country code)
./ankerctl.py config show           # verify

4. Set an API key (optional but recommended)

Without an API key the web server is open. Once you set one, write operations require auth:

./ankerctl.py config set-password   # generates and prints a random key

Or via env var (Docker .env):

ANKERCTL_API_KEY=my-secret-key

In the browser, append ?apikey=my-secret-key once and a session cookie is set. In a slicer, paste the key into the API Key field.

See Configuration → Authentication for details.

5. Verify printer connectivity

./ankerctl.py mqtt monitor      # Ctrl-C after seeing events scroll
./ankerctl.py pppp lan-search   # printer must appear within ~5s

If LAN search hangs forever and you are on Linux with ufw, allow UDP port 32108:

sudo ufw allow in proto udp to any port 32108

See Firewall ufw for the full background.

6. Send your first print

From the web UI

  1. Open the G-Code tab
  2. Drag a sliced .gcode file into the upload area
  3. Click Upload and print

From a slicer

Configure your slicer to use ankerctl as a print host:

  • Host: localhost (or your server IP)
  • Port: 4470
  • API Key: the key from step 4 (if set)
  • Choose OctoPrint as the protocol

Then use Send and Print in the slicer. ankerctl implements the OctoPrint-compatible /api/files/local endpoint.

See Slicer Integration for screenshots and slicer-specific tips.

7. Watch it print

The Home tab shows:

  • live camera feed (with on-screen light toggle)
  • nozzle / bed temperature chart
  • progress, current layer, speed, ETA
  • console of recent MQTT events
  • snapshot button (saves to the Snapshots gallery)

The History tab records every print to a SQLite database with thumbnails and reprint support. The Timelapse tab lists assembled MP4s from each print (requires ffmpeg and TIMELAPSE_ENABLED=true).

What to read next

Clone this wiki locally