RPI Interface Rev C Software

Links from: RPi Interface Rev C

This page outlines the Embedded Software support for RPi Interface, including RPi support. This project is broken into two parts, one software that runs on the STM and the other on the RPi.

The Raspberry Pi will be responsible for:

  • LTE connectivity & ground station telemetry connection

  • Health reporting

The STM32 will be responsible for:

  • Forwarding data between Ardupilot ↔︎ Raspberry Pi over SPI & UART. Exact specifics TBD

    • SPI is for LTE connectivity

    • UART is for Autonomy connectivity

  • Reporting state of health? (Monitoring cell modem status, monitoring rpi interface voltages etc)

Milestone 1:

  • Health Monitoring

  • Data forwarding over SPI + UART, no custom encoding.

Raspberry Pi Software

The rpi will need kernel support, or at the very least USB driver support: https://github.com/QuecPython/Quectel_Linux_USB_Serial_Option_Driver

  • Must Unpack Spi + custom data encoding

  • Will have custom data encoding.

    • This allows us to pack our own health data along with MAVLink.

    • This will be decoded by the rpi on the groundside.

The rest of this is TBD

STM32 Software Architecture

There will be three main threads. One for health monitoring, one for data management, and one for aux cofigurations. Further threads for individual functions may be spawned if desired.

  • Health Monitoring unit

    • Samples ADC

    • Samples any other thinsg that may need it

    • Packages this data to report over custom SPI format

    • Activates failsafes if necessary

  • Data management unit

    • Handles communication between ardupilot & lte / autonomy

    • Simply forwards & re-packages data if needed.

    • does not do any logic.

  • Cell Modem configuration unit

    • Configures the cell modem

    • Acts as a failsafe if we are no longer able to send lte data over the rpi.

  • Auxilliary unit

    • LED’s

    • peripheral timers

    • CAN communication?

    • DEBUG Uart