# 01 — Hardware ## Board: Youyeetoo R1 | Komponente | Detail | |---|---| | SoC | Rockchip **RK3588S** — 4× Cortex-A76 (max 2,256 GHz) + 4× A55, **NPU 6 TOPS** (3 Kerne) | | RAM | 8 GB | | OS | Armbian, Kernel 6.1.115, auf SD + eMMC | | Netz | WLAN `192.168.1.200` (primär, auto-join) / LAN `192.168.1.50` | | Funk | **Intel AX210 M.2**: BT über USB (`hci0`, Name **"Aime"**) + WiFi über PCIe (`wlP4p65s0`). Alter RTL8821CU-USB-Dongle entfernt. | | Kühlung | **Lüfterlos** (harte Anforderung). Lüfter am roten POWER-Port war unregelbar (Konstantspannung) und wurde entfernt; echter PWM-Header (FAN 2-Pin, hwmon7) bleibt ungenutzt. | ## Audio-Hardware ```mermaid flowchart TB subgraph PC["Windows-PC"] TEAMS["Teams / Medien-Wiedergabe"] end subgraph BOARD["Youyeetoo R1"] UAC2["USB-C: UAC2-Audio-Gadget
(Board erscheint am PC als Headset)"] H390["USB-A: Logitech H390 Headset
ALSA card3, 046d:0a8f"] ES(("ES8323 3,5mm
DEFEKT")) AX["AX210 Bluetooth
'Aime' = BT-Headset fürs iPhone"] end IPHONE["iPhone 'Skynet16'"] TEAMS <--> UAC2 IPHONE <-->|"HFP/eSCO (mSBC)"| AX H390 --- BOARD ``` - **Logitech H390 USB-Headset** = Mikrofon + Hörer des Nutzers. Ersetzt den **defekten ES8323**-3,5mm-Pfad (Mikrofonverstärkung stand fest auf −42,14 dB, Treiberdefekt; S16-Modus zusätzlich verbuggt → Umstieg 2026-07-07). - **USB-C zum PC = UAC2-Gadget:** Der PC sieht das Board als USB-Headset. PC-Audio kommt als ALSA-Capture `alsa_input.platform-fc000000.usb...` ins Board; Richtung Board→PC (`alsa_output.platform-fc000000.usb`) hört die Gegenseite den Nutzer. - **Headset-Inline-Tasten** (Vol +/−, Mute) = HID-Events auf `/dev/input/event5` → Daemon `aime-headset-keys.service` → `pactl`-Sink-Volume. - **Windows-Lautstärkeregler** wirkt nicht auf den Datenstrom, sondern kommt als UAC2-Mixer-Wert (`amixer -c UAC2Gadget numid=7`) → `aime-volbridge-headset.sh` pollt und setzt die Headset-Sink-Lautstärke. ## NPU-Nutzung | Aufgabe | Engine | Modell | |---|---|---| | Whisper-**Encoder** | RKNN (NPU) | `turbo-encoder-fp16.rknn` (selbst konvertiert, Kosinus-Ähnlichkeit 0,9998 zur CPU-Referenz) | | LLM-Analyse | rkllm 1.3.0 (NPU) | `gemma3-4b-w8a8g128-16k.rkllm` | | Diarization | CPU (sherpa-onnx) | bewusst CPU: RTF 0,194 ≈ NPU-Referenzwert | ## Thermik (lüfterlos!) Whisper/Diarization auf allen A76-Kernen bei Volltakt → `bigcore critical temp` → **Hardware-Schutzabschaltung** (zweimal passiert, Aufnahmen schienen „verschwunden“). Gegenmaßnahmen: ```mermaid flowchart LR START["transcribeWav() startet"] --> CAP["A76-Takt kappen
2256 → 1608 MHz
(aime-cpucap.sh, sudoers NOPASSWD)"] CAP --> WORK["Whisper + Diarization
(~72 °C statt >90 °C)"] WORK --> GUARD{"Temp > 90 °C?"} GUARD -- ja --> STOPP["SIGSTOP Whisper
bis < 78 °C, dann SIGCONT"] GUARD -- nein --> WORK WORK --> FIN["finally: Takt zurück auf 2256 MHz"] ``` - Cap umschließt **die ganze** `transcribeWav` (Whisper **und** Diarization) — Absturz #2 kam, weil die Diarization nach Whisper wieder mit Volltakt lief. - 1,8 GHz wurde getestet und **verworfen** (~90 °C, Guard-Flattern). 1,6 GHz ≈ 72 °C stabil. - Seit Whisper-Encoder auf NPU: Transkription 90 °C → **59 °C**; Cap kostet nur noch ~7 % Gesamtzeit.