New CubeSat: QARMAN

Hello everyone,

QARMAN, the re-entry CubeSat we developed at the von Karman Institute (VKI) in Belgium, is currently waiting deployment inside the ISS. According to the last update we received, the deployment in orbit is planned for the week of 20th January (to be confirmed and refined).

Could you please add QARMAN to the database? It would be really nice to have a dashboard to visualize the beacon telemetry, but I don’t have the skills for that. Is there anyone willing to help?

Here is the beacon information. It will be updated on our website as soon as possible (in the coming days):

Frequency: 437.350 MHz (as coordinated by IARU)

Periodicity: every 2 minutes in nominal modes (Phase 0, Phase 1, Phase 2); every 10 minutes in Safe Mode and Low Power Mode.

Modulation: GMSK

Protocol: AX.25 (UI frames)

Content (information field): 74 bytes in Phase 0, Phase 1, Phase 2, Safe modes; 39 bytes in Low Power Mode. * For decoding the content, please refer to the attached file.

From: ON05BE

To: ON4VKI

Space segment transceiver: Li-100 (Astrodev)

7 Likes

Some useful docs:

Is there anything else I should/could provide? Any advice is very welcome :slight_smile:

4 Likes

Thanks for the details!

I have opened issues to add the details in DB and to prepare for the deployment:



I’ll keep updated both the issues and this thread.

3 Likes

Thanks @fredy!

Fresh update from this morning: the deployment is now planned for 12 February… I think it might still change a few times by then… :wink:

And here is a slightly updated beacon specification (171.0 KB) .

3 Likes

Short update:

4 Likes

Less than 10 days before deployment, some fresh news about QARMAN!

  • Deployment is scheduled for 12 February, 10:05 GMT. We are working on making the live video feed available for everyone.
  • Some correction were implemented in the beacon specs document (170.8 KB) The latest versions are available from our website.
  • Please be aware: we have a frequency buddy! Coincidentally, Phoenix CubeSat will use the same frequency as QARMAN, and be released from the ISS 90 minutes earlier. QARMAN and Phoenix CubeSat will have very similar orbits and might be very close from each other in the beginning. More info about Phoenix CubeSat and related amateur operations can be found here. If you received signals from Phoenix CubeSat, please let @sarah_srogers know! If you have any doubt, please tag both of us :slight_smile:
2 Likes

Do you probably have some sample frames? The raw frames in ax.25 would be sufficient.

Sure! Please see below. Is there anything else that could be useful?

