Request to add KAFASAT to SatNOGS DB

Hey all,

I am an engineer on the KAFASAT(Korea Air Force Academy Satellite) production team. I would like to register a decoder with SatNOGS.
This is my first time creating a ksy parser, so please let me know how to register it.

Moonsik Song



Not sure if you have seen it, there is the satnogs-decoders repository. In the README file there are some details on how to start.

For the ksy file, I think the best way to get help is to share the details on how a frame from KAFASAT can be decoded. This will make easier to people, like @DL4PD or @deckbsd, to give you some hints.

When the ksy file is ready and tested and you have also made the rest of the necessary changes you can create a merge request that will be reviewed and added into the satnogs-decoders project. If you are not familiar with git, merge requests etc we can give you some help (or you can find several tutorials online).

Once the decoder is merged, then we connect it with the satellite in DB and decoding can be started.

The decoded data then are available in for creating a dashboard. To create a dashboard you will need to have the necessary permissions, to get them, please login at least once in the site and then let us know in order to give you the permissions.

PS For quicker and more direct communication feel free to join our #satnogs matrix room, find more details on how to join in Get In Touch - SatNOGS Wiki


Hello @moonsik

@fredy told you everything already, i’m just adding that also a great ressource that can be used to develope the kaitai structure is the online web IDE here : . It helps for having a quick result while developing.

And also like Fredy said, feel free to hop in the SatNOGS matrix room :slight_smile:


@moonsik I am Mikaël, I am the postdoc from KAIST’s ASCL lab.
I believe we meet a few weeks ago.

I added the RANDEV decoder recently, and I will do a Dashboard soon.

If you need any help, don’t hesitate to contact, it would be a honor to help.
I am in Daejeon if you need to meet.
Or if you prefer I can make the KAFASAT decoder.

A short summary of how to do it:

  • Use the KAITAI Web IDE to develop your decoder
  • Add the two KAFASAT entries to satnogsdecoders/decoder/
  • Check check that the decoder works :
    • Use contrib/ to generate the python decoders
    • Install the generated python library
    • Get frames with contrib/manage/
    • Use to decode the telemetry data and make sure it is correct
  • Go on the gitlab repo
    • Rename :field callsign: into :field dest_callsign: in the repo
    • Squash commits and rename commit to matches the convention
    • Make sure you pass the CI pipeline (you need to add your own workers or purchase worker credits)
    • Do the PR with a title that matches the convention

You can find more detrails in the


Created KAFASAT ksy parser file.
We confirmed that the written ksy parser decodes beacon packets.
I created this to add the ksy parser here.

For the static job in the CI pipeline, you need to swap these two lines:

from .ksu import Ksu
from .kafasat1 import Kafasat1

And for the signing-off job, add a signed off at the end of your commit message:

Signed-off-by: Song Moon-Sik <>



Hi again,
Right now the pipeline is accepting your last commit but not the previous ones:

So you just need to squash all your commits and you should be good.

All commit errors have been corrected.

1 Like

Hello @moonsik

Usually when adding a new decoder it’s best to have it in only one commit. Once everything is good, feel free to open a MR on satnogs-decoders so we can merge it into the project for the decoder being integrated :slight_smile:

1 Like

What do I need to do to open MR for integration?

Right know the code is in the satnogs-decoders project that is on your Gitlab repository, for applying the change to the satnogs-decoders project of the LSF, a merge needs to be done.

In order to submit an MR, you have to got here and create an MR by clicking the “New merge request” button. Then you select your repository and the branch where you have to code that add the decoder and write a little explanation about what the MR is about :slight_smile:

After the MR has been created someone from the LSF will review it, and if everything is correct, your modification will be merged.

I sent an email for a “New merge request”, but it was rejected as shown below.

------ Original Message ------

Date: Wednesday, Dec 13, 2023 09:15:22 AM
From: “GitLab”
Subject: [Rejected] Adding decoder for the KAFASAT satellite.

Unfortunately, your email message to GitLab could not be processed.

You are not allowed to perform this action. If you believe this is in error, contact a staff member.

An email ? it doesn’t work via email. Normally you don’t need any specific permission to create an MR. Please read what i have written in the previous post :slight_smile: :

In order to submit an MR, you have to got here and create an MR by clicking the “New merge request” button. Then you select your repository and the branch where you have to code that add the decoder and write a little explanation about what the MR is about :slight_smile:

When you access satnogs-decoders MR, the following appears.

As shown, it says “Email a new merge request to this project”.

When you click, a link to send an email will appear.

I wasn’t talking about this link at the end of the page but the button at the top. When your are on the MR page, you should see a blue button “New Merge Request” at the top right corner of the page :

The “New merge request” button is not visible.

ok, you can do it via your repository, can you see the button here ?

Yes, I see the button.

When you click the button, the following appears.

1 Like

In the source branch (the one at the left) you choose your own repository(fork), song93/satnogs-decoders, and the master branch, which is the one you have the commit(s) you want to merge. If the changes were in another branch then you would choose that one.

In the target branch (the one at the right) you choose the librespacefoundation/satnogs/satnogs-decoders and the master branch.

1 Like