C-Band ADSC aka Satellite ADSB

This page is out of date.
Please go to my GitHub site: https://thebaldgeek.github.io/

When you write it down, in one sentence, its really very simple;
6′ dish -> PLL LNA -> 18v DC pass-through PSU -> RTL-SDR -> SDR# -> Jaero -> VRS.
And with that signal path, you will have planes on a map. 100+ planes from half the planet. Easy right. Ah. It could be, but if you are reading this, you probably have hit some snags.
Also, if you are reading this, you probably have an idea of what you are trying to do, so I will skip the intro and go straight to how I did it.
And just to be clear, we are talking about ADS-C, not ADSB, but it looks so similar that many (me included) often get it mixed up.

You can (apparently) get by with a 4 foot dish, but I did not want to be scrapping around in the noise, so opted for a 6 foot dish, the wife was not so excited, so we both compromised and went for a 5 foot dish. If I was going to do it again, I would go a 6 to 9 foot dish, anything bigger and the pointing accuracy is going to be a ‘problem’ and not worth the extra signal strength.

The LNB (feed-horn) matters. You want something with low frequency drift, something that is temperature stabilized would help as well. If you find something that fits the bill, let me know.
I was recommended this one; https://www.amazon.com/gp/product/B00HVM08JI
Having nothing to compare it with makes it a bit hard, but the short of it is that its not really stable enough. The drift will put the signal out of range of the bandwidth every hour or so. You will be chasing the signal over a few hours. Okay for testing, but no fun for something that you just want to leave running unattended (which is my plan).
The LNB has two voltages, 13 for one polarization, 18 for the other (horizontal and vertical for example). I did not have 13 on hand, so went with 21. A little on the high side, but it runs fine through 50 feet of coax. This is the one I used; https://www.amazon.com/gp/product/B005AME7Y8
You need to make sure that your power injector can pass through a 1.5gHz signal, that is the down converted signal from the LNB.

From the LNB power supply, you then have your RTL-SDR. Anything that will work at 1.5gigs should be fine for a test, but you really need something that is stable and sensitive. If you find something that works, stick with it.
This is the one I am using; https://www.amazon.com/gp/product/B0129EBDS2
Again, I have nothing to compare it with. (I just wonder if this is not the source of the drift I am fighting with).

I chose to use SDR#, its free, simple to install and basic enough to do the job. Sure, you can get fancy and run some other software, but its mostly a headless setup, so simple is better.

Once you have the signal, you need to decode it. I only know of one application that can do it, Jaero. Jonti’s work is amazing, be sure and give him a few bucks if you go this way.
What you do with the information I will leave it to you. There seems to be two main paths, Plane Plotter or VRS (Virtual Radar Server). I went with the second option since that’s what I already run (I also run PP, but not to the same extent as VRS).

Ok, so that’s the easy part, now getting it to all play nice together and get planes on a map……

We bought the dish new off eBay. it arrived, free shipping, in two weeks from Canada.
Took me about 2 hours to put it together, seems pretty straight forward. If I had to do it again, I would get at least 6 foot and something that mounts on a pole, not a base.

The LNB was brand new from Amazon. Long story short, it was faulty. I spent a week working with it for hours and saw nothing but static.
One evening I just gave up and voided the warranty and opened it up. Sure enough, it had a dry joint and was open circuit on the input. A quick touch with a hot soldering iron and put it back together (interesting note aside, the heat sink is there for looks only, it has zero contact with any parts – made me smile a little).

After spending a week looking at nothing but noise, once I powered it back up I was met with wall to wall signals, it was very exciting and a big ups that I was not losing my mind.

SDR#. Install it and run it.

Now the really hard part. What frequency should you tune for? In the end, I could not really find a solid answer since it depends on the down converted frequency of the LNB and the specific satellite you are tuned to. I am looking at Inmarsat 4-F3.

There are a few lists floating around, but they did not agree and in the end it was a single screen shot on Jonti’s website that got me close.
it helps to look and see what sort of waterfall pattern the adsb messages makes as well. I mostly went by visual on the waterfall more so than the frequency.
I wish I had something more solid to give you than ‘look for this pattern’, but that’s really what it came down to. I just could not find anyone that had documented the frequencies for the different sats with the LNB I was using.
Here are some examples from my setup.

This next one is a bit more zoomed in on the frequency scale and shows you both the frequency I was tuned to and what the waterfall looks like.

Now for the next hard part. Aiming the dish.
A few things to try.
You can get a compass and inclination meter and point it using those. Not a bad way to do it, and I got in the ball park with this method, but it was not really accurate enough. BTW, the metal in the base will throw things off, so use a plank of wood to extend the dish and put the compass at the end of the wood to get more accurate.
You can also use one of the satellite aligning apps on your phone. I also did this and found it really good.
Here is a screen shot looking next to the satellite. (I found the arc of geostationary satellites really fascinating).

