El monitor de las computadoras ha sido para mí como una ventana hacia su alma. Desde mis primeros encuentros con estas máquinas y sobre todo en sus primeras versiones.
Antiguamente se trataba de un gran botellón en cuyo interior, se disparaban mágicos rayos, que azotaban celdas en una sincronización extraordinaria que ni aún hoy soy capaz de describir. Por esta causa tal vez, su brillo era algo especial, atrapante y magnético, su fluorescencia calaba hondo en la imaginación de cualquiera que prestara atención. Esta radiación monocromática y de baja resolución, despertó en mí un universo de posibilidades y sueños. También sus sencillas interfaces de comandos daban un sentido del que hoy carecen estos sistemas.
En tanto las cosas fueron graficándose más y más cada vez, la imaginación se ha ido sirviéndo de lo fácil, dejando de lado un dominio de la informática desde el sentido más puro. El manejo de los códigos o comandos, lo convertía en una experiencia enigmática. La información se ocultaba tras el velo de las palabras mágicas. El acceso a una computadora, era una clase de secreto, algo que aún es posible experimentar, si sabemos ingresar desde el prompt de comandos.
Desde aquellos tiempos, las pantallas han cambiado rotundamente, han evolucionado para mostrarnos, cada vez, mayores rangos de color entre otras características. Estos progresos han sido positivos para representar imágenes con mayor fidelidad, y sin embargo, mi sueño era sencillamente, intervenir a voluntad esa proyección tan misteriosa que, permitía la comunicación entre hombre y máquina.
Al cursar mis estudios, enfrenté algunas desilusiones, pues se explicaba precisamente, poco acerca de lo que necesitaba, aunque sí recogía cierta información que me ayudaría a descifrar, algún día, todos los enigmas que me propusiera revelar.
Hasta ese momento, nunca había intentado enviar señales a los monitores analógicos, a pesar de que investigué archivos teóricos sobre su funcionamiento. Tampoco contaba en ese entonces con la tecnología o el dominio necesarios. Al cabo de unos años, adquirí una destreza suficiente como para intentar el desafío, aunque esta vez, enfrentandome a las pantallas que tenía a mi alcance y que no se parecían en nada a las que habría enfrentado de haberlo hecho antes.
No tardé en hallar dentro de mi colección, varias de estas, que examine por todos lados, en busca de información que indicara algún vínculo con su fabricante. A esas alturas, yo ya había experimentado numerosos fracasos y contadas victorias, buscando información clave de diferentes componentes, pertenecientes a diversos dispositivos, los cuales habían sido destripados al más puro estilo de Sid Phillips.
La primera pantalla que arrojó datos positivos, fue la de un antiguo teléfono, el Nokia 5110, controlada por el driver de código PCD8544. Al fin tenía entre mis manos, a un candidato que podría arrojar luz a mi destino, aunque antes de cantar victoria, habría que primero realizar mucho estudio, sobre los diferentes aspectos técnicos del artefacto en cuestión.
Debo decir que fue una gran satisfacción y una primera victoria, al poner ese primer bit de monocroma, escribiendo en la memoria interna. Esta experiencia calmó la sed en cuanto a las pantallas monocromáticas de cristal líquido, aunque en lo profundo de mi corazón, no se había saciado la sed por completo y el próximo desafío sería la conquista del color.
No fue hasta varios años después, que volvió a mí ese espíritu y la ilusión de dominar esta prueba por completo, al encontrarme con un reproductor de formato MP4 entre mis manos, el cual mostraba imágenes y animaciones básicas, aunque a color esta vez. Tras algunos intentos previos, pude percatarme que, a pesar de todo ese tiempo transcurrido desde aquel primer éxito, la información sobre las pantallas, seguía siendo un secreto aparentemente bien guardado, o tal vez poco explorado, puesto que la información era, a grandes rasgos, muy escaza, algo que solo puede notar, quien indaga de manera profunda, para comprender un hardware a niveles bajos. Esto ha de ser así, seguramente, porque los fabricantes jamás revelarían información trascendental a un potencial competidor, esto suele ser información estratégica, que solo se revela al personal autorizado.
Por fortuna para mí, ya había utilizado antes, métodos de ingeniería inversa y había en esta ocasión, dos formas de enfrentar el asunto. En la primera, tendría que hacer funcionar el sistema y desentrañar su lógica, o bien, investigar lo suficiente, como para lograrlo solamente a partir de la teoría. Al no contar con las herramientas adecuadas, no tuve opción, debía optar por el último mecanismo como el principal. A través de consecutivas mediciones, tracé un mapa que me guio hacia el controlador principal, el cual me entregaría información clave sobre su terminales, aunque solo si lograba dar con sus especificaciones técnicas.
Afortunadamente, el integrado no era como esos tumores asiáticos, que se pueden encontrar comúnmente en las luces navideñas o calculadoras de bolsillo, era por el contrario, un chip integrado, que pude identificar como ROCKSHIP NANO y cuya hoja de datos se encontraba disponible, afortunadamente. La información iba acercándome cada vez más a todas las respuestas, alejándome de la oscuridad en la que me encontraba.
Es así como pude entender que se trataba de un controlador de propósito general para multimedia, incluyendo dentro de su perfil, las pantallas de tipo TFT LCD. Tras bastante lectura comprendí que existía un estándar, la interface 8080, ampliamente utilizada en estos dispositivos. El campo de mi visión se abría paso a paso y una pista llevaba luego a la otra sucesivamente.
Lo que hice más tarde fue trazar un mapa, el cual iría completando, tan pronto como encontrara algún dato relativo al patillaje, el que más tarde utilicé como referencia, barriendo todo un campo de imágenes con los resultados obtenidos de una búsqueda, ayudado por las palabras claves que arrojaban las indagaciones. En un determinado momento, la imagen que buscaba, apareció justo ante mis ojos. Había sucedido lo imposible, eran dos imágenes que prácticamente calzaban como anillo al dedo.
Gracias a esta valiosa información, se completó el mapa que indicaba la disposición de sus terminales. Tenía ahora frente a mí, una interface paralela, en medio de la conexión a tierra y terminales de control, típicos de una interface de acceso a memoria. Los terminales de mando eran los siguientes: CS, RS, WR y RD. Tenía bastante claro la mayoría, excepto RS y adicionalmente, un par de terminales, servía de alimentación para la luz que genera el contraste de las imágenes.
La tarea, ya casi estaba completa, salvo un pequeño detalle, había reconocido el hardware y esto no sería prácticamente de ninguna ayuda, sin saber cómo era su arquitectura interna. Sin estos datos, sería imposible ejecutar de forma exitosa cualquier intento de acceso a los registros específicos, ni mucho menos tener alguna idea del efecto que podría generar alguna modificación de sus parámetros.
La última frontera se encontraba frente a mí, debía hallar una cantidad suficiente de controladores de características similares, esperando que las especificaciones de su búsqueda arrojaran resultados positivos. Entonces tendría que volver nuevamente a estudiar toda la información disponible y entrecruzar las pistas halladas, para concluir y comenzar finalmente las pruebas decisivas.
De entre los muchos documentos que leí, estos que nombro, fueron los más relevantes: Sitronix ST7735 - ILITEK ILI9163C - Sitronix ST7781R - ILITEK ILI9341. Estos arrojaron suficiente información, como para comenzar la codificación del software que debía generar dentro del microcontrolador, hecho que daría paso a la preparación del hardware prototipo.
Era un 12 de octubre del año 2017, todo lo que había soñado desde hacía tanto tiempo, estaba pronto a concluir. El controlador se hallaba programado, las conexiones estaban listas, el programa no había arrojado fallo alguno, el código compiló sin errores. Solo debía dar paso a la corriente y en cuanto esto sucediera ya no habría vuelta atrás, el software se ejecutaría y lo único que quedaría era esperar que algo muy bueno sucediera o bien algo lamentable y entonces la opaca lámina, arrojó un primer destello, luego un segundo y un tercero unos segundos después. Entre cada destello, se podía evidenciar una imagen ruidosa.
Así fue el primer contacto luego del misterioso evento, pero, tenía mis dudas, algo extraño estaba sucediendo. Revisé nuevamente todas las conexiones, cada uno de los cableados con meticulosa observación y en ella encontré, que los terminales de dato, se encontraban totalmente invertidos. Lo que en un comienzo debía ser el bit 0, era en este momento el bit 7. Había sido una confusión por causa de la simetría y probablemente también del cansancio, lo había identificado bien, pero la soldadura se hacía por el lado inverso, y esto me llevó a invertir todo el cableado como resultado.
Por fortuna no hubo fatalidades, o sino, habría sido un total desastre. Para el día 13 de octubre, ya había generado un código que permitía visualizar franjas de colores aleatorios, cuyo video publiqué esa misma tarde. Después de varios funcionamientos y pruebas con distintos códigos, la pantalla dejó de funcionar, había forzado demasiado el sistema, con una lógica TTL cuando esta debía funcionar con 3.2 voltios. Este error me hizo perder el hardware por completo, aunque afortunadamente, pude hallar otro de reemplazo, con las mismas características del anterior y que aún hoy tengo almacenado tal como se haría con el brazo de un T-800, porque para mí, esto es de incalculable valor.
A partir de este logro, las posibilidades eran enormes, el siguiente desafío se convirtió en un transmisor de imágenes, desde el computador hacia la pequeña pantalla, reconstruyendo byte a byte los datos que se transmitían, tema que será tal vez para una próxima publicación.