Skip to content

Instantly share code, notes, and snippets.

View darksidelemm's full-sized avatar

Mark Jessop darksidelemm

View GitHub Profile
// An attempt at making a 'press-fit' BNC-compatible connector
// Using the inner part of a BNC plug from RFSupplier.
//
// First print attempt used Bambu 0.12mm high quality setting and a 0.4mm nozzle.
//
// Mark VK5QI
// Smoother rendering of cylinders
$fn = 50;
@darksidelemm
darksidelemm / ka9q-radio-hfaprs.md
Last active April 19, 2025 02:20
Decoding HF APRS with KA9Q-Radio

Mark VK5QI 2025-04-19

This assumes you have a functioning wsprdaemon setup, using ka9q-radio and RX888 receiver.

Install Direwolf

We can just get direwolf from the Ubuntu package repositories:

sudo apt-get install direwolf
@darksidelemm
darksidelemm / spyserver.service
Created October 27, 2023 05:34
SpyServer Systemd Service File
[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/
@darksidelemm
darksidelemm / spyserver_autorx.config
Last active July 30, 2024 06:01
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 <[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
@darksidelemm
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: 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

Project Horus Flight 55 - LoRaWAN Payload Reception Information

  • Author: Mark Jessop <vk5qi(at)rfhead.net>
  • 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 ax25_callsigns.py "AE 90 64 B0 A0 9A 60 9C 6E A6 96 86 40 E1 03 F0 00"
#
import codecs
import sys