Skip to content

Instantly share code, notes, and snippets.

View darksidelemm's full-sized avatar

Mark Jessop darksidelemm

View GitHub Profile
darksidelemm / spyserver.service
Created October 27, 2023 05:34
SpyServer Systemd Service File
# For running outside of a python virtual environment
ExecStart=/home/pi/spyserver/spyserver /home/pi/spyserver/spyserver_autorx.config
darksidelemm / spyserver_autorx.config
Last active October 27, 2023 05:02
SpyServer Configuration File for radiosonde_auto_rx
# 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 <> ~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:
# 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
darksidelemm / gist:efbcc515a93f260060889c25b6cc52b8
Last active March 23, 2021 09:13
Rocketlab "They Go Up So Fast" TLE Estimate
Based on a 2021-03-22T22:20:00Z launch, into a 45 degree inclination, 550km circular orbit.
Rocketlab press kit:
Note that the press kit has a launch time of 20:21Z, and the website ( ) has a launch time of 22:20Z. I'm going with the latter.
I'm using this process to generate the TLE:
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

Project Horus Flight 55 - LoRaWAN Payload Reception Information

  • Author: Mark Jessop <vk5qi(at)>
  • Date: 2021-03-07

Hardware Used:

Longest Range

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 "AE 90 64 B0 A0 9A 60 9C 6E A6 96 86 40 E1 03 F0 00"
import codecs
import sys
darksidelemm /
Last active May 25, 2023 21:20
TLE Estimation for an Upcoming Rocket Launch

TLE Estimation for an Upcoming Rocket Launch

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...

#/usr/bin/env bash
# SpyServer HF APRS iGate Script
# Mark Jessop <> 2020-09
# This script enables operation of a HF APRS iGate using input from a SpyServer.
# This is targeted for a Raspbian install. These instructions will probably work on
# other debian-based systems too.