TV Debugging Tool

D@rkbytes

Moderador general
En esta ocasión les comparto una herramienta muy útil en la reparación de televisores de nueva generación.
Se trata de un programa para comunicarnos con el televisor y de esta forma poder modificar varios parámetros.
Se puede hacer un respaldo de eMMC, la SPI Flash, cargar el firmware, invertir la imagen, restaurar el sistema cuando se queda en el logo, etc.
Por ahora está en su fase inicial y lo subo como versión beta.
Ya con más tiempo y con la ayuda de ustedes podré irlo mejorando.
Como siempre, espero que sea de utilidad.

Nota: las actualizaciones estarán disponibles en este mismo tema.

TVDT(beta).jpg
 

Adjuntos

  • TV Debugging Tool v1.0 (beta).rar
    38.8 KB · Visitas: 836
Su uso es muy sencillo.
Basta con tener un adaptador RS-232 a TTL que puede ser, PL2302, CP210X, FT232RL, CH340, etc.
Hasta el mismo programador CH341 permite comunicación serial quitando un puente.
También se puede usar el programador RT809F o el RT809H que igualmente permiten comunicación serial.
La ventaja de estos dos últimos es que escanean las terminales del puerto VGA del televisor y nos indican qué pin es Tx y Rx.
Para esto, debe seleccionarse la opción Auto Select, como se muestra a continuación.
TV Tool Settings.jpg
Se guarda el cambio, a continuación se presiona el botón Serial Print y comenzará el escaneo.
En la imagen anterior también se pueden ver cuáles son las terminales comunes para MStar y MediaTek.

¿Qué hacer cuando no se sabe cuál pin es Tx y Rx en el televisor?
Lo primordial es tener un osciloscopio y buscar en qué pin vemos señal. Ese pin será Tx, y aquí ya es más tardado encontrar Rx porque obviamente este terminal no manda datos.
Así que, solo basta con colocar una resistencia de 1.2 KΩ al terminal Rx del adaptador para que sirva como atenuador por si tocamos un terminal de tierra o con un voltaje superior a 5V.
Ya con esto como "protección" porque tampoco es mucha, pero sirve, y nunca haciendo esta prueba dañé ningún adaptador, podemos soldar una aguja directamente al alambre de la resistencia, o ponerle un cable y soldar en su punta la aguja, insertarla en algún terminal del puerto VGA de los algunos mostrados en la imagen anterior, presionar el botón de acceso correspondiente al SoC (System on a Chip) del televisor.
(Previa conexión al puerto del adaptador)
Cabe mencionar que este puerto VGA es entrada y que sus voltajes son del orden de los 3.3 a 5V (Nada perjudicial para el adaptador)
El acceso al modo de depuración (Debugging) dura por unos cuantos segundos, tiempo suficiente para realizar la prueba de conexión.
Esto se dará de la siguiente forma:
1.- Desconectar el TV de la red eléctrica.
2.- Presionar el botón de acceso correspondiente.
3.- Conectar el TV a la red eléctrica.
4.- Esperar que la conexión sea exitosa.
Esto se verá cuando el televisor deje de mandar información (Log) y en la consola se muestre algo como << MStar >>#, o solo MStar>
Esto para el caso del SoC MStar, en otras tarjetas con diferente SoC, es muy similar.
Por ejemplo, en RealTek se mostrará Realtek>, pero eso depende del modo de ingreso.
Que en este caso, lo que hace este programa es entrar al modo Super Usuario o Root.
Así podemos ir probando de terminal en terminal hasta que logremos el ingreso.

Cuando ya se ha logrado la conexión, este programa nos sirve para poder ver la información que envía el televisor durante el arranque.
En él podremos encontrar el error del porqué no puede cargar el sistema, por qué se quedó en el logo de inicio, etc.
Ya encontrado el error, con este mismo programa podemos tratar de resolver el problema, ya sea restaurando el sistema, cargando el firmware o un previo respaldo, etc. ya que son varias las posibilidades de hacer que el televisor vuelva a funcionar correctamente con este programa.
Siempre y cuando el problema se trate solo de software, y este aún se encuentre en posibilidades de restaurarse.
Ya cuando un dispositivo eMMC (embedded Multi Media Card) presenta un uso de más del 70 %, será más conveniente remplazarlo y regrabar su firmware.

