Eurorack Multiple STL – passives Signal-Multitool einfach selbst bauen

Eingebautes passives 4×4 Eurorack Multiple mit türkisfarbener Frontplatte neben einem Behringer Envelope Generator Modul im Eurorack-Gehäuse.

Ob Audio, CV oder Gate – ein Eurorack Multiple gehört zur absoluten Grundausstattung in jedem modularen Synthesizer-System. In diesem Beitrag zeige ich dir, wie du dir ganz einfach ein passives Multiple selbst bauen kannst, inklusive kostenloser STL-Dateien zum Selberdrucken.

Was ist ein Eurorack Multiple?

Ein Multiple (auch „Mult“ genannt) verteilt ein eingehendes Signal auf mehrere Ausgänge. Gerade bei Modulationen wie LFOs oder Hüllkurven ist das extrem nützlich, wenn man einen Signalverlauf an mehreren Stellen im Patch verwenden möchte.

Passive Multiples benötigen keine Stromversorgung und lassen sich super simpel aufbauen – perfekt für DIY-Fans und Sparfüchse.

CAD-Ansicht eines 3D-modellierten 2×4 Eurorack Multiples mit zwei Gruppen à vier Buchsen in FreeCAD.

Zwei Designs, kostenlos als STL

Ich habe zwei Varianten gestaltet, die du kostenlos auf Cults3D herunterladen kannst:

  • 2×4 Multiple – zwei unabhängige Gruppen mit je vier Buchsen und 4×4 Multiple – vier Gruppen mit je vier Buchsen für maximale Flexibilität
    👉 STL auf Cults3D herunterladen

Die Frontplatten sind so designt, dass handelsübliche 3,5-mm-Klinkenbuchsen einfach eingesteckt und mit Muttern verschraubt werden können.


Günstige Buchsen clever nutzen

Ich verwende in meinen Builds besonders günstige Klinkenbuchsen, die eigentlich für Video-Signale gedacht sind. Diese vierpoligen Buchsen funktionieren problemlos für Audio- und CV-Signale, solange du nur die äußeren Pins (Tip, Ground).

👉 Diese günstigen 3,5-mm-Buchsen bekommst du z. B. bei Amazon: RUNCCI-YUN 3,5-mm-Mini-Klinkenbuchse* (bezahlter Link)

Wichtig: Achte darauf, beim Einbau nur die drei relevanten Kontakte zu verlöten. Der vierte kann ignoriert werden oder wird sauber isoliert, damit es keine Störungen gibt.

CAD-Ansicht eines 3D-modellierten 4×4 Eurorack Multiples mit vier Gruppen à vier Buchsen in FreeCAD.

Aufbau: So einfach geht’s

  1. STL herunterladen und drucken – beide Varianten sind auf 3D-Druck mit Standard-Filament optimiert (z. B. PLA)
  2. Buchsen einbauen – in die vorgesehenen Bohrungen stecken und mit Muttern fixieren
  3. Verdrahten – bei passiven Multiples wird einfach jede Buchse einer Gruppe miteinander verbunden (Tip and Tip, GND and GND)
  4. Einbauen und patchen! – fertig ist dein eigenes Eurorack Multiple
Verkabelung eines selbstgebauten 4×4 Eurorack Multiples mit 3,5 mm Klinkenbuchsen auf einer weißen 3D-gedruckten Frontplatte.

Noch mehr DIY fürs Rack

Wenn du dein Eurorack komplett selbst drucken möchtest, schau dir auch meinen Beitrag über das selbst designte, modular erweiterbare Case an:

👉 Mein Eurorack zum Selberdrucken: Modulares 42TE-Case als kostenlose STL-Datei


Fazit

Ein passives Eurorack Multiple ist schnell gebaut, kostet kaum etwas und spart dir im Patch-Alltag viele Kabel und Nerven. Mit den kostenlosen STL-Dateien und den clever genutzten günstigen Buchsen kannst du direkt loslegen.

Eurorack Multiple STL – günstiger, einfacher und nerdiger geht’s kaum.

Wenn APC „BYE“ sagt und MQTT „Hello“ – Wie ich meine USV smarter machte als nötig

Geöffnete USV mit visualisierter Verbindung von RS232 über einen Netzwerkadapter zu MQTT, inklusive stilisierter Codefragmente

Einleitung

Alte Technik muss nicht verstauben – vor allem nicht, wenn sie noch zuverlässig Strom puffert. In meinem Fall: eine APC Smart-UPS SC420 aus einem ausrangierten Wechselautomat – und die perfekte Gelegenheit, eine APC USV an MQTT anzubinden. Denn nur weil ein Gerät alt ist, heißt das nicht, dass es nicht noch etwas zu sagen hat. Und genau das macht es jetzt – über MQTT. – und die perfekte Gelegenheit, eine APC USV an MQTT anzubinden. Ziel: APC USV an MQTT anbinden, um Daten wie Batteriespannung, Ladezustand und Status in ioBroker nutzbar zu machen.

In diesem Artikel zeige ich dir Schritt für Schritt, wie ich die USV über RS232 und einen Netzwerk-Adapter von Waveshare mit einem Python-Skript auslese und an MQTT übergebe – inklusive Copy&Paste-Code, Nerd-Kommentaren und Stolperfallen.


APC USV an MQTT anbinden: Hardware-Setup

Benötigt:

RS232-Kabel selbst bauen

APC nutzt bei vielen seiner USVs eigene Signalbelegungen und akzeptiert keine Standard-RS232-Kabel. Das bedeutet: Wer einfach ein „normales“ serielles Kabel anschließt, bekommt entweder keine Verbindung – oder die USV schaltet sich sogar ab. Deshalb ist ein selbstgebautes Kabel notwendig.

