Observation 4298990: MIR-SAT1 (99718)

Regarding Observation 4298990
This one can be decoded by @EA4GPZ gnu-radio decoder.

→ Packet from 9k6 FSK downlink
Container:
ax25_header = Container:
addresses = ListContainer:
Container:
callsign = u’3B8MRC’ (total 6)
ssid = Container:
ch = False
ssid = 0
extension = False
Container:
callsign = u’3B8MIR’ (total 6)
ssid = Container:
ch = False
ssid = 0
extension = True
control = 0x03
pid = 0xF0
telemetry = Container:
header = b’\x00\x10nn\x18\x89’ (total 6)
beacon = Container:
battery_current_lsbs_3v3 = 6
battery_current_vbat = 278.592383
battery_voltage_3v3 = 3.3367139999999997
battery_voltage_5v = 5.038035
battery_voltage_vbat = 7.671029
battery_temp = 27.424399999999995
solar_current = 1.955034214
solar_voltage = ListContainer:
0.009971
0.019942
0.009971
0.009971
0.0
0.0
0.0
0.0
0.0
eps_bus_voltage_vbat = 7.649255999999999
eps_bus_voltage_3v3 = 3.3322870499999997
eps_bus_voltage_5v = 5.04398858
eps_bus_voltage_12v = 11.965395832
eps_bus_current_vbat = 20.7
eps_bus_current_3v3 = 204.231252615
eps_bus_current_5v = 104.73397569999999
eps_bus_current_12v = 6.21
adcs_raw_gyro = ListContainer:
333.84161339999997
-7.479118799999999
-8.3436966
adcs_mtq_dir_duty = ListContainer:
0
0
0
0
0
0
adcs_status = 1792
adcs_bus_voltage_5v = 5.005921709000001
adcs_bus_voltage_3v3 = 3.3343024000000003
adcs_bus_voltage_1v5 = 1.513052692
adcs_bus_current_5v = 0.10813900248
adcs_bus_current_3v3 = 0.0672084
adcs_bus_current_1v5 = 0.07422173076923069
adcs_board_temp = 17.697780000000044
adcs_adc_ref = 32773
adcs_sensor_current = 0.013404814794720932
adcs_mtq_current = 0.00048698262965425545
adcs_array_temp = ListContainer:
-15.464459999999955
-15.327299999999953
-15.174899999999953
-13.833779999999953
-10.709579999999955
-16.325519999999955
adcs_css_raw = ListContainer:
3.1127450980392153
3.237254901960784
3.195751633986928
3.3202614379084965
3.195751633986928
3.27875816993464
fss_active = ListContainer:
0
0
0
0
0
0
css_active_selected = ListContainer:
0
0
0
0
0
0
adcs_sun_processed = ListContainer:
-3.0517578125e-05
-3.0517578125e-05
-3.0517578125e-05
reserved = ListContainer:
4542
29235
34665
41405
adcs_detumble_counter = 0
adcs_mode = (enum) standby 0
adcs_state = (enum) sun 1
reservedA = 641
reservedB = 8
reservedC = 56
reservedD = 7
reservedE = 2
cmc_rx_lock = True
cmc_rx_frame_count = 9
cmc_rx_packet_count = 9
cmc_rx_dropped_error_count = 0
cmc_rx_crc_error_count = 11462
cmc_rx_overrun_error_count = 0
cmc_rx_protocol_error_count = 0
cmc_smps_temperature = 22
cmc_pa_temperature = 22
ax25_mux_channel_enable = ListContainer:
True
False
False
digipeater_enable = False
pacsat_broadcast_enable = True
pacsat_broadcast_in_progress = False
param_valid_flags = ListContainer:
True
True
True
True
True
True
True
True
True
True
True
True
True
True
True
True
True
True
True
True
True
True
True
True
True
True
True
True
True
True
True
True
True
True
True
True
True
True
True
True
checksum = 49299
→ Packet from 9k6 FSK downlink
Could not parse telemetry beacon Error in path (parsing) → ax25_header → addresses → callsign
stream read less than specified amount, expected 6, found 0