¿Cómo saber el estado de la eMMC?
Los programas dedicados a la programación de estos dispositivos nos muestran este tipo de información.

¿Se puede recuperar un eMMC dañado?
Sí, pero solo omitiendo los sectores dañados, lo cual no es 100 % confiable ni seguro.
Aquí es cosa de probar y ver si después de la reprogramación, el TV funciona correctamente.
Esto lo hace el programador, depende cuál, se selecciona o establece la opción de reparar, omitir o saltar sectores dañados.
Las versiones actuales del RT809H ya lo hacen por defecto, pero aún hay "bugs" y a veces fallan.
Por eso, lo mejor es ver que el estado de un eMMC se encuentre por debajo del 60 % de uso.
Y si se logra que el TV funcione bien, notificar al cliente que su TV ya tiene la eMMC gastada y que podrá volver a fallar.
(Ya ustedes sabrán de qué forma arreglar ante este inconveniente)
Yo, en lo personal, dado el diagnóstico, les sugiero el reemplazo de la eMMC con un costo bajo.
¿Por qué? porque compro en China. De 4 a 10 veces más barato que en mi país.

Voy a hacer un Off-Topic, pero es importante.
Muchas personas se quejan de los productos chinos, pero es porque no conocen su modo de producción.
Los chinos te venden la calidad que tú les quieras comprar.
Para ellos eso no es ningún problema.
Si quieres comprar barato, te venden los rezagos o sus productos de baja calidad, pero si quieres comprar caro, te venden lo fino, lo de calidad.
La calidad para ellos es algo que tú compras, no algo que ellos impongan.
El cliente eres tú, y ellos te venden conforme a la calidad que tú quieras.
En este aspecto estoy hablando de un trato directo entre comprador y vendedor, no entre lo que yo vi en una página china, lo compré y fue mentira.
No, hay que desmentir muchas cosas, y más ahora que, principalmente "ya casi todo es chino"
Yo en lo personal, me puedo pasar horas buscando el mejor precio a la mejor calidad, viendo comentarios y estrellas, hasta que finalmente me decido por un vendedor.
A tal grado que termino conociendo a un gran contacto que está dispuesto a hacerme un producto, chip o lo que sea que yo requiera por un costo mucho muy inferior y con calidad a lo que yo tenía pensado.
En pocas palabras, cubrió mis espectativas y los dispositivos me salieron muy baratos y con la calidad que yo escogí.
Así que, cada quien compra la calidad que esté dispuesto a pagar para vender a sus clientes.
Y esto aplica para el caso de los productos que compramos, en este caso... un TV
OFF-TOPIC = OFF

Nota:
No todos los televisores de nueva generación tienen puerto VGA (Video Graphics Array), algunos tienen en la tarjeta puntos específicos para el puerto UART, otras tarjetas usan el conector de audio 3.5mm, otros algún puerto HDMI, etc.
Es cuestión de buscar información y si no la hay, aplicar el método que expliqué en puntos o puertos de la tarjeta.

Como podrán ver, este programa se basa en tarjetas chinas MStar, MediaTek y RealTek, que prácticamente funcionan de la misma forma.
Ya para otras de marcas reconocidas como LG, SAMSUNG, SONY, Panasonic, etc. cada empresa tiene sus utilidades.
Y esto se podrá para sus sistemas nativos, ya que los actuales también son chinos, porque la competencia es dura.
Y como dice el viejo y conocido refrán... Si no puedes contra ellos, úneteles.
Pero bueno, viendo como funciona el gran gigante oriental, lo mejor es comprarles, y en lo genérico, poner mi marca.

