From 8394f7776746d0c208b3bbc3855bfb3ea96378c8 Mon Sep 17 00:00:00 2001 From: viewit Date: Tue, 21 Apr 2026 23:57:31 +0200 Subject: [PATCH] =?UTF-8?q?docs:=20README=20aktualisiert=20+=20englische?= =?UTF-8?q?=20Version=20hinzugef=C3=BCgt?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.en.md | 227 +++++++++++++++++++++++++++++++++++++++++++++++++++ README.md | 80 +++++++++++++----- 2 files changed, 288 insertions(+), 19 deletions(-) create mode 100644 README.en.md diff --git a/README.en.md b/README.en.md new file mode 100644 index 0000000..95ac7da --- /dev/null +++ b/README.en.md @@ -0,0 +1,227 @@ +# KX-Bridge + +Connects the Anycubic Kobra X to OrcaSlicer – no Klipper, no Raspberry Pi required. + +KX-Bridge runs on your PC or NAS and provides a Moonraker-compatible interface so OrcaSlicer can control the printer directly: print start, temperatures, progress, pause/resume/cancel, AMS filament changes, print speed, and more. + +**Version:** 0.9.1-beta4 + +--- + +## Included files + +| File | Description | +|------|-------------| +| `kobrax_moonraker_bridge.py` | Bridge main program | +| `kx-bridge` | Pre-built Linux binary | +| `extract_credentials.exe` | Read credentials from AnycubicSlicerNext (Windows) | +| `extract_credentials` | Read credentials from AnycubicSlicerNext (Linux) | +| `kobra_x_orcaslicer_preset.zip` | OrcaSlicer printer profile for the Kobra X | +| `bridge.sh` | Linux service manager | +| `Dockerfile` / `docker-compose.yml` | Docker deployment | +| `.env.example` | Configuration template | + +--- + +## What's supported? + +- Printer status (temperature, progress, state) +- File transfer and print start +- Print control: pause, resume, cancel +- Temperature control during an active print +- Print speed (Silent / Normal / Sport) +- AMS filament change (load / unload) +- Light and fan control +- Web UI with dashboard, temperature cards, axis control, and camera view +- Settings and self-update directly in the browser (⚙ menu) +- OrcaSlicer connection (Moonraker protocol) + +--- + +## Requirements + +- Anycubic Kobra X in LAN mode (printer must be reachable via LAN, not only through Anycubic Cloud) +- PC, NAS, or server on the same network (Windows or Linux) +- Docker or Python 3.9+ +- Printer MQTT credentials → [Step 1](#step-1-extract-credentials) + +--- + +## Quick start + +### Step 1: Extract credentials + +The bridge needs printer-specific MQTT credentials. + +> **Important:** The printer must be in LAN mode. The credentials can only be extracted when the printer is reachable directly over LAN (not solely through Anycubic Cloud). + +Start AnycubicSlicerNext and connect to the printer (wait until the printer status is shown), then: + +**Windows:** +``` +extract_credentials.exe --write-env +``` + +**Linux:** +```bash +chmod +x extract_credentials +./extract_credentials --write-env +``` + +The credentials are saved automatically to `.env`. + +> If the result looks uncertain: `--verbose` shows all found candidates. Enter the correct value manually in `.env`. + +--- + +### Step 2: Check configuration + +```bash +cp .env.example .env +# Open .env and verify the values +``` + +--- + +### Step 3: Start the bridge + +**Option A – Docker (recommended):** +```bash +docker compose up -d +``` +Runs in the background and restarts automatically after a system reboot. + +**Option B – Linux binary:** +```bash +chmod +x kx-bridge +./kx-bridge +# Or with the service manager: +./bridge.sh start +``` + +**Option C – Python directly:** +```bash +pip install aiohttp +python kobrax_moonraker_bridge.py +``` + +--- + +### Step 4: Install OrcaSlicer profile + +1. Import `kobra_x_orcaslicer_preset.zip` into OrcaSlicer: + File → Import → Import Configs → select ZIP +2. Select Anycubic Kobra X as your printer + +--- + +### Step 5: Connect OrcaSlicer + +1. Open printer settings +2. Connection type: **Moonraker** +3. Host: `http://BRIDGE-PC-IP:7125` +4. Click "Test" — a success message confirms the connection + +--- + +## Web UI + +The bridge serves a web interface at `http://BRIDGE-IP:7125`: + +| Section | Function | +|---------|----------| +| Dashboard | Printer status, progress, temperature overview | +| Temperatures | Set nozzle and bed temperature directly | +| Motion | X/Y/Z movement, motor release | +| Print Speed | Silent / Normal / Sport | +| Fan / Light | Fan speed and work light | +| AMS | Load / unload filament | +| Camera | Live preview (if supported by the printer) | +| ⚙ Settings | MQTT credentials, poll interval, self-update | + +### Self-update + +The ⚙ menu in the web UI lets you check for new versions and update the bridge in place — no reinstallation needed. After the download the bridge restarts automatically with the new version. + +--- + +## bridge.sh – Service manager (Linux) + +```bash +./bridge.sh start # Start in background +./bridge.sh stop # Stop +./bridge.sh restart # Restart +./bridge.sh status # Show status +./bridge.sh log 50 # Show last 50 log lines +``` + +--- + +## Docker – Useful commands + +```bash +docker compose up -d # Start +docker compose down # Stop +docker compose logs -f # Follow logs +docker compose pull && docker compose up -d # Update +``` + +--- + +## Troubleshooting + +**Port 7125 already in use:** +```bash +./bridge.sh stop +./bridge.sh start +``` + +**OrcaSlicer connection test fails:** +- Check firewall: port 7125 must be reachable +- Check bridge log: `./bridge.sh log` or `docker compose logs` +- Is the printer IP in `.env` correct? + +**Credentials rejected:** +- Start AnycubicSlicerNext and connect to the printer +- Run `extract_credentials --verbose` and check all candidates +- Enter the correct value manually in `.env`, then restart the bridge + +**Temperature changes are ignored:** +- During an active print, temperature changes are sent via a separate channel — this is normal and the bridge handles it automatically. + +**Docker: Permission denied:** +```bash +sudo usermod -aG docker $USER +# Log out and back in, then try again +``` + +--- + +## Configuration reference (.env) + +| Parameter | Description | Example | +|-----------|-------------|---------| +| `PRINTER_IP` | Printer IP address | `192.168.1.100` | +| `MQTT_PORT` | MQTT port (do not change) | `9883` | +| `MQTT_USERNAME` | Username (starts with "user") | `userXXXXXXXXXX` | +| `MQTT_PASSWORD` | Password (~15 characters) | `***` | +| `DEVICE_ID` | Device ID (32 hex characters) | `xxxxxxxx...` | +| `MODE_ID` | Model ID (Kobra X default) | `20030` | + +--- + +## Security notes + +- The bridge binds to `0.0.0.0:7125` by default — use on your local network only +- `.env` contains printer credentials — do not share publicly +- All credentials are processed locally only — nothing is sent to external servers + +--- + +## Disclaimer + +This project is intended for private use and to enable interoperability between the Anycubic Kobra X and free software (OrcaSlicer). + +`extract_credentials` only reads the memory of the AnycubicSlicerNext process running on your own PC. No data is transmitted or stored anywhere other than the local `.env` file. + +This project is not affiliated with Anycubic and is not operated commercially. diff --git a/README.md b/README.md index 9193cce..49e9daa 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,9 @@ Verbindet den Anycubic Kobra X mit OrcaSlicer – ohne Klipper, ohne Raspberry Pi. -KX-Bridge läuft auf deinem PC oder NAS und stellt eine Schnittstelle bereit, über die OrcaSlicer den Drucker direkt steuern kann: Druckstart, Temperatur, Fortschritt, AMS-Farbwechsel. +KX-Bridge läuft auf deinem PC oder NAS und stellt eine Moonraker-kompatible Schnittstelle bereit, über die OrcaSlicer den Drucker direkt steuern kann: Druckstart, Temperatur, Fortschritt, Pause/Fortsetzen/Abbrechen, AMS-Farbwechsel, Druckgeschwindigkeit und mehr. + +**Version:** 0.9.1-beta4 --- @@ -11,6 +13,7 @@ KX-Bridge läuft auf deinem PC oder NAS und stellt eine Schnittstelle bereit, ü | Datei | Beschreibung | |-------|-------------| | `kobrax_moonraker_bridge.py` | Bridge-Hauptprogramm | +| `kx-bridge` | Vorkompilierte Linux-Binary | | `extract_credentials.exe` | Zugangsdaten aus AnycubicSlicerNext auslesen (Windows) | | `extract_credentials` | Zugangsdaten aus AnycubicSlicerNext auslesen (Linux) | | `kobra_x_orcaslicer_preset.zip` | OrcaSlicer-Druckerprofil für den Kobra X | @@ -20,6 +23,21 @@ KX-Bridge läuft auf deinem PC oder NAS und stellt eine Schnittstelle bereit, ü --- +## Was wird unterstützt? + +- Druckerstatus (Temperatur, Fortschritt, Zustand) +- Dateiübertragung und Druckstart +- Drucksteuerung: Pause, Fortsetzen, Abbrechen +- Temperaturregelung während des laufenden Drucks +- Druckgeschwindigkeit (Leise / Normal / Sport) +- AMS-Farbwechsel (Einziehen / Ausziehen) +- Licht- und Lüftersteuerung +- Web-UI mit Dashboard, Temperaturkarten, Achsensteuerung und Kameraansicht +- Einstellungen und Self-Update direkt im Browser (⚙-Menü) +- OrcaSlicer-Verbindung (Moonraker-Protokoll) + +--- + ## Voraussetzungen - Anycubic Kobra X im LAN-Modus (Drucker muss über LAN erreichbar sein, nicht nur über Anycubic-Cloud) @@ -35,18 +53,16 @@ KX-Bridge läuft auf deinem PC oder NAS und stellt eine Schnittstelle bereit, ü Die Bridge benötigt druckerspezifische MQTT-Zugangsdaten. -> Wichtig: Der Drucker muss sich im LAN-Modus befinden. Nur wenn der Drucker direkt über LAN (nicht ausschließlich über die Anycubic-Cloud) erreichbar ist, können die Zugangsdaten ermittelt und die Bridge genutzt werden. +> **Wichtig:** Der Drucker muss sich im LAN-Modus befinden. Nur wenn der Drucker direkt über LAN (nicht ausschließlich über die Anycubic-Cloud) erreichbar ist, können die Zugangsdaten ermittelt und die Bridge genutzt werden. -Die Zugangsdaten werden mit `extract_credentials` aus dem laufenden AnycubicSlicerNext ausgelesen. +AnycubicSlicerNext starten und mit dem Drucker verbinden (bis der Drucker-Status angezeigt wird), dann: -Vorbereitung: AnycubicSlicerNext starten und mit dem Drucker verbinden (bis der Drucker-Status angezeigt wird). - -Windows: +**Windows:** ``` extract_credentials.exe --write-env ``` -Linux: +**Linux:** ```bash chmod +x extract_credentials ./extract_credentials --write-env @@ -69,13 +85,13 @@ cp .env.example .env ### Schritt 3: Bridge starten -Option A – Docker (empfohlen): +**Option A – Docker (empfohlen):** ```bash docker compose up -d ``` Läuft im Hintergrund, startet automatisch nach Systemneustart. -Option B – Linux Binary: +**Option B – Linux Binary:** ```bash chmod +x kx-bridge ./kx-bridge @@ -83,7 +99,7 @@ chmod +x kx-bridge ./bridge.sh start ``` -Option C – Python direkt: +**Option C – Python direkt:** ```bash pip install aiohttp python kobrax_moonraker_bridge.py @@ -93,7 +109,7 @@ python kobrax_moonraker_bridge.py ### Schritt 4: OrcaSlicer-Profil installieren -1. `kobra_x_orcaslicer_preset.zip` in OrcaSlicer importieren: +1. `kobra_x_orcaslicer_preset.zip` in OrcaSlicer importieren: Datei → Konfigurationen importieren → ZIP auswählen 2. Anycubic Kobra X als Drucker auswählen @@ -102,9 +118,30 @@ python kobrax_moonraker_bridge.py ### Schritt 5: OrcaSlicer verbinden 1. Drucker-Einstellungen öffnen -2. Verbindungstyp: Moonraker +2. Verbindungstyp: **Moonraker** 3. Adresse: `http://IP-DES-BRIDGE-PC:7125` eintragen -4. Auf "Test" klicken – bei erfolgreicher Verbindung erscheint eine Bestätigungsmeldung +4. Auf „Test" klicken – bei erfolgreicher Verbindung erscheint eine Bestätigungsmeldung + +--- + +## Web-UI + +Die Bridge stellt unter `http://BRIDGE-IP:7125` eine Web-Oberfläche bereit: + +| Bereich | Funktion | +|---------|----------| +| Dashboard | Druckerstatus, Fortschritt, Temperaturübersicht | +| Temperaturen | Nozzle und Bett direkt setzen | +| Achsen | X/Y/Z-Bewegung, Motorfreigabe | +| Druckgeschwindigkeit | Leise / Normal / Sport | +| Lüfter / Licht | Lüfterdrehzahl und Drucklicht | +| AMS | Filament einziehen / ausziehen | +| Kamera | Live-Vorschau (falls vom Drucker unterstützt) | +| ⚙ Einstellungen | MQTT-Zugangsdaten, Poll-Intervall, Self-Update | + +### Self-Update + +Über das ⚙-Menü in der Web-UI kann die Bridge auf neue Versionen prüfen und sich selbst aktualisieren — ohne Neuinstallation. Nach dem Download startet sie automatisch neu. --- @@ -133,23 +170,26 @@ docker compose pull && docker compose up -d # Update ## Fehlerbehebung -Port 7125 belegt: +**Port 7125 belegt:** ```bash ./bridge.sh stop ./bridge.sh start ``` -Verbindungstest in OrcaSlicer schlägt fehl: +**Verbindungstest in OrcaSlicer schlägt fehl:** - Firewall prüfen: Port 7125 muss erreichbar sein - Bridge-Log prüfen: `./bridge.sh log` oder `docker compose logs` - Drucker-IP in `.env` korrekt? -Zugangsdaten werden abgelehnt: +**Zugangsdaten werden abgelehnt:** - AnycubicSlicerNext starten, mit Drucker verbinden - `extract_credentials --verbose` ausführen und alle Kandidaten prüfen - Richtigen Wert manuell in `.env` eintragen, Bridge neu starten -Docker: Permission denied: +**Temperaturänderungen werden ignoriert:** +- Während eines laufenden Drucks werden Temperaturänderungen über einen separaten Kanal gesendet — das ist normal und wird von der Bridge automatisch erkannt. + +**Docker: Permission denied:** ```bash sudo usermod -aG docker $USER # Neu einloggen, dann erneut versuchen @@ -172,7 +212,9 @@ sudo usermod -aG docker $USER ## Sicherheitshinweise -- Alle Zugangsdaten werden ausschließlich lokal verarbeitet +- Die Bridge bindet standardmäßig auf `0.0.0.0:7125` — nur im lokalen Netzwerk nutzen +- `.env` enthält Drucker-Credentials — nicht öffentlich teilen +- Alle Zugangsdaten werden ausschließlich lokal verarbeitet — keine Übertragung an externe Server --- @@ -180,6 +222,6 @@ sudo usermod -aG docker $USER Dieses Projekt dient der privaten Nutzung und der Herstellung von Interoperabilität zwischen dem Anycubic Kobra X und freier Software (OrcaSlicer). -`extract_credentials` liest ausschließlich den Arbeitsspeicher des auf deinem eigenen PC laufenden AnycubicSlicerNext-Prozesses. Es werden keine Daten übertragen oder gespeichert, außer in die lokale `.env`-Datei. Das Tool funktioniert nur für den Prozess des Druckers, dem du selbst gehörst. +`extract_credentials` liest ausschließlich den Arbeitsspeicher des auf deinem eigenen PC laufenden AnycubicSlicerNext-Prozesses. Es werden keine Daten übertragen oder gespeichert, außer in die lokale `.env`-Datei. Das Projekt steht in keiner Verbindung zu Anycubic und wird nicht kommerziell betrieben.