RTL and Soapy software did not install

Good Day, ALL.
I just reimaged a RP4 with Raspi-lite-64. I then ran the curl -sfL https://satno.gs/install | sh -s – installer and the satnogs-setup configuration. everything appeared to go well. however, RTL_test and Soapy SDRUtil are all missing. I’m barely familiar with Docker, so I assume I am not run the commands from the correct container?

rtl_test
-bash: rtl_test: command not found

SoapySDRUtil --find
-bash: SoapySDRUtil: command not found

sudo docker ps -f ‘name=^satnogs_’ --format “table {{.Names}}\t{{.Status}}”
NAMES STATUS
satnogs_satnogs-client Up 20 minutes
satnogs_rigctld Up 20 minutes

V/R
Dave L.

These tools are available inside the container

For example: docker exec -ti <satnogs container name> rtl_eeprom

Found 1 device(s):
  0:  Generic RTL2832U OEM

Using device 0: Generic RTL2832U OEM
Found Rafael Micro R820T tuner

Current configuration:
__________________________________________
Vendor ID:		0x0bda
Product ID:		0x2838
Manufacturer:		Realtek
Product:		RTL2838UHIDIR
Serial number:		00000775
Serial number enabled:	yes
IR endpoint enabled:	no
Remote wakeup enabled:	no
__________________________________________

PEOSAT, Thank you for repling.
I get this error,
-bash: satnogs: No such file or directory

that is a misunderstanding of what he posted, <something> is usually interpreted as “replace this with your case”. which in this specific case would probably be satnogs_satnogs-client. which becomes sudo docker exec -ti satnogs_satnogs-client rtl_eeprom

Thank you!
That’s what I assumed, but had no idea what to insert. I did try looking through the Wiki docs, but found nothing about the Docker instructions. Is there a section specific to using SATNOGS?.

sudo docker exec -ti satnogs_satnogs-client rtl_eeprom,
sudo docker exec -ti satnogs_satnogs-client rtl_test, and SoapySDRUtil --info.

All return with appropriate responses.

I reimaged my PI, because I haven’t been able to receive anything signals for weeks. I have verified the SDR’s and antennas by listening for satellites in TinyGS and SDRConsole… they all check out, so I assumed the problem was on the software side. I’ll do some additional tuning and see how thnigs go over the next few passes.

Thank you BOTH for the assistance!
Dave L.

1 Like

So, I spoke too soon!

I’m now getting this error? It can ping the network.satnogs.org domain

sudo docker logs -f satnogs_satnogs-client
ERROR satnogsclient.scheduler.tasks HTTPSConnectionPool(host=‘network.satnogs.org’, >port=443): Read timed out. (read timeout=45)
ERROR satnogsclient.scheduler.tasks Fetching jobs from network failed.

leonardd@SATNOGS-KX4OP:~ $ ping network.satnogs.org
PING network.satnogs.org(srv01.libre.space (2a01:4f8:13b:29db::1)) 56 data bytes
64 bytes from srv01.libre.space (2a01:4f8:13b:29db::1): icmp_seq=1 ttl=52 time=117 ms
64 bytes from srv01.libre.space (2a01:4f8:13b:29db::1): icmp_seq=2 ttl=52 time=120 ms
64 bytes from srv01.libre.space (2a01:4f8:13b:29db::1): icmp_seq=3 ttl=52 time=121 ms
64 bytes from srv01.libre.space (2a01:4f8:13b:29db::1): icmp_seq=4 ttl=52 time=121 ms
64 bytes from srv01.libre.space (2a01:4f8:13b:29db::1): icmp_seq=5 ttl=52 time=119 ms
64 bytes from srv01.libre.space (2a01:4f8:13b:29db::1): icmp_seq=6 ttl=52 time=122 ms
64 bytes from srv01.libre.space (2a01:4f8:13b:29db::1): icmp_seq=7 ttl=52 time=122 ms
64 bytes from srv01.libre.space (2a01:4f8:13b:29db::1): icmp_seq=8 ttl=52 time=120 ms

network.satnogs.org ping statistics —
9 packets transmitted, 8 received, 11.1111% packet loss, time 8008ms
rtt min/avg/max/mdev = 116.525/120.139/122.252/1.690 ms

