Px4flow and LeddarOne on Intel Aero RTF drone

Hello,
I’m running Ubuntu 16.04 on the Intel aero compute board. I flashed the latest BIOS and FPGA as explained in 90 (References) OS user Installation · intel-aero/meta-intel-aero Wiki · GitHub

As for the flight controller, I followed the instruction on https://dev.px4.io/en/setup/building_px4.html to build the latest release:

git clone https://github.com/PX4/Firmware

cd Firmware

make aerofc-v1_default

make aerofc-v1_default upload

I connected both the LeddarOne and Px4flow with sonar to the telemetry port of the Intel Aero drone. The LeddarOne with tx and rx and the PX4flow to SDA and SCL.

Then, I connected to QGroundControl, performed airframe reset and full calibration. Everything worked fine, and I could get readings from the LeddarOne if I set the parameter SENS_LEDDAR1_CFG to 101, but not from the Px4flow because I didn’t added the driver in the file nuttx_aerofc-v1_default.cmake

Then, I added the line

drivers/px4flow

in the file nuttx_aerofc-v1_default.cmake and added the word AEROFC_V1 in the lines

if ver hwcmp PX4FMU_V2 PX4FMU_V4 PX4FMU_V4PRO MINDPX_V2 PX4FMU_V5 OMNIBUS_F4SD AEROFC_V1

then

    px4flow start &

fi

of the file /Firmware/ROMFS/px4fmu_common/init.d/rcS, I compiled the code again and uploaded on the flight controller.

I connected to QGroundControl, I performed an airframe reset. I got correct readings from LeddarOne and Px4flow. The problem is that I got error while calibrating the inertial sensor of the drone. It said that:

[cal] calibration started: 2 mag

Mag 0 (ID 12) no matching uORB devid

[cal] calibration failed: mag

Thus, I cannot perform the calibration procedure.

I tried those steps on previous versions of the flight controller, for example:

cd Firmware

git tag -l

git checkout -b tags/v1.7.4beta

make aerofc-v1_default

make aerofc-v1_default upload

But the problem is still, that is I cannot calibrate the compass.

Finally, I tried with the firmware version cloned from https://github.com/zehortigoza/PX4Firmware/tree/stable-leddar_one

I added the px4flow driver enabled the px4driver at startup as I did before.

I connected to QGroundControl and I was finally able to get correct readings from LeddarOne (setting the parameter SENS_EN_LEDDAR1 to 1) and PX4flow and also to correctly calibrate the drone. Everything works fine.

However, this firmware version is 1.5.0 and I would be able to get the same work with a newer version. Any suggestion?

Thank you in advance,

Daniele

1 Like

I solved the issue by using the px4 firmware version v1.8.0-beta1 instead of the master branch:

git clone --branch v1.8.0-beta1 https://github.com/PX4/Firmware.git

Than I added the line

drivers/px4flow

in the file nuttx_aerofc-v1_default.cmake and I added

if ver hwcmp AEROFC_V1

then

    px4flow start &

fi

in the file /Firmware/ROMFS/px4fmu_common/init.d/rcS

Then, I compiled and uploaded the firmware to the board.

Now I’m able to get values from LeddarOne and Px4flow and to calibrate the drone correctly. In addition, I’m able to fuse external vision estimates in the kalman filter correctly too.