Sobre este tutorial, vamos a llevar a cabo la actualizacion del software actual para nuestro Control Remoto FrSky, en este caso la version Taranis Q X7.
El Firmware actualmente instalado sobre el control no se encuentra en su versión mas reciente y por esto hemos decidido actualizarlo antes de empezar a realizar las respectivas pruebas con QGroundControl y la simulacion que hemos venido trabajando en JMAVSim.

Este fabricante de Hardware ha liberado la documentacion necesaria para que los desarrolladores de Software libre puedan crear herramientas como OpenTX el cual es el Firware por defecto en estas tecnologias..
en este punto queremos dar gracias a todos los colaboradores del proyecto
https://www.open-tx.org/

Herramientas

  • PC de Desarrollo con Ubuntu 16.04 instalado
  • Control Remoto FrSky Taranis Q X7
  • Cable USB tipo V3 (Compatible con el control)

Si accedemos a la web de descarga para esta version, podremos ver que existen dos formas diferentes de realizar la instalacion sobre Ubuntu, 1 via PPA y otra utilizando el paquete compilado en formato ".deb"

Forma1. Descargando OpenTX Companion 2.2.2 RC5 - Paquete Linux DEB

Sobre nuestro PC de Desarrollo, sobre el directorio "Apps" que creamos previamente en el Home del usuario, vamos a crear un nuevo directorio llamado OpenTX y sobre ese directorio vamos a descargar el paquete .deb que el desarrolador nos brinda para la instalacion de esta version de OpenTX.

$ mkdir Apps/OpenTX && cd Apps/OpenTX
$ wget https://downloads.open-tx.org/2.2/rc/companion/linux/companion22_2.2.2RC5_amd64.deb



#Salida del sistema
--2018-07-19 15:54:28--  https://downloads.open-tx.org/2.2/rc/companion/linux/companion22_2.2.2RC5_amd64.deb
Resolving downloads.open-tx.org (downloads.open-tx.org)... 51.15.192.53
Connecting to downloads.open-tx.org (downloads.open-tx.org)|51.15.192.53|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 20199260 (19M) [application/octet-stream]
Saving to: ‘companion22_2.2.2RC5_amd64.deb’

companion22_2.2.2RC5_amd64.deb                                      100%[==================================================================================================================================================================>]  19,26M  74,8KB/s    in 1m 46s  

2018-07-19 15:56:15 (187 KB/s) - ‘companion22_2.2.2RC5_amd64.deb’ saved [20199260/20199260]

Una manera practica de instalar el paquete y cumplirle dependencias automaticamente es por medio del paquete "gdebi", lo instalamos con el siguiente comando.

$ sudo apt install gdebi-core


#Salida del sistema
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following NEW packages will be installed:
  gdebi-core
0 upgraded, 1 newly installed, 0 to remove and 1 not upgraded.
Need to get 9.716 B of archives.
After this operation, 135 kB of additional disk space will be used.
Get:1 http://co.archive.ubuntu.com/ubuntu xenial/main amd64 gdebi-core all 0.9.5.7ubuntu1 [9.716 B]
Fetched 9.716 B in 0s (32,2 kB/s)    
Selecting previously unselected package gdebi-core.
(Reading database ... 255679 files and directories currently installed.)
Preparing to unpack .../gdebi-core_0.9.5.7ubuntu1_all.deb ...
Unpacking gdebi-core (0.9.5.7ubuntu1) ...
Processing triggers for man-db (2.7.5-1) ...
Setting up gdebi-core (0.9.5.7ubuntu1) ...

instalamos OpenTX Companion utilizando gdebi

$ sudo gdebi companion22_2.2.2RC5_amd64.deb


#Salida del sistema
Reading package lists... Done
Building dependency tree        
Reading state information... Done
Reading state information... Done
This package is uninstallable
Dependency is not satisfiable: libqt5core5a (>= 5.7.0)


