En las primeras pruebas con MAVLink todo parece bastante sencillo: estableces conexión, empiezas a ver llegar mensajes, ves la telemetría moverse y da la impresión de que ya tienes el sistema más o menos entendido. Los ejemplos funcionan, las herramientas responden y la sensación general es que el funcionamiento del protocolo es más básico de lo que realmente es.
El problema llega cuando pasas de un entorno de pruebas a la realidad. En cuanto aparecen varios componentes —autopiloto, estación de tierra, sensores— MAVLink podría llegar a fallar de formas raritas. Cuando esto pasa, es muy común no ver errores ni mensajes explícitos, simplemente “no funciona”, y muchas veces el código no tiene la culpa.
En este post no voy a explicar qué es MAVLink ni cómo enviar tu primer mensaje. Voy a hablar de errores reales que he visto, y sufrido jajaja, trabajando con sistemas UAV: configuraciones de puertos y baudrate que nadie revisa, XMLs que no coinciden y mensajes que desaparecen sin avisar.
Si ya estás trabajando con MAVLink en un sistema real, es muy probable que alguna de estas situaciones te suene. Y si aún no has llegado ahí, mejor tenerlas en mente antes de perder tiempo con errores que no dan ninguna pista clara.
Número 1. Configurar bien el baudrate y los puertos TELEM: no des por hecho que están bien
Por muy seguro que creas estar, nunca des por hecho que la configuración básica está bien. En general, dar por sentadas cosas en este mundillo no es muy pro tip que digamos. Es sorprendente la cantidad de tiempo que se puede perder depurando cuando, en realidad, no te está llegando ni un solo byte de MAVLink al sistema.
Concretamente, cuando trabajas con autopilotos (CubeOrange, Pixhawk, Durandal, etc.) es muy común asumir que las intefaces TELEM1 o TELEM2 están bien configuradas desde el firmware. No tiene por qué ser así. Dependiendo de la versión del firmware, del modelo o de configuraciones previas, un puerto puede estar deshabilitado, reasignado a otro protocolo o usando un baudrate distinto al que espera la estación de tierra, por ejemplo.
En proyectos reales, basta con que un día prestes el autopiloto para unas pruebas para que alguien cambie una configuración… y nadie se acuerde luego de devolverla a su estado original.
Antes de tocar una sola línea de código, verifica siempre tres cosas:
Cinco minutos aquí pueden ahorrarte horas luego.
- Qué puerto físico estás usando realmente (TELEM1/TELEM2).
- Que la configuración de ese puerto sea la apropiada.
- Que el baudrate coincida exactamente en origen y destino.


