En este post hablo de como pude desbloquear un televisor Konka KP2108 chasis K20SA311U, pues en la pantalla solo aparecía un candado y cuatro guiones, obvio que cuando pasa esto el tv no responde a nada, solo apaga o enciende.
Cuando vi el problema que tenía enfrente pensé, este es un reto más (me gustan los retos) y previendo que esto me podía costar un poco, lo primero que hice fue sacar la EEPROM y guardar un respaldo, además coloque un socket para esa memoria en el chasis del televisor, todo porque imaginaba que la batalla sería dura (no me equivoqué en eso).
Primer prueba de desbloqueo fue borrar esa memoria (clear buffer + write device) o sea dejarla en blanco con FF luego la coloqué en el socket, probé el televisor y el candado ya no aparecía (desbloqueado) el resultado aunque bueno pero no servía según criterios de calidad, ¿a que me refiero? Pues resulta que la imagen estaba bien pero con leve desajuste vertical en parte superior e inferior.
Ese desajuste no es ningún problema, el inconveniente es no saber como poder ingresar al modo de servicio para corregir ese detalle.
Pues mi siguiente opción fue ir a DTForum en busca de ese dump y ahí estaba, gracias a que un colega ya lo había subido, entonces lo descargué.
Grabé ese dato en la memoria, luego la coloqué nuevamente en el televisor y estaba muy bien, todo correctamente ajustado y con eso podía terminar todo… pero resulta que yo no quedaba satisfecho con eso, pues el deseo de encontrar el punto exacto del bloqueo en el interior de la memoria me impulsaba a más y por eso empecé a investigar.
Y esa investigación también quedará en mis apuntes personales como también en este blog por si en un futuro tengo o tienes un caso similar en uno de estos televisores amigo lector.
Sabías que cada valor que ves cuando abres el PonyProg u otro programa similar es un byte y ese byte está compuesto de 8 bits y que esos bits están expresados en un valor hexadecimal que puede ser desde 00 hasta FF, que también esas FF significan 255 en decimal y que en números binarios 1 significa activado, encendido o nivel alto y 0 es desactivado, apagado o nivel bajo, entonces esos 8 bits cuando están activados es así: 11111111 en binario, o FF en hexadecimal ¡qué enredo!
Pues yo, para investigar en que posición se activa el bloqueo, y aprovechando que de antemano coloqué un socket para la memoria me puse a editar el dump desbloqueado que baje de DTForum con el fin de bloquearlo (ingeniería inversa), mejor dicho me puse a dañarla por etapas con el programador, pues si abres el PonyProg verás que la primer fila esta identificada así: 000000), entonces en toda esa fila hay 16 valores así como todas las demás.
Pues esos 16 valores los sustituí a cada uno por FF o sea si en esos valores habían parámetros de activación quedarían activados todos incluido el bloqueo, si aun no has entendido, te cuento que lo que pretendía era ir descartando valores hasta encontrar el sitio exacto del bloqueo, y en esa primer fila no encontré nada, porque cuando volví a poner la memoria en el televisor seguía desbloqueado eso sí con diferentes desajustes de imagen, con razón ya que los valores originales los había sustituido tal como acabo de explicar.
Antes de continuar con la segunda fila (000010)) regresé los datos originales a la fila uno, pues en la segunda fila hice lo mismo del primer procedimiento y el televisor todavía no se bloqueaba y fue hasta que llegué a la fila numero 5 (000040)) cuando el televisor en la prueba apareció bloqueado.
Ahora que llegué a la fila correcta, había que empezar a descartar los valores y para no hacerlo uno por uno, lo hice de ocho en ocho aprovechando que cada fila cuenta con 16 valores y están divididos en dos grupos, pues hice lo que acabo de contar y para no alargar la historia, te cuento que el televisor se bloqueo en el primer grupo de 8 valores, ahora había que empezar a probar en ese grupo, valor por valor.
Pues de esa forma meticulosa, con mucha paciencia y concentración mental llegué hasta el valor numero 71 (byte 71) situado en ese grupo y ahí encontré el bloqueo al agregar las FF, ahora sabiendo lo que había en ese valor (Byte) empecé a buscar el bit que se encarga de activar el bloqueo.
Pues buscar ese bit de activación se facilitó un poco, gracias a que en el principio guardé un respaldo de la EEPROM con bloqueo activado, pues el Byte 71 en esa EEPROM estaba con un valor de F8 hexadecimal (11111000 en binario), eso quería decir que estaban activados los bits 3, 4, 5, 6 y 7; con esa referencia la idea fue activar bit por bit, pues empecé con el tres, entonces grabé en el byte 71 el valor de 08 hexadecimal (1000 en binario) que equivale al bit 3 activado, probé el televisor y no era ese el bit que yo buscaba ya que no apreció el candado en pantalla… todavía.
Continué probando con el siguiente (bit 4) y nada, hasta que llegué al bit 6 y lo activé, o sea grabe 40 hexadecimal (1000000 en binario) cuando probé el televisor, el candado apareció.
Pues el bit 6 en el interior del byte numero 71 es el que activa (1) o desactiva (0) el candado en este televisor Konka KP2108, subrayo eso porque esto no aplica para otra marca y todo lo que escribí y estudié no era necesario ya que con el dato que baje de DTForum era suficiente, pero la curiosidad de investigar y aprender mas me llevó hasta ese resultado, que por supuesto me llenó de satisfacción encontrar el lugar exacto del candado.
Las imágenes te pueden ayudar a entender un poco mejor todo lo explicado en este post, pues creo que con todo lo expuesto te pude haber confundido bastante, más aun sino sabes sobre los tipos de numeración empleados y creo que para complementar este tema pronto publicaré algo al respecto.
En cuanto a este televisor Konka KP2108, en este post del blog Anotaciones electrónicas podrás encontrar más información incluidos los datos de la memoria EEPROM, hasta luego.