Conexiones de PCB de ingeniería inversa Samsung Powerbot vr9000

He estado leyendo durante bastante tiempo y ahora me gustaría hacer una pregunta propia.

Samsung tiene una serie de robots aspiradores, con una variedad de modelos que en su mayoría solo difieren en el software. Los PCB, etc. son los mismos, además de que el nuevo modelo tiene un módulo WiFi adicional y algunos motores de vacío necesitan un controlador de motor adicional.

Yo mismo tengo el VR20H9050UW, o también llamado VR9000, reemplazado por el 9250, que en realidad también es el 9350, que solo cuenta con un módulo WiFi adicional y una versión de firmware diferente.

Dado que los robots se ejecutan en software de código abierto (según http://opensource.samsung.com/opensource/vr9000h/seq/0 ), debería ser posible acceder al sistema de archivos y, por ejemplo, agregar las herramientas inalámbricas necesarias para el módulo WiFi. para funcionar, ¿no? Tal vez incluso podríamos construir una base de datos con las diferentes versiones de software (que son algo mejoradas en la limpieza de algoritmos con el tiempo) y actualizar nuestros robots nosotros mismos.

Aquí viene mi pregunta: abrí el robot para averiguar qué posibilidades de conexión hay en la PCB, y encontré un conector de 4 pines (accesible incluso sin abrir el robot, por un clip de goma en la carcasa: lo que me lleva a pensar esto es la conexión necesaria para comunicarse con el software) y un conector de 8 pines. Supuse que los 4 pines serían una conexión UART, dice bluetooth en la parte superior del conector, así que tomé mi HC-06 y conecté la conexión de 5V (pin 1) y GND (pin 4). Con un multímetro aprendí que el pin 2 presenta una señal constante de ±3,3 V y el pin 3 ronda los 0,1 V, lo que coincide con los criterios para RX y TX. Sin embargo, tanto mi módulo bluetooth HC-06 como mi cable TTL no me proporcionan ningún dato en el terminal con pantalla/picocom/minicom. Ejecuté un script de python bruto forzando las posibles tasas de baudios, etc. sin embargo, tampoco obtuve respuesta allí. ¿Podría ser posible que necesite ingresar a un modo específico antes de poder conectarme? O, dado que se usa libusb, ¿podría ser un conector USB simple o tal vez incluso otro protocolo/conexión?

En cuanto al conector de 8 pines: presenta 3.3V VCC en el pin 1, GND en el pin 8 y todo lo demás también es de 3.3V, excepto el pin 6, que es un 3.0V constante. ¿Podría ser esto un conector JTAG y cómo podría verificarlo?

Proporcioné una fotografía del PCB. Si fuera de alguna ayuda, también puedo medir la resistencia entre pines.

ingrese la descripción de la imagen aquí

Si necesita más información, por favor hágamelo saber.

PD: Estoy empezando a conocer los diferentes StackExchanges. Ya está en el Stack Overflow regular, pero pensé que encajaría mejor aquí. ¡Mis disculpas!

Editar: he quitado la etiqueta de serie del chip, lo que revela que la PCB alberga un NXP LPC2926 FBD144. El PCB conectado por los cables negros en la parte superior de la fotografía, que es responsable de dar el comando de encendido/arranque y cambiar entre los diferentes programas de limpieza a través de tres botones sensibles al tacto, alberga un ATMEGA32A.

ingrese la descripción de la imagen aquí

Todavía no tengo suficientes representantes para agregar 2 enlaces en una publicación. El enlace a la segunda fotografía es: i.stack.imgur.com/RBtkc.jpg
Imagen insertada.
Probablemente no verá que suceda nada en el UART a menos que el firmware ya esté intentando acceder a ese puerto.

Respuestas (1)

Deberías mirar otros tableros en este robot. En la parte delantera se encuentra el módulo Robot aspirador (RVC) de CLABSYS http://www.clabsys.com/html/product_module01.html con:

y placa de sensores con:

  • Chip desconocido (SAMSUNG HART-m310)
  • Cámara frontal (mira hacia arriba pero tiene un espejo elegante para ver una vista frontal de 180 °)
  • Controlador de motor de CC con escobillas de 5 A (TI DRV8840)
  • conector etiquetado JTAG

Obtuve todas las fuentes proporcionadas por Samsung para productos de código abierto en VR20H9050UW y hay fuentes para UBOOT, Linux KERNEL 2.6.32, ROOTFS, utilidades de Linux (alsa, libusb, ncurses, squashfs y zlib), cadena de herramientas para construir todo y el controlador de descarga USB Nexell . Entonces, al usar esta conexión USB en el módulo RVC, debería haber una forma de cargar un nuevo firmware. Podría ser que usando la misma conexión USB, alguien pueda acceder al firmware ya cargado y extraer el contenido del sistema de archivos de él. Pero necesitamos documentación de CLABSYS (o Nexell) sobre cómo hacerlo.

Eso suena como un anfitrión más probable para los componentes de código abierto. Probablemente sea mejor mirar esa placa para una consola UART. La teoría de USB es posible , pero puede no ser el caso; una cosa sería examinar la fuente y la configuración de U-Boot y ver si es compatible con USB. Las modificaciones más simples podrían ser descubrir cómo la placa del teclado ATmega se comunica con el resto del sistema, espiar ese tráfico y tal vez desarrollar un sustituto que pueda usar esas funciones de diferentes maneras.
¡Gracias por su información! Echaré un vistazo a los tableros en la parte frontal del robot. No pensé que habría nada más además de algunos sensores y el módulo de la cámara, por supuesto, especialmente porque la otra placa está etiquetada como la placa principal, lo que me llevó a pensar que albergaría toda la lógica. ¿Le importaría compartir el código fuente proporcionado por Samsung? ¿O eso viola los términos que tuviste que aceptar para obtenerlo?
@VincentBosch, la forma correcta de obtener el código fuente es solicitarlo directamente a Samsung escribiendo esta solicitud a oss.request@samsung.com pero puedo compartir el enlace de descarga que recibí: RVC_VR9000H.tar.bz2
Gracias por compartir el enlace. Voy a ver que puedo extraer de el. Mientras tanto, abrí la parte frontal del robot, revelando la placa sensora con conexión JTAG y la placa Clabsys, con una conexión JTAG claramente marcada también. Traté de encontrar algún puerto UART, pero desafortunadamente no logré encontrarlo ni conectarme todavía. Parece que efectivamente hay conexiones USB en la placa Clabsys. Uno con la etiqueta USB-a y otro con la etiqueta USB-b, pero creo que el puerto b en realidad se usa a través de las vías. Todavía no he identificado el puerto de 6 pines. ¿Tal vez una conexión para la tarjeta WiFi que se encuentra en el modelo 9250/9350?
Aquí hay algunas fotos que tomé de la placa Clabsys. En la parte superior, la conexión JTAG está claramente marcada. Sin embargo, aún no me he conectado a él. Tablero Clabsys
Aquí hay algunas fotos del Sensorboard. Ya probé varios pines, pero además de la conexión JTAG, no creo que contenga nada de particular interés. Es interesante que ambas placas estén conectadas directamente a la placa principal, y las dos solo estén conectadas a través del conector delgado que no desconecté. ¿Probablemente solo para compartir el video? Panel de sensores Lo que sigue siendo un misterio es la conexión en el panel principal a la que se puede acceder simplemente quitando un clip de goma. Tampoco tuve suerte al conectarlo a mi puerto USB... Casi tiene que ser diagnóstico
He intentado conectarme al puerto USB-a en la placa Clabsys. El conector es realmente pequeño. Tiene aproximadamente el tamaño de un conector micro-USB sin la carcasa de metal. Aislar los cables antes de que pudiera siquiera intentar conectarlos, ya me tomó una eternidad. Sin embargo, logré que OSX reconociera la placa: se reconoce como un lector de tarjetas, aunque en realidad no hay nada montado. Esto quizás se deba a que no estaba conectado a las otras placas, ya que me lo quité. Desafortunadamente, no pude hacer que funcionara más después: tendré que descubrir algo más permanente y ver a qué se puede acceder.