¿Por qué este programa no contiene ayuda?
Porque como todos los programas de este género, está pensado para ingenieros en electrónica dedicados al ramo de la reparación de televisores y que previamente han cursado cierto tipo de actualización con respecto al tema.
Es por eso que este programa se entrega de forma directa, sin el "Help Me"
Pero no os preocupéis, que el tema estará abierto ante cualquier duda.
Y así como hay quien no entienda del tema, también habrá quien sí lo conozca y quiera aportar, lo cual sería maravilloso.
Con la colaboración de ustedes podemos hacer que este programa evolucione y dejen de pagar cursos caros, y muy malos por cierto, para poder obtener este tipo de utilidades.

Postdata:
Si algo no quedó claro... grítenme. 🥳😎
 
Una actualización y un poco de información.

1.- Se corrigió un problema que no había notado.
Esto era que no se podía conectar a puertos superiores a COM9
El problema era por un error de sintaxis al pasar el nombre del puerto a la API CreateFile.
La solución no la pude encontrar en MSDN, sino en el soporte de Microsoft: Cómo especificar puertos serie mayor que COM9
2.- Se habilita la posibilidad de escribir comandos directamente en la consola.
3.- Corrección de detalles mínimos de apariencia al ser una versión beta.

Cómo obtener el nombre del archivo de actualización en TV Smart
Sucede que muchas veces tras haber descargado el firmware para nuestro TV con el respectivo modelo de tarjeta, sea o no sea de la marca, que es lo de menos, ya que lo que importa es que el TV vuelva a funcionar, aunque muestre otro logotipo y el control remoto a usar sea otro, no lo podemos cargar. (La edición del firmware la expondré en breve como otro aporte.)
Comúnmente esto se debe a que el sistema busca un nombre específico para el archivo de actualización.
Si no lo encuentra, parecerá que el TV no responde, sin embargo, sí que lo está haciendo, pero no en pantalla.
Lo que está sucediendo lo está enviando por RS-232, con lo que llamamos "Log de depuración"
Para este tipo de situaciones es que nos sirve esta aplicación, entre otras cosas más que su uso simplifica.
Si insertamos una memoria USB en cualquier puerto del TV, con el TV apagado, esta será detectada cuando el TV se conecte a la red eléctrica.
El sistema tratará de encontrar el archivo de actualización, y si no lo encuentra, esto lo podremos ver en el log:
No allupgrade_5510_8G_1G_ref60xxx.pkg was found.jpg
Bien, ya tenemos el nombre que requiere el sistema para el firmware, o sea: allupgrade_5510_8G_1G_ref60xxx.pkg
Aquí tenemos que ser cuidadosos, si el sistema pide un ref60xxx sería muy conveniente que tuviéramos un ref61.
Suponiendo que tenemos un archivo llamado "allupgrade_5510_8G_1G_ref61.pkg", lo cambiamos a "allupgrade_5510_8G_1G_ref60.pkg" y como el sistema lo cargará, esto sí nos hará un firmware upgrade.
En dado caso que tengamos otro refxxx inferior, lo que estaremos haciendo será un firmware downgrade, de igual forma funcional y que hará que el TV vuelva a funcionar.

Cuando el firmware ha sido encontrado y comprobado, veremos lo siguiente:
Download digest.jpg
Aquí ya se está instalando el firmware y solo resta esperar.
Todo lo que va sucediendo se irá mostrando en la terminal RS-232 y por lo general, cuando el TV finaliza la instalación del firmware, lo mostrará con destellos rápidos y cambio de color en el LED de Standby.
Aquí ya se procede a desconectar el TV, esperar unos 20 segundos, volver a conectar sin la memoria USB conectada al TV y tras esperar a que el TV siga instalando el firmware, seguirá la configuración inicial del TV, al igual que cuando se hace una restauración del sistema.