To re-prodece decoding, use theese commands:

wget https://network-satnogs.freetls.fastly.net/media/data_obs/4298990/satnogs_4298990_2021-06-22T14-53-46.ogg

ffmpeg -i satnogs_4298990_2021-06-22T14-53-46.ogg -bitexact -acodec pcm_s16le -ar 48000 -ac 1 satnogs_4298990_2021-06-22T14-53-46.wav

gr_satellites MIR-SAT1 --wavfile satnogs_4298990_2021-06-22T14-53-46.wav --samp_rate 48000

Thanks for sharing.

And additional note: those using gr-satellites with GNU Radio 3.9 (so that would be gr-satellites v4.2) can use directly the OGG file like so:

gr_satellites MIR-SAT1 --wavfile satnogs_4298990_2021-06-22T14-53-46.ogg

In fact It’s possible to

wget -O - https://network-satnogs.freetls.fastly.net/media/data_obs/4298990/satnogs_4298990_2021-06-22T14-53-46.ogg 2>/dev/null | gr_satellites MIR-SAT1 --wavfile /dev/stdin

to download and decode at the same time with no intermediate files.

2 Likes

Good to see that this is now possible with GNURadio 3.9.

Would this also work with the gr_satellites --throttle and --start_time options?

Yes, I’ve sent my received frame with --start_time option and it works with correct time, also on 3.8.

You also need to configure the config.ini file in the ~/.gr_satellites directory, before.

Example:
gr_satellites MIR-SAT1 --wavfile satnogs_4304469_2021-06-24T04-32-58.wav --samp_rate 48000 --throttle --start_time 2021-06-24T04:32:58

Daniel,
Is it possible to send the received frames from .ogg/wav files from gnuradio_companion (not by cli command) to SatNOGS DB with the corrected timestamp by using your Telemetry Submit block? I don’t know how to use --start_time argument in the grc block.

I have some received signals from MIR-SAT1 that are too weak to be received by command line version of gr_satellites. But, if I play a bit with manual tweaking frequency offset in grc and with a simmilar Clock Recovery MM demodulator, I can decode and parse the signal easely. I just dont know, how to then send the frames to SatNOGS DB with the correct timestamp.

It should be possible. You should use the --start_time parameter with the Telemetry Submit block (there should be a property in that block to enter command line parameters). Also remember that you need to use a throttle block to force realtime playback.

2 Likes

Hi Daniel,

I know this is working for the file input, I was just wondering if the wget /dev/stdin would also work with these options. I will give it a try and see how gr_satellites reacts

Yes it is,

You can use the Start of recording options in the Telemetry Forwarder block.

image

2 Likes

@EA4GPZ

The wget solution is working, it only seems that gr_satellites can’t detect the end of the transmittion so keeps waiting on data being received via /dev/stdin

As an example:

A BPSK reception such as FUNcube the following can be used.

wget -O - ${URL} 2>/dev/null | gr_satellites ${NoradID} --wavfile /dev/stdin --samp_rate 48e3 --start_time 2021-06-25T10:30:59 --f_offset 12e3 --throttle

The --start_time is taken from the observation URL and the time part is changed to xx:xx:xx so the dashes are replaced by a colon.

For other modes one can omit --f_offset 12e3

I also noticed that gr_satellites doesn’t stop at the end of the file when you use /dev/stdin and wget. It’s a bit weird because wget should close its end of the pipe and gr_satellites should get an EOF. This might be a corner case with the way that the GNU Radio source blocks work.

1 Like

Aha, I forgot that are two blocks, actually. Telemetry Forwarder and Telemetry Submit. It works now for me now and I can see frames on the SatNOGS DB. Only the delay is long, so I thought firstly that something doesn’t work.

1 Like