This project is intended to build a system for receiving satellites via a distributed system of software defined radio (SDR) receivers. These receivers are already built and available, courtesy of WebSDR.
While this should be updated by PySprings users, the general idea is this:
-
Identify and collect a set of amateur radio satellites, such as amsats or other OSCARs.
-
Identify and catalogue the ground stations on the WebSDR site, recording their physical locations and frequency ranges
-
Build an API to communicate with the WebSDRs:
- Reverse engineer the protocol used to talk to the server
- Determine the tuning commands
- Determine how to acquire (audio) samples from a site
- Wrap all of these in a web-based API, potentially using requests
-
Pick an amateur satellite which carries a voice transponder (or any other modulation type which is decodable by the radios on WebSDR)
-
Get a representation of its orbital parameters
-
Determine its present location in space and the projection of such on the ground, using something like PyEphem or PyOrbital.
-
Use some kind of distance algorithm to determine which of the ground stations discovered in step 2 is closest
-
Access the WebSDR API to tune the SDR to the appropriate downlink frequency
-
Use the API to pull samples for playback
-
Listen to SPACE!
websdr_api/ - Code/package for controlling a WebSDR instance space_radio/ - Application code with logic for controlling the system
This should track the progress made to this system and when it happened, for posterity:
- 22 May 2018: This README created