Como pudimos evidenciar... :( no fue posible instalar el paquete sobre Ubuntu 16.04 para esta version ya que no cumple la dependencia.
La version actual del paquete sobre ubuntu se puede apreciar utilizando el parametro "policy" del comando "apt-cache" e indicando el nombre del paquete.

$ apt-cache policy libqt5core5a


#Salida del sistema
libqt5core5a:
  Installed: 5.5.1+dfsg-16ubuntu7.5
  Candidate: 5.5.1+dfsg-16ubuntu7.5
  Version table:
 *** 5.5.1+dfsg-16ubuntu7.5 500
        500 http://co.archive.ubuntu.com/ubuntu xenial-updates/main amd64 Packages
        100 /var/lib/dpkg/status
     5.5.1+dfsg-16ubuntu7 500
        500 http://co.archive.ubuntu.com/ubuntu xenial/main amd64 Packages

Por esto, hemos decidio realizar la prueba con la instalacion via PPA por que vemos que es totalmente compatible con esta version de Ubuntu 16.04lts que es "trusty"
https://launchpad.net/~opentx-test/+archive/ubuntu/rel

Forma2. Instalando via PPA

Sobre el host de desarrollo, agregamos el respectivo PPA y damos "enter"

$ sudo add-apt-repository ppa:opentx-test/rel


#Salida del sistema
OpenTX Official Releases
More info: https://launchpad.net/~opentx-test/+archive/ubuntu/rel
Press [ENTER] to continue or ctrl-c to cancel adding it

gpg: keyring `/tmp/tmpefbrehrx/secring.gpg' created
gpg: keyring `/tmp/tmpefbrehrx/pubring.gpg' created
gpg: requesting key BE3548B1 from hkp server keyserver.ubuntu.com
gpg: /tmp/tmpefbrehrx/trustdb.gpg: trustdb created
gpg: key BE3548B1: public key "Launchpad PPA for OpenTX test" imported
gpg: Total number processed: 1
gpg:               imported: 1  (RSA: 1)
OK

Echo esto, aplicamos un update y instalamos el paquete

$ sudo apt-get update && sudo apt install opentx-companion22

Bienvendia al Software...

Terminada la instalacion, procedemos a ejecutar la aplicacion con el siguiente comando.

$ companion22

opencompanionn

Una vez el software nos da la bienvenida, sera necesario adaptar nuestro perfil preferido para nuestro control.
aqui hemos personalizado el Splash Screen de nuestro control descargando una imagen desde la URL del desarrollador
http://www.open-tx.org/screens-taranis.html

settings
Lenguaje: en
Opciones: habilitamos los scripts "lua" y el soporte a "sqt5font"

Siguiendo con las configuracion base, en la pestaña "Application Settings" Seleccionamos "Use Nightly Builds (Unstable)"
applicationSettings
Finalizamos dando clic en "OK"

Se abrira la pagina principal de la aplicacion desde la cual realizaremos la actualizacion.
opentxcompanion2.2.1

Conectando el Control al PC en modo Bootloader

en este punto, es necesario tener fuera del control la memoria SD para proximamente poner dentro de esta algunos archivos de configuracion del control.

Para poder conectar el Control Remoto Q X-7 con nuestro Sistema Operativo Ubuntu 16.04 LTS, es necesario arrancar el control en modo Bootloader, para ello procedemos presionando los trims del centro hacia dentro y al tiempo undimos el boton de encendido.
botonesconfig
Al arrancar nuestro control, observaremos en la pantalla el estado del bootloader.
micontrol
Como podemos observar sobre la imagen, el control se encuentra a la espera de la conexion via USB, procedemos conectando el control al PC y comprobamos que el dispositivo se monte sobre el sistema con la salida de "dmesg".

$ sudo dmesg 


#Salida del sistema
[11984.470755] usb 2-1.2: new full-speed USB device number 5 using ehci-pci
[11984.581575] usb 2-1.2: New USB device found, idVendor=0483, idProduct=5720
[11984.581583] usb 2-1.2: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[11984.581588] usb 2-1.2: Product: FrSky Taranis Bootloader
[11984.581592] usb 2-1.2: Manufacturer: FrSky
[11984.581596] usb 2-1.2: SerialNumber: 00000000001B
[11985.324443] usb-storage 2-1.2:1.0: USB Mass Storage device detected
[11985.324643] scsi host6: usb-storage 2-1.2:1.0
[11985.325235] usbcore: registered new interface driver usb-storage
[11985.469486] usbcore: registered new interface driver uas
[11986.347790] scsi 6:0:0:0: Direct-Access     FrSky    Taranis Radio    1.00 PQ: 0 ANSI: 2
[11986.348649] scsi 6:0:0:1: Direct-Access     FrSky    Taranis Radio    1.00 PQ: 0 ANSI: 2
[11986.349463] sd 6:0:0:0: Attached scsi generic sg1 type 0
[11986.352764] sd 6:0:0:1: Attached scsi generic sg2 type 0
[11986.354087] sd 6:0:0:1: [sdc] 1091 512-byte logical blocks: (559 kB/546 KiB)
[11986.356078] sd 6:0:0:1: [sdc] Write Protect is off
[11986.356082] sd 6:0:0:1: [sdc] Mode Sense: 00 00 00 00
[11986.357315] sd 6:0:0:0: [sdb] Attached SCSI removable disk
[11986.358053] sd 6:0:0:1: [sdc] Asking for cache data failed
[11986.358059] sd 6:0:0:1: [sdc] Assuming drive cache: write through
[11986.429974]  sdc:
[11986.434849] sd 6:0:0:1: [sdc] Attached SCSI removable disk

Como evidenciamos, se ha conectado el control y se ha identificado el dispositivo; sobre la pantalla del dispositivo tambien veremos un mensaje que indicara "Conectado".

Realizando Backup del control.

Para este punto realizaremos dos Backups del dispositivo.

  1. Backup del Firmware
  2. Backup de las configuraciones actuales.

Backup del Firmware Actual.

Despues de conectar el control podremos realizar el backup de su firmware, para ello procedemos dando clic en el boton "Read Firmware From Radio", ubicamos un directorio para almacenar el firware y damos clic en "Save"
readfirmware
Con esto, almacenaremos el firmware del dispositivo con el nombre "Backup".

Backup de las configuraciones actuales.

Sobre la interfaz principal, damos clic en "Read Model and Settings From Radio" configuracionesModelos

Almacenamos las configuraciones sobre el mismo directorio donde previamente almacenamos el backup.
saveconfig

Descargando el Firware y su contenido a la SD

Para proceder con la actualizacion, tendremos que previamente descargar la ultima version disponible del Firmware.
Damos clic en la opcion "Download" del menu principal para checkear las actualizaciones.
lastrelease
si queremos validar la existencia de una nueva version, procedemos dando clic en el boton "Check For Updates"

Una vez validada la ultima version (Para este tutorial 2.2.2rc5), procedemos a descargarla dando clic en "Download Firmware" y almacenarla sobre algun directorio destinado para la actualizacion.
downloadfirware2.2.2rc5

Tambien sera necesario descargar el contenido de la SD para nuestro lenguaje , si damos clic sobre la opcion "Download SD Contens" seremos redireccionados a la siguiente URL.
https://downloads.open-tx.org/2.2/rc/sdcard/opentx-x7/

para la instalacion usamos el archivo sdcard-taranis-x7-2.2V0018.zip, lo descargaremos sobre el mismo directorio donde se descargo la actualizacion.

$ cd Apps/OpenTX/2.2.2rc5
$ ls -lh
total 364K
-rw-rw-r-- 1 heberth heberth 361K jul 23 15:57 opentx-x7-lua-sqt5font-en.bin

$ wget -c https://downloads.open-tx.org/2.2/rc/sdcard/opentx-x7/sdcard-taranis-x7-2.2V0018.zip

Descargado el Firware y el contenido de la memoria SD, procedemos a subir el Firwmare al control dando clic en "Write Firmware to Radio" y seleccionando el archivo que hemos descargado previamente (La herramienta lo traera automaticamente)
uploadfirmware-1
Subido el firmware, procedemos a cargar el backup de los modelos configurados.
loadconfiguser
Subida esta configuracion podremos cerrar la aplicacion y apagar el control desconectandolo del puerto USB y dando sobre el control en "Exit".

Cargando el Contenido del idioma a la Micro SD

La memoria que ya tendremos previamente formateada en fat32, tendremos que montarle el contenido del archivo que ha sido descargado con el nombre de "sdcard-taranis-x7-2.2V0018.zip".

Analizamos el punto de montura para el dispositivo conectado

$ df -h


#Salida
/dev/sdb1       3,8G  4,0K  3,8G   1% /media/heberth/TX

identificado el dispositivo, descomprimimos el archivo en su Raiz.

$ unzip sdcard-taranis-x7-2.2V0018.zip -d /media/heberth/TX/
$ sudo umount /media/heberth/TX

Desmontamos el dispositivo, procedemos a desconectar la memoria SD y conectarla sobre nuestro Control Remoto (Apagado).

Encendemos nuestro dispositivo y validamos que arranque correctamente con la configuracion puesta, para ello validamos la version del firmware.
actualizado

Referencias:
https://www.open-tx.org/
https://www.open-tx.org/documents
https://legacy.gitbook.com/@opentx
https://opentx.gitbooks.io/manual-for-opentx-2-2/content/
https://opentx.gitbooks.io/opentx-taranis-manual/content/
https://opentx.gitbooks.io/opentx-2-2-lua-reference-guide/content/
http://www.open-tx.org/screens-taranis.html
http://www.open-tx.org/2018/07/16/opentx-2.2.2RC5
https://opentx.gitbooks.io/manual-for-opentx-2-2/
https://www.youtube.com/watch?v=GAETmZsKqwY