3D Robotics

Porting APM to Linux

Andrew Tridgell (Tridge), one of the lead APM/Pixhawk developers, gave a speech in January on the process of porting the code to Linux, which is now well underway (more details soon).  This is a great overview of the approach the dev team took on this and what it enables. 

E-mail me when people leave their comments –

You need to be a member of diydrones to add comments!

Join diydrones


  • Robert, i won't be working with the PRU but others will.

    There'll be three students working for the BeaglePilot project. Our schedule can be reviewed here. The work of Anuj and Siddharth will focus on working on the PRU side (e.g. PPM-SUM, PWM, SPI, sensor drivers, ...). We will work together but on independent tasks so that we can continue autonomously.

    My tasks will focus on providing the necessary (although not ideal) userspace sensor drivers (I2C and SPI) for the APM (there're other choices, e.g. use IIO kernel modules for the sensors). We will be constructing upon this.

    Since i already started coding, I'm hoping that i will have some time to make some first flight tests with the hardware i already have with me.

    Could you please elaborate what you mean by:

    i think that you need to improve it for have a good sdk platform for automatic mission


    Thanks for the feedback!

    An autopilot for Linux-based computers based on the BeagleBone (Black) - BeaglePilot/beaglepilot
  • Moderator

    Victor :)

    I think that before to doing integration in ROS enviroment is important that the automatic functionality work fine ... i see your board for test .. but i think that you need to improve it for have a good sdk platform for automatic mission.

    What are your suggestion about PRU ... it work as hardware timer or pwm in a microcontroller as stm32 ? 

    It' total indipendent core or depend from main cpu ? 



  • Hey Roberto!

    You're right. The flight tests are not in the schedule but i will be using my free time for that.

  • Moderator

    Hi Victor,

    good Job , but in your task i don't understand when you doing fly test .. are you yet fly with your platform ? 



  • Hi everyone, i'll be working with Tridge on this matter. Please review the following introduction and feel free to share any comments:


  • Hopefully, the update of Fire Cape for Beagle bone is coming;-)


  • Moderator


    you are doing  a great presentation , you going in depth of problem but it's very clean and simple at the same time :) I think that the main problem isn't that ardupilot work fine on Linux alone , the main problem is to have a good subsitem module that manage very good the flight when there are other process that work togheter with APM Pilot firmware .



  • Moderator


    i like a lot the opportunity to have a code that work fine on Linux OS . That open the opportunity for advanced feature as video streaming , analysis ecc ecc . I think that the only limit of this approach is price of bom  and the hardware complexity the only chip that i found for hobbyst is imx233 that have a TQFP at 133 pin the other cpu have a lot of pin and are BGA , that could be a limit for hacking design. My first prototype design that support Linux on board is VR Neuron it' incredible flexible and support archlinux with a lot application available , but i think that we need to develop a linux distribution like ROS for implement a great robotic ecosystem for future development . I think that Sitara is a bit limited , a good starting point but  for this kind of approach the better could be I.mx6 octo core yet availabe on platform as ODRoid . I don't check if that kind of micro have enough resource for manage hardware pwm that we need in our design.



  • MR60

    This is great. However let's not fall in typical developers ideological positions on such or such OS: Linux per se should not be an objective. A perfect autopilot that provides all dreamed functions without flyaways and with safety is the objective. (Be it on Linux or MAC or whatever OS we do not care).

  • Running autopilots on Linux was how we all did it in the old days, before microcontrollers got fast enough to do the job.

This reply was deleted.