2019/11/13

Rescatando un touchpad



Hallé tirado el cadáver vandalizado de una Toshiba Satellite a la que le quedaba la pantalla (b140xw0 v.8), el mother, el cooler, el chip wifi (Atheros AR5B95 Wireless Network Adapter con conector mini-pcie), los mini speakers, seguro que hay una flash por ahí que no pude encontrar y el touchpad, Synaptics 920-001019-02 rev A:



Foto tomada de algún foro ruso


Primero lamenté haber tirado el circuito que había entre el touchpad y el mother, pues me había parecido que sólo le agregaba los botones físicos. Luego, cuando ví esta foto me confundí, pensé... no sé qué pensé.

https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjfJZXKpcWy30Ch1Z5iG0Vne-TB2ab055GqMhXTToXkhspy41NyEu18F5MZcOGOcwnOmNevQUxtvK3GbaLBb-Snmr6wC1f0G7paTMcaWldggPRSkiLoK7Oi7XyWBv5fBEMHNWqnO8NF5hOu/s1600/synaptic-apple-mag-g3-2_v1.PNG


Ahí me dí cuenta que esas letras amarillas estan asociadas los pines del chip y no a los test points o al conector,


Tambien me sobran cables con respecto al conector DIN, entonces reflexioné:

¿Y si 4 y 5, botón derecho e izquierdo no son salidas si no entradas al dispositivo? Eso sería razonable, en caso contrario la interfaz del lado de la computadora debería entender por un lado los mensajes del mouse y por otro los botones.

Lo que debe ocurrir es que el chip lee 4 y 5 los codifica en PS/2 data como corresponde.

Seguro que en la documentación está pero siendo un auténtico programador, cuanto más tarde en leerla ¡¡mejor!!



Ayuda que esté en Amazon como un componente aislado, pues entonces no hay dependencias intermedias.



En lo más parecido a una datasheet que hallé dice que puede ser PS/2, ADB o serial, apostaré a PS/2, respaldado por la mención en esta conversación.



Con el tester y comparando con esa datashit hice este mapeo, parece bastante compatible con esto:





pin mini din 6testpointpin chipcomentario
1 +5vT20 T2244
2 dataT103spoiler: clock
3 clkT112spoiler: data
4 switchT67
5 switchT76
6 groundT2345


Esto está respaldado por GIMP, usando pencil tool + shift. Intenté con Fuzzy Select pero la imagen no tiene la suficiente calidad.





Me ofende que con respecto al otro chip estén invertidos data y clk, igual no sé si son los mismos chips...



¿Cómo sigo? ¿Le adapto un conector mini DIN 6 y lo conecto a una PC vieja? ¿Tán fácil? Ni tanto, quizás tendría que cargarle el driver del synaptic, si no me sale nunca voy a estar seguro del motivo de la falla.

El problema es que si mirás el mapeo más arriba, Data y Clock están invertidos, no tengo documentación confiable, tengo que distinguir probando cuál es cada uno.  En las menciones a T10 y T11 en esta conversación todo parece confirmar que el pin chip 2 es data y el 3 clock, tambien en esta y esta, así que será el primer intento.


Le tendría que dar power, clock y mirar que aparece en data, que es el Camino Correcto Más Difícil Pero Más Cierto. Tengo que poner Cierto y no Seguro por que Seguro me transmite una seguridad en todo aspecto y lo más seguro es que queme algo, mejor Cierto como cercano a la Verdad.

Pero, en los programas que hay en esos links y recuerdo en el pdf, hay un protocolo a seguir, me parece improbable que por el simple hecho de darle corriente y clock aparezca algo en data, igual quizás pueda confirmar el pinout.


Los 5v me condenan a usar arduino en lugar de edu-ciaa-nxp. De paso puedo probar que funcione la conexión a PS/2 con algún dispositivo así no tengo dos incógnitas a la vez.


Arduino PS/2 a teclado o mouse


Como tengo un teensy, sigo los pasos para instalar teensyduino, que consiste en bajarse Arduino IDE e instalar, tomando nota de la ruta, bajar el instalador de teensyduino, aplicar udev rules, ejecutar el instalador de teensyduino para ver que versiones de Arduino IDE soporta. En este momento soporta 1.8.10 que es la última, ijuu!!


Next, next, los next que hagan falta y darle la ruta que recordaste antes.

Por las dudas un blinky primero: ejecutar la IDE, elegir teensy2.0++ como target, buscar el ejemplo de blinky, elegir pin 6 como led, si no baja el programa de una, configurar asi:

  • usb type: serial
  • cpu speed 16 Mhz
  • port: /dev/ttyACM0 serial (teensy 2++)
  • programmer: avr isp o avr isp mkii, tira un error pero funciona...



Luego hay que bajar y copiar las librerías de PS/2 en

~/bin/arduino-1.8.10/libraries


Conectarle un mouse y ver que anda con el ejemplo.


Por suerte tengo un cajón lleno de porquerías, por ejemplo este adaptador de un montón de cosas, incluido mini din 6 pines:


(1) Data, (3) Ground, (4) 5v, (5) Clock


Tuve que usar un teclado pues parece que tiré todos los mouses PS/2 que tenía.


Usé el ejemplo ./libraries/ps2/examples/ps2_kbd/ps2_kbd.pde con

