Development of new decoder for Inovor "Apogee" TT&C UHF Beacons


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

1 Like


I would recommend installing the deb packages instead of from source. Try uninstall of the source installed files first.

/etc/apt/sources.list.d/satnogs.list :

deb /

Then add the release key:
apt-key adv --fetch-keys ""

And install with apt, apt install gr-satnogs and whatever else is needed.

If you don’t want to add the repo, you can snag some of the methods I use in one of my docker builds.


Hi @jack.p-inovor and welcome in the community!

The satellite and its transmitter have been added in SatNOGS DB. Feel free to login and suggest any changes there.

For the demodulator development I’m cc’ing @surligas as well as Zoe, who recently join radio developers team. However have in mind that both of them are busy these days with the upgrading the radio part of the new release of satnogs-client.

About the decoder, as you pointed you need to write the kaitai struct for the satellite’s encoding schema. If you need any help you can ping @DL4PD (oldbug in matrix rooms) or @deckbsd.

For better and quicker communication I suggest, if you haven’t done it already, you join the #satnogs and #satnogs-dev matrix chat rooms.


Thanks Daniel,
Your advice to install the deb packages has worked for me.
Your docker information is really interesting, do you use docker mainly to run the satnogs client or for development as well?

Thanks Fredy,

I’ve made one suggestion to change the name of the transmitter, let me know what you think.
I might also see if we have a more up to date image of the spacecraft, the one on the website is a bit old.
All other information looks perfect.

I’ll be sure to reach out to the people you’ve named when I need help. Thanks for making me aware of the chat rooms, I’ll sign up for an account.

1 Like