WIFI 

El WIFI en el Mychron 5 (My5 de aquí en mas), al menos hasta ahora, es la novedad que mas me ha llamado la atencion. Esta asociado al programa RaceEstudio 3 (RS3) a travez de este nos permite manipular, configurar, actualizar y descargar datos. Hay hace mas de un año anunciado una APP para iphone para el SOLO2 que sospecho que puede llegar a ser compatible con el My5.

Me resulta interesante saber como puede el programa RS3, obtener y configurar datos del My5 asi como tambien obtener informacion en vivo. Por esto he dedicado unos dias de investigacion a esta interaccion a travez del WIFI. Aqui expongo sin entrar en demasiados detalles lo aprendido, que de ninguna manera es completo ni una verdad absoluta.... solo lo observado e interpretado. Seguramente haya muchos errores y malas interpretaciones. Es solo para dar una idea de como funciona.

HERRAMIENTAS UTILIZADAS

Para observar y tratar de descubrir el funcionamiento del WIFI utilice unas pocas herramientas que detallo a continuación:

  • WireShark: Programa de sniffing (escucha) de redes
  • Notepadd++: Editor de texto muy poderoso (utilice muchas macros)
  • Calculadora de Windows: Dispone del modo programador. Muy útil en este caso.

WIFI FUNCIONAMIENTO

El My5 puede funcionar en 2 modos respecto al WIFI, como cliente o como AP (Access Point). Para aquellos familiarizados como el uso del WIFI quizá estos términos no le sean desconocidos pero para evitar malos entendidos voy a indicar a que me refiero con cada uno.

Modo AP: En este modo el My5 emite la señal de WIFI y alguien (cliente) se puede conectar a el.

Modo Cliente: En este caso el My5 se conecta a una red WIFI existente.

Desde el mismo My5 solo podemos configurar el modo AP, para conectarse a una red existente primero debemos conectarnos directamente al My5 y luego con el programa RS3 configuramos el acceso a la red WIFI.

Hasta ahora hable de WIFI de forma muy general, pero con un poco mas de propiedad, el WIFI en si no es de interés. El WIFI es el medio por el cual se establece la comunicación entre el My5 y un dispositivo (computadora), seria parecido a un cable. Lo que nos interesa es la conversación que puede mantener el My5, que cosas nos puede decir y que podemos controlar de el usando esta comunicación. Esta conversación debe seguir ciertas reglas y formatos, a esto es lo que usualmente denominamos protocolo.

Casi siempre, en comunicaciones con dispositivos de este tipo el programa con el que interactua el usuario actúa de servidor y el dispositivo en si mismo de ciente. Es decir el servidor pide u ordena cosas y el cliente ejecuta o responde. El My5 no es ajeno a este funcionamiento.

CAPTURA DE DATOS

Asumiendo que tenemos establecida la comunicación WIFI entre la computadora y el My5, sea cual sea el modo del WIFI del My5, el espera una conexión o que se conecten a el. Por lo tanto para poder descubrir los secretos de la comunicación del My5 debemos espiar la conversación, o sea, escuchar la información transmitida entre ellos. Para esto usamos el WireShark, este programa escuchara todas las comunicaciones de red que la computadora tenga. Por lo tanto si le indicamos que solo queremos escuchar la comunicación entre ella y el My5 obtendremos la conversación filtrada sin interferencias. Para esto debemos indicar al WireShark que solo nos interesa los datos enviados desde la computadora hacia el My5 y del My5 hacia la computadora. Tanto la computadora y como el My5 en la red están identificados por su dirección IP. En el caso que estemos usando el modo AP del My5 la dirección IP es 10.0.0.1 (podemos verlo en la configuración) y la de la computadora una que le asigne el My5, típicamente 10.0.0.2. Con estos datos el filtro a ingresar seria:


Una vez que iniciemos la captura todos los mensajes y datos transferidos entre ellos quedara registrado. Si iniciamos el RS3, lo conectamos al My5 podremos ver que se comienzan a capturar datos. A partir de estos datos capturados es que se intentaremos descubrir el funcionamiento.

CONEXIÓN

