Hirdetés

Samsung TV újjáélesztés

Egy kollega elflashelte a TV-jét, így a TV Micom procijára egy üres firmware került. A régebbi Samsung TV-kben ugyanis van egy bug, a szoftverfrissítés nem ellenőrzi, hogy van-e valami, amit lehetne frissíteni. Tehát felírta magának a Micom prociba a semmit. Mivel a Micom a TV gombjai, távirányíója, standby módja vezérléséért felel, a cucc be sem kapcsolt többet.


Szétszedve a TV

Nekem akkor érkezett meg az I2C/SPI flash íróm, így lett is dolga. Jött hát a TV is (UE32ES5700), elkezdtem keresni rajta a Micom flash-t. Nem találtam. Pár újabb típuson van olyan lehetőség, hogy egy tesztpont rövidzárásával a szoftvert újratölti backupból, de ezen nem volt (ezt még a tulaj próbálta, de nem működött).

Pár nap guglizás után kiderült, hogy a Micom egy Weltrend Wt61p805 proci. Ez egy 8052 PIC (az IBM PC/XT/ATbillentyűzetekben használt vezérlő tesója :D ), kissé extrázva. Van neki 64k belső eeprom-ja, abból hiányzik a tartalom. Amúgy a Weltrend procik jellemzően TV-kben, monitorokban, stb. találhatóak meg, standby vezérlőként.
Csak nincs mivel felírni. Sima CH340G alapú I2C íróval nem megy. Azaz maga az író oké, csak nincs program, ami lekezelné azt a Weltrend izét.

Még több kutatás után kiderült, hogy a Weltrend saját cuccával lehet felírni, vagy RT809F -el (ez drága), vagy egy Postal2 / Postal3 nevű orosz tákolmánnyal. Utóbbihoz létezik saját programozó (lehet venni), lehet csinálni hozzá Arduinoból, vagy egy LPT portos írót (SN7405 alapú) is lehet hozzá építeni. Az Arduino-s megoldás nem akart működni, úgy en bloc az Arduino as ISP sem működött nálam soha.

Viszont a Vmware host-omon volt LPT port. Adta magát, hogy a PH-n szereztem egy kivezetést, majd egy külön hdd-re telepítettem Windows-t (a saját gépemen wine-al inkább nem próbáltam volna). Ez indokoltnak látszott, tekintve, hogy a Postal-t olyan helyekről lehet letölteni, amikre inkább nem megy az ember böngészővel. :D (Később még a háló is ki volt húzva a hostról, amikor az a Windows futott.) Maga a program valami borzalom. Össze-vissza dobált UI elemek, teljesen funkciótlan képek (bal oldalt Yodát lehet váltani más képekkel), stb. Nem sok Windows Forms progit írtam, de a próbálgatáshoz használt elemeket azért ki szoktam vakarni... ő nem :D Nem mellesleg az eeprom-os része rendben van : ezerféle egzotikus cuccot ismer. Persze az LPT port használatához kell egy Micronas-os LPTDrv driver is.


Az LPT programozó rajza. Forrás : WatchMySys

Megépítettem az LPT programozót a WatchMySys blog alapján, teszteltem egy 24xx eeprom-mal. Működött.
A programozó kinézete a Postal-hoz igazodik :D , próbapanelre tettem fel ezt is, a tápot USB-ről kapja. A Weltrend proci pinout-ja alapján beazonosítottam a proci melletti tesztpontokon a +3,3V, föld, SDA, SCL vonalakat. Bíztam benne, hogy a 3,3V-os proci 5V toleráns.


A hihetetlenül bonyolult programozó áramkör

Már csak az volt hátra, hogy felírjunk valamit. Persze ehhez a TV-hez nem forog közkézen Micom firmware. Miért is forogna, hiszen ez a szoftvernek csak egy része, amit nem is nagyon kell bántani. A gyári szoftverből sem igazán lehet kinyerni.

A tulaj túrt valahonnan egy UEXXYY6xxx TV-hez való Submicom bináris file-t. Az elmélet az volt, hogy :
- nem történik semmi - ugyanott vagyunk, ahol eddig
- a Micom bootoladere azonos, így elindul, de összeakad a TV oprendszerével a Micom, a TV ezt észlelve pedig szoftvert frissít az előre odakészített pendrive-ról
- normálisan elindul a TV, mert a Samsung sem hülye, hogy minden TV-hez külön Micom-ot fejlesszen


A tesztpontok (szervizcsati) az alaplapon

A felírás ütközött a legtöbb nehézségbe. Lehetett olvasni a procit (Settings gomb, Philips fülön kiválasztani a Weltrend-et, majd a főablakban alul Philips), de a dump felétől csak FFFFF és 00000 értékek voltak a kapott adatokban. Betudtam ezt annak, hogy az update felülírta a tényleges szoftvert, és csak a bootloader maradt meg. A felírt szoftver ellenőrzése sem ment, 35k-nál "Maybe locked chip?" hibával megállt, akármit csináltam.


Postal2, és nem a játék. De a készítő láthatóan nagy rajongó :D És tényleg inkább a képernyőt fényképeztem le, minthogy még offline visszamásoljam a screenshotot :D

Nem értettem, hiszen a Weltrend-nek nincs különösebb írásvédelme, mégsem az jött vissza a chipből, amit beleküldött a program. A saját maga által először kiolvasott cumót viszont hibátlanul visszaírta. Tehát 35k felett nem a chip üres, hanem nem ad ki adatot :S

Egy orosz oldal volt a megoldás, amin egy logban látszott, hogy a proci típusát kiválasztja a felhasználó. Gondoltam hátha nem mindegy, mit detektál a Postal. De mivel váltok?


Itt már kivezettem a szervizcsatit a TV-ből, francnak volt humora állandóan szétszedni :D

A megoldás az, hogy a Weltrend procinak van ISP (In-System Programming) és nem ISP módja - a Postal2-ben ez a tudomány, hogy képes ISP-be tenni a procit, mert az eeprom csak így érhető el. Ezeket a Yoda kép alatti Set ISP / Out ISP gombbal lehet váltani... (Nem ám a Settings vagy valami értelmesebb helyen...) Az eredmény pedig az üzenetablakban jön. Nem ISP módban a Status(!!!) gombbal lehet váltani típust (ISP módban pedig a flash méretét, bár az úgyis a procitól függ). A Wt61p805-öt választva írás közben az Erase előtt volt egy Unprotect... is az üzenetek között. A verify is lement. És az ISP módból kilépve be is kapcsolt a TV! Mármint nem annyira, hogy valamennyire, hanem mintha mi sem történt volna, SmartTV logo, és működött rendesen. Ez persze azt jelenti, hogy több Samsung típusban azonos a Micom. :D


M UU kodiiikkk!

A tanulság nem csak az, hogy a Samsung szervizmenü nem játék, hanem hogy kitartónak kell lenni. Ez a kis művelet ugyanis kb. 2 hétig tartott (+ közte 3 hét várakozás a 7405-re), és összesen pár száz Ft-ba került. (Sikeresen eladtam majd' az összes 74xx-IC-m évekkel ezelőtt, és Kínából pofátlan több száz Ft-ért mérik.) Új alaplap tizen- de inkább huszonezer Ft lett volna. Mint utólag kiderült, olcsón lehet venni felprogramozott Weltrend procit ebay-en, de azt meg ki kell cserélni, és egy PQFP-nek még kevésbé állok neki, mint egy flashelésnek.

Még van hozzászólás! Tovább