I started this project because I wanted to make a drone based on raspberry pi and universal windows platform (UWP). To make this happen, I had to use windows 10 IoT core running on raspberry pi 2/3 and all the other stuff listed above.
The idea is simple: you get drone's hardware except for receiver and transmitter that are replaced by a raspberry pi and a windows 10 device. In the first place, the communication between the drone and the controller was based on wi-fi connection, but then after some tests, I’ve implemented a new setup based on 4G/LTE connection.
How does it work
I've made a universal app called “Drone” that runs on a windows 10 device (master) and on the raspberry pi (slave). In order to replace the wi-fi connection I've made a web app called “DroneRemote” that uses web socket to allow the communication between the drone and the controller based on 4G/LTE connection. In addition, the web app displays telemetry data, GPS data and in-flight pictures. The Raspberry Pi is connected to the flight controller through serial connection (USB), the protocol used to communicate with the flight controller is MultiWii Serial Protocol (MSP), that allow to simulate the RC controller. Finally, an Xbox one controller, connected to a Windows 10 device, is used to pilot the drone.
I solve the connection range problem using 4G/LTE connection between the drone and the controller. I was worried about the connection latency, but I've noticed that is less than 100ms.
Other features and improvements
I'm working on the implementation and testing of a brand new setup based on 4G/LTE communication between the drone and the controller using web sockets.
For more detail: Drone Pi: A Windows 10 Raspberry Pi 4G Drone