Snapdragon Flight DSP vs CPU modules

I apologize if this question is terribly daft but, despite the amount of documentation I am able to find about PX4’s architecture, I can find very little about which modules run on the DSP vs CPU for the Snapdragon Flight board. Specifically, my questions regarding building and running PX4 with the Snapdragon Flight:

  • Is each module coded to run either on the DSP or the CPU?
  • What’s the difference between the mainapp.conf and px4.config files?
  • Does starting a module in either mainapp.conf or px4.config determine where that module runs? (I’ve noticed different behavior, for example, when running local_position_estimator start in one config file versus the other.)
  • Which modules should be run on the DSP, and which on the CPU?
1 Like

The modules compiled for the CPU (Linux side) are listed here: https://github.com/PX4/Firmware/blob/master/boards/atlflight/eagle/default.cmake

The modules compiled for the DSP (Qurt side) are listed here: https://github.com/PX4/Firmware/blob/master/boards/atlflight/eagle/qurt-default.cmake

mainapp.conf is the startup script for the CPU side, px4.config is the startup script for the DSP side.

Correct. Some modules can run on either side but others can’t. For instance I remember that modules which need file system access need to be on the Linux side, however, drivers that communicate to SPI, I2C, and probably UART can only do so from the Qurt side.

We mostly tried to have as much as possible on the DSP side to free the CPU of resources, however, as said some modules couldn’t easily be ported to the DSP and do not need the real time constraints like the estimator or attitude control modules.

I have been wondering if it’s still possible to buy these boards? The website that is linked to in the dronecode documentation (points to here) says that it is no longer available and a new iteration will potentially be available in future - is there any incite into if/when this could happen?

Good question. Good luck asking Qualcomm and/or Intrinsyc :sob:

Aha, OK, I won’t hold my breath then. I guess using one of the Intrinsyc system on module boards as a companion computer is an option too. The processing power looks attractive vs. current generation raspberry pis/ odroids.