superx-goes-arch/docs/frostbay-protocol-notes.md

3.4 KiB

Frostbay / CoolingSystem_ONEC1 Protokollnotizen

Basisquellen:

Aus lokalem OEM-Paket bestätigt

Archivinhalt

  • GA25水冷固件_V08/CoolingSystem_ONEC1-FW-TOOL-V1.8/BLE-FW-TOOL.exe
  • GA25水冷固件_V08/CoolingSystem_ONEC1-FW-TOOL-V1.8/BLEDebug.EXE
  • GA25水冷固件_V08/CoolingSystem_ONEC1-FW-TOOL-V1.8/coolingsystem_debugger.html
  • GA25水冷固件_V08/CoolingSystem_ONEC1-FW-TOOL-V1.8/CoolingSystem_ONEC1_V08.bin
  • GA25水冷固件_V08/CoolingSystem_ONEC1-FW-TOOL-V1.8/FWConfig.ini
  • GA25水冷固件_V08/CoolingSystem_ONEC1-FW-TOOL-V1.8/HIDFirmwareUpgrad.exe
  • GA25水冷固件_V08/CoolingSystem_ONEC1-FW-TOOL-V1.8/CH375DLL64.dll
  • GA25水冷固件_V08/CoolingSystem_ONEC1-FW-TOOL-V1.8/WCHBLEDLL.dll
  • GA25水冷固件_V08/CoolingSystem_ONEC1-FW-TOOL-V1.8/接口.C

GATT-Ziele aus coolingsystem_debugger.html

  • Service: 0000ffe0-0000-1000-8000-00805f9b34fb
  • Characteristic: 0000ffe1-0000-1000-8000-00805f9b34fb
  • Device-Name-Filter: CoolingSystem_ONEC1

Firmware-/Silizium-Hinweise

  • Firmware-String: CH32V20x_BLE_LIB_V1.4
  • Das riecht ziemlich stark nach WCH-CH32V20x-BLE-Firmware.

Relevante Status-/Steuerfelder aus OEM-Kommentaren

  • state[4]: Betriebsmodus
    • 0x00 = aus
    • 0xFE = intelligent/smart
    • 0xFF = custom/fixed
  • state[5]: Fan PWM / Fan-Byte
  • state[8]: Pump PWM / Pump-Byte
  • state[6..7]: Fan RPM readback
  • state[9..10]: Pump RPM readback
  • state[11..12]: Water flow readback
  • state[13]: inlet temp
  • state[14]: outlet temp
  • state[15]: Alarmbits
  • state[16]:
    • 0xFD = RGB switch/frequency/brightness mode
    • 0xFE = custom RGB mode
  • state[17..19]:
    • bei 0xFD: switch / frequency / brightness
    • bei 0xFE: R / G / B
  • state[23..40]: Kurven-/Presetbereich
  • state[57]: Auto-RGB-Off-Zeit wenn Pumpe/Lüfter aus

Frostbay-RGB-Hinweis

Im OEM-Code tauchen drei RGB-Strips/Kanäle auf. Bitmaske:

  • 0x01 = Strip 1
  • 0x02 = Strip 2
  • 0x04 = Strip 3

Das ist Frostbay-intern wichtig, nicht automatisch identisch mit dem Super-X-Mainboard-RGB-Pfad.

Linux-/BlueZ-Notizen aus Community-Repo

Wichtig

  • Der Linux-Weg scheint über BlueZ + D-Bus machbar.
  • Ein zweiter Userspace-GATT-Client muss wohl nicht künstlich "neu verbinden", wenn BlueZ die Session schon besitzt.
  • Wichtige Zustände:
    • Connected=true
    • ServicesResolved=true
    • FFE0 in UUID-Liste
    • GATT-Objekt für FFE1 vorhanden

Bekannter Stolperstein

  • Auf dem Apex scheint der eingebaute BT-Adapter problematisch zu sein.
  • Ein externer Bluetooth-Dongle lieferte laut Community die bessere/volle GATT-Sicht.

Nerviger HID-Nebeneffekt

Beim Verbinden kann Frostbay zusätzlich ein HID-Device exposen, das Volume Up/Down-Müll erzeugt. Community-Mitigation via hwdb:

evdev:input:b0005v07D7p0000*
	KEYBOARD_KEY_c00e9=reserved
	KEYBOARD_KEY_c00ea=reserved

Danach typischerweise:

sudo systemd-hwdb update
sudo udevadm trigger /sys/class/input/eventX

Arbeitsannahme für Arch / COSMIC

Realistischster kurzer Weg:

  1. Frostbay per BlueZ sichtbar machen
  2. Services/Characteristics prüfen
  3. mit D-Bus lesen/schreiben
  4. danach kleines Python-Tool bauen
  5. optional später hhd-Plugin oder Standalone-Daemon