An audio sample: Beacon recording (IQ file from SDR#) (password: QarmanBCN)

A few raw AX.25 frames: BCNcapture.txt (1.1 KB) (as they come from the flatsat, OBC temperature will not be realistic as calibration is different)

3 Likes

I‘ll have a look, thanks a lot!

Oh, I see: they seem to be in KISS format. Pretty good to work on, just need a confirmation!

Indeed, QARMAN is using KISS format.

Hm, just to be precise: the exchange format of the frames after demodulating is KISS format - the satellite itself (hopefully!) does not use KISS format.

Thanks for the precision! Of course you are right!

2 Likes

From current observations the data seems to be totally correct!
I am finishing the decoder in the next hours and will try to build a simple dashboard for QARMAN.

While reading your instructions in the decoder spread sheet I am concerned if you properly interpret the beacons correctly. If you are just copy and pasting the data from OnlineKISS: you will see “corrupted” beacons caused by the KISS escape sequences. If a value inside your beacon reaches 0xC0 the KISS protocol expects this data to be escaped, otherwise this would indicate the frameend. So you might get “larger” beacons than expected and corrupted data.

2 Likes

Thank you very much for the dashboard!

Your remark about 0xC0 is very interesting, I didn’t know that and it explains a few strange things I have seen during the tests! How would the TNC (we use SCS tracker / DSP TNC) behave if receiving 0xC? And if asked to transmit some?

1 Like

It uses an escape sequence to surround that value. This enlarges the frame each time a value contains one of the escape symbols. I can paste some code in here later to show how to KISSify and de-KISSIfy a byte-stream…

As a first reference I would suggest you read this:

To easily convert from KISS frames for my work with satnogs-decoders I built a small snippet in python:

kiss_to_bin.py:

"""
KISS parser to remove the KISS escape sequences and get binary frames
"""
from __future__ import absolute_import, division, print_function

import binascii
import sys
import getopt

FEND = 0xc0
FESC = 0xdb
TFEND = 0xdc
TFESC = 0xdd

class kiss_to_bin(object):  # pylint: disable=too-few-public-methods
    def __init__(self):
        self.out = bytearray(b'')
        self.transposed = False
        pass

    def decode(self, in_bindata):  # pylint: disable=no-self-use
        self.out = bytearray(b'')
        bindata = bytearray(in_bindata)
        
        i = 0
        binlen = len(bindata)
        while i < binlen:
            char = bindata[i]
            if char == FEND:
                i += 1
            elif self.transposed:
                if char == TFEND:
                    self.out.append(FEND)
                elif char == TFESC:
                    self.out.append(FESC)
                self.transposed = False
            elif char == FESC:
                self.transposed = True
            else:
                self.out.append(bindata[i])
            i += 1
        return self.out

if __name__ == "__main__":
    # some examples
    DEC = kiss_to_bin()
    print("decode: " + str(binascii.hexlify(binascii.unhexlify('C000DBDC11272722C0'))))
    print("decoded: " + str(binascii.hexlify(DEC.decode(binascii.unhexlify('C000DBDC11272722C0')))))
    
    print(binascii.hexlify(binascii.unhexlify('C000001122DBDD0011a2727220C0')))
    print(binascii.hexlify(DEC.decode(binascii.unhexlify('C000001122DBDD0011a2727220C0'))))

    print("unKISSing array...")
    kiss = [
        "c0008898608aa6826088a0609ea0a66103f035efcedbdc9ae0705171cd93caa7b717cc5a977d8532e16f130a10e60095dfdfb1fe901c38ca9c4286875d275adcdc8d9c218edcacbc6b7e10705f64a7b4f57ebcb9f77e5e8c0c8eda33f683d64974f780f30784905016045047ce06ea159ec0",
        "c0008898608aa6826088a0609ea0a66103f035efcedbdc9ae0705271cd93caa7b717cd5a977d8532e16fb50a10e60095dfdfb1fe901c38ca9c4286875d275adcdd8d9c218edcacbcc97e10705fde064226e45824b2b84147d2c5fec164dbdc3b35d69f1662d1d9f129486ca940d0e890af7ac0",
        "c0008898608aa6826088a0609ea0a66103f035efcedbdc9ae0705271cd93caa7b716315a977d8532e1702d0a10e60095dfdfb1fe901c38ca9c4286875d275adcc18d9c218edcacbd517e10705f36d30af06ee69f4fe1cd59ab0cae5529bdb03235bf7e428cb457268b3de8149dd4ebf5c4c0",
        "c0008898608aa6826088a0609ea0a66103f035efcedbdc9ae0705271cd93caa7b717ce5a977d8532e1704f0a10e60095dfdfb1fe901c38ca9c4286865d275adcde8d9c218edcacbd377e10705fe58dfb0164a6426921f58f76caeaf3d5dbddca65dda4dbdcff6e23e8fedf0cc9c8c5fe8559bec0",
        "c0008898608aa6826088a0609ea0a66103f035efcedbdc9ae0705271cd93caa7b717cf5a977d8532e170f10a10e60095dfdfb1fe901c38ca9c4286865d275adcdf8d9c218edcacbd957e10705f083d0a63af7b93de123340142fbe7865713a1dab7a53fd786230bc7421b9fa9345a96cabc0",
        "c0008898608aa6826088a0609ea0a66103f035efcedbdc9ae0705171cd93caa7b717cc5a977d8532e16f130a10e60095dfdfb1fe901c38ca9c4286875d275adcdc8d9c218edcacbc6b7e10705f64a7b4f57ebcb9f77e5e8c0c8eda33f683d64974f780f30784905016045047ce06ea159ec0",
    ]

    for kiss_frame in kiss:    
        print(binascii.hexlify(DEC.decode(binascii.unhexlify(kiss_frame))))

    print("done...")

Hope that helps…

1 Like

First of all, many thanks to all of you for your support! SatNOGS has been an incredible source of data for us so far, extremely useful over the first month of the mission!

A few words about QARMAN: the CubeSat is doing fine, very stable and nominal parameters, batteries always fully charged, comfortable temperatures, a few unexpected reboots but not that much. Only issue is that we cannot reach it with our commands. We are working on it, but no success so far. (we are extremely interested by feedback about Astrodev Li-1 radio!)

Then, the news of the day: today is Mission Day 33. We expect QARMAN to have transitioned to Phase 2 and to have deployed its solar panels. It should be visible in the beacon data: OBCmode=Phase 2, Current should now be generated by +/- Xo, +/- Yo panels, AeroSDS 3.3V & IMU should be enabled. Please let us know if you decode such a beacon!

Thanks again, and take care!

1 Like

Hm, I cannot see any data for QARMAN from the last 7 days. Could you probably push the frames you are receiving into db.satnogs.org?

What about the NORAD-ID Lottery?

Ok, thanks to @fredy this is now fixed in the dashboard!

Aaaaaaand: we have covered that case! @vk5qi captured a frame after the mode change, see: https://dashboard.satnogs.org/d/98UPKYQWk/qarman?orgId=1&from=1584979017618&to=1584979511506

And there are several more after this one:

1 Like