Xilinx Zynq UltraScale+ MPSoC Drone Controller

The official term is Unmanned Aerial Vehicle (UAV), which is a bit clunky, so we prefer to say drone. Over the past few decades, drone technology has made tremendous progress. We developed a flight and video controller for a drone for a client.
Client Challenge
The client required a hybrid FPGA/CPU hardware whose performance met the requirements, while being lightweight, compact, and energy-efficient. A passive cooling solution would be effective for this. Additionally, the hardware needed to operate reliably under harsh conditions (vibration and extreme temperatures).
Solution
The previous generation of successful drone controllers was built on Xilinx Zynq-7000. For this upgrade, our engineering team adopted the Xilinx Zynq UltraScale+ MPSoC, whose CPU handles position control and flight path tracking. Sensors and actuators are connected via FPGA logic; the number and type of these interfaces vary significantly depending on the application of the controlled vehicle, so all these interfaces are dynamically configurable. It has all the sensors required for a drone controller, including GPS from the highly integrated VectorNav VN-300 IMU.

The controller supports redundancy through two mutually supervised parallel flight controller units. If the currently active flight controller fails, the backup unit automatically takes over all tasks. In addition to the Zynq UltraScale+, it is also equipped with a radiation-tolerant Polarfire FPGA and a safety-certified MCU (synchronized with the Zynq), which can take over control if the Zynq fails. It has several communication interfaces: such as Ethernet, 2-wire automotive Ethernet, ARINC429, RS232/422/485, and CAN, which needs to be switched in case of a fault in the Polarfire FPGA.
In addition to flight control functions, the controller also prepares and compresses full HD video signals (HD-SDI) from cameras for transmission via radio. It has 4 HD-SDI video inputs and 2 HD-SDI video outputs, supporting up to 6G / 4K resolution.

Both generations of drone controller circuit boards have dimensions of 105×65mm. The previous generation controller did not have redundant FPGA/MCUs and used a single-board design. The new generation controller, incorporating many new features/devices, adopted a dual-board folded design.
Technologies Used
Xilinx® Zynq® UltraScale+®, Mentor Graphics PADS®, HD-SDI, VHDL, C, C++