Where do VOXL components run

  • imported from GitLab issues


    I am trying to get a better grip of what runs where with Voxl, and I am having a hard time determining this from the modalai and Qualcomm documentation. We are using snav on the 820 Flight Pro platform.

    My questions are:

    What Voxl components run on the

    • CPU
    • GPU
    • DSP - The qualcomm doc mentions this, but I can not find anymore info on it.

    Qualcomm Navigator is comprised of multiple libraries, executables, and configuration files. The core flight controller runs on the aDSP, and other components run on the applications processor and GPU. Qualcomm Navigator provides a low-level C API for applications to interact with the flight controller.

    Where do the sensors come in to the system

    • Cameras
    • IMU
    • GPS

    How do I determine the load on

    • GPU
    • DSP - I have seen there is a qualcomm tool for this, but I have not used it yet.
    • CPU - We are using top as well as snav_inspector and this is OK.

    Regarding the DSP, I have read the 820 DSP is made up of four smaller application specific DSPs, and I see there is support for developing for the aDSP an the sDSP. Can you elaborate on what each of these should be used for, and what is already running on each of these? I have found the two support pages for these here



  • Answers to some of your questions:

    1. The VOXL is meant to be a flexible development platform that allows developers to choose where best to run the components of their application. There is documentation describing various CPU and DSP development paradigms. The GPU is typically accessed via OpenCL and OpenGL. In general, the CPU is used for most things, the "sensors DSP" (aka SLPI, SDSP) runs the flight controller (SNAV, PX4 in the near future), and the GPU offloads certain OpenCV or other applications via OpenCL / OpenGL. The "applications DSP" (aka ADSP) is not really used for anything right now but is accessible. There is also a hardware video accelerator known as "Venus" that can offload certain tasks via OpenMAX.

    2. There is flexibility with how sensors are attached to the system. Cameras primarily come in via the MIPI connectors. Each camera, however, requires custom support. There are some supported "out of the box" (eg OV7251, IMX214, etc.), while new ones would have to be developed. Cameras can also come in via USB using UVC. There are IMUs on the VOXL that can be accessed directly via the SDSP. There is GPS capability directly on VOXL (See the GPS antenna connector) that can be accessed via SNAV or else an external GPS unit can be attached via the J7 connector. There are other lots of other options as well depending on the application.

    3. Load on CPU and GPU can be monitored using our voxl-perfmon python script (https://gitlab.com/voxl-public/voxl-utils/-/blob/master/bin/voxl-perfmon). We will add DSP to this as well.