In the previous two posts we looked at planning for reception of GOES16 weather signals and we did a signal capture as shown above. Improved performance resulted when the LMR400 coax was inserted between the SAWBIRD Filter/LNA at the back of the antenna and the RTL-SDR . From the first planning post, the average noise level was -100dBm. The BPSK spectrum is about 8dB above the noise, so say -92dBm. Our planning was for a signal at -84dBm based on a guess of 60dBmi tx power. Thus a better guesstimate is for a lower satellite Tx power of 52dBmi.
Receive Signal Simulation
Figure 1 shows a Scicos channel model for BPSK transmission. A PRBS data signal directly multiplies a carrier frequency and White Gaussian Noise is added in the channel. The receiver reinserts the carrier and the data is recovered with a LPF and comparator. Table 1 lists the BER vs SNR. Note that this is just for BPSK with no Viterbi or RS coding, just to get a rough idea of performance. At 6dB we have better than 10^-3BER, so with 8dB and Viterbi/RS coding we should have adequate performance to decode pictures successfully.
Decoding Software – goestools on RPi4
In order to decode the GOES16 signal, I used Ref.3 & 4 (from rtl-sdr.com & Alexy) that describe the installation and setup of goestools on a RaspberryPi. The articles are very well written, so not too much to add. The first step was to download an image file for Raspbian Lite OS. I had several old 8Gbyte SD cards left over from earlier installations, so I cleaned off the various partitions from one of them using a DOS utility DISKPART running on Windows10, in a command window.
After that, now with an empty SD card, I used RaspberryPi Imager to load and install the RPiLiteOS. I inserted the SD card into an RPi4 and booted up using my TV as an HDMI monitor. The default user/password is pi/raspberry. I ran <sudo raspi-config> and enabled SSH access. Then I downloaded Putty on my laptop and connected the RPi4 to my LAN. I was able to connect over the LAN to the RPi4 with 192.168.0.12 assigned to the RPi4 (Fig.4). Once connected over the LAN, I ran an update & upgrade <sudo apt update> & <sudo apt full-upgrade>. Then I followed all the steps from Ref.4. For the last step, I used nano to write the parameters into goesrecv.conf directly, rather than the cat command. Once goestools was installed, I inserted the RTL-SDR and ran a test to detect it <rtl_test> as shown in Fig.5.
The final step was to run goesrecv, orient the dish antenna and see if I could get the Viterbi error rate to decrease to a point where no packets were lost. With no signal, vit(avg) > 2000, when the dish was pointed I could get the vit(avg) to <180 which resulted in no drops as in Fig.6. The YouTube video in Fig.7 shows the procedures used. In the next post we will use a permanent mechanical dish mount and download actual information from the satellite.
Please send your comments, questions and suggestions to:
#1. – “RTL-SDR for Satellite Weather on GOES16 – Signal Capture”
#2. – “RTL-SDR for Satellite Weather on GOES16 – Planning”
#3. – “RTL-SDR GOES16/17 Reception Tutorial”
#4. – “Receive GOES16/17 with RaspberryPi and RTL-SDR”