Hi Sir @SA2KNG,
I am currently on the project of my college to establish a ground station. For the mission, our ground station has to track the NOAA satellite automatically and also receive APT signal and decode it to the image.
For this, Hardware setup:
1. Raspberry Pi 4 Model B Rev 1.2, 4GB RAM: can be access via ssh or desktop GUI login or real VNC. We are using desktop GUI login
2. Generic RTL2832U Rafael Micro R828D tuner
3. SatNOGS Rotor (only mechanical parts): rotor controller is self designed PCB including Arduino Uno, A4988, stepper motor and optical endstop sensor).
4. centre frequency 137 MHz V-dipole antenna with LNA-SPF5189Z 50-4000 MHz
Arduino Uno is diretly connected to the Raspberry Pi.
On the software side,
1. SatNOGS Server
2. Manual tracking and decoding
1. SatNOGS Server
Register Ground Station: https://network.satnogs.org/stations/3186/
Raspberry Pi Client setup: Following these steps available at: https://wiki.satnogs.org/Raspberry_Pi and https://wiki.satnogs.org/SatNOGS_Client_Setup
correct installation verrified
pi@raspberrypi:~ $ 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 Fri 2023-08-18 12:55:57 BST; 8min ago
Main PID: 5123 (satnogs-client)
Tasks: 4 (limit: 3933)
CPU: 4.801s
CGroup: /system.slice/satnogs-client.service
└─5123 /var/lib/satnogs/bin/python /var/lib/satnogs/bin/satnogs-client
Aug 18 12:55:57 raspberrypi systemd[1]: Started SatNOGS client.
Setting up configuration
Generating support report. Please wait...
------------[ copy here ]------------
{
"versions": {
"satnogs-client": "1.8.1",
"satnogs-client-ansible": "202209101521",
"satnogs-flowgraphs": "1.4-1",
"gr-satnogs": "2.3.4.0-1",
"gr-soapy": "2.1.3.1-1",
"gnuradio": "3.8.2.0-14",
"satnogs-config": "0.13.2"
},
"state": {
"is-applied": true,
"pending-tags": null
},
"system": {
"date": "2023-08-18T12:49:56.220566+00:00",
"distribution": {
"DESCRIPTION": "Raspbian GNU/Linux 11 (bullseye)",
"RELEASE": "11",
"CODENAME": "bullseye",
"ID": "Raspbian"
},
"pending-updates": false,
"platform": {
"system": "Linux",
"node": "raspberrypi",
"release": "6.1.21-v8+",
"version": "#1642 SMP PREEMPT Mon Apr 3 17:24:16 BST 2023",
"machine": "aarch64"
},
"memory": {
"total": 3978645504,
"available": 2994151424,
"percent": 24.7,
"used": 719589376,
"free": 1842515968,
"active": 1218703360,
"inactive": 587558912,
"buffers": 82264064,
"cached": 1334276096,
"shared": 185831424,
"slab": 134963200
},
"disk": {
"total": 30443524096,
"used": 8013725696,
"free": 21137813504,
"percent": 27.5
}
},
"configuration": {
"hamlib_utils_rot_enabled": true,
"hamlib_utils_rot_opts": "rotctld -m 202 -r /dev/ttyACM1 -s 9600 -T 127.0.0.1 -t 4533 -C retry=0 -vvvvvvvv > pause",
"satnogs_antenna": "RX",
"satnogs_api_token": "[redacted]",
"satnogs_artifacts_api_token": "[redacted]",
"satnogs_rf_gain": "32.8",
"satnogs_rx_samp_rate": "2.048e6",
"satnogs_soapy_rx_device": "driver=rtlsdr",
"satnogs_station_elev": "1401",
"satnogs_station_id": "3186",
"satnogs_station_lat": "27.671114",
"satnogs_station_lon": "85.439625"
}
}
------------[ copy end ]-------------
Press Enter to continue...
i did test for rotctld status: I killed the previous process of rotctld
pi@raspberrypi:~ $ sudo systemctl status rotctld.service
â—Ź rotctld.service - rotctld server
Loaded: loaded (/etc/systemd/system/rotctld.service; enabled; vendor preset: enabled)
Active: active (running) since Fri 2023-08-18 15:17:10 BST; 13min ago
Main PID: 10607 (rotctld)
Tasks: 1 (limit: 3933)
CPU: 12ms
CGroup: /system.slice/rotctld.service
└─10607 /usr/bin/rotctld
Aug 18 15:17:10 raspberrypi systemd[1]: Started rotctld server.
and
pi@raspberrypi:~ $ ps ax|grep rotctld
10607 ? Ss 0:00 /usr/bin/rotctld
11122 pts/0 S+ 0:00 grep --color=auto rotctld
and,
pi@raspberrypi:~ $ pgrep -a rotctld
10607 /usr/bin/rotctld
Here I found.
pi@raspberrypi:~ $ netstat -lnt
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 0.0.0.0:5900 0.0.0.0:* LISTEN
tcp 0 0 127.0.0.1:4532 0.0.0.0:* LISTEN
tcp 0 0 127.0.0.1:2947 0.0.0.0:* LISTEN
tcp 0 0 127.0.0.1:631 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:4533 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN
tcp6 0 0 :::5900 :::* LISTEN
tcp6 0 0 ::1:2947 :::* LISTEN
tcp6 0 0 ::1:631 :::* LISTEN
tcp6 0 0 :::22 :::* LISTEN
I had only configured these configuration in SatNOGS Artifacts
Then when i run the command:
> $ rotctld -m 202 -r /dev/ttyACM1 -s 9600 -T 127.0.0.1 -t 4533 -C timeout=500 -C retry=0 -vvvvvvvv > pause
rotctld, Hamlib 4.0
Report bugs to <hamlib-developer@lists.sourceforge.net>
rot_init called
initrots4_easycomm called
rot_register (201)
rot_register (202)
rot_register (204)
set_conf: called
set_conf: token=timeout, val=500
rot_token_lookup called lookup timeout
rot_set_conf called
rot_set_conf: timeout='500'
frontrot_set_conf called
set_conf: token=retry, val=0
rot_token_lookup called lookup retry
rot_set_conf called
rot_set_conf: retry='0'
frontrot_set_conf called
rot_open called
serial_open called
serial_setup called
serial_setup: tcgetattr
serial_setup: cfmakeraw
serial_setup: cfsetispeed=9600,0x000d
serial_setup: cfsetospeed=9600,0x000d
serial_setup: data_bits=8
serial_setup: parity=0
serial_setup: tcsetattr TCSANOW
serial_flush called
tcflush
Backend version: 20191206.0, Status: Beta
binding failed (trying next interface): Network error 98: Address already in use
main: bind error - no available interface
and running command:
$ sudo journalctl -f -u satnogs-client.service
-- Journal begins at Sat 2022-09-10 18:10:32 BST. --
Aug 18 14:01:47 raspberrypi satnogs-client[5123]: return request("get", url, params=params, **kwargs)
Aug 18 14:01:47 raspberrypi satnogs-client[5123]: File "/var/lib/satnogs/lib/python3.9/site-packages/requests/api.py", line 59, in request
Aug 18 14:01:47 raspberrypi satnogs-client[5123]: return session.request(method=method, url=url, **kwargs)
Aug 18 14:01:47 raspberrypi satnogs-client[5123]: File "/var/lib/satnogs/lib/python3.9/site-packages/requests/sessions.py", line 587, in request
Aug 18 14:01:47 raspberrypi satnogs-client[5123]: resp = self.send(prep, **send_kwargs)
Aug 18 14:01:47 raspberrypi satnogs-client[5123]: File "/var/lib/satnogs/lib/python3.9/site-packages/requests/sessions.py", line 701, in send
Aug 18 14:01:47 raspberrypi satnogs-client[5123]: r = adapter.send(request, **kwargs)
Aug 18 14:01:47 raspberrypi satnogs-client[5123]: File "/var/lib/satnogs/lib/python3.9/site-packages/requests/adapters.py", line 578, in send
Aug 18 14:01:47 raspberrypi satnogs-client[5123]: raise ReadTimeout(e, request=request)
Aug 18 14:01:47 raspberrypi satnogs-client[5123]: requests.exceptions.ReadTimeout: HTTPSConnectionPool(host='network.satnogs.org', port=443): Read timed out. (read timeout=45)
and this command
pi@raspberrypi:~ $ sudo journalctl -f -n 50 -u satnogs-client.service
-- Journal begins at Sat 2022-09-10 18:10:32 BST. --
Aug 18 14:01:47 raspberrypi satnogs-client[5123]: File "/var/lib/satnogs/lib/python3.9/site-packages/urllib3/connectionpool.py", line 449, in _make_request
Aug 18 14:01:47 raspberrypi satnogs-client[5123]: six.raise_from(e, None)
Aug 18 14:01:47 raspberrypi satnogs-client[5123]: File "<string>", line 3, in raise_from
Aug 18 14:01:47 raspberrypi satnogs-client[5123]: File "/var/lib/satnogs/lib/python3.9/site-packages/urllib3/connectionpool.py", line 444, in _make_request
Aug 18 14:01:47 raspberrypi satnogs-client[5123]: httplib_response = conn.getresponse()
Aug 18 14:01:47 raspberrypi satnogs-client[5123]: File "/usr/lib/python3.9/http/client.py", line 1347, in getresponse
Aug 18 14:01:47 raspberrypi satnogs-client[5123]: response.begin()
Aug 18 14:01:47 raspberrypi satnogs-client[5123]: File "/usr/lib/python3.9/http/client.py", line 307, in begin
Aug 18 14:01:47 raspberrypi satnogs-client[5123]: version, status, reason = self._read_status()
Aug 18 14:01:47 raspberrypi satnogs-client[5123]: File "/usr/lib/python3.9/http/client.py", line 268, in _read_status
Aug 18 14:01:47 raspberrypi satnogs-client[5123]: line = str(self.fp.readline(_MAXLINE + 1), "iso-8859-1")
Aug 18 14:01:47 raspberrypi satnogs-client[5123]: File "/usr/lib/python3.9/socket.py", line 704, in readinto
Aug 18 14:01:47 raspberrypi satnogs-client[5123]: return self._sock.recv_into(b)
Aug 18 14:01:47 raspberrypi satnogs-client[5123]: File "/usr/lib/python3.9/ssl.py", line 1241, in recv_into
Aug 18 14:01:47 raspberrypi satnogs-client[5123]: return self.read(nbytes, buffer)
Aug 18 14:01:47 raspberrypi satnogs-client[5123]: File "/usr/lib/python3.9/ssl.py", line 1099, in read
Aug 18 14:01:47 raspberrypi satnogs-client[5123]: return self._sslobj.read(len, buffer)
Aug 18 14:01:47 raspberrypi satnogs-client[5123]: socket.timeout: The read operation timed out
Aug 18 14:01:47 raspberrypi satnogs-client[5123]: During handling of the above exception, another exception occurred:
Aug 18 14:01:47 raspberrypi satnogs-client[5123]: Traceback (most recent call last):
Aug 18 14:01:47 raspberrypi satnogs-client[5123]: File "/var/lib/satnogs/lib/python3.9/site-packages/requests/adapters.py", line 489, in send
Aug 18 14:01:47 raspberrypi satnogs-client[5123]: resp = conn.urlopen(
Aug 18 14:01:47 raspberrypi satnogs-client[5123]: File "/var/lib/satnogs/lib/python3.9/site-packages/urllib3/connectionpool.py", line 787, in urlopen
Aug 18 14:01:47 raspberrypi satnogs-client[5123]: retries = retries.increment(
Aug 18 14:01:47 raspberrypi satnogs-client[5123]: File "/var/lib/satnogs/lib/python3.9/site-packages/urllib3/util/retry.py", line 550, in increment
Aug 18 14:01:47 raspberrypi satnogs-client[5123]: raise six.reraise(type(error), error, _stacktrace)
Aug 18 14:01:47 raspberrypi satnogs-client[5123]: File "/var/lib/satnogs/lib/python3.9/site-packages/urllib3/packages/six.py", line 770, in reraise
Aug 18 14:01:47 raspberrypi satnogs-client[5123]: raise value
Aug 18 14:01:47 raspberrypi satnogs-client[5123]: File "/var/lib/satnogs/lib/python3.9/site-packages/urllib3/connectionpool.py", line 703, in urlopen
Aug 18 14:01:47 raspberrypi satnogs-client[5123]: httplib_response = self._make_request(
Aug 18 14:01:47 raspberrypi satnogs-client[5123]: File "/var/lib/satnogs/lib/python3.9/site-packages/urllib3/connectionpool.py", line 451, in _make_request
Aug 18 14:01:47 raspberrypi satnogs-client[5123]: self._raise_timeout(err=e, url=url, timeout_value=read_timeout)
Aug 18 14:01:47 raspberrypi satnogs-client[5123]: File "/var/lib/satnogs/lib/python3.9/site-packages/urllib3/connectionpool.py", line 340, in _raise_timeout
Aug 18 14:01:47 raspberrypi satnogs-client[5123]: raise ReadTimeoutError(
Aug 18 14:01:47 raspberrypi satnogs-client[5123]: urllib3.exceptions.ReadTimeoutError: HTTPSConnectionPool(host='network.satnogs.org', port=443): Read timed out. (read timeout=45)
Aug 18 14:01:47 raspberrypi satnogs-client[5123]: During handling of the above exception, another exception occurred:
Aug 18 14:01:47 raspberrypi satnogs-client[5123]: Traceback (most recent call last):
Aug 18 14:01:47 raspberrypi satnogs-client[5123]: File "/var/lib/satnogs/lib/python3.9/site-packages/satnogsclient/scheduler/tasks.py", line 191, in get_jobs
Aug 18 14:01:47 raspberrypi satnogs-client[5123]: response = requests.get(url,
Aug 18 14:01:47 raspberrypi satnogs-client[5123]: File "/var/lib/satnogs/lib/python3.9/site-packages/requests/api.py", line 73, in get
Aug 18 14:01:47 raspberrypi satnogs-client[5123]: return request("get", url, params=params, **kwargs)
Aug 18 14:01:47 raspberrypi satnogs-client[5123]: File "/var/lib/satnogs/lib/python3.9/site-packages/requests/api.py", line 59, in request
Aug 18 14:01:47 raspberrypi satnogs-client[5123]: return session.request(method=method, url=url, **kwargs)
Aug 18 14:01:47 raspberrypi satnogs-client[5123]: File "/var/lib/satnogs/lib/python3.9/site-packages/requests/sessions.py", line 587, in request
Aug 18 14:01:47 raspberrypi satnogs-client[5123]: resp = self.send(prep, **send_kwargs)
Aug 18 14:01:47 raspberrypi satnogs-client[5123]: File "/var/lib/satnogs/lib/python3.9/site-packages/requests/sessions.py", line 701, in send
Aug 18 14:01:47 raspberrypi satnogs-client[5123]: r = adapter.send(request, **kwargs)
Aug 18 14:01:47 raspberrypi satnogs-client[5123]: File "/var/lib/satnogs/lib/python3.9/site-packages/requests/adapters.py", line 578, in send
Aug 18 14:01:47 raspberrypi satnogs-client[5123]: raise ReadTimeout(e, request=request)
Aug 18 14:01:47 raspberrypi satnogs-client[5123]: requests.exceptions.ReadTimeout: HTTPSConnectionPool(host='network.satnogs.org', port=443): Read timed out. (read timeout=45)
I don’t know what I missed. But I am still trying…
2. Manual tracking and decoding
After not getting good results, we tried to track using g-predict and GQRX installed on same Raspberry Pi to record the audio signal but not good results. And one more, we use NOAA APT decoder to decode the open source audio signal to image. And also tried GNU radio companion for visualisation of APT Signal Spectrum.
Upto this our ground staion is configured.!!
Thank you for your patience!