Håll i hatten, här kommer en uppdatering!
Jag forskade vidare om EDID, hittade några guider om hur man kunde både läsa och skriva EDID ifrån linux, så i med en livedist Ubuntu på USB sticka i en laptop och pluggade i HDMI-kabeln och lyckades dumpa ut EDID-informationen ifrån tvn.
Guide 1 Guide 2 (jag tror det var en av dessa jag följde, det var nästan ett år sedan jag gjorde det här)
defectDump.jpg
Om man sedan läser på lite om hur EDID ska se ut så såg jag snabbt att dom 4 första byten blivit korrupta i datan tvn gett ifrån sig.
Jag lyckades dessutom hitta en dump ifrån en likadan tv på nätet vilket bekräftade att resterande data var intakt.
correctDump.jpg
Nu när jag visste vad som skulle korrigeras och såg då att checksumman som är sista byten i dumpen var korrekt så började äventyret att få datan tillbaka in i tvn. Det skulle visa sig bli lättare sagt än gjort. Lite blandade sidor på nätet beskrev att endel skärmar skrivskyddar minnet när man inte är i servicemeny osv. så jag testade alla möjliga sätt utan framgång, det jag skickade tillbaka till eepromet över HDMI'n fastnade aldrig.
Tillslut gav jag upp den metoden och skruvade isär tvn, plockade ut moderkortet och lödde loss dom eeprom samt flashminnen jag hittade och dumpade ut dessa och sökte efter datan jag tidigare läst ur men utan resultat.
Jag kollade runt lite på moderkortet och såg en IC som satt precis vid HDMI portarna med namnet SiI9287B, lite googlande på den gav att den innehåller massa godis för HDMI-switchning inklusive EDID-identifiering. BINGO!
På nätet kammade jag noll när det gällde djupare information om kretsen, ett serviceschema för en Philips tv hittades så pinouten blev känd.
Vidare forskning gav att Silicone Image blivit Lattice Semiconductor. Kontakt med deras support gav att EDID inte kan programmeras om genom HDMI-portarna utan måste göras via kretsens lokala i2c som går mot tvns huvudprocessor.
Att få tag på specarna var sen en match utan dess like (flera månaders mejlande fram och tillbaka med väntande på svar), nordiska representanten hjälpte mig med NDA, sen vidare till Lattice som vägrade lämna ut något trots NDA, till slut fick jag hjälp utav en representant i Kalifornien som löste programmeringsmanualerna på direkten.
IMG_20180924_230121 (Large).jpg
Ett
BusPirate interface köptes för att "enkelt" kunna snacka i2c ifrån datorn.
Nu i måndags så tog jag äntligen tag i att skruva isär tvn, leta upp i2c-bussen och lödde in mig på jord, data samt clock och anslöt buspiraten.
IMG_20180924_110422 (Large).jpg
IMG_20180924_230126 (Large).jpg
Jag har aldrig kommunicerat över i2c tidigare, men några timmars sniffande på tvn tillsammans med specarna för kretsen och lite guider på nätet så var jag med på matchen hur man skrev register, begärde att läsa register osv.
Jag skrev ihop lite kommandon att skicka för att dumpa ut befintlig data ifrån kretsens SRAM för att se om jag kunde snacka över i2c samtidigt som tvns processor tjötade för fullt vilket gick fint.
IMG_20180924_231609 (Large).jpg
Känns datan igen? (gula texten är ifrån i2c bussen, dumpen till höger är den gamla datan ifrån HDMI-dumpen)
Jag manipulerade datan i SRAMet och skickade sedan kommandot för att lagra SRAM->eeprom och sen var det dags att skruva ihop tvn för test!
IMG_20180924_235131 (Large).jpg
Funkade det? NÄÄÄ
En snabb koll visade dock att jag missat att första byten skulle vara 00 och inte FF som jag matat in. Dit med interfacet igen och vipps så hade jag bild ifrån HTPCn.
Mission completed!
Tack vattenfall för strömavbrottet......

Du har inte behörighet att öppna de filer som bifogats till detta inlägg.