Adapterkabel zum verbinden einer APC USV an einen RS232 Controller

Die richtige Zuordnung (9-polig):

  • USV TX (Pin 2) an PC RX (Pin 3)
  • USV RX (Pin 3) an PC TX (Pin 2)
  • GND (Pin 5) an GND (Pin 5)

Einrichtung des Netzwerkadapters zur MQTT-Anbindung

Nach dem Anschluss über PoE und dem Start hilft das Tool Vircom, um die IP-Adresse und DHCP einzurichten. Danach kannst du das Gerät bequem über das Webinterface konfigurieren:

  • Betriebsmodus: TCP Server
  • Port: z. B. 5000
  • Ziel-IP brauchst du nicht setzen

LXC-Container vorbereiten

Falls du ebenfalls mit Proxmox arbeitest und dein Setup zukunftssicher gestalten willst, schau dir unbedingt auch meinen Artikel über Proxmox auf IPv6 umstellen – wie, warum und die Probleme an.

Wenn du noch tiefer in das serielle APC-Protokoll einsteigen willst – inklusive aller möglichen Kommandos wie Q1, g oder R – findest du auf networkupstools.org eine exzellente Übersicht.

apt update
apt install python3 python3-pip python3.11-venv -y
python3 -m venv /opt/usv-env
source /opt/usv-env/bin/activate
pip install paho-mqtt


Python-Skript zum Auslesen der APC USV und MQTT-Anbindung

Pfad: /opt/usv_mqtt.py

import socket
import time
import paho.mqtt.client as mqtt

USV_IP = "192.168.0.21"
USV_PORT = 5000
MQTT_SERVER = "192.168.0.102"
MQTT_PORT = 1886
MQTT_USER = "ioBroker"
MQTT_PASSWORD = "digital"
INTERVAL = 60

def clean_value(raw, as_type=float):
    try:
        cleaned = raw.split(":")[0].strip()
        return as_type(cleaned)
    except:
        return None

def send_command(sock, cmd, pause=0.5):
    try:
        sock.sendall(cmd.encode())
        time.sleep(pause)
        data = sock.recv(1024).decode(errors="ignore").strip()
        return data
    except Exception as e:
        print(f"Fehler bei Befehl {cmd}: {e}")
        return "N/A"

def decode_status_flags(hex_str):
    try:
        status = int(hex_str, 16)
        flags = []
        if status & (1 << 3): flags.append("On Line")
        if status & (1 << 4): flags.append("On Battery")
        if status & (1 << 5): flags.append("Overload")
        if status & (1 << 6): flags.append("Battery Low")
        if status & (1 << 7): flags.append("Replace Battery")
        return ", ".join(flags) if flags else "Unknown"
    except:
        return "Invalid"

client = mqtt.Client()
client.username_pw_set(MQTT_USER, MQTT_PASSWORD)
client.connect(MQTT_SERVER, MQTT_PORT, 60)
client.loop_start()

while True:
    try:
        with socket.create_connection((USV_IP, USV_PORT), timeout=5) as sock:
            handshake = send_command(sock, "Y", pause=0.8)
            if "SM" not in handshake:
                print(f"[WARNUNG] Kein Handshake: '{handshake}'")
                raise Exception("USV nicht bereit")

            print("[INFO] Abfrage beginnt")

            raw_status = send_command(sock, "Q1")
            values = {
                "battery_charge": clean_value(send_command(sock, "g")),
                "battery_voltage": clean_value(send_command(sock, "b")),
                "line_voltage": clean_value(send_command(sock, "L")),
                "runtime_left_min": clean_value(send_command(sock, "j"), int),
                "status_raw": raw_status,
                "status_human": decode_status_flags(raw_status),
            }

            for key, value in values.items():
                topic = f"usv/{key}"
                client.publish(topic, value if value is not None else "N/A")
                print(f"{topic}: {value}")

    except Exception as e:
        print(f"[Verbindungsfehler] {e}")

    time.sleep(INTERVAL)


Autostart per systemd

nano /etc/systemd/system/usv-mqtt.service

[Unit]
Description=APC USV → MQTT Bridge (zebra-node)
After=network.target

[Service]
ExecStart=/opt/usv-env/bin/python /opt/usv_mqtt.py
WorkingDirectory=/opt
Restart=on-failure
RestartSec=5
User=root

[Install]
WantedBy=multi-user.target

Dann:

systemctl daemon-reload
systemctl enable usv-mqtt
systemctl start usv-mqtt


Daten in ioBroker nutzen

Die Daten landen z. B. als:

  • usv/battery_charge
  • usv/runtime_left_min
  • usv/status_human

Du kannst nun Visualisierungen bauen, smarte Trigger einrichten oder dich bequem benachrichtigen lassen – beispielsweise per Telegram, Mail oder Sprachassistent.


Fazit: APC USV an MQTT angebunden – und zwar richtig

Die Überraschung: Das alte Gerät konnte mehr, als ich erwartet hatte. Statt „BYE“ sagt es jetzt jeden Tag brav „Hello MQTT“ – und zwar mit überraschend stabilen Werten. Das gibt nicht nur ein gutes Gefühl, sondern bringt auch Transparenz ins Strom-Backup, falls es mal ernst wird. – und warnt mich frühzeitig bei Stromausfällen oder Akkuproblemen.

So wird aus einem staubigen RS232-Port ein smarter Sensor, und der Traum, eine APC USV an MQTT anzubinden, wird Realität – ganz ohne Smart-Slot-Karte oder Spezialsoftware. Außerdem macht es einfach Spaß, Technik zu übertreiben, oder? – und aus einem Blogartikel vielleicht die Inspiration für deinen eigenen Umbau?

Fragen, Ideen oder deinen eigenen Umbau? Ab damit in die Kommentare!