Cabe mencionar algo que es importante saber...
Algunos sistemas MediaTek requieren de dos firmware, por ejemplo, si pide el firmware "allupgrade_5510_8G_1G_ref60xxx.pkg", y una vez que se instale, posteriormente pedirá otro, por ejemplo: "allupgrade_5510_8G_1G_ref61xxx.pkg"
Y esto no quiere decir que tengamos que usar otro firmware más reciente, ya que podemos usar el mismo.
Así que podemos copiar el que tenemos y renombrarlo con el nombre que vuelve a pedir.
Esto comúnmente se da cuando colocamos dentro de la memoria un firmware anterior que renombramos por el que actualmente pide.
O sea, que hará la instalación del ingresado y luego buscará el upgrade. Si lo tenemos, pues qué bien, si no, usamos el mismo pero renombrado. ;)
Nota:
Este ejemplo de instalación fue para el SoC MediaTek. En MStar, AmLogic, RealTek, etc, es muy similar.

¿Qué pasará si olvido quitar la memoria USB después de instalar el firmware?
Nada malo, el sistema guarda en su memoria no volátil unas variables: "usb_complete" y "usb_upgrade", ambas con el valor en 1
Así que hará unas comprobaciones que finalmente solo harán que la carga del sistema tarde más, pero omitirá la actualización.
Dichas variables volverán a tener el valor 0 cuando el TV sea desconectado de la red eléctrica.
Estas variables se pueden editar con este programa usando los comandos setenv y saveenv. :)

¿Es necesario que la memoria USB no tenga archivos dentro?
Esto es falso, la memoria USB puede tener los archivos y carpetas que sean.
Lo que importa es que esté formateada en FAT32 (Por ahora, tal vez en un futuro ya sea soportado el sistema NTFS)
El sistema busca nombres de archivo específicos, no es necesario formatear la memoria para que quede vacía y que solo contenga el firmware.
Cuando se hace un respaldo, tal vez sí sea necesario que esté vacía, pero solo si el respaldo excederá la capacidad disponible en la memoria USB.
Digamos qué, si tenemos espacio suficiente, y la memoria tiene archivos, si aún caben 4, 8 o 16 GB, no hay porqué formatear o eliminar archivos.

¿Qué es una eMMC?
Básicamente, lo mismo que una MMC (MutiMedia Card) pero dentro de un encapsulado BGA y lo nombraron Embedded MultiMedia Card.
O sea, una memoria NAND Flash, pero ya con la circuitería necesaria para usarla en un SoC BGA.
Así que también se puede leer y escribir como una microSD en Windows, Linux, Arduino, PIC, etc, usando un adaptador común.
Aunque esta ya es otra historia que requiere otro tema, porque me saldría de lo expuesto.

¿Notaron algo sobre los comandos?
Son comandos Linux para Android, así que, a los más avispados en este sistema operativo, les será más fácil comprender este tema.

Recuerden, cada sistema es diferente y los métodos cambian, por eso es conveniente ingresar el comando "help" para ver de lo que disponemos.

Espero que esta información sea de utilidad.
 

Adjuntos

  • TV Debugging Tool v1.1 (beta).rar
    52.2 KB · Visitas: 542
Una actualización y un poco de información.

1.- Se corrigió un problema que no había notado.
Esto era que no se podía conectar a puertos superiores a COM9
El problema era por un error de sintaxis al pasar el nombre del puerto a la API CreateFile.
La solución no la pude encontrar en MSDN, sino en el soporte de Microsoft: Cómo especificar puertos serie mayor que COM9
2.- Se habilita la posibilidad de escribir comandos directamente en la consola.
3.- Corrección de detalles mínimos de apariencia al ser una versión beta.

