Radio Pi is a light weight command and control system for embedded SDR devices. It has been built to run off of small embedded chips which we simulated on the Raspberry Pi 3B+. Radio Pi is our command and control system that Internet of Things devices and software defined radios have needed for years and an improvement on the current implementation used by our client, General Dynamics.
A command and control system is something that allows for controlling the device or accessing it. Often this is done remotely through an API by another computer. However, these kinds of systems are additional burdens for the device. In order for the SDR to run optimally, the command and control system needs to be efficient in terms of size, speed, and computations.
Our client, General Dynamics Missions Systems, is a defense contractor with a variety of custom solutions they sell including communication systems, command and control systems, cybersecurity, and intelligence solutions. Something that they have worked on previously and continue to develop are SDR's. In order to control these, they also built a command and control system for them.
Currently, one of the systems that General Dynamics uses was developed in 2008 using Adobe Flash. Eventually it was later updated with HTML5 while the Flash program was wrapped in Javascript. This would then create an XML file to actually share the information from a database. The XML file is then parsed by a web browser to view it and interact with the user. The current version is bogged down by these layers of implementation across technologies. The details about the original problem can be found here.
We decided to develop on a Raspberry Pi 3B+ to simulate a smaller embedded device. For an operating system, we ran this on the most recent version of Raspian OS. During development we even found a bug in Raspian OS, which Kaelen developed a fix for. The final product that we created is a database system on the Raspberry Pi that can be accessed remotely. This was developed with a combination of C and Python utilizing tools including Flask and SQLite. We created both a backend hosted on the Raspberry Pi as well as a frontend to connect through. This frontend enables a user to see what is being stored on the Pi, and could be expanded in the future.
This project was split between Fall 2020 and Spring 2021. The progress can be seen in the following chart as well as the Trello board.