====== Head-Unit & OS ====== ^ Eigenschaft ^ Wert ^ | SoC / Platine | Freescale **i.MX6 Dual/Quad**, SABRE-SD (''sabresd_6dq'', Modell ''SABRESD-MX6DQ'') | | OS | Android **4.4.2** KitKat (API 19) | | ABI | **armeabi-v7a** (Apps brauchen minSdk ≤ 19, keine nativen arm64-/x86-Bibliotheken) | | Kernel | ~3.0.35, auf **Board-File**-Basis — kein Device Tree | | Root | Gerootet (SuperSU + Exploit-Apps). ''ro.adb.secure=0'' | | Hersteller-Apps | ''com.adayo.*'', ''com.haoke.*''; Launcher ''com.adayo.ui.launcher'' | | Displayausgänge | **2** Videoausgänge (LVDS + HDMI), die 4 physische Anzeigen im Cockpit ansteuern | | Begleit-MCU | UART ''/dev/ttymxc3'' @115200 — Brücke zum Fahrzeug-CAN-Bus | | Mobilfunk | Quectel-LTE-Modul in der **T-Box** (nicht von Android angesteuert) | Die Head-Unit betreibt nur die Infotainment-UI. Alles, was Sicherheit oder Fahrzeug betrifft, läuft über die **Begleit-MCU** (siehe [[de:canbus|CAN-Bus]]) oder die **T-Box** (siehe [[de:connectivity|Konnektivität]]). ===== Datenfluss ===== Ein Wert wird auf dem **CAN-Bus** gesendet, vom **RL78-MCU** aufgenommen und über **UART** an **Android** weitergegeben, wo eine App ihn liest. Der Ladezustand zum Beispiel: **BMS → CAN → MCU → UART → Android → MQTT** (siehe [[de:canbus|CAN-Bus]] und [[de:cansignals|die Signalreferenz]]). Befehle laufen in die andere Richtung — **Android → MCU → CAN** — und so wird zum Beispiel die Klimaanlage eingeschaltet. ===== Teardown ===== * [[de:hardware:mainboard|Mainboard-Teardown]] — Chip für Chip: i.MX6-SoC, RL78-MCU, AK7738-Codec, FM1388-Sprachprozessor, **TEF6635 Radio-Tuner**, UM220-GNSS, DDR3, PMIC, Steckverbinder CN202.