¿Cómo obtener el nombre del archivo de actualización en TV Smart?
Sucede que muchas veces tras haber descargado el firmware para nuestro TV con el respectivo modelo de tarjeta, sea o no sea de la marca, que es lo de menos, ya que lo que importa es que el TV vuelva a funcionar, aunque muestre otro logotipo y el control remoto a usar sea otro, no lo podemos cargar. (La edición del firmware la expondré en breve como otro aporte.)
Comúnmente esto se debe a que el sistema busca un nombre específico para el archivo de actualización.
Si no lo encuentra, parecerá que el TV no responde, sin embargo, sí que lo está haciendo, pero no en pantalla.
Lo que está sucediendo lo está enviando por RS-232, con lo que llamamos "Log de depuración"
Para este tipo de situaciones es que nos sirve esta aplicación, entre otras cosas más que su uso simplifica.
Si insertamos una memoria USB en cualquier puerto del TV, con el TV apagado, esta será detectada cuando el TV se conecte a la red eléctrica.
El sistema tratará de encontrar el archivo de actualización, y si no lo encuentra, esto lo podremos ver en el log:
Ver el archivo adjunto 292475
Bien, ya tenemos el nombre que requiere el sistema para el firmware, o sea: allupgrade_5510_8G_1G_ref60xxx.pkg
Aquí tenemos que ser cuidadosos, si el sistema pide un ref60xxx sería muy conveniente que tuviéramos un ref61.
Suponiendo que tenemos un archivo llamado "allupgrade_5510_8G_1G_ref61.pkg", lo cambiamos a "allupgrade_5510_8G_1G_ref60.pkg" y como el sistema lo cargará, esto sí nos hará un firmware upgrade.
En dado caso que tengamos otro refxxx inferior, lo que estaremos haciendo será un firmware downgrade, de igual forma funcional y que hará que el TV vuelva a funcionar.

Cuando el firmware ha sido encontrado y comprobado, veremos lo siguiente:
Ver el archivo adjunto 292476
Aquí ya se está instalando el firmware y solo resta esperar.
Todo lo que va sucediendo se irá mostrando en la terminal RS-232 y por lo general, cuando el TV finaliza la instalación del firmware, lo mostrará con destellos rápidos y cambio de color en el LED de Standby.
Aquí ya se procede a desconectar el TV, esperar unos 20 segundos, volver a conectar sin la memoria USB conectada al TV y tras esperar a que el TV siga instalando el firmware, seguirá la configuración inicial del TV, al igual que cuando se hace una restauración del sistema.

Cabe mencionar algo que es importante saber...
Algunos sistemas MediaTek requieren de dos firmware, por ejemplo, si pide el firmware "allupgrade_5510_8G_1G_ref60xxx.pkg", y una vez que se instale, posteriormente pedirá otro, por ejemplo: "allupgrade_5510_8G_1G_ref61xxx.pkg"
Y esto no quiere decir que tengamos que usar otro firmware más reciente, ya que podemos usar el mismo.
Así que podemos copiar el que tenemos y renombrarlo con el nombre que vuelve a pedir.
Esto comúnmente se da cuando colocamos dentro de la memoria un firmware anterior que renombramos por el que actualmente pide.
O sea, que hará la instalación del ingresado y luego buscará el upgrade. Si lo tenemos, pues qué bien, si no, usamos el mismo pero renombrado. ;)
Nota:
Este ejemplo de instalación fue para el SoC MediaTek. En MStar, AmLogic, RealTek, etc, es muy similar.
Un caso concreto de lo expuesto se puede ver en el SoC MT5659CHNT con tarjeta LDD.M538.B138, que aquí en México se comercializa para RCA o SANSUI.

¿Qué pasará si olvido quitar la memoria USB después de instalar el firmware?
Nada malo, el sistema guarda en su memoria no volátil unas variables: "usb_complete" y "usb_upgrade", ambas con el valor en 1
Así que hará unas comprobaciones que finalmente solo harán que la carga del sistema tarde más, pero omitirá la actualización.
Estas variables se pueden editar con este programa usando los comandos setenv y saveenv. :)

¿Es necesario que la memoria USB no tenga archivos dentro?
Esto es falso, la memoria USB puede tener los archivos y carpetas que sean.
Lo que importa es que esté formateada en FAT32 (Por ahora, tal vez en un futuro ya sea soportado el sistema NTFS)
El sistema busca nombres de archivo específicos, no es necesario formatear la memoria para que quede vacía y que solo contenga el firmware.
Cuando se hace un respaldo, tal vez sí sea necesario que esté vacía, pero solo si el respaldo excederá la capacidad disponible en la memoria USB.
Digamos qué, si tenemos espacio suficiente, y la memoria tiene archivos, si aún caben 4, 8 o 16 GB, no hay porqué formatear o eliminar archivos.