There are moments the network is busy and one can run into this error, I see this also on my stations.

Mar 08 17:45:44 myhost satnogs-client[645]: satnogsclient.scheduler.tasks - ERROR - An error occurred trying to GET observation jobs from network
Mar 08 17:45:44 myhost satnogs-client[645]: Traceback (most recent call last):
Mar 08 17:45:44 myhost satnogs-client[645]:   File "/var/lib/satnogs/lib/python3.9/site-packages/urllib3/connectionpool.py", line 467, in _make_request
Mar 08 17:45:44 myhost satnogs-client[645]:     six.raise_from(e, None)
Mar 08 17:45:44 myhost satnogs-client[645]:   File "<string>", line 3, in raise_from
Mar 08 17:45:44 myhost satnogs-client[645]:   File "/var/lib/satnogs/lib/python3.9/site-packages/urllib3/connectionpool.py", line 462, in _make_request
Mar 08 17:45:44 myhost satnogs-client[645]:     httplib_response = conn.getresponse()
Mar 08 17:45:44 myhost satnogs-client[645]:   File "/usr/lib/python3.9/http/client.py", line 1351, in getresponse
Mar 08 17:45:44 myhost satnogs-client[645]:     response.begin()
Mar 08 17:45:44 myhost satnogs-client[645]:   File "/usr/lib/python3.9/http/client.py", line 316, in begin
Mar 08 17:45:44 myhost satnogs-client[645]:     version, status, reason = self._read_status()
Mar 08 17:45:44 myhost satnogs-client[645]:   File "/usr/lib/python3.9/http/client.py", line 277, in _read_status
Mar 08 17:45:44 myhost satnogs-client[645]:     line = str(self.fp.readline(_MAXLINE + 1), "iso-8859-1")
Mar 08 17:45:44 myhost satnogs-client[645]:   File "/usr/lib/python3.9/socket.py", line 704, in readinto
Mar 08 17:45:44 myhost satnogs-client[645]:     return self._sock.recv_into(b)
Mar 08 17:45:44 myhost satnogs-client[645]:   File "/usr/lib/python3.9/ssl.py", line 1274, in recv_into
Mar 08 17:45:44 myhost satnogs-client[645]:     return self.read(nbytes, buffer)
Mar 08 17:45:44 myhost satnogs-client[645]:   File "/usr/lib/python3.9/ssl.py", line 1132, in read
Mar 08 17:45:44 myhost satnogs-client[645]:     return self._sslobj.read(len, buffer)
Mar 08 17:45:44 myhost satnogs-client[645]: socket.timeout: The read operation timed out
Mar 08 17:45:44 myhost satnogs-client[645]: During handling of the above exception, another exception occurred:
Mar 08 17:45:44 myhost satnogs-client[645]: Traceback (most recent call last):
Mar 08 17:45:44 myhost satnogs-client[645]:   File "/var/lib/satnogs/lib/python3.9/site-packages/requests/adapters.py", line 489, in send
Mar 08 17:45:44 myhost satnogs-client[645]:     resp = conn.urlopen(
Mar 08 17:45:44 myhost satnogs-client[645]:   File "/var/lib/satnogs/lib/python3.9/site-packages/urllib3/connectionpool.py", line 799, in urlopen
Mar 08 17:45:44 myhost satnogs-client[645]:     retries = retries.increment(
Mar 08 17:45:44 myhost satnogs-client[645]:   File "/var/lib/satnogs/lib/python3.9/site-packages/urllib3/util/retry.py", line 550, in increment
Mar 08 17:45:44 myhost satnogs-client[645]:     raise six.reraise(type(error), error, _stacktrace)
Mar 08 17:45:44 myhost satnogs-client[645]:   File "/var/lib/satnogs/lib/python3.9/site-packages/urllib3/packages/six.py", line 770, in reraise
Mar 08 17:45:44 myhost satnogs-client[645]:     raise value
Mar 08 17:45:44 myhost satnogs-client[645]:   File "/var/lib/satnogs/lib/python3.9/site-packages/urllib3/connectionpool.py", line 715, in urlopen
Mar 08 17:45:44 myhost satnogs-client[645]:     httplib_response = self._make_request(
Mar 08 17:45:44 myhost satnogs-client[645]:   File "/var/lib/satnogs/lib/python3.9/site-packages/urllib3/connectionpool.py", line 469, in _make_request
Mar 08 17:45:44 myhost satnogs-client[645]:     self._raise_timeout(err=e, url=url, timeout_value=read_timeout)
Mar 08 17:45:44 myhost satnogs-client[645]:   File "/var/lib/satnogs/lib/python3.9/site-packages/urllib3/connectionpool.py", line 358, in _raise_timeout
Mar 08 17:45:44 myhost satnogs-client[645]:     raise ReadTimeoutError(
Mar 08 17:45:44 myhost satnogs-client[645]: urllib3.exceptions.ReadTimeoutError: HTTPSConnectionPool(host='network.satnogs.org', port=443): Read timed out. (read timeout=45)
Mar 08 17:45:44 myhost satnogs-client[645]: During handling of the above exception, another exception occurred:
Mar 08 17:45:44 myhost satnogs-client[645]: Traceback (most recent call last):
Mar 08 17:45:44 myhost satnogs-client[645]:   File "/var/lib/satnogs/lib/python3.9/site-packages/satnogsclient/scheduler/tasks.py", line 191, in get_jobs
Mar 08 17:45:44 myhost satnogs-client[645]:     response = requests.get(url,
Mar 08 17:45:44 myhost satnogs-client[645]:   File "/var/lib/satnogs/lib/python3.9/site-packages/requests/api.py", line 73, in get
Mar 08 17:45:44 myhost satnogs-client[645]:     return request("get", url, params=params, **kwargs)
Mar 08 17:45:44 myhost satnogs-client[645]:   File "/var/lib/satnogs/lib/python3.9/site-packages/requests/api.py", line 59, in request
Mar 08 17:45:44 myhost satnogs-client[645]:     return session.request(method=method, url=url, **kwargs)
Mar 08 17:45:44 myhost satnogs-client[645]:   File "/var/lib/satnogs/lib/python3.9/site-packages/requests/sessions.py", line 587, in request
Mar 08 17:45:44 myhost satnogs-client[645]:     resp = self.send(prep, **send_kwargs)
Mar 08 17:45:44 myhost satnogs-client[645]:   File "/var/lib/satnogs/lib/python3.9/site-packages/requests/sessions.py", line 701, in send
Mar 08 17:45:44 myhost satnogs-client[645]:     r = adapter.send(request, **kwargs)
Mar 08 17:45:44 myhost satnogs-client[645]:   File "/var/lib/satnogs/lib/python3.9/site-packages/requests/adapters.py", line 578, in send
Mar 08 17:45:44 myhost satnogs-client[645]:     raise ReadTimeout(e, request=request)
Mar 08 17:45:44 myhost satnogs-client[645]: requests.exceptions.ReadTimeout: HTTPSConnectionPool(host='network.satnogs.org', port=443): Read timed out. (read timeout=45)

Maybe you can share more details on what you experience and the ID of your stations.
Looking at the meta data we can maybe see a possible issue.

Station ID is 3837.
RTL-SDR= Nooelec SmartXtr
Antenna =QFH
Raspberry PI 4, OS = Raspi 64 Lite, bookwork ver. 12

Satnog localhost file:
satnogs_antenna: RX
satnogs_api_token: 57b7633cfdb787723e925c4d0a00d2f3b3ca9b64
satnogs_rf_gain: ‘22’
satnogs_rx_bandwidth: ‘200000’
satnogs_rx_samp_rate: ‘0.032’
satnogs_setup_ansible_branch: oldstable
satnogs_soapy_rx_device: driver=rtlsdr
satnogs_station_elev: ‘9’
satnogs_station_id: ‘3837’
satnogs_station_lat: ‘36.7840736’
satnogs_station_lon: ‘-76.1562561’

sudo systemctl status satnogs-client
● satnogs-client.service - SatNOGS client
Loaded: loaded (/etc/systemd/system/satnogs-client.service; enabled; vendor preset: enabled)
Active: active (running) since Wed 2025-03-05 13:43:01 EST; 18h ago
Main PID: 2487 (satnogs-client)
Tasks: 5 (limit: 4915)
CPU: 19min 9.696s
CGroup: /system.slice/satnogs-client.service
└─2487 /var/lib/satnogs/bin/python /var/lib/satnogs/bin/satnogs-client

Mar 06 05:21:48 satnog satnogs-client[6323]: Allocating 15 zero-copy buffers
Mar 06 05:27:01 satnog satnogs-client[2487]: netrigctl_close: done status=Command completed successfully
Mar 06 07:37:52 satnog satnogs-client[2487]: rig_init: rig does not have rx_range!!
Mar 06 07:37:52 satnog satnogs-client[2487]: network_open: hoststr=127.0.0.1, portstr=4532
Mar 06 07:37:54 satnog satnogs-client[7003]: Found Elonics E4000 tuner
Mar 06 07:37:54 satnog satnogs-client[7003]: [INFO] Opening Generic RTL2832U OEM :: 00000003…
Mar 06 07:37:54 satnog satnogs-client[7003]: Found Elonics E4000 tuner
Mar 06 07:37:54 satnog satnogs-client[7003]: [INFO] Using format CF32.
Mar 06 07:37:55 satnog satnogs-client[7003]: Allocating 15 zero-copy buffers
Mar 06 07:43:37 satnog satnogs-client[2487]: netrigctl_close: done status=Command completed successfully

sudo systemctl stop satnogs-client

SoapySDRUtil --info
######################################################

Soapy SDR – the SDR abstraction library

######################################################

Lib Version: v0.7.2-2
API Version: v0.7.1
ABI Version: v0.7
Install root: /usr
Search path: /usr/lib/arm-linux-gnueabihf/SoapySDR/modules0.7
Search path: /usr/local/lib/arm-linux-gnueabihf/SoapySDR/modules0.7 (missing)
Search path: /usr/local/lib/SoapySDR/modules0.7 (missing)
Module found: /usr/lib/arm-linux-gnueabihf/SoapySDR/modules0.7/libHackRFSupport.so (0.3.4)
Module found: /usr/lib/arm-linux-gnueabihf/SoapySDR/modules0.7/libLMS7Support.so (20.10.0)
Module found: /usr/lib/arm-linux-gnueabihf/SoapySDR/modules0.7/libRedPitaya.so (0.1.1)
Module found: /usr/lib/arm-linux-gnueabihf/SoapySDR/modules0.7/libairspySupport.so (0.1.2)
Module found: /usr/lib/arm-linux-gnueabihf/SoapySDR/modules0.7/libaudioSupport.so (0.1.1)
Module found: /usr/lib/arm-linux-gnueabihf/SoapySDR/modules0.7/libbladeRFSupport.so (0.4.1)
Module found: /usr/lib/arm-linux-gnueabihf/SoapySDR/modules0.7/libmiriSupport.so (0.2.5)
Module found: /usr/lib/arm-linux-gnueabihf/SoapySDR/modules0.7/libosmosdrSupport.so (0.2.5)
Module found: /usr/lib/arm-linux-gnueabihf/SoapySDR/modules0.7/libremoteSupport.so (0.5.2)
Module found: /usr/lib/arm-linux-gnueabihf/SoapySDR/modules0.7/librfspaceSupport.so (0.2.5)
Module found: /usr/lib/arm-linux-gnueabihf/SoapySDR/modules0.7/librtlsdrSupport.so (0.3.2)
Module found: /usr/lib/arm-linux-gnueabihf/SoapySDR/modules0.7/libuhdSupport.so (0.4.1)
Available factories… airspy, audio, bladerf, hackrf, lime, miri, osmosdr, redpitaya, remote, rfspace, rtlsdr, uhd
Available converters…

  • CF32 → [CF32, CS16, CS8, CU16, CU8]
  • CS16 → [CF32, CS16, CS8, CU16, CU8]
  • CS32 → [CS32]
  • CS8 → [CF32, CS16, CS8, CU16, CU8]
  • CU16 → [CF32, CS16, CS8]
  • CU8 → [CF32, CS16, CS8]
  • F32 → [F32, S16, S8, U16, U8]
  • S16 → [F32, S16, S8, U16, U8]
  • S32 → [S32]
  • S8 → [F32, S16, S8, U16, U8]
  • U16 → [F32, S16, S8]
  • U8 → [F32, S16, S8]
    leonardd@satnog:~ $ SoapySDRUtil --find
    ######################################################

Soapy SDR – the SDR abstraction library

######################################################

[INFO] [UHD] linux; GNU C++ version 10.2.1 20210110; Boost_107400; UHD_3.15.0.0-4+b1satnogs1
Found Elonics E4000 tuner
Found device 0
default_input = True
default_output = True
device_id = 0
driver = audio
label = PulseAudio

Found device 1
driver = rtlsdr
label = Generic RTL2832U OEM :: 00000003
manufacturer = Realtek
product = RTL2838UHIDIR
serial = 00000003
tuner = Elonics E4000

SoapySDRUtil --probe
######################################################

Soapy SDR – the SDR abstraction library

######################################################

Probe device
[INFO] [UHD] linux; GNU C++ version 10.2.1 20210110; Boost_107400; UHD_3.15.0.0-4+b1satnogs1
Found Elonics E4000 tuner


– Device identification

driver=Audio
hardware=Audio
device_id=0
origin=GitHub - pothosware/SoapyAudio: Soapy SDR plugin for Audio devices


– Peripheral summary

Channels: 1 Rx, 0 Tx
Timestamps: NO
Other Settings:
* Stereo Sample Offset - Offset stereo samples for off-by-one audio inputs.
[key=sample_offset, default=0, type=string, options=(-2, -1, 0, 1, 2)]
* Rig Control - Select hamlib rig control type.
[key=rig, type=string, options=(29001, 25016, 25017, 25013, 25018, 5008, 5006, 5005, 5004, 5014, 5003, 5015, 5002, 5001, 5013, 5016, 17001, 17002, 25006, 32001, 25003, 23003, 23004, 31002, 31001, 9002, 9003, 33001, 2021, 2029, 2043, 2047, 2044, 2045, 2038, 25001, 25007, 4, 25012, 23001, 2036, 2048, 25015, 1, 6, 2, 2046, 25019, 3054, 3002, 3003, 3072, 3004, 3006, 3007, 3060, 3055, 3085, 3009, 3010, 3011, 3012, 3070, 3013, 3061, 3014, 3015, 3016, 3017, 3073, 3019, 3020, 3021, 3022, 3067, 3023, 3046, 3024, 3026, 3027, 3047, 3057, 3063, 3028, 3078, 3029, 3062, 3030, 3045, 3056, 3031, 3075, 3032, 3034, 3044, 3068, 3065, 3035, 3081, 30001, 30003, 30002, 30004, 4002, 4001, 4003, 4004, 3036, 3058, 3080, 3077, 3040, 3037, 3041, 3038, 3039, 3079, 3043, 3066, 3069, 3042, 3083, 3082, 3084, 3071, 6005, 6006, 6007, 25011, 18001, 2015, 2033, 2042, 2017, 2019, 2020, 2023, 2026, 2034, 2027, 2030, 2025, 2014, 2002, 2003, 2028, 2001, 2004, 2016, 2031, 2037, 2024, 2005, 2006, 2007, 2008, 2009, 2010, 2041, 2022, 2011, 2012, 2013, 2039, 10004, 3074, 25014, 2040, 3053, 3052, 28001, 24001, 11005, 11003, 8004, 27002, 27001, 27003, 25002, 2032, 14004, 14002, 25009, 22001, 5, 3064, 3051, 16003, 16012, 16004, 16005, 16007, 16002, 16001, 16008, 16009, 16011, 16013, 8002, 8006, 8001, 8003, 8012, 8010, 8011, 1033, 26001, 26002, 12004, 15001, 15002, 15003, 15004, 15005, 15006, 15007, 15009, 3076, 1017, 1019, 1018, 1021, 1003, 1024, 1029, 1027, 1039, 1010, 1005, 1006, 1007, 1009, 1020, 1041, 1011, 1001, 1038, 1022, 1015, 1036, 1023, 1013, 1014, 1028, 1031, 1016, 1035, 1034, 1037, 1032, 1030, 1040, 1004, 1025, 1026, 25008)]
* Rig Serial Rate - Select hamlib rig serial control rate.
[key=rig_rate, default=57600, type=string, options=(1200, 2400, 4800, 9600, 19200, 38400, 57600, 115200, 128000, 256000)]
* Rig Serial Port - hamlib rig Serial Port dev / COMx / IP-Address
[key=rig_port, default=/dev/ttyUSB0, type=string]


– RX Channel 0

Full-duplex: YES
Supports AGC: YES
Stream formats: CS8, CS16, CF32
Native format: CS16 [full-scale=65536]
Stream args:
* Channel Setup - Input channel configuration.
[key=chan, default=mono_l, type=string, options=(mono_l, mono_r, stereo_iq, stereo_qi)]
Antennas: RX
Full gain range: [0, 0] dB
Full freq range: [0, 6000] MHz
RF freq range: [0, 6000] MHz
Sample rates: 0.008, 0.016, 0.02205, 0.032, 0.0441, 0.048, 0.096 MSps

lSoapySDRUtil --probe=“driver=rtlsdr”
######################################################

Soapy SDR – the SDR abstraction library

######################################################

Probe device driver=rtlsdr
Found Elonics E4000 tuner
[INFO] Opening Generic RTL2832U OEM :: 00000003…
Found Elonics E4000 tuner


– Device identification

driver=RTLSDR
hardware=E4000
index=0
origin=GitHub - pothosware/SoapyRTLSDR: SoapySDR RTL-SDR Support Module


– Peripheral summary

Channels: 1 Rx, 0 Tx
Timestamps: YES
Time sources: sw_ticks
Other Settings:
* Direct Sampling - RTL-SDR Direct Sampling Mode
[key=direct_samp, default=0, type=string, options=(0, 1, 2)]
* Offset Tune - RTL-SDR Offset Tuning Mode
[key=offset_tune, default=false, type=bool]
* I/Q Swap - RTL-SDR I/Q Swap Mode
[key=iq_swap, default=false, type=bool]
* Digital AGC - RTL-SDR digital AGC Mode
[key=digital_agc, default=false, type=bool]
* Bias Tee - RTL-SDR Blog V.3 Bias-Tee Mode
[key=biastee, default=false, type=bool]


– RX Channel 0

Full-duplex: NO
Supports AGC: YES
Stream formats: CS8, CS16, CF32
Native format: CS8 [full-scale=128]
Stream args:
* Buffer Size - Number of bytes per buffer, multiples of 512 only.
[key=bufflen, units=bytes, default=262144, type=int]
* Ring buffers - Number of buffers in the ring.
[key=buffers, units=buffers, default=15, type=int]
* Async buffers - Number of async usb buffers (advanced).
[key=asyncBuffs, units=buffers, default=0, type=int]
Antennas: RX
Full gain range: [0, 96] dB
IF1 gain range: [-3, 6] dB
IF2 gain range: [0, 9] dB
IF3 gain range: [0, 9] dB
IF4 gain range: [0, 2] dB
IF5 gain range: [3, 15] dB
IF6 gain range: [3, 15] dB
TUNER gain range: [-1, 42] dB
Full freq range: [51.999, 2200] MHz
RF freq range: [52, 2200] MHz
CORR freq range: [-0.001, 0.001] MHz
Sample rates: 0.25, 1.024, 1.536, 1.792, 1.92, 2.048, 2.16, 2.56, 2.88, 3.2 MSps
Filter bandwidths: [0, 8] MHz

clear out the rx bw

samp rate should be one of 1.024, 1.536, 1.792, 1.92, 2.048, 2.16, 2.56, 2.88, 3.2 for example 2.048e6

This is not good, @fredy is going to reset that for you. Don’t post the token publicly.
You need to fetch the new one and put in your satnogs-setup

Hi @dleondroid, as @SA2KNG noted the API Token is private and should not be exposed. Thus I’ve removed the exposed Token and you need to re-generate one.

For doing this you just need to login at the Network site, and in your dashboard page to press the API Key button, this will show you the newly generated API Token. This should be also changed in the Client side through sudo satnogs-setup, just don’t forget after changing it to hit the apply button.

For the future, please use the support report functionality as described in the yellow box in the troubleshooting page Troubleshooting - SatNOGS Wiki for sharing your configuration.

Crap!, I scrubbed all my user name info, but missed that.

Are there multiple config files? OR I had already changed it. this is what it shows in the setup wizard.