There is a similar project, called FlyingPI, but instead of using Raspberry PI, this project is using the OrangePI (Zero)/(Zero plus2)
The interface between the micro-controller and flight controller will be USB (Full-Speed). (Soon there will be STM32 high speed USB boards out, but as of now, it is USB Full Speed). The protocol will be EEM-USB (Ethernet-Emulation-Model), it is simple, just two bulk end-points. At this time I have a basic STM class driver setup and some what talking to Linux. An Ethernet interface is created and DHCP messages are streaming from the Linux. So, at-least the USB descriptors are working etc.
Why use USB? Why use Ethernet? The goal is to make the flight controller interface generic, i.e UDP This way different boards or platforms can use standard sockets instead of SPI, Serial, etc.
The main issue at this time is RAM space the board only has 138K of RAM, so, buffer space will be limited, but, should work.