¿Qué es una eMMC?
Básicamente, lo mismo que una MMC (MutiMedia Card) pero dentro de un encapsulado BGA y lo nombraron Embedded MultiMedia Card.
O sea, una memoria NAND Flash, pero ya con la circuitería necesaria para usarla en un SoC BGA.
Así que también se puede leer y escribir como una microSD en Windows, Linux, Arduino, PIC, etc, usando un adaptador común.
Aunque esta ya es otra historia que requiere otro tema, porque me saldría de lo expuesto.

¿Notaron algo sobre los comandos?
Son comandos Linux para Android, así que, a los más avispados en este sistema operativo, les será más fácil comprender este tema.

Recuerden, cada sistema es diferente y los métodos cambian, por eso es conveniente ingresar el comando "help" para ver de lo que disponemos.

Espero que esta información sea de utilidad.
Impresionante.... Que jugadoooooorrrrr !!! Donde los demas vemos un simple arco.... el vé números con forma de arco.
 
Hola saludos a toda la comunidad de tecnicos electronicos y centro de servicios. necesito saber un poco mas del manejo de la consola,ya que si bien puedo leer el LOG en este caso una tarjeta MSTAR no entiendo cual es es siguiente paso para entrar a debug o consola ya que no puedo sin ese paso usar las teclas de servicios como actualizar firmware activar sonido,leer emmc .ect. veo que es posible que deba escribir alguna orden desde el teclado para activar la UART Pero hice todo y no tengo acceso.gracias abrazo .gerardo.-
 

Adjuntos

  • Log_ADMIRAL39.txt
    2.1 KB · Visitas: 140
  • Log_ADMIRAL39_2.txt
    1.4 KB · Visitas: 131
Actualización de año nuevo v1.2

Se añade una función especial para crear un archivo de recuperación.
Este archivo sirve para que el TV entre al modo de recuperación "Recovery Mode" en tarjetas con SoC Mstar.
Sirve para recuperar al TV cuando se queda únicamente mostrando el Logo o para corregir otro tipo de problemas.
El archivo debe ser colocado dentro de una memoria USB para poder ser usado.
Por lo general el TV debe estar desconectado de la red eléctrica, insertar la memoria USB, conectar el TV nuevamente a la red eléctrica y el proceso debe empezar automáticamente mostrando lo siguiente:
Update Software.png
Posteriormente, en pocos segundos se mostrará la siguiente pantalla:
Revovery Mode.jpg
Es igual al modo de recuperación de los teléfonos con Android.
Aquí ya podemos hacer el "wipe cache partition" y el "wipe data/factory reset"
Para moverse entre las opciones tal vez se tenga que usar un teclado de PC con conector USB o directamente con las flechas del control remoto.

Notas:
No es necesario formatear la memoria USB, ya que puede tener otros archivos y carpetas dentro, solo debe tener formato FAT32.
Es importante que se cambie el nombre del archivo por el nombre del firmware para el TV.
Este se puede cambiar al momento de ser guardado y por defecto tiene el nombre "MstarUpgrade.bin"
 

Adjuntos

  • TV Debugging Tool v1.2 (beta).rar
    58.8 KB · Visitas: 394
  • TV Debugging Tool v1.2.1.rar
    58.2 KB · Visitas: 467
  • TV Debugging Tool v1.2.2 XP Edition.rar
    59.9 KB · Visitas: 269
  • TV Debugging Tool v1.2.2.rar
    61.7 KB · Visitas: 370
  • TV Debugging Tool v1.2.3.rar
    45.7 KB · Visitas: 535
Disculpa, ¿en la versión v1.2 (beta), cuáles serían los pasos en la consola para crear el archivo de recuperación? Feliz año.
 
Última edición por un moderador:
Se añade una función especial para crear un archivo de recuperación.
Esto quiere decir que dicha función se encuentra en el menú "Funciones Especiales"
Menú Funciones Especiales.jpg
A continuación se te pedirá en dónde guardar el archivo, que obviamente debe ser dentro de una memoria USB.
Lo guardas con el nombre del firmware que requiere el TV y sería todo.
 
Atrás
Arriba