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