SatNOGS client v0.6.1 is released!

SatNOGS client v0.6.1 is released!

Notable changes since v0.5.3

  • Fixed copying files to complete/incomplete path
  • Added support for AFSK 1200
  • Fixed observation script running twice
  • Added support for AMSAT Fox DUV
  • Post client version and metadata
  • Fixed a few typos
  • Fixed ‘stderr’ of subprocess call not being consumed
7 Likes

Found something very interesting after the upgrade.
My UHF GS looks ok, however the VHF GS noise floor has risen dramatically.
Pre upgrade:
https://network.satnogs.org/observations/128379/
Post upgrade:
https://network.satnogs.org/observations/129118/

Anything that would have caused this?

Hey @Zathras,

this is a known issue to the “broken” CW script: with integrating the CW decoder the waterfall bandwidth has been increased to ±100 kHz. You can see various observations on my station #190 in the dev-network with the same issue (if I understood that right this is because of spectral resolution or so - the smaller the bandwidth, the lower the noise-floor). The CW decoder is not very sensitive so don’t expect to get any results. You can play around with the example flowgraph were you can see that adding a very small amount of noise stops the decoding.

Interesting, but why would that affect FM observations too?
ie RADFXSAT
Post:
https://network.satnogs.org/observations/129120/
Pre:
https://network.satnogs.org/observations/126686/
Will the increased waterfall bandwidth affect all obs now, as all on my VHF GS seem affected.
However, checking at my UHF GS, all obs except CW look as good as pre upgrade. Only the CW has the increased noise floor.

Tweaking the flowgraph is beyond my capability as not that knowledgeable in Linux.

These two have the same bandwidth but different dB-range on the waterfall. You may have adjusted your gnuplot script, then it was probably overwritten during the upgrade.

1 Like

Ah ok, that explains it then, thanks.

So all else should be ok except for the CW. I shall keep an eye out :slight_smile:

