Obtaining some basic stats from an L-Band receiver

So I’ve just built the DIY L-Band receiver last Saturday and have it running successfully only for a couple days.
Using the Outernet branded E4000 receiver, LNA+filter, and patch antenna.
At first the tests with CHIP were going well, but I haven’t had good experience with CHIP in terms of reliability so the receiver is set up with the latest (as of Saturday) RPi image.
The whole setup is sitting on my roof and facing South, perhaps at slightly less than a 45º angle but it is getting ~3 dB SNR. It seems to be doing better at night, but I’m not watching it constantly. I’m located in the northern US.

I’ve been trying to figure out the best way to see if reception is working reliably and few different factors seem to be at play - 1) antenna placement, 2) weather phenomena, 3) transmit-side issues. To try and isolate this I started to write a library that obtains information from one of the receiver services. There exists telemetry_client which sends information back to “telemetry.outernet.is”, but it doesn’t help for personal use in monitoring the receiver.

So here’s what I’ve started - a simple webserver/stats collector written in Go that runs on the server. Right now it’s just collecting SNA levels and “pps” (packets per second, not sure what the size of a packet is?) and updating this graph once per second. It might help for antenna pointing because it reacts quickly to changes. It can also be easily modified to give a full day’s overview on data transfer and SNR levels.

In the library that pulls data from the file receiver, information is collected on files successfully downloaded, state of current transfers, etc. This could help us monitor “stuck” or stale files, but have not bothered using this functionality yet.

Here’s what it looks like:

If you want to try the same, extract this tarball and run statsServer. It’ll start a webserver, then hit the receiver in your browser on port 8080 (http://receiverip:8080). You’ll start seeing SNR and packet rate graphs. Might not work on CHIP, only tested on the RPi3.

If interested in making improvements on this, the code is here.


  1. What other data is important to keep an eye on with the receiver?
  2. Would anyone else be interested in sharing information and making a collaborative effort to gather coordinated data on receiver performance in different areas?


First of all really nice charts! :slight_smile::clap:
Do you may have a few days period recorded for now? Also might the “per second resolution” is too dense for looking over a days variations, might a moving average or similar math can be used when scaling X axes from seconds to days and up.


  1. So far SNR is the most useful data what can help judge you the quality of your reception link, 2nd place I would mention “Packet failure count” and “Received packet count” this can show the dropped and the successfully received packets count.

  2. I think this could be a good idea on long term. @Syed might have additional comments


1 Like

This is a fantastic adjunct add on to Outernet. I really congratulate you. I think a strong community making feature rich add ons liike this, will make Outernet the mega success we all want.


1 Like

@zoltan - thanks for the feedback. Shortly after posting this yesterday I changed the graphs to once per minute (SNR is sampled once per second and averaged over a minute).

Luckily we’ve had nice clear skies since then, so the receiver has not been disturbed.

Here’s what it looks like so far:

Wow! :slight_smile:
Really nice to see what we only “felt” so far empirically!

Thanks for sharing this!

1 Like

It’s also a pleasure working with so friendly users like you guys! :blush:

Running now for a full 24 hours, receiver still untouched and mostly clear skies.

Should I use the download on the GO website for Linux or this on the Linux Mint site? http://ricardorover.com/tecnologia/2014/golang-linux-mint-install-hello-world/