Nuevamente asumiendo que el My5 y la computadora se encuentran conectados a la misma red, al iniciar el programa RS3 vemos que luego de unos instantes detecta la existencia del My5 y nos permite conectarnos a el. Si capturamos esta secuencia veremos que la detección se realiza mediante un escaneo de toda la red. Para esto el RS3 envia a cada una de las direcciones IP de la red un mensaje UDP al puerto 36002 con el siguiente contenido 'aim-ka'. Al recibir este mensaje el My5 respondera al mismo puerto con otro mensaje UDP con un contenido similar a este:

Aunque parezca poco importante hay mucha información en el. Podemos identificar los siguientes campos:

En la siguiente imagen vemos la captura de estos datos en un programa Delphi 7 (muy antiguo pero funciona..)

Esta es la forma que el RS3 detecta todos los My5 conectados a una red. Si seleccionamos uno de los detectados veremos que el RS3 establece una conexión TCP a la ip del My5 de interés al puerto 2000. De aquí en mas toda la comunicación entre el RS3 y el My5 ocurrira dentro de esta coneccion.

Una vez establecida la conexión TCP a travez del puerto 2000 nos encontramos ante un escenario del tipo cliente/servidor. Donde la My5 actua las veces de servidor y la computadora como cliente. En este tipo de situación el cliente envia requerimientos al servidor y este los contesta.

MENSAJES

Teniendo en cuenta este funcionamiento de cliente / servidor vemos que los mensajes están encuadrados dentro de etiquetas. Es decir una etiqueta comienza el mensaje y otra lo cierra. Similar a etiquetas HTML como vemos a continuación.

<hSTNC.....>msg<STNC..>

Donde <hSTNC.....> es la etiqueta de comienzo del mensaje, msg es el contenido del mensaje y <STNC..> la de fin de mensaje. Dentro de estas etiquetas los . representan bytes. En el caso de la apertura, los ..... representan los 5 bytes de la longitud del cuerpo del mensaje y los .. en el cierre del mensaje es un checksum del contenido del mensaje (msg). 

Este mensaje, es el utilizado por el cliente para enviar al My5 los comandos o peticiones y su tamaño observado para msg es fijo de 64 bytes. El siguiente mensaje es el utilizado en las respuestas del My5 y/o en los ak (aknowledgements o confirmaciones) sean del My5 o del cliente.

<hSTCP.....>msg<STCP..>

El formato del mensaje es idéntico al anterior solo cambia la etiqueta y su tamaño es variable.

Este es un mensaje típico de comando donde se solicita que devuelva el logo mostrado en la pantalla al inicio del My5.


Y este un frangmento del mensaje donde nos devuelve los canales del My5. En caso de tener alguna caja expansora, también aparecen aquí.

Estos dos tipos de mensajes son suficientes para comunicarnos con el My5.

En este video vemos como los canales obtenidos usando el WIFI y su transmision en vivo. En realidad no es un stream, se actualiza mediante solicitudes consecutivas al My5.

COMANDOS

En esta investigación hemos detectado un numero significativo de comandos u ordenes que le podemos dar al My5. Tambien observamos que el My5 cuenta con un sistema de ficheros interno en el cual se almacenan distintas configuraciones, el firmware, las corridas, el logo, etc.

Algunos de los comandos obtenidos son:

  • 0x010004 - Para subir un archivo
  • 0x020004 - Bajar un archivo
  • 0x050004 - Lista archivos
  • 0x0B0004 - Lista (archivos y subdirectorios)
  • 0x070004 - Borra
  • 0x100001 - Solicita datos de configuración
  • 0x020002 - Solicita configuracion de canales
  • 0x030002 - Solicita el valor de cada canal
  • 0x020000 - Reinicia el My5
  • 0x200002 - Comienza a grabar una corrida
  • 0x210002 - Para de grabar una corrida
  • 0x090000 - Muesta logo en pantalla

Y son muchos mas....

Parte del árbol del sistema de ficheros observado es:

Existen dos dispositivos o medios o discos, 0:/ y 1:/. En 1:/ es el espacio de datos donde se guardan las corridas, mas específicamente en 1:/MEM.

Por ahora y en lo que a mi respecta me siento satisfecho con los resultados obtenidos y por lo tanto NO continuare investigando esto. Sospecho que este metodo de comunicacion debe ser universal para los productos AIM que utilizan el RS3 como programa de configuracion.

¡Crea tu página web gratis! Esta página web fue creada con Webnode. Crea tu propia web gratis hoy mismo! Comenzar