Das Repository Marstek-Venus-Firmware-Reverse-Engineering dokumentiert die statische Analyse der Firmware von Marstek Venus D und E mit Ghidra. Ziel ist eine vollständig beschriebene, cloud-freie Modbus-TCP-Schnittstelle für eine Home-Assistant-Integration: eine komplette Registerkarte samt Skalierungsfaktoren, Eigenheiten des Protokolls und den internen CAN-/RS485-Protokollen zwischen den Prozessoren. Alle Erkenntnisse stammen aus der statischen Analyse der Firmware-Images; Live-Debugging über SWD/JTAG gab es nicht, soweit nicht anders vermerkt.

Drei Controller
Die Venus D hat drei STM32-Prozessoren (Cortex-M4F, FreeRTOS), die über einen internen CAN-Bus und interne RS485-/UART-Verbindungen zusammenarbeiten. Der Control-Prozessor (EMS) bedient die Außenwelt: Modbus TCP über WLAN (Quectel-Modul) und Ethernet (CH395), parallel einen Modbus-RTU-Stack am externen RS485, BLE sowie den Weg zu Cloud und OTA. Dazu kommen der Micro-Inverter-Controller (VNS) und das BMS. Das Control-Image wurde mit GCC gebaut und nutzt mbedTLS 2.28.10, Micro und BMS stammen von RVDS/Keil; das BMS überwacht die Zellen mit einem KA495XX-BMIC.
Inhalt des Repositories
Control_FW/: Funktionsanalyse der Control-Firmware v149.2 und v147, der Cloud-Watchdog von v150 und die Fallstudie zu den 30-Minuten-Abbrüchen.VNS_Micro_Inverter/: Funktionsanalyse, Registerkarten, Fehlercodes und der Versionsvergleich 115 zu 116.BMS/: Analyse von v117.7 und v118 sowie eine Fallstudie zu einem Fehler in einem einzelnen Pack.Modbus_RS485_TCP/: Verbindungsreferenz, Eigenheiten, Skalierungsfaktoren, die vollständige Registerkarte als CSV, das Format der Deskriptortabelle, Scan-Logs und der Bug im Lese-Serializer.CAN_Bus/: Aufbau der Arbitration-ID, Zielklassen und Funktionscodes aller 46 Sendestellen des Control im Vergleich mit den Empfängern von Micro v116 und BMS v118.BLE/: BLE-Befehlsübersicht und Querverweis auf Modbus.HM_HIE_FC41D/: das WLAN-/BLE-Kommunikationsmodul, OTA-Analyse und Anleitungen zum Mitschnitt (ohne Binaries).Scripts/undMethodik_und_Meta/: Python-Werkzeuge ohne pymodbus, Methodik, Ghidra-Workflow, Firmware-Diff-Workflow, offene Fragen.
Hinweise
Alle gerätebezogenen Daten sind anonymisiert (MAC, IP, Geräte-ID, Seriennummer, BLE-Name, WLAN-Zugangsdaten). Firmware-Images und Dekompilat werden nicht weitergegeben. Sicherheitsrelevante Funde wurden per Responsible Disclosure gemeldet und bewusst nicht veröffentlicht, bis eine Korrektur verfügbar ist. Die Arbeit ist unabhängige Forschung zur Interoperabilität und nicht mit Marstek verbunden.
Die Ergebnisse speisen unter anderem die Marstek Modbus Suite und den Marstek Offline Endpoint. Die Firmware-Images selbst stammen aus dem Firmware-Archiv.