Hi, it’s not clear for me what the issue is, but decoding of FrontierSat and similar fails constantly in satnogs, whereas the same signals can be decoded with gr-satellites. So it seems there is something wrong in the flowgraphs.
Stefan / OE6ISP
Hi, it’s not clear for me what the issue is, but decoding of FrontierSat and similar fails constantly in satnogs, whereas the same signals can be decoded with gr-satellites. So it seems there is something wrong in the flowgraphs.
Stefan / OE6ISP
OK I ll take a look
… but there must be something else necessary for success. - something must be special with your station
. I have already activated gr-satellites, but still no deocde, even with a very good signal https://network.satnogs.org/observations/14251741/
this is my secret sauce based on satnogs manual docker installation
cd ~/station-4451
cat docker-compose.yml
(look at volume:)
volumes:
- type: 'bind'
source: '/home/linux/satyaml'
target: '/usr/lib/python3/dist-packages/satellites/satyaml'
cat station.env
GR_SATELLITES_ENABLED=true
GR_SATELLITES_APP=gr_satellites
GR_SATELLITES_KEEPLOGS=true
restart the docker
then i download latest satyaml from gr-satellites satyaml repo and save on /home/linux/satyaml folder
btw commercial sat ussualy not included on daniestevez repo, so you should create this satyml file by yourself. @PE0SAT repo also provide very good for start, but some sat still use temporary norad id. so you should update this.
name: FRONTIERSAT
norad: 69015
data:
&tlm unknown Telemetry:
unknown
&csp csp Telemetry:
telemetry: csp
transmitters:
9k6 FSK downlink:
frequency: 436.150e+6
modulation: FSK
baudrate: 9600
deviation: 2400
framing: AX100 ASM+Golay
data:
- *tlm
here my satyaml directory:
satyaml.zip (221.7 KB)
(sha256sum: f4ef63160ceef83df34480600ae3a8f2df688672bcb7fabcf15c722eee407583)
and the result:
with this secret sauce, and with all your best antenna setup lna etc, im sure your decoded frames will increase significantly and better than mine. ![]()
73!
Still curious to see if we can pinpoint the issue in the default installation/configuration.
SatNOGS as an audio distributor is good, but SatNOGS working with full decoding is way better. When services half-work, it’s tough to trust anything from them.
As always, huge fan of SatNOGS! Hope someone with a little more time at the moment can try to get to the bottom of it.
Many thx @bali for sharing your secrets - I very appreciate it ![]()
As I can see, I need to upgrade my know-how about how to handle the docker-environment - that’s kindof black magic for me. But I am on the way.
Thank you & 73
Stefan / OE6ISP
Wow - that works amazing now! many thx for your great support!
73, Stefan/OE6ISP
In the past the AX100 decodes made by the SatNOGS flow-graph was one of the best performing flow-graphs somewhere this has gone sideways.
Is there a Q&A pipeline when changing flow-graphs ?
It is also possible the AX100 frames send by more recent missions has changed, I can share IQ files that are created by my SatNOGS clients.
Jan | PE0SAT
As i recall there were some changes regarding ax100 that should not affect performance. I have to check it in depth to find out if something went wrong somewhere.
your welcome! wow… really huge frames decoded.. @platypus and team will really love it..
super stationzz!
It is also possible the AX100 frames send by more recent missions has changed, I can share IQ files that are created by my SatNOGS clients.
IQ would be helpful
Thanks for the support,
The IQ is created by an up to date 2.1.2 Docker image belonging to this observation and can be found at the following location.
docker exec -ti satnogs-1696 bash
satnogs-client@satnogs-1696:/$ dpkg -l | grep satnogs
ii gr-satnogs 3.1.0.1-1 amd64 SatNOGS GNU Radio Out-Of-Tree Module
ii libgnuradio-satnogs:amd64 3.1.0.1-1 amd64 SatNOGS GNU Radio Out-Of-Tree Module
ii librtlsdr0:amd64 2.0.2-2~bpo12+1satnogs1 amd64 Software defined radio receiver for Realtek RTL2832U (library)
ii rtl-sdr 2.0.2-2~bpo12+1satnogs1 amd64 Software defined radio receiver for Realtek RTL2832U (tools)
ii satnogs-flowgraphs 2.5.2-1 all SatNOGS GNU Radio Flowgraphs
Jan | PE0SAT
How do you get the I/Q-recordings out of docker? I wasn’t sucessful so far.
stefan/OE6ISP
Good morning Stefan,
Did you install the docker solution following the manual setup or the SatNOGS curl -sfL https://satno.gs/install | sh -s -- method ?
I used the manual setup and gives me the possibility to add some extra scripting and creation of mount points outside the container.
This script is called after an observation, at the moment is has some issue I need to work on.
#!/usr/bin/env bash
# suggested variables to set in config
# ENABLE_IQ_DUMP="True"
# IQ_DUMP_FILENAME="/srv/iq"
# IQ_DUMP_RENAME="True"
# IQ_DUMP_COMPRESS="True"
if [[ "${ENABLE_IQ_DUMP^^}" =~ (TRUE|YES|1) ]] && [[ "${IQ_DUMP_RENAME^^}" =~ (TRUE|YES|1) ]]; then
SAMP=$(${HOME}/bin/find_samp_rate.py "$5" "$6")
NAME="${IQ_DUMP_FILENAME}_${1}_${2}_${SAMP}.raw"
mv "${IQ_DUMP_FILENAME}"_cs16_*.raw "${NAME}"
if [[ "${IQ_DUMP_COMPRESS^^}" =~ (TRUE|YES|1) ]]; then
# zstd --no-progress --rm -f "${NAME}"
# tar zcf "${NAME}" "${NAME}".tar.gz --remove-files
gzip --fast --quiet "${NAME}"
fi
fi
if [ -f "${IQ_DUMP_FILENAME}"_cs16_*.raw ]; then
rm -f "${IQ_DUMP_FILENAME}"_cs16_*.raw
fi
#find -name "${IQ_DUMP_FILENAME}"_cs16_*.raw #-delete
Jan | PE0SAT
Many thanks Jan for info!
I am using manual install now, because I needed to add that gr-satellite components for AX100.
I didn’t manage to create and access mountpoints outside docker so far, but as I have the manual install now and my docker-know-is growing rapidly, I’ll keep trying ![]()
Thank you!
Stefan / OE6ISP
Hi Stefan,
You can create a similar mount point like with the gr-satellites example shared by @bali but this time we create a /var/lib/satnogs-client and raw target.
One is for the scripts location and the other for storing IQ files. (Not sure if you use a PI or a x86 mini pc). Writing and deleting on a Pi can be a problem in the future. SD-CARD wear.
volumes:
- type: 'bind'
source: '/home/linux/satnogs-client'
target: '/var/lib/satnogs-client'
- type: 'bind'
source: '/home/linux/raw'
target: '/raw'
I created a bin directory in /home/linux/satnogs-client where I placed all the scripts and depencies that can be called by a SATNOGS_POST_OBSERVATION_SCRIPT: '/var/lib/satnogs-client/bin/satnogs-post {{ID}} {{FREQ}} {{TLE}} {{TIMESTAMP}} {{BAUD}} {{SCRIPT_NAME}}'
ls -l bin/
-rwxr-xr-x 1 satnogs-client satnogs-client 1601 Nov 19 2025 find_samp_rate.py
-rwxr-xr-x 1 satnogs-client satnogs-client 795 Jun 10 09:29 iq_dump_rename.sh
-rwxr-xr-x 1 satnogs-client satnogs-client 284 Nov 25 2025 satnogs-post
Jan | PE0SAT
I’m still on PI, but already thought about moving at least one station to x86 for better performance.
So one more reason now, to do so.
Many thanks!
Stefan/OE6ISP
In my setup I write the IQ files to a NAS, this would also solve the wear on the Pi.
Jan | PE0SAT
Some info on that setup
- type: 'volume'
target: '/raw'
source: 'obs-raw'
volumes:
obs-raw:
driver: local
driver_opts:
type: nfs
o: addr=nas-server.local,nfsvers=3,async,rw
device: :/mnt/obs/raw
Jan | PE0SAT
Here is another observation that didn’t produce any frames, but after replaying the IQ and feeding it to gr-satellites it did.
I have also pulled the following log lines out of the container:
2026-06-10T23:10:30.001917617Z INFO satnogsclient.observer.observer Begin observation 14274865 ...
2026-06-10T23:10:30.002387933Z INFO satnogsclient.radio.grsat Starting gr_satellites for observation 14274865 at 57600 sps
2026-06-10T23:10:31.107051610Z INFO satnogsclient.observer.observer Start gnuradio thread.
2026-06-10T23:10:31.415640992Z ZMQ IQ SUB Connecting to 127.0.0.1:16888
2026-06-10T23:10:31.428381502Z ZMQ audio SUB Connecting to 127.0.0.1:16889
2026-06-10T23:10:31.487681965Z ZMQ FRAME SUB Connecting to 127.0.0.1:16887
2026-06-10T23:10:31.594844934Z rig_check_rig_caps: p1=0x7f5ec28f3c40, p2=0x7f5ec28fa1c0, rig_model=0x7f5ec28f3c40, macro_name=0x7f5ec28fa1c0
2026-06-10T23:10:31.594869640Z initrigs4_dummy: _init called
2026-06-10T23:10:31.594873867Z rig_init: rig_model=Hamlib NET rigctl
2026-06-10T23:10:31.594877395Z rig_init: rx_range_list1 is empty, using rx_range_list2
2026-06-10T23:10:31.594880778Z rig_init: rig does not have tx_range!!
2026-06-10T23:10:31.594884080Z netrigctl_init version 20230106.0
2026-06-10T23:10:31.867981068Z Found Rafael Micro R828D tuner
2026-06-10T23:10:31.868003029Z RTL-SDR Blog V4 Detected
2026-06-10T23:10:32.273475801Z Found Rafael Micro R820T tuner
2026-06-10T23:10:32.426365205Z [INFO] Opening Generic RTL2832U OEM :: 40004541...
2026-06-10T23:10:32.690607627Z Found Rafael Micro R828D tuner
2026-06-10T23:10:32.690687689Z RTL-SDR Blog V4 Detected
2026-06-10T23:10:33.264413454Z [INFO] Using format CF32.
2026-06-10T23:10:33.264476581Z gr::vmcircbuf :error: shmat (3): Invalid argument
2026-06-10T23:10:33.271286765Z Allocating 15 zero-copy buffers
2026-06-10T23:12:59.164391132Z CCSDS RS Decoder1 :debug: dropping RS block due to error symbols
2026-06-10T23:12:59.164463411Z crc_async :debug: Wrong CRC
2026-06-10T23:13:00.673954731Z CCSDS RS Decoder1 :debug: dropping RS block due to error symbols
2026-06-10T23:13:00.674097205Z crc_async :debug: Wrong CRC
2026-06-10T23:13:44.706598263Z CCSDS RS Decoder1 :debug: dropping RS block due to error symbols
2026-06-10T23:13:44.706676100Z crc_async :debug: Wrong CRC
2026-06-10T23:15:51.656184942Z INFO satnogsclient.scheduler.tasks Received job for observation 14276550, starting at 2026-06-11T00:30:59+00:00
2026-06-10T23:15:51.656993371Z INFO satnogsclient.scheduler.tasks Received job for observation 14276551, starting at 2026-06-11T00:39:30+00:00
2026-06-10T23:15:51.657693531Z INFO satnogsclient.scheduler.tasks Received job for observation 14276552, starting at 2026-06-11T00:50:03+00:00
2026-06-10T23:15:51.658380942Z INFO satnogsclient.scheduler.tasks Received job for observation 14276553, starting at 2026-06-11T01:03:53+00:00
2026-06-10T23:15:51.659141160Z INFO satnogsclient.scheduler.tasks Received job for observation 14276554, starting at 2026-06-11T01:21:02+00:00
2026-06-10T23:16:23.440140584Z netrigctl_close: done
2026-06-10T23:16:25.098044421Z netrigctl_close: done
2026-06-10T23:16:26.235699725Z INFO satnogsclient.radio.grsat Stopped gr_satellites
2026-06-10T23:16:26.235810081Z INFO satnogsclient.radio.grsat Processing kiss file
2026-06-10T23:16:26.235862666Z INFO satnogsclient.radio.grsat Total frames: 0
2026-06-10T23:16:26.236265337Z INFO satnogsclient.observer.observer Observation 14274865 finished.
2026-06-10T23:16:26.236304212Z INFO satnogsclient.observer.observer Executing post-observation script.
2026-06-10T23:16:32.865805045Z INFO satnogsclient.observer.observer Artifacts upload for observation 14274865 successful.
2026-06-10T23:18:51.809574679Z INFO satnogsclient.scheduler.tasks Upload of waterfall image for observation 14274865 successful.
2026-06-10T23:18:52.493218432Z INFO satnogsclient.scheduler.tasks Upload of audio recording for observation 14274865 successful.
Here the gr_satellites logging:
cat /tmp/.satnogs/grsat_14274865.log
log :warning: `pdu_to_tagged_stream` has moved to gr-pdu and will be removed from gr-blocks soon. Please update to use pdu.pdu_to_tagged_stream()
correlate_access_code_tag_bb :debug: Access code: 930b51de
correlate_access_code_tag_bb :debug: Mask: ffffffff
gr::vmcircbuf :error: shmat (3): Invalid argument
gr::vmcircbuf :error: shmat (3): Invalid argument
gr::vmcircbuf :error: shmat (3): Invalid argument
buffer_double_mapped :error: gr::buffer::allocate_buffer: failed to allocate buffer of size 5752 KB
thread_body_wrapper :error: ERROR thread[thread-per-block[6]: <block udp_source(1)>]: std::bad_alloc
I hope these error and debug message can point us in the right direction.
Jan | PE0SAT