If you’re like me, you’ve setup your RTLSDR dongle, you’ve connected some software to it, you’ve seen some aircraft on your screen and you’ve said, “Cool! How do I see more?”
If you’re even more like me, you can’t get your antenna up to the roofline so it has a nice 360˚ view of the sky. So what can you do to expand your coverage in other directions so your software (Virtual Radar Server, PlanePlotter, etc) is seeing more of the horizon?
Use two dongles!
RTL1090 includes a wickedly cool feature that lets you string instances of the software together. These instances can be running on the same computer or on different computers on the same network. I’m using the latter, with one dongle plugged into a desktop computer in the living room and a second dongle plugged into a netbook in the bedroom. My bedroom faces south and my living room west, and that gives me relatively good coverage of roughly 240˚.
What Do You Need?
You’ll need a few things to set this up:
- two (or more) RTL2832U dongles
- two computers (odds are you have one already setup otherwise you wouldn’t be reading this yet)
- a wired or wireless network to which you can connect the two computers — your router needs to support UDP (most do)
- the RTL1090 software installed on both computers
- an understanding spouse who will let you run a computer 24/7 in the bedroom (I’m a very lucky man. And no, you can’t have her.)
Here’s my setup:
- Primary PC: in the living room, a 20″ Intel iMac (2006 model) running OS X 10.6 Snow Leopard and on which I’ve installed Boot Camp, partitioned the hard drive, and installed Windows 7 Ultimate, set to be the startup disk. That may sound unnecessarily complicated but I’m comfortable with Macs and OS X and I had a spare iMac capable of running Windows. This machine is connected by ethernet to my router.
- Secondary PC: In the bedroom is a Dell Mini 10v Netbook running Windows 7 Basic and connected to my network by wifi (802.11n).
- Each computer has a dongle connected and configured using the steps I outlined in this post.
The trick to sending the data stream from the secondary dongle to the primary PC is in the command line parameters you use when you launch RTL1090.
Yeah, that needs some explanation. Many Windows applications can accept parameters being passed to them when you double-click their icons. These parameters instruct the application to behave in certain ways, like using certain ports on the network, for example.
Network Ports and Command Line Parameters
By default, RTL1090 uses port 31001, 31002, 31012 and 31004 for different purposes. Port 31001 is used to broadcast the data stream that RTL1090 is receiving from your dongle. Port 31002 is used to receive the data stream from a second dongle on the network. Port 31012 is used to send data to a second dongle. And lastly, port 31004 is used to broadcast the same data stream as port 31001 but in a different format (called TCP 30003 format).
So let’s think this through: the primary instance of RTL1090 (in my case, the one running on the iMac in my living room) is listening on port 31002 for data from a second dongle. That means my second dongle has to be sending its data stream on the same port, 31002. But if I don’t change anything in RTL1090 using a command line parameter, my second dongle is going to be sending its data stream over the network on port 31002, just like the first one. That won’t work. To avoid this, we’re going to force each instance of RTL1090 to use certain specific ports. We’ll do this using two command line parameters: /portbase and /udptarget.
If you followed my instructions for installing RTL1090, you put it in C:\RTL1090. I recommend creating a shortcut to the application on your desktop. To do this, right-click on the RTL1090 application and choose Send to > Desktop (create shortcut). Now we need to add the command line parameters to the shortcut so that they are executed whenever we double-click the shortcut to run RTL1090. To do this, right-click on the shortcut and choose Properties.
A window opens and all of the text in the Target field is highlighted in blue to indicate it is selected. This text should read C:\RTL1090\rtl1090.exe. Press the right arrow key on your keyboard to move to the end of the line then tap the spacebar to insert a space. What you are going to type next depends on which computer you’re using at the moment:
- on your primary computer, type /portbase=31000 so that the whole line now reads C:\RTL1090\rtl1090.exe /portbase=31000.
- on your secondary computer, type /portbase=31020 /udptarget=31000 so that the whole line now reads C:\RTL1090\rtl1090.exe /portbase=31020 /udptarget=31000.
Click OK to close the window and save the new parameters to the shortcut.
What we’ve just done is force RTL1090 on your primary computer to use its default ports. This may seem like a redundant step but we want to ensure the two instances of RTL1090 don’t conflict with each other. On the secondary computer, we’ve forced RTL1090 to use port numbers starting with 3102 (i.e. 31021, 31022, 31032 and 31024.) The second parameter, /udptarget, forces RTL1090 to send its data stream to the dongle on the primary computer using port 31002, which is the default port that RTL1090 listens to.
How Do You Know It Worked?
Start with the secondary computer. Double-click the shortcut on your desktop to run RTL1090. Click the Start button and then click the Send UDP button. If you look at the bottom of the RTL1090 application window, you should notice two things. First, there should now be an orange “light” turned on. Second, directly below the orange light you should see the text TCP Port: 31021.
Now go to the primary computer and launch RTL1090 by double-clicking its shortcut on the desktop. Click the Start button. If you look at the bottom of the RTL1090 application window, you should see two things. First, the yellow light should now be on. This indicates RTL1090 is receiving data from another dongle on the network. Second, below that should be the text TCP Port: 31001.
Now you need only tell your radar software (Virtual Radar Server, PlanePlotter, etc.) to connect to port 31001 on your primary computer. Because you’ve merged the data from the two dongles, your radar software will now see aircraft being received by both dongles.
What If I Want Both Dongles On One Computer?
The idea is the same if you want to run two dongles on just one computer. You’ll need the RTL1090 software installed twice, though. Basically, setup the first instance of RTL1090 the same way you would if you were using just one dongle, like in these instructions. Once you’ve done that, make a copy of the C:\RTL1090 folder and call it C:\RTL1090_2. Make sure it has all the same files in it.
On your desktop you would create a shortcut to each of the RTL1090 applications. You can rename the shortcuts to have more meaningful names.
Then edit the Properties for each and edit the Target field to add the /portbase parameter to the first shortcut, and both the /portbase and /udptarget parameters to the second shortcut. It doesn’t matter which instance you run first, nor does it matter which one you Start first. Just remember that with the second instance you need to also click the Send UDP button to have it send its data stream to the first instance.
How Many Dongles Can I Have?
I have no idea, but in order to see a full 360˚ you shouldn’t need more than three (120˚ each) or four (90˚ each). You’ll need to change the /portbase for each instance of RTL1090, but I highly recommend that your primary instance use the default /portbase of 31000. That way, all other instances can be configured to use the same /udptarget of 31000. Those other instances should use a /portbase that is an increment of 10 from the primary. So if the primary is 31000, then the others would use:
- /portbase=31010 /udptarget=31000
- /portbase=31020 /udptarget=31000
- /portbase=31030 /udptarget=31000
So why did I use 31020 for my second dongle when I should have used 31010? Simple…
I made a typo and didn’t bother fixing it. 🙂