Community-Stufe · kostenlos für die private Nutzung · ohne Konto

Hol dir Melanite.

Eine Laufzeit, drei Wege, sie zu betreiben. Es ist dasselbe Produkt — nimm den Weg, der zu der Hardware vor dir passt.

Worauf soll Melanite laufen?

Wähl die Hardware vor dir. Den Rest machen wir Schritt für Schritt zusammen.

  1. Docker Jeder PC, Server oder NAS — Windows, macOS oder Linux. In Minuten startklar. amd64 · arm64
  2. Linux-Paket Dein eigener Industrie-PC, NUC oder Raspberry Pi 5, als zwei systemd-Dienste. amd64 · arm64
  3. Raspberry Pi Ein Image für den Pi 5 und das Compute Module 5: flashen, und das Board bootet als SPS mit Touch-HMI. Pi 5 · CM5

01

Docker

Das ganze Melanite in einem Container: die Node-Engine mit ihrem Echtzeit-Prozess, die HMI, die 2D- und 3D-Ansichten, MQTT, Modbus TCP und WLED. Was ein Container nicht haben kann, sagt er dir selbst unter Einstellungen → Dieser Rechner.

  1. Speichere das als compose.yaml:

    services:
      melanite:
        image: melanite.io/melanite:latest
        container_name: melanite
        restart: unless-stopped
        network_mode: host          # found on the LAN as itself: mDNS, MQTT, pairing
        cap_add: [SYS_NICE]         # the real-time process may run at SCHED_FIFO
        ulimits: { rtprio: 99, memlock: -1 }
        volumes:
          - melanite-data:/data/melanite
          - /etc/localtime:/etc/localtime:ro
        environment:
          MELANITE_RT_STOP_TIMEOUT: "5"
          MELANITE_APP_STOP_TIMEOUT: "20"
        stop_grace_period: 30s
    volumes:
      melanite-data:
    services:
      melanite:
        image: melanite.io/melanite:latest
        container_name: melanite
        restart: unless-stopped
        environment:
          MELANITE_FLAVOR_FILE: /usr/share/melanite/flavor.desktop.json
          TZ: Europe/Berlin           # your time zone — the VM runs on UTC
          MELANITE_RT_STOP_TIMEOUT: "5"
          MELANITE_APP_STOP_TIMEOUT: "20"
        ports:
          - "5001:5001"               # the app
          - "5002:5002"               # https (a phone needs it for its microphone)
          - "1883:1883"               # the built-in MQTT broker
        cap_add: [SYS_NICE]
        ulimits: { rtprio: 99, memlock: -1 }
        volumes:
          - melanite-data:/data/melanite   # a named volume, never a Windows folder
        stop_grace_period: 30s
    volumes:
      melanite-data:
  2. Starte es — beim ersten Start wird das Image von melanite.io geladen:

    docker compose up -d
  3. Öffne http://<dieser Host>:5001 unter Linux oder http://localhost:5001 unter Docker Desktop; der Einrichtungsassistent fragt nach einem Namen und einer Admin-PIN.

Kein Internet auf dem Zielrechner?

Lade das Image-Archiv für seine Architektur, lade es in Docker, und nimm dieselbe Compose-Datei mit dem Versions-Tag statt latest:

docker load -i melanite-<version>-docker-amd64.tar.gz
# compose.yaml:  image: melanite.io/melanite:<version>
Datei Arch. Version Größe SHA-256 Herunterladen
Image-Archiv Arch.amd64 Version— Größe— — Herunterladen
Image-Archiv Arch.arm64 Version— Größe— — Herunterladen
Docker DesktopDocker unter Linux
Node-Graph, HMI, 2D und 3D, Logging, Alarme, AssistentJaJa
MQTT-Broker, Modbus TCP, WLED, NetzwerkkamerasJaJa
Echtzeit-ProzessJa — 5-ms-ZyklusJa — 5-ms-Zyklus; besser auf einem PREEMPT_RT-Host
Von Geräten im LAN gefundenÜber die freigegebenen PortsJa (Host-Netzwerk)
EtherCATNeinMit einem IgH-Master auf dem Host
Tonausgänge als synchrone LautsprecherNeinMit durchgereichtem /dev/snd

Updates: neues Image ziehen und den Container neu erstellen — deine Programme liegen im Volume melanite-data und bleiben erhalten.

02

Linux-Paket

