Background
Apogee is a bespoke cubesat bus designed and built in Australia by Inovor Technologies. Apogee uses an encrypted TT&C link in the commercial UHF band around 400 MHz, but can also beacon an unencrypted ‘state of health’ packet. The TT&C radio uses a 9600 baud FSK signal with a proprietary protocol.
There is currently one satellite in orbit that uses the Apogee bus, SpIRIT from the University of Melbourne, you can find SpIRIT in the SatNOGS DB here. After the launch of SpIRIT in December 2023 many observations were made of the beacon which was very helpful for us to monitor the satellite outside of ground station passes. However due to the proprietary protocol the beacons couldn’t be decoded natively by SatNOGS.
With the upcoming launch of Kanyini (on Transporter 11), the second satellite to fly the Apogee bus we would like to provide a demodulator and decoder of the beacons to give back to the SatNOGS community. There is a ticket to add Kanyini to the SatNOGS DB here.
Help With Development
I’ve only dabbled in GNU Radio so far, and have been reasearching over the last few days how it integrates with SatNOGS. I have a high level understanding of the relationships between the gr-satnogs, satnogs-flowgraphs and satnogs-decoders repositories still have a lot to learn. I’ve never developed my own GNU Radio block but have written C/C++ and Python before.
Getting raw beacon data from observation
I have a suspicion that the existing IEEE 802.15.4 block can be used to receive the beacon frames, but I need to test this. I believe this could mean only a change in the satnogs-flowgraphs repo would be needed to get the frame data from an observation. If not it seems like I would need to develop a new gr-satnogs decoder block, is this correct?
Decoding data to fields
My understanding is that I will need to write a kaitai decoder in the satnogs-decoders repo. From there can the fields be viewable as another tab in each observation, such as AX.25 data is now? It would also be interesting if a Grafana dashboard could be setup to plot the data over time.
Setup issues
At the moment I’ve setup a Debian 11 virtual machine to test/develop, but I’m having trouble getting gr-satnogs installed properly. I’ve installed from source using the instructions provided in the repo readme and can see the SatNOGS blocks in GNU Radio. However if I add a SatNOGS block I get an error name 'satnogs' is not defined
. It seems that python isn’t aware of the satnogs module, I’m not sure how to fix this and assumed it would be taken care of during installation. I’d really appreciate it if I could get some help to fix this. It’s quite likely I might also have more questions about getting the decoder merged in. Thanks in advance.
Jack Philpott
Electrical Engineer at Inovor