I have upgraded my station (https://network.satnogs.org/stations/62/) which was running great before the update, but now it seems to stop working atleast once a day and I have to reboot my pi to get the station online again.

Any ideas on how to troubleshoot this ?

What is stopping? Is it the Satnogs software itself or the RPi?

The satnogs software. The pi is fine, I can ssh into it and its still connected to the net, but it seems the satnogs software stopped communicating with the network as it shows I’m offline and it’s not doing observations any more. Will try and get more information when it stops again. Is there a log file I can check ?

I’ve had that occasionally but not recently.
I found that the satnogs-client wasn’t running. Restarting it brought it back online.

sudo journalctl -f -u satnogs-client.service allows you to check the log. Or a ‘ps -ef | grep client’ will show you if it’s running.
sudo systemctl restart satnogs-client.service will restart it.

You can check a few logs in /var/log/

ok, got some more information, it’s still happening every day or atleast every 2nd day.

client seems to be still running, and I can still access the web interface from another pc (although, its not doing much) and the the python exception. This started after upgrading to the latest satnogs-client using the satnogs-setup app.

pi@raspberrypi:/var/log $ ps -ef | grep client
satnogs 521 1 1 May12 ? 00:36:15 /var/lib/satnogs/bin/python2 /var/lib/satnogs/bin/satnogs-client
satnogs 530 521 0 May12 ? 00:00:00 /var/lib/satnogs/bin/python2 /var/lib/satnogs/bin/satnogs-client
satnogs 534 521 0 May12 ? 00:00:18 /var/lib/satnogs/bin/python2 /var/lib/satnogs/bin/satnogs-client
satnogs 535 521 0 May12 ? 00:00:00 /var/lib/satnogs/bin/python2 /var/lib/satnogs/bin/satnogs-client

pi@raspberrypi:/var/log $ sudo journalctl -f -u satnogs-client.service
– Logs begin at Sat 2018-05-12 09:17:01 SAST. –
May 13 20:41:23 raspberrypi satnogs-client[521]: 192.168.0.112 - - [13/May/2018 20:41:23] “POST /socket.io/?EIO=3&transport=polling&t=MDQpgzP&sid=84bc0b5778724e44b04021b9605a3458 HTTP/1.1” 200 -
May 13 20:41:23 raspberrypi satnogs-client[521]: 192.168.0.112 - - [13/May/2018 20:41:23] “GET /socket.io/?EIO=3&transport=polling&t=MDQpauN&sid=84bc0b5778724e44b04021b9605a3458 HTTP/1.1” 200 -
May 13 20:41:48 raspberrypi satnogs-client[521]: 192.168.0.112 - - [13/May/2018 20:41:48] “POST /socket.io/?EIO=3&transport=polling&t=MDQpn5S&sid=84bc0b5778724e44b04021b9605a3458 HTTP/1.1” 200 -
May 13 20:41:48 raspberrypi satnogs-client[521]: 192.168.0.112 - - [13/May/2018 20:41:48] “GET /socket.io/?EIO=3&transport=polling&t=MDQpgzq&sid=84bc0b5778724e44b04021b9605a3458 HTTP/1.1” 200 -
May 13 20:42:14 raspberrypi satnogs-client[521]: 192.168.0.112 - - [13/May/2018 20:42:14] “POST /socket.io/?EIO=3&transport=polling&t=MDQptRh&sid=84bc0b5778724e44b04021b9605a3458 HTTP/1.1” 200 -
May 13 20:42:14 raspberrypi satnogs-client[521]: 192.168.0.112 - - [13/May/2018 20:42:14] “GET /socket.io/?EIO=3&transport=polling&t=MDQpn6N&sid=84bc0b5778724e44b04021b9605a3458 HTTP/1.1” 200 -
May 13 20:42:40 raspberrypi satnogs-client[521]: 192.168.0.112 - - [13/May/2018 20:42:40] “POST /socket.io/?EIO=3&transport=polling&t=MDQpzo2&sid=84bc0b5778724e44b04021b9605a3458 HTTP/1.1” 200 -
May 13 20:42:40 raspberrypi satnogs-client[521]: 192.168.0.112 - - [13/May/2018 20:42:40] “GET /socket.io/?EIO=3&transport=polling&t=MDQptSE&sid=84bc0b5778724e44b04021b9605a3458 HTTP/1.1” 200 -
May 13 20:43:06 raspberrypi satnogs-client[521]: 192.168.0.112 - - [13/May/2018 20:43:06] “POST /socket.io/?EIO=3&transport=polling&t=MDQq48B&sid=84bc0b5778724e44b04021b9605a3458 HTTP/1.1” 200 -
May 13 20:43:06 raspberrypi satnogs-client[521]: 192.168.0.112 - - [13/May/2018 20:43:06] “GET /socket.io/?EIO=3&transport=polling&t=MDQpzoG&sid=84bc0b5778724e44b04021b9605a3458 HTTP/1.1” 200 -
May 13 20:44:06 raspberrypi satnogs-client[521]: 192.168.0.112 - - [13/May/2018 20:44:06] “GET /socket.io/?EIO=3&transport=polling&t=MDQq491&sid=84bc0b5778724e44b04021b9605a3458 HTTP/1.1” 400 -
May 13 20:44:06 raspberrypi satnogs-client[521]: Traceback (most recent call last):
May 13 20:44:06 raspberrypi satnogs-client[521]: File “/usr/lib/python2.7/SocketServer.py”, line 596, in process_request_thread
May 13 20:44:06 raspberrypi satnogs-client[521]: self.finish_request(request, client_address)
May 13 20:44:06 raspberrypi satnogs-client[521]: File “/usr/lib/python2.7/SocketServer.py”, line 331, in finish_request
May 13 20:44:06 raspberrypi satnogs-client[521]: self.RequestHandlerClass(request, client_address, self)
May 13 20:44:06 raspberrypi satnogs-client[521]: File “/usr/lib/python2.7/SocketServer.py”, line 654, in init
May 13 20:44:06 raspberrypi satnogs-client[521]: self.finish()
May 13 20:44:06 raspberrypi satnogs-client[521]: File “/usr/lib/python2.7/SocketServer.py”, line 713, in finish
May 13 20:44:06 raspberrypi satnogs-client[521]: self.wfile.close()
May 13 20:44:06 raspberrypi satnogs-client[521]: File “/usr/lib/python2.7/socket.py”, line 283, in close
May 13 20:44:06 raspberrypi satnogs-client[521]: self.flush()
May 13 20:44:06 raspberrypi satnogs-client[521]: File “/usr/lib/python2.7/socket.py”, line 307, in flush
May 13 20:44:06 raspberrypi satnogs-client[521]: self.sock.sendall(view[write_offset:write_offset+buffer_size])
May 13 20:44:06 raspberrypi satnogs-client[521]: error: [Errno 32] Broken pipe
May 13 20:45:10 raspberrypi satnogs-client[521]: 192.168.0.112 - - [13/May/2018 20:45:10] “GET /socket.io/?EIO=3&transport=polling&t=MDQqYQw HTTP/1.1” 200 -
May 13 20:45:10 raspberrypi satnogs-client[521]: 192.168.0.112 - - [13/May/2018 20:45:10] “GET /socket.io/?EIO=3&transport=polling&t=MDQqYRj&sid=8ec76f2ebb404aeb90fe643ae73e4b92 HTTP/1.1” 200 -
May 13 20:45:10 raspberrypi satnogs-client[521]: 192.168.0.112 - - [13/May/2018 20:45:10] “POST /socket.io/?EIO=3&transport=polling&t=MDQqYRi&sid=8ec76f2ebb404aeb90fe643ae73e4b92 HTTP/1.1” 200 -
May 13 20:45:10 raspberrypi satnogs-client[521]: 192.168.0.112 - - [13/May/2018 20:45:10] "GET /socket.io/?EIO=3&transport=polling&t=MDQqYR
&sid=8ec76f2ebb404aeb90fe643ae73e4b92 HTTP/1.1" 200 -
May 13 20:45:10 raspberrypi satnogs-client[521]: 192.168.0.112 - - [13/May/2018 20:45:10] “GET /socket.io/?EIO=3&transport=polling&t=MDQqYST&sid=8ec76f2ebb404aeb90fe643ae73e4b92 HTTP/1.1” 200 -
May 13 20:45:10 raspberrypi satnogs-client[521]: 192.168.0.112 - - [13/May/2018 20:45:10] “POST /socket.io/?EIO=3&transport=polling&t=MDQqYS0&sid=8ec76f2ebb404aeb90fe643ae73e4b92 HTTP/1.1” 200 -
May 13 20:45:10 raspberrypi satnogs-client[521]: 192.168.0.112 - - [13/May/2018 20:45:10] “GET /socket.io/?EIO=3&transport=polling&t=MDQqYSx&sid=8ec76f2ebb404aeb90fe643ae73e4b92 HTTP/1.1” 200 -
May 13 20:45:12 raspberrypi satnogs-client[521]: 192.168.0.112 - - [13/May/2018 20:45:12] “GET / HTTP/1.1” 200 -
May 13 20:45:12 raspberrypi satnogs-client[521]: 192.168.0.112 - - [13/May/2018 20:45:12] “GET /socket.io/?EIO=3&transport=polling&t=MDQqYqx HTTP/1.1” 200 -
May 13 20:45:12 raspberrypi satnogs-client[521]: 192.168.0.112 - - [13/May/2018 20:45:12] “GET /socket.io/?EIO=3&transport=polling&t=MDQqYTu&sid=8ec76f2ebb404aeb90fe643ae73e4b92 HTTP/1.1” 200 -
May 13 20:45:12 raspberrypi satnogs-client[521]: Traceback (most recent call last):
May 13 20:45:12 raspberrypi satnogs-client[521]: File “/usr/lib/python2.7/SocketServer.py”, line 596, in process_request_thread
May 13 20:45:12 raspberrypi satnogs-client[521]: self.finish_request(request, client_address)
May 13 20:45:12 raspberrypi satnogs-client[521]: File “/usr/lib/python2.7/SocketServer.py”, line 331, in finish_request
May 13 20:45:12 raspberrypi satnogs-client[521]: self.RequestHandlerClass(request, client_address, self)
May 13 20:45:12 raspberrypi satnogs-client[521]: File “/usr/lib/python2.7/SocketServer.py”, line 654, in init
May 13 20:45:12 raspberrypi satnogs-client[521]: self.finish()
May 13 20:45:12 raspberrypi satnogs-client[521]: File “/usr/lib/python2.7/SocketServer.py”, line 713, in finish
May 13 20:45:12 raspberrypi satnogs-client[521]: self.wfile.close()
May 13 20:45:12 raspberrypi satnogs-client[521]: File “/usr/lib/python2.7/socket.py”, line 283, in close
May 13 20:45:12 raspberrypi satnogs-client[521]: self.flush()
May 13 20:45:12 raspberrypi satnogs-client[521]: File “/usr/lib/python2.7/socket.py”, line 307, in flush
May 13 20:45:12 raspberrypi satnogs-client[521]: self._sock.sendall(view[write_offset:write_offset+buffer_size])
May 13 20:45:12 raspberrypi satnogs-client[521]: error: [Errno 32] Broken pipe
May 13 20:45:12 raspberrypi satnogs-client[521]: 192.168.0.112 - - [13/May/2018 20:45:12] “POST /socket.io/?EIO=3&transport=polling&t=MDQqYrD&sid=d71192b39c7f472ea062518d53da7313 HTTP/1.1” 200 -
May 13 20:45:12 raspberrypi satnogs-client[521]: 192.168.0.112 - - [13/May/2018 20:45:12] “GET /socket.io/?EIO=3&transport=polling&t=MDQqYrE&sid=d71192b39c7f472ea062518d53da7313 HTTP/1.1” 200 -
May 13 20:45:12 raspberrypi satnogs-client[521]: 192.168.0.112 - - [13/May/2018 20:45:12] “GET /socket.io/?EIO=3&transport=polling&t=MDQqYrT&sid=d71192b39c7f472ea062518d53da7313 HTTP/1.1” 200 -
May 13 20:45:12 raspberrypi satnogs-client[521]: 192.168.0.112 - - [13/May/2018 20:45:12] “POST /socket.io/?EIO=3&transport=polling&t=MDQqYrM&sid=d71192b39c7f472ea062518d53da7313 HTTP/1.1” 200 -
May 13 20:45:12 raspberrypi satnogs-client[521]: 192.168.0.112 - - [13/May/2018 20:45:12] “GET /socket.io/?EIO=3&transport=polling&t=MDQqYs0&sid=d71192b39c7f472ea062518d53da7313 HTTP/1.1” 200 -
May 13 20:45:12 raspberrypi satnogs-client[521]: 192.168.0.112 - - [13/May/2018 20:45:12] “GET /socket.io/?EIO=3&transport=polling&t=MDQqYsO&sid=d71192b39c7f472ea062518d53da7313 HTTP/1.1” 200 -
May 13 20:45:12 raspberrypi satnogs-client[521]: 192.168.0.112 - - [13/May/2018 20:45:12] “POST /socket.io/?EIO=3&transport=polling&t=MDQqYsA&sid=d71192b39c7f472ea062518d53da7313 HTTP/1.1” 200 -
May 13 20:45:12 raspberrypi satnogs-client[521]: 192.168.0.112 - - [13/May/2018 20:45:12] “GET /socket.io/?EIO=3&transport=polling&t=MDQqYsp&sid=d71192b39c7f472ea062518d53da7313 HTTP/1.1” 200 -
May 13 20:45:37 raspberrypi satnogs-client[521]: 192.168.0.112 - - [13/May/2018 20:45:37] “POST /socket.io/?EIO=3&transport=polling&t=MDQqe_d&sid=d71192b39c7f472ea062518d53da7313 HTTP/1.1” 200 -
May 13 20:45:37 raspberrypi satnogs-client[521]: 192.168.0.112 - - [13/May/2018 20:45:37] “GET /socket.io/?EIO=3&transport=polling&t=MDQqYsx&sid=d71192b39c7f472ea062518d53da7313 HTTP/1.1” 200 -
May 13 20:46:03 raspberrypi satnogs-client[521]: 192.168.0.112 - - [13/May/2018 20:46:03] “POST /socket.io/?EIO=3&transport=polling&t=MDQqlLq&sid=d71192b39c7f472ea062518d53da7313 HTTP/1.1” 200 -
May 13 20:46:03 raspberrypi satnogs-client[521]: 192.168.0.112 - - [13/May/2018 20:46:03] “GET /socket.io/?EIO=3&transport=polling&t=MDQqf0C&sid=d71192b39c7f472ea062518d53da7313 HTTP/1.1” 200 -
May 13 20:46:29 raspberrypi satnogs-client[521]: 192.168.0.112 - - [13/May/2018 20:46:29] “POST /socket.io/?EIO=3&transport=polling&t=MDQqri6&sid=d71192b39c7f472ea062518d53da7313 HTTP/1.1” 200 -
May 13 20:46:29 raspberrypi satnogs-client[521]: 192.168.0.112 - - [13/May/2018 20:46:29] “GET /socket.io/?EIO=3&transport=polling&t=MDQqlM6&sid=d71192b39c7f472ea062518d53da7313 HTTP/1.1” 200 -
May 13 20:46:55 raspberrypi satnogs-client[521]: 192.168.0.112 - - [13/May/2018 20:46:55] “POST /socket.io/?EIO=3&transport=polling&t=MDQqy2P&sid=d71192b39c7f472ea062518d53da7313 HTTP/1.1” 200 -
May 13 20:46:55 raspberrypi satnogs-client[521]: 192.168.0.112 - - [13/May/2018 20:46:55] “GET /socket.io/?EIO=3&transport=polling&t=MDQqrik&sid=d71192b39c7f472ea062518d53da7313 HTTP/1.1” 200 -
May 13 20:47:55 raspberrypi satnogs-client[521]: 192.168.0.112 - - [13/May/2018 20:47:55] “GET /socket.io/?EIO=3&transport=polling&t=MDQqy3L&sid=d71192b39c7f472ea062518d53da7313 HTTP/1.1” 400 -
May 13 20:47:55 raspberrypi satnogs-client[521]: Traceback (most recent call last):
May 13 20:47:55 raspberrypi satnogs-client[521]: File “/usr/lib/python2.7/SocketServer.py”, line 596, in process_request_thread
May 13 20:47:55 raspberrypi satnogs-client[521]: self.finish_request(request, client_address)
May 13 20:47:55 raspberrypi satnogs-client[521]: File “/usr/lib/python2.7/SocketServer.py”, line 331, in finish_request
May 13 20:47:55 raspberrypi satnogs-client[521]: self.RequestHandlerClass(request, client_address, self)
May 13 20:47:55 raspberrypi satnogs-client[521]: File “/usr/lib/python2.7/SocketServer.py”, line 654, in init
May 13 20:47:55 raspberrypi satnogs-client[521]: self.finish()
May 13 20:47:55 raspberrypi satnogs-client[521]: File “/usr/lib/python2.7/SocketServer.py”, line 713, in finish
May 13 20:47:55 raspberrypi satnogs-client[521]: self.wfile.close()
May 13 20:47:55 raspberrypi satnogs-client[521]: File “/usr/lib/python2.7/socket.py”, line 283, in close
May 13 20:47:55 raspberrypi satnogs-client[521]: self.flush()
May 13 20:47:55 raspberrypi satnogs-client[521]: File “/usr/lib/python2.7/socket.py”, line 307, in flush
May 13 20:47:55 raspberrypi satnogs-client[521]: self._sock.sendall(view[write_offset:write_offset+buffer_size])
May 13 20:47:55 raspberrypi satnogs-client[521]: error: [Errno 32] Broken pipe

It went down a few times again. Noticed that /tmp/.satnogs is full. Seems it can’t write anymore to it and then things fall apart. Any reason why the files would pile up in there? This only started happening after the upgrade.

My system usually goes down because of network connectivity loss. Strangely, this only happens with 2 RPi B’s that I got from RS Components. All my other RPi’s are ok.
I’ve written a script that pings/restarts eth0 on loss. Seems to work ok.

Interestingly you’re getting the /tmp/.satnogs full issue. That used to happen to me, but /tmp. Ever since the upgrade to 0.6.1, I no longer get 1000’s of *.hex and *.txt files. I assumed that problem was fixed.

You can wait until no observations are running, then:
cd /tmp/.satnogs && sudo find . -name “.hex" -delete && sudo find . -name ".txt” -delete

The main reason for file piling up is that aren’t uploaded. @tomvdb is it easy to share what files you see in /tmp/.satnogs/data and if there are any in /tmp/.satnogs/data/incomplete. Uploading result of ls -la would be ideal.

@Zathras yes file in /tmp has been fixed. :wink:

The files that are piling up are the .dat files in /tmp/,satnogs/data: @fredy

pi@raspberrypi:/tmp/.satnogs/data $ ls -la
total 341456
drwxr-xr-x 4 satnogs satnogs 320 May 19 20:35 .
drwxrwxrwt 3 root root 80 May 19 20:35 …
drwxr-xr-x 8 satnogs satnogs 160 May 18 23:59 files
drwxr-xr-x 2 satnogs satnogs 40 May 18 23:59 incomplete
-rw-r–r-- 1 satnogs satnogs 28720500 May 19 05:55 receiving_waterfall_138958_2018-05-19T03-42-39.dat
-rw-r–r-- 1 satnogs satnogs 30110400 May 19 06:28 receiving_waterfall_138959_2018-05-19T04-11-43.dat
-rw-r–r-- 1 satnogs satnogs 30852500 May 19 07:58 receiving_waterfall_138960_2018-05-19T05-42-39.dat
-rw-r–r-- 1 satnogs satnogs 26932900 May 19 09:43 receiving_waterfall_138961_2018-05-19T07-31-18.dat
-rw-r–r-- 1 satnogs satnogs 28433500 May 19 13:46 receiving_waterfall_139235_2018-05-19T11-34-12.dat
-rw-r–r-- 1 satnogs satnogs 29507700 May 19 14:12 receiving_waterfall_139236_2018-05-19T11-59-19.dat
-rw-r–r-- 1 satnogs satnogs 31697100 May 19 14:50 receiving_waterfall_139237_2018-05-19T12-36-51.dat
-rw-r–r-- 1 satnogs satnogs 27318300 May 19 18:10 receiving_waterfall_139625_2018-05-19T15-58-13.dat
-rw-r–r-- 1 satnogs satnogs 24501600 May 19 18:30 receiving_waterfall_139626_2018-05-19T16-19-04.dat
-rw-r–r-- 1 satnogs satnogs 29688100 May 19 18:50 receiving_waterfall_139627_2018-05-19T16-34-41.dat
-rw-r–r-- 1 satnogs satnogs 30622900 May 19 19:52 receiving_waterfall_139628_2018-05-19T17-38-47.dat
-rw-r–r-- 1 satnogs satnogs 31237900 May 19 20:29 receiving_waterfall_139629_2018-05-19T18-12-24.dat

Looking at the observations it does seem like they uploaded just fine ? So no reason for them to still be there ?

There is nothing in /tmp/.satnogs/data/incomplete

I’ve added a cron so that the pi reboots at midnight every night for now, it’s not ideal though

Any ideas why those files are sticking around ?

Hi and sorry for the delayed answer.

Yes you can remove these files. The process is that after observation’s end, client runs the script that generates .png file from .dat. After generating .png, deletes the .dat file, not sure why it doesn’t work in your case.

Please let me know if you still see this behavior.

@fredy : Yes, I definitely see this behavior still. It doesn’t remove those files, then /tmp/.satnogs fills up and then the satnogs client dies :frowning: This only started after upgrade to v0.6.1

:frowning: It sounds like permissions issue or something similar to it. I guess you already have done a reboot.

Is there any change you have done manually that wasn’t in the image installation guide?

Is there any error in logs related to this? (for logs run journalctl -u satnogs-client.service).

I suggest, just in case, you follow again the update process.

1 Like

I have a few .png files of size 0 that have been left in my data folder. Not such exactly why tho.

pi@raspberrypi:/tmp/.satnogs/data $ du -a
3136    ./receiving_data_144106_2018-05-25T21-31-46.png
13152   ./receiving_satnogs_144106_2018-05-25T21-31-46.out
28912   ./receiving_waterfall_144106_2018-05-25T21-31-46.dat
0       ./data_121979_2018-04-26T13-16-16.png
0       ./data_121978_2018-04-26T11-47-16.png
0       ./data_121975_2018-04-26T02-38-21.png
0       ./data_121974_2018-04-26T01-15-24.png
0       ./data_121101_2018-04-24T22-25-59.png
0       ./files/WOD_RX_DEC
0       ./files/WOD_RX
0       ./files/EXT_WOD_RX
0       ./files/EXT_WOD_LOG
0       ./files/WOD_LOG
0       ./files/SU_LOG
0       ./files
0       ./incomplete
45200   .

@tomvdb

I think that the issue you face is that one:

which is in progress to be fixed and deployed soon.

1 Like