RoseyCubesat-1 Image Decoding


Hi All,

RoseyCubesat-1 carries two small cameras which take raw images at 480 x 360 pixel resolution. The images are composed of a single byte per pixel with bayer colour filter. These images have recently started being downloaded successfully from the satellite, and several people have already noticed this increased activity:

The RoseyCubesat-1 team has shared the image packet format, allowing us all to try to decode images. The description, given by @depegasus is as follows:

The satellite sends UI AX.25 packets. Images are transmitted in chunks of 80 pixels with a chunk ID. Packets contain the following data struct:

uint16_t packetId; //0xA4 0x0C
uint16_t sequenceId; //ignore
uint8_t isPreview; //one indicates 48x36 pixel preview, zero indicates 480x360 full resolution image
uint16_t elementId; //image chunk number. 0-21 for previews, 0-2159 for full
uint8_t pixels[80]; //pixel data

Since images are sent in raw format, as opposed to jpeg, even partial images can be seen, and the image can be shown filling-in live as more chunks are received.

To test your own decoding use the audio from the following good observation run through gr-satellites:

Resultant image attached. Conversion to colour requires conversion of the bayer filter data. This can be achieved, for example, using the Python open-cv command:
cv2.cvtColor(im, cv2.COLOR_BayerGR2RGB)

Happy decoding!


@MVP_alex welcome in the community and thank you for the info!

Please keep us updated when these image transmissions will happen to help by scheduling observations in the Network!

This is my attempt, but I didn’t replace lost packets with empty frames


Congrats on the image processing!

Could you (or anyone) please outline the steps involved to extract an image from the downlink?


1 Like

Here is another attempt for decoding:


using the combination of observations 7591263, 7597434 and 7597475.


The team has a good pass coming up over Switzerland on 29/05/2023 11:29 CET. Expecting good image download.

Thanks to those recording and decoding images so far. I have a Python image decoder I can post next week if there is demand for it.

Have a good weekend!

@MVP_alex Thank you for the update!

Checking in gpredict when the pass will happen I see that the time is on 29/05/2023 11:29 CEST (not CET), which is 29/05/2023 09:29 UTC. Please correct me if I’m wrong and please use UTC timestamps in the future at it helps a lot to avoid any confusion.


Decoding attempt:

Still a few things missing, but I like the way it’s going.

Processing attempt:


1 Like

Finalized my decoder, and got good imagery out of it!

Here’s the github: radio-satellites/RoseyCubesat-1-tools: Decode data from RoseyCubesat-1! (

Sorry for the poor documentation… as of now, it’s harder to document than writing the script itself!


Unfortunately this morning’s predicted download did not occur due to the team working on other objectives during the pass. We will try to keep you updated on future planned downloads. Apologies to anyone waiting for new data to test image decoders.


Would it be possible to have any downloads over NA? It would be pretty awesome for people here to download imagery as well…

Rosey has been very quiet lately…

Hi @tomasz

I believe the team has been busy working on their automated onboard scheduling capabilities, allowing them to take images or perform downloads even when not above their groundstation.

I believe downloads will begin again soon. Perhaps try to listen during passes over Switzerland on Wednesday night and Thursday this week.


1 Like

There was some imagery downlinked earlier this week. @PE0SAT got some of it

1 Like

Hi All

We are expecting image download during the ~9:25am UTC pass over switzerland this morning.


1 Like

Two images got downlinked. One was completely dark, the other one very nice!

(once again, received by @PE0SAT).

Is it possible to have NA transmissions as well?


Thanks for decoding and sharing the image.

1 Like

Thanks for the early notice. Unfortunately I was away from the equipment. We Look forward to further announcements :slight_smile:

UPDATE: unfortunately no image download occured due to busy team members. Will attempt again tomorrow (15/06) during a similar time.

Image download planned for the 9:50 am UTC pass over Switzerland tomorrow.

Downloads over other locations are possible in theory, but we will have to see whether the team has time to do such experiments in future.

Hopefully tomorrow’s image is a good one :crossed_fingers:


Unfortunately, looks like no imagery was downlinked :frowning:

Perhaps tomorrow?