Das volle Produkt auf einem Rechner, den du schon betreibst — ein Industrie-PC, ein NUC, ein Server oder ein Raspberry Pi 5. Eigenständig (kein .NET nötig), zwei systemd-Dienste, ein Benutzer ohne Sonderrechte. Rechner, Kernel und für EtherCAT den IgH-Master bringst du mit; Melanite sagt dir, ob sie gut genug sind.

  1. Lade das Paket für deine Architektur (Debian 12 oder 13, Ubuntu 22.04 oder 24.04):

    Datei Arch. Version Größe SHA-256 Herunterladen
    Debian-Paket Arch.amd64 Version— Größe— — Herunterladen
    Debian-Paket Arch.arm64 Version— Größe— — Herunterladen
    Tarball (jede systemd-Distribution) Arch.amd64 Version— Größe— — Herunterladen
    Tarball (jede systemd-Distribution) Arch.arm64 Version— Größe— — Herunterladen
  2. Installiere es — oder entpacke auf jeder anderen systemd-Distribution den Tarball und starte seinen Installer:

    sudo apt install ./melanite_<version>_amd64.deb
    
    # or, from the tarball:
    tar xzf melanite-<version>-linux-amd64.tar.gz
    sudo ./melanite-<version>-linux-amd64/install.sh
  3. Öffne http://<dieser Rechner>:5001, und der Einrichtungsassistent fragt nach einem Namen und einer Admin-PIN.

  4. Ist dieser Rechner bereit für harte Echtzeit? melanite-check sagt es dir, Prüfung für Prüfung, mit der Lösung:

    melanite-check                    # exit 0 = ready for hard real-time
    sudo melanite-check --hwlat=60    # also measure firmware latency (stop Melanite first)

Ein PREEMPT_RT-Kernel und ein isolierter Kern machen aus einem PC eine 1-ms-Steuerung — melanite-check gibt die genaue Kernel-Zeile für diesen Rechner aus. Deine Programme liegen in /var/lib/melanite und werden vom Paket nie entfernt, auch nicht beim Purge.

03

Raspberry Pi

Ein Image für den Raspberry Pi 5 und das Compute Module 5. Flash es, und das Board bootet direkt in Melanite — Echtzeit-Kernel, EtherCAT und die Touch-HMI, nichts weiter zu installieren. Nur der Weg, wie das Image aufs Board kommt, ist verschieden.

  1. Lade das Image (und für bmaptool seine Block-Map):

    Datei Arch. Version Größe SHA-256 Herunterladen
    Image für Pi 5 und CM5 (.wic.xz) Arch.arm64 Version— Größe— — Herunterladen
    Block-Map für bmaptool (.bmap) Arch.— Version— Größe— — Herunterladen
Wie kommt es auf dein Board?
  1. Steck die Karte in den Kartenleser und schreib das Image darauf — lsblk zeigt, welches /dev/sdX die Karte ist:

    lsblk
    sudo bmaptool copy melanite-<version>-raspberry-pi.wic.xz /dev/sdX
    
    # or without bmaptool:
    xzcat melanite-<version>-raspberry-pi.wic.xz | sudo dd of=/dev/sdX bs=4M conv=fsync status=progress
  2. Steck die Karte in den Pi 5, schließ Ethernet an und, falls vorhanden, ein Display.

  3. Einschalten. Das Gerät öffnet ein Einrichtungs-WLAN — verbinde dich mit dem Handy, und die Einrichtung öffnet sich von selbst; auf einem Touchscreen zeigt es dafür einen QR-Code.

Das Image bootet von der SD-Karte: Seine Partitionen und Updates sind darauf ausgelegt, NVMe-Boot wird daher nicht unterstützt. Lieber Raspberry Pi OS behalten? Das Linux-Paket lässt sich stattdessen darauf installieren, auf dem Standard-Kernel.

  1. Setz den nRPIBOOT-Jumper des Boards (eMMC-Boot aus), verbinde USB-C mit dem PC, versorge das Board mit Strom und mach das eMMC mit Raspberry Pis rpiboot als USB-Laufwerk sichtbar:

    git clone --depth=1 https://github.com/raspberrypi/usbboot && cd usbboot
    make && sudo ./rpiboot
  2. Schreib das Image — lsblk zeigt, welches /dev/sdX das eMMC ist:

    lsblk
    sudo bmaptool copy melanite-<version>-raspberry-pi.wic.xz /dev/sdX
    
    # or without bmaptool:
    xzcat melanite-<version>-raspberry-pi.wic.xz | sudo dd of=/dev/sdX bs=4M conv=fsync status=progress
  3. Jumper entfernen, Strom aus und wieder an. Einschalten. Das Gerät öffnet ein Einrichtungs-WLAN — verbinde dich mit dem Handy, und die Einrichtung öffnet sich von selbst; auf einem Touchscreen zeigt es dafür einen QR-Code.

Das Flashen ersetzt alles auf der Karte oder dem eMMC. Sichere vorher (Einstellungen → Sichern & Wiederherstellen). Flashe unter Linux: Der Raspberry Pi Imager unter Windows ist mit diesem Image unzuverlässig.

Prüfe, was du heruntergeladen hast

Neben jeder Datei steht ihr SHA-256, von unserem Server an der Datei selbst gemessen. Vergleich ihn vor der Installation:

sha256sum <file>          # Linux
shasum -a 256 <file>      # macOS
Get-FileHash <file>       # Windows PowerShell

Was sich in jeder Version geändert hat: das Changelog. Kostenlos für die private Nutzung, für Lehre und nicht-kommerzielle Forschung. Jede Nutzung durch ein Unternehmen braucht eine Commercial-Lizenz — siehe Preise.

Commercial-Lizenzen gibt es noch nicht zu kaufen.

Hinterlass eine Adresse, und du bekommst eine Mail, sobald es so weit ist.