Continuando con una serie de tutoriales que queremos liberar sobre algunas tecnologias existentes para la creacion de UAVs,VANTs o Vehiculos Autonomos el dia de hoy vamos a documentar como podremos actualizar el Firmware del piloto PX4 Pixhawk 1 "FMUV2".

Para realizar este laboratorio vamos a necesitar tener instaladas las ToolsChain sobre Ubuntu 16.04.

Herramientas

  • PC de Desarrollo con Ubuntu 16.04 y las ToolsChain de PX4 instaladas.
  • PC con Debian Sid/Buster para conexion SSH al PC de Desarrolo.
  • Piloto Automatio PX4 Pixhawk 1 "FMUV2"
  • Cable USB Tipo V8.

Conectandonos al pc de Desarrollo.

Nos conectamos via SSH a nuestro PC de desarrollo para proceder con la actualizacion del Firmware.

$ ssh heberth@192.168.2.102


#Salida del sistema
Welcome to Ubuntu 16.04.4 LTS (GNU/Linux 4.13.0-45-generic x86_64)

 * Documentation:  https://help.ubuntu.com
 * Management:     https://landscape.canonical.com
 * Support:        https://ubuntu.com/advantage

0 packages can be updated.
0 updates are security updates.

Last login: Mon Jul 16 08:56:54 2018 from 192.168.2.108

Compilando El Firmware para el Piloto Automatico

En esta ocasion, vamos a compilar solo el codigo fuente que ha sido diseñado para la version del hardware basado en la FMUV2

Accedemos al directorio de trabajo para el Firmware y compilamos el codigo fuente

$ cd src/Firmware/ 
$ make px4fmu-v2_default

Subiendo el Firmware al Piloto Automatico (Flasheando la BOARD).

Una vez compilado el codigo fuente correctamente, podremos subir la actualizacion sobre nuestro Hardware.

Aplicamos con "make" la actualizacion del Firmware.

$ make px4fmu-v2_default upload

#Salida del sistema
ninja: Entering directory `/home/heberth/src/Firmware/build/nuttx_px4fmu-v2_default'
[1/1] uploading px4
Loaded firmware for board id: 9,0 size: 1030704 bytes (99.86%), waiting for the bootloader...

En este punto el sistema se encuentra a la espera de la conexion via USB para proceder con la actualiacion, Para ello vamos a conectar nuestro piloto automatico al computador de Desarrollo y veremos como el proceso inicia sobre el CHIP.

Found board id: 9,0 bootloader version: 4 on /dev/serial/by-id/usb-3D_Robotics_PX4_BL_FMU_v2.x_0-if00
sn: 004f002e3034511238353334
Erase  : [====================] 100.0%
Program: [====================] 100.0%
Verify : [====================] 100.0%
Rebooting. Elapsed Time 20.717

El sistema encuentra el bootloader y detecta la version del CHIP, borra el programa, escribe el nuevo firmware y verifica su instalacion, si todo es correcto en este punto Reinicia el sistema y podremos evidenciar la nueva conexion USB para el dispositivo sobre la salida de "dmesg"

$ sudo dmesg | tail -n 10
[ 4006.689840] usbcore: registered new interface driver cdc_acm
[ 4006.689842] cdc_acm: USB Abstract Control Model driver for USB modems and ISDN adapters
[ 4027.564466] usb 2-1.1: USB disconnect, device number 4
[ 4029.349020] usb 2-1.1: new full-speed USB device number 5 using ehci-pci
[ 4029.459935] usb 2-1.1: New USB device found, idVendor=26ac, idProduct=0011
[ 4029.459943] usb 2-1.1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[ 4029.459948] usb 2-1.1: Product: PX4 FMU v2.x
[ 4029.459952] usb 2-1.1: Manufacturer: 3D Robotics
[ 4029.459956] usb 2-1.1: SerialNumber: 0
[ 4029.463488] cdc_acm 2-1.1:1.0: ttyACM0: USB ACM device

Referencias:
https://dev.px4.io/en/setup/dev_env.html
https://dev.px4.io/en/setup/building_px4.html