gr-satellites AAUSAT-4 decoder (assembled)
What the all-in-one Satellite Decoder expands to for AAUSAT-4, assembled from primitives because the deframer is Python-only
- Author Daniel Estevez
- Category gr-satellites
- Blocks 12
- Connections 8
- File
gr-satellites/satellites_satellite_decoder_aausat4.grc
Blocks used
| Block | Module | Used |
|---|---|---|
| AAUSAT-4 remove FSM | gr-satellites | 1 |
| CC Decoder Definition | GNU Radio | 1 |
| CCSDS descrambler | gr-satellites | 1 |
| CCSDS Reed-Solomon Decoder | gr-satellites | 1 |
| FEC Async Decoder | GNU Radio | 1 |
| FSK Demodulator | gr-satellites | 1 |
| GR World Recording | GNU Radio | 1 |
| Message Debug | GNU Radio | 1 |
| Note | GNU Radio | 1 |
| Short To Float | GNU Radio | 1 |
| Sync and create PDU soft | gr-satellites | 1 |
| Variable | GNU Radio | 1 |
Notes in this flowgraph
- Satellite Decoder and the AAUSAT-4 deframer are both Python-only, so the deframer is built here from the blocks it uses: soft syncword search, FSM removal, terminated r=1/2 K=7 Viterbi, CCSDS descrambling and Reed-Solomon. Only the long-frame branch is wired: the short one needs PDU To Tagged Stream, which this runtime does not schedule.
Flowgraph source
gr-satellites/satellites_satellite_decoder_aausat4.grc
options:
parameters:
author: Daniel Estevez
copyright: ''
description: What the all-in-one Satellite Decoder expands to for AAUSAT-4, assembled from primitives because the deframer is Python-only
generate_options: qt_gui
id: gr_satellites_AAUSAT_4_decoder__assembled_
title: gr-satellites AAUSAT-4 decoder (assembled)
states:
coordinate: [10, 10]
rotation: 0
state: enabled
blocks:
- name: samp_rate
id: variable
parameters:
comment: ''
value: '48000'
states:
coordinate: [600, 10]
rotation: 0
state: enabled
- name: decoder_note
id: note
parameters:
affinity: ''
alias: ''
comment: ''
note: 'Satellite Decoder and the AAUSAT-4 deframer are both Python-only, so the deframer is built here from the blocks it uses: soft syncword search, FSM removal, terminated r=1/2 K=7 Viterbi, CCSDS descrambling and Reed-Solomon. Only the long-frame branch is wired: the short one needs PDU To Tagged Stream, which this runtime does not schedule.'
states:
coordinate: [770, 10]
rotation: 0
state: enabled
- name: descrambler
id: satellites_ccsds_descrambler
parameters:
affinity: ''
alias: ''
comment: ''
maxoutbuf: '0'
minoutbuf: '0'
states:
coordinate: [410, 580]
rotation: 0
state: enabled
- name: frames
id: blocks_message_debug
parameters:
affinity: ''
alias: ''
comment: ''
en_uvec: 'True'
log_level: info
states:
coordinate: [1210, 490]
rotation: 0
state: enabled
- name: fsk_demod
id: satellites_fsk_demodulator
parameters:
affinity: ''
alias: ''
baudrate: '2400'
comment: ''
iq: 'False'
maxoutbuf: '0'
minoutbuf: '0'
options: '""'
samp_rate: samp_rate
subaudio: 'False'
states:
coordinate: [630, 330]
rotation: 0
state: enabled
- name: fsm
id: satellites_aausat4_check_fsm
parameters:
affinity: ''
alias: ''
comment: ''
maxoutbuf: '0'
minoutbuf: '0'
states:
coordinate: [1320, 330]
rotation: 0
state: enabled
- name: recording
id: wasm_gr_world_recording
parameters:
affinity: ''
alias: ''
comment: ''
length: '0'
maxoutbuf: '0'
minoutbuf: '0'
offset: '0'
recording: estevez/aausat_4
repeat: 'False'
type: short
states:
coordinate: [10, 310]
rotation: 0
state: enabled
- name: reed_solomon
id: satellites_decode_rs_ccsds
parameters:
affinity: ''
alias: ''
basis: 'False'
comment: ''
interleave: '1'
maxoutbuf: '0'
minoutbuf: '0'
states:
coordinate: [730, 580]
rotation: 0
state: enabled
- name: syncword
id: satellites_sync_to_pdu_soft
parameters:
affinity: ''
alias: ''
comment: ''
maxoutbuf: '0'
minoutbuf: '0'
packlen: '2004'
sync: '"010011110101101000110100010000110101010101000010"'
threshold: '8'
states:
coordinate: [930, 330]
rotation: 0
state: enabled
- name: to_float
id: blocks_short_to_float
parameters:
affinity: ''
alias: ''
comment: ''
maxoutbuf: '0'
minoutbuf: '0'
scale: '32767'
vlen: '1'
states:
coordinate: [370, 340]
rotation: 0
state: enabled
- name: viterbi
id: fec_async_decoder
parameters:
affinity: ''
alias: ''
comment: ''
decoder: viterbi_def
maxoutbuf: '0'
minoutbuf: '0'
mtu: '249'
packed: 'False'
rev_pack: 'False'
states:
coordinate: [80, 570]
rotation: 0
state: enabled
- name: viterbi_def
id: variable_cc_decoder_def
parameters:
affinity: ''
alias: ''
comment: ''
dim1: '1'
dim2: '1'
framebits: '1996'
k: '7'
mode: fec.CC_TERMINATED
ndim: '0'
padding: 'False'
polys: '[79,-109]'
rate: '2'
state_end: '-1'
state_start: '0'
value: '"aausat4_long"'
states:
coordinate: [1190, 10]
rotation: 0
state: enabled
connections:
- src_blk_id: descrambler
src_port_id: out
snk_blk_id: reed_solomon
snk_port_id: in
- [fsk_demod, '0', syncword, '0']
- src_blk_id: fsm
src_port_id: long
snk_blk_id: viterbi
snk_port_id: in
- [recording, '0', to_float, '0']
- src_blk_id: reed_solomon
src_port_id: out
snk_blk_id: frames
snk_port_id: print_pdu
- src_blk_id: syncword
src_port_id: out
snk_blk_id: fsm
snk_port_id: in
- [to_float, '0', fsk_demod, '0']
- src_blk_id: viterbi
src_port_id: out
snk_blk_id: descrambler
snk_port_id: in
metadata:
file_format: 2
grc_version: 3.11.0.0