How to modify the Iris+ firmware: eclipse errors and more


I’m studying Aerospace engineering and currently I’m working on my master thesis. The final purpose of the project is to modify the firmware of the Iris+ drone, property of the University, in order to make it capable of carrying on new sensors.

To begin I have followed this video-guide:

So I have installed the toolchain and dowloaded the software and right now I have the “px4” folder on my pc. I have also opened eclipse and started a new project from existing file choosing the folder “firmware” and it appeared on the left of the eclipse workbench.

Now I have some doubt and some questions:

  1. This “firmware” folder appear to me like a general firmware, useful for many types of different drones. Is it the best idea to work on it in order to modify the code for the university drone or does exist a way to work specifically on the firmware of the Iris+?

  2. When I open with eclipse one of the many .cpp file present inside the firmware main folder, such as the file firmware/src/drivers/led/led.cpp, eclipse find a lot of errors… So, since I have not touched anything but just dowloaded the firmware using the toolchain, how is it possible that files are filled with so many errors? Should not be everything clean and perfect?

I’m really desperate, so I will be really really grateful for any help!!!

OK, I have discovered this guide: and since the windows version of the toolchain is not officially supported I’m now using Linux thanks to a virtual machine.

I have dowloaded the firmware and now I can modify it using Qt Creator.

Still, some help would be really appreciated. Right now I’m trayng to understand how to change the on boot configuration of the I/O digital pins. Reading here: … -overview/ (in the last part of the page) I have understood that pins 54 and 55 of the pixhawk: … xhawk2.jpg

are configured to work as digital input/output by deafault. I would like to make one of them working as output open drain. Do someone knows wich file of the firmware should I modify and how?