mercoledì 5 gennaio 2022

Rendere smart una TV dumb: H96 Mini V8 modding

 Ovvero come farsi del male spendendo poco e tribolando molto.

In casa ho diverse TV, una per ogni stanza, ma solo quella della sala (un TCL C70 da 65") è "smart". Come ben saprai, al giorno d'oggi se non sei smart non sei un boomer. Volevo quindi rendere smart anche la TV della camera. In realtà volevo solo che ci girasse Kodi per vedere i miei film e le mie serie TV.

Ho quindi installato OpenELEC su un vecchio portatile con uscita HDMI, configurato Kodi come Dio comanda ed è finita lì. Il problema è che il vecchio portatile è davvero vecchio: un Core 2 Duo da 2,3GHz che regge bene fino al FullHD (anche in x265), ma già con i 60FPS fatica.

Poi ha la ventola piuttosto rumorosa (non così tanto, ok) e comunque consuma 65W, un'esagerazione.

Ho colto quindi al volo un'offerta per accaparrarmi un TV Box con supporto 4K e Android 10, l'H96 Mini V8.

Una foto rubata su internet

Quad-core a 1,2GHz, con decodifica H265 in hardware, 2GB di RAM, 16GB di storage, WiFi, LAN, HDMI 2.0, e chi più ne ha più ne metta.

Avrei pure potuto vedere YouTube o Prime Video, anche in 4K HDR 60 fps Turbo Iniezione.


O almeno così sarebbe dovuto essere

In pratica l'interfaccia è inutilizzabile, qualunque cosa sopra il FHD (1080p) a 30fps droppava frame (sia in wifi che in LAN che da file locale), con qualunque app (Kodi, VLC, YouTube...).

CPU Prime Benchmark mi dava valori oscillanti tra 4500 e 5000: non male, in effetti. Ma in fin dei conti "tanta" potenza serviva a ben poco.

Perdona la qualità del video, era solo una prova del reato...

Ho aperto un ticket col venditore che me l'ha rimborsato (e comunque erano nemmeno 20€, eh...).

Dopo qualche mese ho pensato di metterci mano: "magari aggiornando il firmware migliora" ho pensato.

Questa è la pagina ufficiale dove scaricare i file necessari.

Oltre a questi è necessario un cavo USB-A maschio-maschio, non proprio comunissimo. Fortuna ne avevo di avanzo uno da un vecchio HD esterno.

Il video di istruzioni che forniscono è molto chiaro ed esplicativo.


Peccato sia sbagliato

Dopo innumerevoli prove sono riuscito, dovresti seguire questa procedura (è sostanzialmente simile a quella del video, ma ci sono alcune importanti differenze ed alcune cose non chiare):

    1. Scarica driver, firmware ed applicazione per l'aggiornamento (FactoryTool)
    2. Installa i driver
    3. Avvia Factory Tool
    4. Seleziona la lingua inglese (guardate il video di cui sopra)
    5. Seleziona il firmware
    6. Seleziona "Restore" (e non "Upgrade")
    7. Clicca su "Run"
    8. Prendi il box e scollegalo da tutto
    9. Collega il cavo USB-A al PC
    10. Con un ago (perché lo stuzzicadenti è troppo grosso) premi il piccolo pulsante dentro il foro chiamato REC (prima o poi ci spiegheranno a cosa si riferisce questo "REC")
    11. Mentre tieni premuto, inserisci l'altro capo del cavo USB-A nella presa USB 2 (non la 1 come detto nel video)
    12. A questo punto il box è collegato tramite USB solo al PC che quindi lo sta alimentando
    13. L'aggiornamento dovrebbe partire in automatico
    14. Aspetta che termini (nella colonna di destra apparirà una riga verde)
    15. A quel punto puoi scollegarlo dal PC e vedere come è andata
Con il nuovo firmware la situazione è migliorata: la fluidità e stabilità dell'interfaccia è nettamente aumentata, i video anche in FHD@60fps sono fluidi. Il sistema è più reattivo (ora riesco anche ad entrare nella configurazioni di Android, pensa un po'). Purtroppo il 4K ancora nada: per un po' regge, poi comincia a droppare frame.

Purtroppo questo non mi basta

Si, perché ho notato che nei video 4K la CPU arriva facilmente a 99° C e gli scatti coincidono con il drop della frequenza (che da 1200 scende a 800 per qualche secondo), causata dal thermal throttling. 
Guardo fuori della finestra: "E' un bel giorno per un po' di modding."

