Mark VK5QI 2025-04-19
This assumes you have a functioning wsprdaemon setup, using ka9q-radio and RX888 receiver.
We can just get direwolf from the Ubuntu package repositories:
sudo apt-get install direwolf
[Unit] | |
Description=spyserver | |
After=syslog.target | |
[Service] | |
# For running outside of a python virtual environment | |
ExecStart=/home/pi/spyserver/spyserver /home/pi/spyserver/spyserver_autorx.config | |
Restart=always | |
RestartSec=15 | |
WorkingDirectory=/home/pi/spyserver/ |
# SPY Server Configuration File for radiosonde_auto_rx | |
# Modify as necessary, refer to comments throughout the file. | |
device_type = AirspyOne | |
# Device Serial Number as 64bit Hex, or set to 0 to use the first available device | |
device_serial = 0 | |
# Initial Center Frequency | |
# Recommendations for Airspy Mini (6 MHz sample rate, 4.8 MHz usable): | |
# Australia - 402500000 |
# | |
# SSDV Image Grabber | |
# | |
# Author: Mark Jessop <[email protected]> ~2022 | |
# | |
# Dependencies: | |
# * Python 3 | |
# * Python libraries (install using pip): | |
# * requests | |
# * wget |
#!/usr/bin/env python | |
# | |
# Hacky Rig Sync Utility. | |
# | |
# Reads frequency from one rigctld server, and sends it to another rigctld server. | |
# | |
# My use-case: Syncing up a SDR++ instance (connected to a remote spyserver) to my | |
# Icom IC-7610. In my case I'm using wfview's rigctld server to access the Icom. | |
# | |
# |
# | |
# SSDV Image Grabber | |
# | |
# Run with: | |
# python ssdv_grabber.py CALLSIGN TIME | |
# where CALLSIGN is the payload callsign, and | |
# TIME is the time of the oldest image, as %Y-%m-%dT%H:%M:%SZ | |
# | |
import requests | |
import argparse |
Based on a 2021-03-22T22:20:00Z launch, into a 45 degree inclination, 550km circular orbit. | |
Rocketlab press kit: https://www.rocketlabusa.com/assets/Uploads/Flight-19-They-Go-Up-So-Fast-Press-Kit-small.pdf | |
Note that the press kit has a launch time of 20:21Z, and the website ( https://www.rocketlabusa.com/missions/next-mission/ ) has a launch time of 22:20Z. I'm going with the latter. | |
I'm using this process to generate the TLE: https://gist.github.com/darksidelemm/60dd22c74ebe2e6d89bae9e6a845da5e | |
22:20Z Launch: | |
1 99999U 21081.93402778 .00000000 00000-0 50000-4 0 09 | |
2 99999 45.0000 100.0000 0001443 0.0000 243.5000 15.05492052 06 |
Longest Range was 585.6 km to "Federation University - Meshed - 4 - AU915" (Ballarat, Victoria), with the payload at 30333 mASL.
#!/usr/bin/env python | |
# | |
# Print out AX25 dst/src callsigns, and packet path from a SatNOGS HexTDump | |
# | |
# Example: python ax25_callsigns.py "AE 90 64 B0 A0 9A 60 9C 6E A6 96 86 40 E1 03 F0 00" | |
# | |
import codecs | |
import sys |
Scenario: RocketLab are launching 30 small-sats into space in a few days. We know that one of them is going to be transmitting on the amateur radio bands, but we haven't been able to obtain a pre-launch TLE yet. We want to get setup to use strf to listen for beacon signals (see my guide here), but we need to know when to expect the satellites. We have some basic orbital information from a press release, so how can we use this to estimate a TLE for prediction purposes?
Note: I am approaching this from the point-of-view of someone who really don't know much about orbital mechanics. I'm relying heavily on the experience of others, and the content below is my attempt at documenting the process taken.
Thanks to Cees Bassa for the amazing software as always...