// pin 3 data
// pin 5 clock
// kdbd(clock, data)
PS2 kbd(5,3)


Separé los pines para poder meter las puntas del osciloscopio, muy bonito, otro día exploraré el encoding.

No presté atención a qué tecla oprimí, sólo sé que 71 F0 71 vino por el serial monitor



Arduino PS/2 a touchpad


Como seguimos sin saber cual es clock y cual es data, le voy a poner una resistencia de 4k7 en serie a ver que pasa.


No pasa nada, ni al derecho ni al revés, pruebo sin resistencias:




Lo que cambié con respecto al ejemplo fue ajustar los pines en

./libraries/ps2/examples/ps2_mouse/

// pin 3 data
// pin 5 clock
// kdbd(clock, data)
PS2 mouse(5,3);


y este if para que el monitor no se llene de basura:

   // send the data back up
  if (mx != 0 || my != 0 ) {
    Serial.print(mstat, BIN);
    Serial.print("\tX=");
    Serial.print(mx, DEC);
    Serial.print("\tY=");
    Serial.print(my, DEC);
    Serial.println();
  }


Listo, anda, a otra cosa, algún día lo conectaré a algo. Dos fotitos más para quienes prefieren dibujitos a leer:



 El detalle de los cables y los puntos de soldado en los TP




El sensor pegado a la tapa de una caja de tarjetas


10 comentarios:

  1. Hola,

    estoy trasteando con un Touchpad Synaptics 920-000706-02 RevA y los pines T22 y T23 son VCC y GND respectivamente.

    Pero los pines T10 y T11 probe

    T10 Reloj
    T11 Datos

    y a la inversa, le llega corriente, pero no funciona y no encuentro su datasheet por ningún sitio encuentro parecidos y todos dicen lo mismo:

    T10 Reloj
    T11 Datos


    Solo en el enlace que pasaste tu en la página 30 indica lo contrario:

    https://www.aquaphoenix.com/hardware/ledlamp/reference/synaptics_touchpad_interfacing_guide.pdf

    ResponderEliminar
    Respuestas
    1. No puedo aportarte mucho, esta es mi única experiencia con touchpads y ps/2. Quizás apostaría a ir poniendo el clock en distintos pines, con una resistencia para evitar cortos y ver si en algún lado saltan los datos.

      Eliminar
    2. usa un adaptador de ps2 usb es mas rapido, pz el gnd es el cuadrado mas grande y el postivo es el que va a alguna condensador o resistencia, ya para datos y reloj prueba primero los pines que salen de la cinta ya que casi siempre los encuentras ahi

      Eliminar
  2. tengo el mismo touchpad y quiero reutilizarlo hay alguna manera mas simple

    ResponderEliminar
    Respuestas
    1. Hola, yo hice lo mismo pero sin Arduino, soldé el clock al t10 y la data al t11, el 5v al t20 y la tierra al cuadrado grande a la izquierda del chip

      Eliminar
    2. Como dice osas, primero comprobá bien y luego conectale directamente un cable ps/2. De todos modos te recomiendo familiarizarte primero usando un arduino o similar que es más barato de quemar que un mother, a menos que tengas un mother descartable.

      Eliminar
  3. Buenas. yo Tengo EXACTAMENTE Ese Touch Pad Synaptics 920-001019-02 rev A En Una Notebook Canaima, y me he Convertido en Todo un Retrograda, & Estoy Demasiado acostumbrado a este TouchPad, & Me gustaría Pedirte ayuda, quiero saber Como conectarlo a un PS/2, Donde Tengo conecto los Cables & Cuales debo usar, Ya que quiero usarlo en mi PC De Mesa. ya que mi Laptop no me sirve Mas para lo que hago. Ademas. no tengo ni poseo nada de los Instrumentos Informáticos que usaste para identificar cada cosa de la Touchpad :( ,No tengo ningún Arduino & no tengo conocimientos de Programación como para hacerlo yo mismo. pero si tengo un poco de conocimiento como para soldar & Conectar el Cable PS/2 En la Touchpad. pero no se en donde tengo que conectarlo
    de lo contrario. me gustaría Contactarte Para Comprar te ese TouchPad que hiciste.. Claro me gustaría que tenga un PS/2 Antes que el Conector Din 6 Espero tu respuesta amigo.

    ResponderEliminar
    Respuestas
    1. Lograste conectarlo a un ps2? Hace un tiempo hice unas pruebas y me funciono bien. Saludos.

      Eliminar
  4. Daniel, me supera encargarme de prepararlo para venderlo. Tambien si no tenés nada de equipo ni experiencia, asistirte en forma remota, pues nos arriestaríamos a romper algo. Lo que te recomiendo es si tenés alguien geográficamente cercano que te pueda ayudar guiándose con esta publicación.

    ResponderEliminar
    Respuestas
    1. Nmm. Ok. :) Tengo un amigo que me puede ayudar Con soldarlo & todo lo demás. Pero bueno una pregunta rápida.
      espero no te moleste, la verdad me costo un poco entender todo este Post porque no estoy Claro en que testpoint tengo que poner Data, Clock, Vcc / 5v & Ground. & quiero saber cual es el orden Correctos. porque dices que están invertidos Data & Clock..
      Cuales son los Puntos "T##" En el panel tactil Donde tengo que conectar, Data, Clock, Vcc, Ground,

      Eliminar