Prendo gli attrezzi e lo smonto: nella parte inferiore c'è una freccia, da li con un piccolo strumento affilato (ho usato un plettro) si può far leva per sollevare delicatamente il coperchio, facendo tutto il giro della base.
Occhio alla freccia


Tre piccole viti reggono la minuscola scheda madre


Ecco il dissipatore, davvero molto essenziale, retto solo da un pad termico adesivo


E questo il dissipatore rimosso


Lo spazio è poco, sia sulla mobo che in altezza. Ma non sarà questo a fermarci, non credi?


Ho testato la scheda "naked" (senza il coperchio): la temperatura è scesa di almeno 20 gradi, non superando gli 85° C nemmeno sotto diversi test. CPU Prime Benchmark non scende mai sotto i 6000, anche dopo 6-7 test consecutivi.

Come primo step, quindi, ho pensato di moddare il piccolo case. 

La cover originale

Un piccolo progetto


Qui sotto le grinfie del laser a CO2


Ed ecco il risultato: una griglia di areazione come se fosse uscita così di fabbrica (lo so, hai ragione, l'adesivo blu è un po' annerito sui bordi del taglio, ma dal vivo sembra quasi voluto).
Foto non rubata da internet

Rimonto tutto in quattro e quattr'otto e lo vediamo come va: la temperatura è scesa di almeno 10-15°, forse di più. Infatti la CPU non scala più la frequenza, che rimane fissa a 1200Mhz. Sotto stress-test la temperatura arriva intorno agli 80°, mentre nella riproduzione video 4K arriva a 85-88°.
Purtroppo le prestazioni in questo frangente non cambiano molto: a seconda della quantità di bitrate del flusso video, si perde da 1 pacchetto al minuto a qualche decina: non va bene.

Il risultato era anche degno di nota. Peccato che l'estetica non basti a riprodurre i 4K.


Andiamoci giù pesante

Il dissipatore originale, fissato da un termalpad, è di semplice alluminio, con una base sottile e poche e spesse alette. Non il massimo della vita, considerato anche che è fanless. E' vero, ora la CPU non deve scalare in frequenza per via della temperatura, ma non ho molto altro su cui lavorare.
Recupero quindi un vecchio dissipatore in rame, pesa uno sproposito ma poco male. Ne taglio un  pezzo delle stesse misure del dissipatore originale (di cui uso anche il pad, per ora) e lo rimonto: temperature crollate di 20°!
Devo ulteriormente moddare anche il case, perché a questo punto l'altezza non è sufficiente, quindi armato di dremel e sega a disco lo adatto al nuovo dissipatore.

Il risultato è negativo: le temperature più basse non aiutano, i 4K sono sempre più un miraggio.

Pensiero laterale

Pur permanendo il dubbio che possa trattarsi di un problema hardware (AKA: come spesso accade, per lo meno nel settore HW, i cinesi mentono), provo ad indagare sul lato software: verifico che la cache di KODI sia configurata correttamente (lo è) ed anche se i dati disponibili sono più che sufficienti, i pacchetti vengono comunque persi. Abbasso la velocità di scaricamento del buffer, per evitare troppo overhead sulla CPU, ma cambia poco.
Smanetto anche con il "skiploopfilter", ma non sembra avere effetti.
Provo con altri player, ovvero l'immancabile VLC: 

Alla fine non mi resta che giocarmi l'ultima carta.

OVERCLOCK!

Quasi ogni cosa passata sotto le mie mani è stata in un qualche modo overclockata. Davvero. A partire dal mio primo 486 DX 2 (passato da 66 a 80MHz!) fino agli ultimi due NUC che sono diventati il mio PC principale.
Ma non ho mai occato Android: in teoria dovrebbe essere fattibile senza grosse difficoltà via software; il problema più grosso è "rootare" il box, che essendo sostanzialmente un no-brand rende le cose un filo più difficili (soprattutto per me che ho esperienza Android piuttosto limitata). Non credo di poter risolvere in questo modo il problema, ma le migliorate prestazioni termiche (che possono essere ulteriormente migliorate sostituendo il pad con la pasta e, in ultima istanza, aggiungendo una piccola ventola) lasciano ancora qualche piccolo spiraglio.