Raspberry Pi SDR Cyberdeck
More details coming soon...
The Raspberry Pi SDR cyberdeck runs on a software framework with at it's core an ASGI (Asynchronous Server Gateway Interface), in this case uvicorn. The ASGI interface connects to FastAPI which performs the function invocations in the Python threads which control the Devices, Processes and Applications. This allows for easy system manipulation via HTTP1.1 GET/PUT/POSTS methods. The Python threads controlling the processes can range from a commandline decoder to decode APRS via an audio interface, through to starting a VNC session or starting navigation/mapping software. The intention is to make complex application flow, configuration and control easily accessible via the Cyberdeck API interface (which performs HTTP requests to the server), therefore eliminating local commandline interaction with the system. In parallel system data is dumped to an influxdb database, and exposed via Grafana, allowing easy system monitoring over longer periods of time.
The software is still in development and actively maintained at is hosted at GitHub.
Grafana serves as the entrypoint for any remote visualisation over longer periods of time, or general status monitoring. It can be used to view currents/voltages/temperatures and the status of different peripherals.
FastAPI has a handy feature where it serves an easy-to-use test interface on http://x.x.x.x:5000/docs. This can be used to test out methods and check if they have the desired effect on the system.
The remote control client is a simple Python application which uses PyQt5 and grid widgets which get populated based on the structured JSON data that is received via the Cyberdeck API. From this interface, devices can be switched on/off, status monitored, etc...
The native size of the GUI is intended for use on the Official Raspberry pi 7" touchscreen.