{"id":20909858,"url":"https://github.com/un1xg0d/starstream","last_synced_at":"2025-05-13T07:31:22.522Z","repository":{"id":192485576,"uuid":"686820213","full_name":"Un1xG0d/StarStream","owner":"Un1xG0d","description":"Automate the receiving and logging of radio transmissions from overhead satellites with a Raspberry Pi.","archived":false,"fork":false,"pushed_at":"2024-10-31T03:48:08.000Z","size":17529,"stargazers_count":16,"open_issues_count":0,"forks_count":3,"subscribers_count":1,"default_branch":"master","last_synced_at":"2024-10-31T04:24:49.978Z","etag":null,"topics":["amateur-radio","ariss","flask","geolocation","international-space-station","iss","noaa","noaa-satellite","python","radio","raspberry-pi","rtl-sdr","sdr"],"latest_commit_sha":null,"homepage":"","language":"HTML","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Un1xG0d.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-09-04T02:25:54.000Z","updated_at":"2024-10-31T03:48:11.000Z","dependencies_parsed_at":"2023-09-29T23:57:38.975Z","dependency_job_id":"aac6e2c7-0427-42f9-b7f8-a53db55008ba","html_url":"https://github.com/Un1xG0d/StarStream","commit_stats":{"total_commits":212,"total_committers":1,"mean_commits":212.0,"dds":0.0,"last_synced_commit":"f6fe391e7758f530a95beba6762b5bd18b10f98a"},"previous_names":["un1xg0d/autoariss"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Un1xG0d%2FStarStream","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Un1xG0d%2FStarStream/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Un1xG0d%2FStarStream/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Un1xG0d%2FStarStream/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Un1xG0d","download_url":"https://codeload.github.com/Un1xG0d/StarStream/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":225187928,"owners_count":17434970,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["amateur-radio","ariss","flask","geolocation","international-space-station","iss","noaa","noaa-satellite","python","radio","raspberry-pi","rtl-sdr","sdr"],"created_at":"2024-11-18T14:13:05.207Z","updated_at":"2024-11-18T14:13:05.656Z","avatar_url":"https://github.com/Un1xG0d.png","language":"HTML","funding_links":[],"categories":[],"sub_categories":[],"readme":"# StarStream\n## Overview\nThe idea behind this project is to automate the receiving and logging of communications from the [amateur radio repeater on the International Space Station](https://www.ariss.org/).\n\nIt uses the real-time location of the ISS to determine distance from the user and automatically starts receiving through an attached SDR when the conditions are deemed acceptable.\n\nIt can also automatically capture and process NOAA weather satellite images.\n\n\u003ch1 align=\"center\"\u003e\n  \u003cimg src=\"https://github.com/Un1xG0d/StarStream/blob/master/images/picture_go_kit.png\"\u003e\n  \u003cbr\u003e\n  \u003cimg src=\"https://github.com/Un1xG0d/StarStream/blob/master/images/screenshot_dashboard.png\"\u003e\n  \u003cbr\u003e\n  \u003cimg src=\"https://github.com/Un1xG0d/StarStream/blob/master/images/screenshot_recordings.png\"\u003e\n\u003c/h1\u003e\n\n## Getting Started\n### Configure Raspberry Pi\nInstall [Raspberry Pi OS Lite (64 bit)](https://www.raspberrypi.com/software/) onto your Raspberry Pi, configure the WiFi settings, and create an account with the username `admin`.\n\nThis is the headless mode without a GUI, which will make the system last longer on battery power.\n\n### Install dependencies\nInstall required software with the commands:\n```\nsudo apt install -y gpsd gpsd-clients python3-pip rtl-sdr sox\npip3 install -r requirements.txt\n```\n\nYou will also need to install the [NOAA-APT image decoder](https://noaa-apt.mbernardi.com.ar/):\n```\nwget https://github.com/martinber/noaa-apt/releases/download/v1.4.1/noaa-apt-1.4.1-aarch64-linux-gnu-nogui.zip -O /home/admin/StarStream/decoder/noaa-apt-1.4.1-aarch64-linux-gnu-nogui.zip\nunzip /home/admin/StarStream/decoder/noaa-apt-1.4.1-aarch64-linux-gnu-nogui.zip -d /home/admin/StarStream/decoder/\nrm -rf /home/admin/StarStream/decoder/noaa-apt-1.4.1-aarch64-linux-gnu-nogui.zip\n```\n\nYou may need to configure GPSD to use your [USB GPS receiver](https://www.amazon.com/GlobalSat-BU-353-S4-Receiver-Black-Improved-New/dp/B098L799NH):\n```\nsudo sed -i 's/GPSD_OPTIONS=\"\"/GPSD_OPTIONS=\"\\/dev\\/ttyUSB0\"/' /etc/default/gpsd\n```\n\n### Set up API accounts\nYou will need to create an [OpenAI API key](https://openai.com/blog/openai-api) to handle the audio-to-text transcriptions, and an [ngrok token](https://ngrok.com/) to expose the Flask app to the internet without any additional setup like port forwarding.\n\nYou will also need to create a [Gmail app password](https://myaccount.google.com/apppasswords) to send the latest dashboard URL to yourself when the app is started.\n\nIf you want to capture images from the NOAA satellites, you will also need an API key for the [N2YO API](https://www.n2yo.com/login/register/).\n\nOnce you have these, create a `.env` file in the root project directory and populate it with your personal tokens:\n```\nGMAIL_ADDRESS=example@gmail.com\nGMAIL_APP_PASSWORD=xxxxxxxxxxxxxxxxxxx\nN2YO_API_KEY=xxxxxxxxxxxxxxxxxxxxxxxxx\nNGROK_AUTHTOKEN=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\nOPENAI_API_KEY=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\n```\n\n### Connect your SDR\nBefore starting the trackers, make sure your SDR is connected via USB. I am using the RTL-SDR kit from [this link](https://a.co/d/3p9rCar).\n\n### Run the bootstrap script\nRun `bootstrap.sh` once to configure a crontab that automatically starts both the tracking scripts and the web dashboard on boot.\n```\nbash bootstrap.sh\n```\n\n### Start the ISS tracking script\nStart the ISS tracking script as a background process:\n```\npython3 tracker_iss.py \u0026\n```\n\nThis script will constantly query the location of the ISS and will start recording when the distance is less than 750 miles away from your current location and the elevation is more than 15 degrees. You can adjust these variables in the `config` object.\n\n### Start the NOAA tracking script\nStart the NOAA tracking script as a background process:\n```\npython3 tracker_noaa.py \u0026\n```\n\nThis script collects a list of NOAA satellite passes overhead of your location. It constantly compares the timestamps of the future passes to the current timestamp, and starts recording when the satellite is nearby. It will automatically process each recording into a satellite image, which you can view on the web interface.\n\n### Launch the web interface\n```\npython3 web.py\n```\n\nThe Dashboard page has general information on the status of the ISS, your recordings, and a map of the real-time position of the ISS. It also displays a list of future NOAA satellite passes at your location.\n\nThe Recordings page lets you analyze individual captures, play the converted audio files, read transcripts of the communications, and view any processed satellite images.\n\nThe Controls page allows you to specify parameters and manually capture a recording.\n\nThe Logs page displays the most recent output of the tracker scripts.\n\n## References\n[NOAA-APT Image Decoder Documentation](https://noaa-apt.mbernardi.com.ar/usage.html#terminal-1)\n\n[N2YO API Documentation](https://www.n2yo.com/api/#radiopasses)\n\n[Where the ISS at? API Documentation](https://wheretheiss.at/w/developer)\n\n[RTL_FM Documentation](https://manpages.ubuntu.com/manpages/trusty/man1/rtl_fm.1.html)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fun1xg0d%2Fstarstream","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fun1xg0d%2Fstarstream","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fun1xg0d%2Fstarstream/lists"}