We wanted to build a system that could synchronize data between disparate teams with minimal hardware overhead.

About The System

WheatPost consists of, at its lowest level, a Raspberry Pi (either Zero or 3B+) mounted to an autonomous GPS enabled drone. Quadrino and APM based variants were tested. The Raspberry Pi hosts a number of services which may be of use to first responders:

  1. Wiki. The default interaction mode for WheatPost is a self-hosted DokuWiki instance which contains both documentation, and all the executables and code needed to get started communicating with all functionality of the drone system. This wiki is hosted in a docker container.
  2. Docker. Most system resources are handled through the use of a docker environment on the Pi, which is administered by a hosted and accessible Portainer Container on port 9000, such that a user would be able to rapidly spin up additional images if they either had access to WAN or the desired image locally.
  3. User based file management. The file system is split into user based folders with a user list and common folder at top level. Users have access to their own folder, the common folder, and the user list. Users will use the Python application to send files to other users. A new user can also be created in the system with the Python application.

The Raspberry Pi can operate in two main modes: Node mode, where the WheatPost Pi joins wifi networks automatically, or AP Mode, where the unit generates its own wifi network.

Challenges we ran into

PERMISSIONS ERRORS: For parts of the code, we needed admin privilege. This was an issue on both linux and Windows. We got around it by escalating permissions and rewriting a shell script in C.

Accomplishments that we're proud of

During the course of the hackathon, our drone flew for the first time and was given a full system rundown. We were able to successfully manipulate files on the remote WheatPost server using nothing but our own python tools. We were able to set up and alter the WheatPost drone's course using a bluetooth connection.

What's next for WheatPost

The file management system requires more work than we had time for at the Hackathon, mostly in order to circumvent above described permissions errors. Additionally, we were blocked from doing a full outdoors test flight, so most certainly taking WheatPost outside and setting it lose would be in order.

Share this project: