PHASMA Mission (PHASMA-LAMARR & PHASMA-DIRAC)

I’m opening this thread to track and share the updates of the PHASMA mission.


PHASMA is a spectrum monitoring and space-based situational awareness mission from the Libre Space Foundation.

The project is about the design and development of two open-source CubeSats. The two CubeSats are tasked to oversee the electromagnetic spectrum and its use in space so that they will perform a series of experiments.

You can find the GitLab repository of the PHASMA project here.

You can join the dedicated Element/Matrix Channel here.

PHASMA is a programme funded by the European Union – NextGenerationEU, and the Greek National Recovery and Resilience Fund, Greece 2.0.


PHASMA satellites are going to be launched on Transporter-15 Rideshare: VSFB SLC-4E : 28 November 2025 - 18:44:30 UTC

Some transmission details:

  • UHF Frequency: 400.550 MHz (PHASMA-LAMARR), 400.600 MHz (PHASMA-DIRAC),
  • UHF Modulation: FSK
  • UHF Buadrate: 50k
  • S-band Frequency: 2210MHz (PHASMA-LAMARR), 2208MHz (PHASMA-DIRAC),
  • S-band Modulaiton: MSK
  • S-band Buadrate: 400k
  • Framing: IEEE802.15.4, no reed solomon, ccsds scrambling

After deployment satellites are expected to beacon on both UHF (every 30s) and S-band (every 1min).

9 Likes

Thanks for all the information!

Are sample I/Q files available for one or both of the downlinks? It’s always great to confirm a working ground station setup before a satellite is even in orbit.

Thanks!

2 Likes

We are working on it, as soon as there is an update it will be posted here.

2 Likes

Created on
April 18, 2023

wow. after 2.5 year . congratz

3 Likes

Two IQ files from two SatNOGS Network-dev observations, one for the uhf done by rtl-sdr at 2.048e6 sample rate and one for the s-band done by usrp at 2e6 sample rate:

SatNOGS Network - Observation 38903 (UHF)
SatNOGS Network - Observation 38947 (S-band, this is not so good maybe I’ll post later a better one).

2 Likes

Can you share the sample rate and center frequency of the IQ recordings?

Many thanks for the I/Q files.

I don’t know if I am using the correct GRC file (based on ‘msk_400k_test_decoder_v21.grc’) and if I’m decoding packets or noise.

But using the UHF sample file, is this what the frames should look like?

Scott, this looks like noise!
A good frame would look like this: 448 bytes including CRC32


correlate_access_code_tag_bb :debug: writing tag at sample 4002535
***** VERBOSE PDU DEBUG PRINT ******
()
pdu length =        448 bytes
pdu vector contents =
0000: c4 46 90 00 00 28 00 e0 00 cf c0 00 00 19 00 00
0010: 00 1e 00 00 00 1e 00 00 00 1e 00 00 00 18 00 00
0020: 00 1e 00 00 00 3c 00 b5 79 88 00 00 00 00 00 00
0030: 00 00 00 00 00 00 00 00 00 00 00 10 be 00 00 01
0040: ff 37 2e 10 40 00 05 80 00 00 00 00 00 00 00 00
0050: 00 00 18 c0 00 00 00 00 00 00 00 00 00 00 00 00
0060: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0f
0070: f8 00 00 00 00 00 00 00 00 00 00 0f f8 00 00 00
0080: 00 13 7a 00 00 00 00 00 00 00 00 00 00 00 00 00
0090: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
0100: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
0110: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
0120: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
0130: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
0140: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
0150: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
0160: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
0170: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
0180: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
0190: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
01a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
01b0: 00 00 00 00 00 00 00 00 00 00 00 00 85 8e 44 a7
1 Like

Which of all the GRC files posted should we be using?

Don’t know why the markdown is not working in here…

The SatYAML files for gr-satellites can be found here:

* Launches/T15-10-11-2025 at main · janvgils/Launches · GitHub

A recording is located here:

* Index of /download/PHASMA

You should find 13 valid frames in the recording!

1 Like

Oh! Thanks - I had previously downloaded a bunch of GRC files related to this project but using standard FSK flowgraphs is much easier. Thanks!

1 Like

Hehe, we did a lot of testing, too, I can share a bunch of flowgraphs, if you like…

With the file names ‘.raw’, I’m assuming that these I/Q files are 32-bit float.

However, Inspectrum is not able to visualize them and they don’t seem to process normally in GNU Radio.

Are they some other format of I/Q file?

Many thanks for the link to Jan’s files!

Using the 512k I/Q wav file there…

I converted it to the 32-bit float files that all my tools are setup for and it decodes nicely. Can’t wait for the real signals to come down!

If anyone would like a small chunk of Jan’s 512k I/Q file as a 32-bit float (i.e., from GQRX or GNU Radio), you’re welcome to mine at:

3 Likes

why 32 bit, and what tools you use in screenshot

sox -t raw -b 16 -e signed-integer -r 2.048e6 -c 2 iq_phasma_test_samp_rate2m_sps_rx4.raw convert_iq_phasma_test_samp_rate2m_sps_rx4.wav

identical same result with wav file in jan folder.

Great questions!

I use GQRX for just about everything, so the I/Q file format that it saves is 32-bit float.

My output is via GNU Radio w/ gr-satellites blocks that handle a variety of input sources (audio recordings, ‘live’ audio from GQRX, or 32-bit float I/Q files) and output to anything you wish. I send decodes to SatNogs, a hex dump there inside GNU Radio, a .KSS file, and in particular to a ‘Kiss File Sink’ block with the destination ‘/tmp/kisstnc’. That is where the direwolf app is listening when run w/ the ‘-p’ switch. I like the output and it also allows me (via the script file it’s run from) to save the output to a simple text log file.

… in addition to saving the decoded frames to a text file, you’ll see in the script that I’m also prepending a time-stamp to each line of output. Personal preference & sometimes very useful.

2 Likes

can you share yours .grc file. i am happy to learn more about this

Sure thing!

PHASMA-DIRAC_k4kdr.zip (2.7 KB)

2 Likes