Skip to content

ngomezcn/Bidirectional-UART-data-to-OpenTX-transmitters

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

39 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Bidirectional data to Radiomaster TX16s UART port

La mayoría de las guías que hay sobre instalar módulos bluetooth o usar el puerto UART solo muestran como mandar telemetría hacia fuera, después de buscar por todo internet no he encontrado ninguna que explique como poder darle instrucciones desde UART o con algún módulo externo. En esta guía se explica como realizarlo y algunos métodos para poder depurar el código.

He escogido realizar el proyecto sobre la TX16s, ya que esta soporta más de 40 protocolos y me permitirá operar cualquier aparato RC de manera programática, aunque también debería funcionar en cualquier otra emisora que soporte EdgeTX u OpenTX, y UART (Jumpter, Taranis, Eachine, SPektrum...)

El proyecto todavía está en fase de desarrollo, pero la versión mínima de enviar/recibir funciona.

Requisitos

  • EdgeTX 2.6.0 or above (todavía no ha sido probado en versiones inferiores, debería funcionar en OpenTX pero no se ha probado)
  • Pines TX y RX en la emisora, pueden ser internos o externos
  • Módulo Bluetooth HC-05 o cualquier módulo FTDI UART to USB en mi caso tengo FT232RL (Cualquier otro sistema que le permita una comunicación UART bidireccional es valido)
  • Programa lectura/escritura serial data OpenSerialPortMonitor
    (También puede usar cualquier otro que prefiera)


1. Conectar FTDI con emisora

Se deben conectar los pines UART de emisora y FTDI de manera inversa, es decir; el pin TX al RX y el pin RX al pin TX
Los pines VCC y GND se utilizarán más adelante.
Es recomendable conectarlo en una placa de desarrollo, ya que más adelante facilitará depurar el código.


1.1 Verificar envió/recibo de datos (opcional)

  1. Deberá instalar el siguiente Lua script (bid.lua) en la carpeta FUNCTIONS de su emisora y asignarlo a una palanca (hay muchos recursos que indican como se hace)

  2. Abra OpenSerialPortMonitor y configurelo como se muestra en la imagen (El puerto COM depende de la ranura USB donde esté, puede averiguarlo con el programa Device Manager) y conéctese.

  1. Reinicie la emisora y active el script. Al encenderse debería ver algo como esto, puede enviar datos a la Emisora y este le debería responder con el formato "ECHO: {valor_recibido}". Mientras no envíe datos, se mostrará con el formato "ECHO: "

Este paso es importante, ya que permite asegurarnos que no hay problemas con el envío/recibo de datos.
Si en su consola se muestran símbolos extraños, saltos de línea sin sentido, huecos en blanco u otro tipo de anomalías, debe probar otro cable y que sea lo más corto posible, también aleje cualquier fuente electromagnética. Si no se soluciona, pruebe con diferentes niveles de baud rate.

TODO: ....

Enlaces de interés:

Flags

El ecosistema para desarrolladores de EdgeTX es bastante pobre. Hay un fork de la versión 2.6.0 en esta repo que utilizo para estudiar/entender el código y poder desarrollar este proyecto. Cuando hay un punto interesante o importante le asigno un número aleatorio al fichero,función,comentario,variable... y lo guardo aquí, de esta manera puedo volver a consultarlo rápidamente, no es lo ideal, pero no es mi misión documentar EdgeTX

Punto de entrada del serial data: 0x67234783 Definiciones de las funciones de Lua (no confirmado que estén todas las declaraciones): 0x17345345 Código del entrenador, es la única funcionalidad que también utiliza UART puede que de problemas: 0x17543345

Por encontrar:

  • Código que se encarga de cerrar los scripts en caso de que los recursos de la emisora se saturen

About

Bidirectional UART data to EdgeTX or OpenTX transmitters

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published