The third way takes a little more gear, but is rather interesting (thanks again go to Jonti for his description of this method), disconnect the LNB and put a modified GPS patch antenna at the center of the feed horn and tune your SDR to the L-Band signals coming from the sat. Now you can pretty easily move your dish around for peak signal from the sat.
Here is some of the gear I used to test this.
GPS patch antenna, LNA and bias T injector.

Here it is on the feed-horn.

I also did this to see what it was like and it works pretty well.
So in the end, I used all three options to get the dish pointing in the right rough direction.

By now, you should have a pretty solid waterfall of signals, find the short staccato signals and start to tweak things for maximum signal.
One important thing to note, Jonti mentions that I would need the bit of dielectric stuffed in the feed-horn to turn from direct (horz or vert) polarization to circular. He is right. Listen to him. The key is to get it inserted the correct way, there are two ways to put it in, they are 90 deg to each other (up and down or left right if you have the ‘heat sink’ uppermost).
Make sure you test both ways. One way will make the signal weaker, the other way will make the signal stronger. No dielectric will be somewhere in the middle. You clearly want the strongest of the options.

Hone in on a likely looking signal and fire up Jaero and see what gets decoded.
As far as setting it up for the basics, you need to select 10500 bps burst and I found the best decoding to happen when the locking is set to 1800 or 900 hz and AFC is on. (Note, this may or may not make much of a difference. But please experiment with it. I am finding some differences but need more time with it testing).
Set SDR# to 10500 bandwidth (or wider, but not narrower) and USB.
You should start to see ACARS data. If in the SU’s tab you see a LOT of ‘Bad R/T Packet’ messages, you are close, but don’t have things setup quite right. Go back over my notes and take a look at my settings and yours.


IMPORTANT NOTE. In this screen shot I have ‘Locking’ set wrong. It should be 1800 or even 900.

Once you are getting good clean ACARS data you should straight away notice that you are getting a lot of reports with Lat/Long in them.
We can push these messages to another bit of software and get the final goal of all this, planes on a map.

If you are using Plane Plotter, Google will guide you. I cant help.
If you are using VRS, here is how you set things up…..

Jaero is a little ‘odd’ in that you set the Basestation address to be 0.0.0.0:30003. You can change the port number, but you MUST leave the IP address to be all zeros.
This is the odd bit and cost me a ton of time, but in the end, Jonti himself set me straight in a very kind email.


(Note. In this screen shot I have the ACARS option ticked and its going to the same PC as VRS on a different port number. You wont need to do this for just ADSB.
I am also interested in looking at the ACARS data in Node-RED. Read about it on my aircraft page.)

In your VRS then, you need to put the IP address of the PC running Jaero (assuming its on a different PC, if its the same, then its just 127.0.0.1 and the port number) and the port number you picked.
Of course the type has to be Basestation. Tick the box, ‘Is Sat-com’ to give yourself the longer time out.

Ok, Phew. By now you can take a breath and check out some amazing data flowing in. You should, within just a few minutes (yes, it really does happen that fast) see planes from all over the world (just about). The foot print of the satellite is amazing.

Want to double the amount of data/planes you are getting?
Notice that there is another ADSB signal next to the one you are on….. If you tune over it you will see much the same ACARS/ADSB data but from different aircraft.
Install the VFO plugin for SDR# and also install VAC (Virtual Audio Cable).
Now you can set 1 cable for the main frequency and 1 for the VFO.
Now copy paste a second instance of Jaero on the desktop, right click and set its properties to be -s line2 and now you can start another instance of it and have double the messages.

Here is the key, you cant run them both on the same port number. The second instance still must be 0.0.0.0 but the port number MUST be different for each instance.
So set up a second receiver in VRS and make sure you are getting another set of data / aircraft.
Then set up a merged feed with the two feeds into one to see the total of the two frequencies.

To-do.
1. The output of the LNB drifts. I don’t know if its due to temperature, PLL instability or Doppler from the sat moving or drift in the RTLSDR. At the moment I have to tweak the VFO in SDR# a few times a day. This will not do. I need to solve this asap.
2. The satellite drifts in a slow figure 8 pattern. The dish needs re pointing a few times over 24 hours. At the moment, it looks like just in elevation. I have a linear actuator on order and will see about automating it as a matter of some urgency.

Hope that helps. I have written what I found scatted all over the place, a lot of what was not written anywhere and the rest is what I wish was written down somewhere.

UPDATE 1. May 2020. After about a year, I figured out how to accurately track the satellite.
UPDATE 2. June 2020. I fixed the drift issue and finally blogged about it. https://thebaldgeek.net/index.php/2020/06/07/titanium-c1-pll-lnb-gpsdo-modification-for-c-band-adsc/