If you were to try to simply spot a GPS signal at 1.575 GHz in the spectrum on a waterfall in a program like SDR# you would probably fail to see anything. This is because GPS signals are very weak, and operate below the thermal noise floor. Only through clever processing algorithms can the actual signal be recovered.
With real data passed through the fast autocorrelation block he is able to observe GPS signal peaks that occur every millisecond. E.p. explains the reason for this:
Why every millisecond? The coarse/acquisition code for GPS (C/A) has a period of 1023 chips which are transmitted at a rate of 1.023 MBit/s. This results in period of 1 millisecond. BAM!
In this post we will review the FlightAware ADS-B Antenna and their 1090 MHz band pass filter. The FlightAware ADS-B antenna is claimed to have 5.5 dBi of gain, a rugged weatherproof radome and N-type female connector. It costs $44.95 USD on Amazon for US customers and $54.95 USD on eBay for international customers (plus shipping). They write that they are selling this antenna at cost in order to improve FlightAware coverage.
The FlightAware ADS-B filter is a bandpass filter with a pass range of 980MHz - 1150MHz, ~1.5dB insertion loss and more than 40dB attenuation of unwanted frequencies. It costs $19.95 USD on Amazon for US customers and $24.99 USD on eBay for international customers (plus shipping). Generally it is much cheaper than other ADS-B filter options on the market.
FlightAware.com is a company that specializes in aggregating ADS-B data from contributors around the world. People can contribute by using the FlightAware official hardware, or with a simple SDR, like an RTL-SDR dongle. They display the data on their website as it can be used to help track flight arrival times. A similar company is flightradar24.com.
If you are interested in getting started with ADS-B reception with your RTL-SDR then we have a tutorial here.
FlightAware ADS-B Antenna
The FlightAware antenna is about 64cm in length and about 2cm in diameter. It uses an N female connector and comes included with mounting brackets and U-bolts. It is painted olive green.
In the photo below we compare the size of the antenna against a reference monopole antenna, an RTL-SDR dongle and the FlightAware ADS-B filter. The antenna appears to be very solidly built and of a high quality finish. The antenna is wareproofed with some silicon caulking used around the seams of the endcaps.
Size comparison
The FlightAware ADS-B antenna is a collinear type antenna. Collinear antennas are omnidirectional (receives equally from all directions) and have a higher gain compared to most other omnidirectional antennas, but their radiation pattern is flattened and directed more towards the horizon. This is a good thing for receiving planes that are far away as they will be at lower elevations, but aircraft at higher elevations relative to your antenna may be received poorer. Although, it is likely that any aircraft at high elevations to your position will be closer to you anyway, and thus have a stronger signal making the reduced gain at higher elevations less important. Judging by it's ~60cm length and it's specified gain of 5.5dBi, the FlightAware antenna is likely to be a 4 element collinear.
A 4 element collinear generally has positive gain from 0 - 20 degrees of elevation, whereas a simple dipole or ground plane may have positive gain from between 0 - 40 degrees of elevation. A typical commercial jet flys at about 10km. At a distance of 100km this jet would be at a 5.7 degree elevation, and at 10km 45 degrees. Smaller aircraft fly at about 3km maximum, and at 100km would have an elevation of 1.7 degrees, and at 10km 16.7 degrees, so the collinear covers most cases.
A reader wrote in to us to let us know that the internals of the FlightAware antenna had actually previously been posted in an old thread on their forums. From the image it looks like the antenna may be a sleeved dipole + whip + impedance matching design, or something similar. This design is somewhat of a collinear design thanks to the additional whip which also gives a flatter radiation pattern with more gain direction out towards the horizon. These antennas are omnidirectional (they receive equally from all directions) and have a higher gain compared to most other omnidirectional antennas, but their radiation pattern is flattened and directed more towards the horizon. This is a good thing for receiving planes that are far away as they will be at lower elevations, but aircraft at higher elevations relative to your antenna may be received poorer. Although, it is likely that any aircraft at high elevations to your position will be closer to you anyway, and thus have a stronger signal making the reduced gain at higher elevations less important.
The internals of the FlightAware antenna.
If you live in a valley, or have multiple obstacles such as trees or buildings blocking your view of the horizon then the higher gain design may work worse than a dipole/quarter wave ground plane/folded monopole type antenna. In this situation you'd mainly only be able to receive ADS-B signals from higher elevations, so an antenna with a less flat radiation pattern would work better. See the end of this post for some example radiation pattern diagrams.
Luke uses his own Trunk Recorder software and writes that he has modified it to support multiple SDR’s. His software has the following description:
Trunk Recorder is able to record the calls on a trunked radio system. It uses 1 or more Software Defined Radios (SDRs) to do. The SDRs capture large swatches of RF and then use software to process what was recieved. GNURadio is used to do this processing and provides lots of convienent RF blocks that can be pieced together to do complex RF processing. Right now it can only record one Trunked System at a time.
Trunk Recorder currently supports the following:
P25 & SmartNet Trunking Systems
SDRs that use the OsmoSDR source ( HackRF, RTL – TV Dongles, BladeRF, and more)
Ettus USRP
P25 Phase 1 & Analog voice
Luke also mentions that using three RTL-SDRs like this seems to be more efficient on the CPU than using a single SDR that has 8 MHz of bandwidth due to the amount of down sampling that needs to be done on larger bandwidth SDRs.
When I was using a single SDR, each Recorder had to take in the full 8MHz and pull out the small 12.5KHz that was interesting. The end results is that I could only record about 3 channels at once before the CPU got overloaded. Since that control channel was going at the same time, that was the equivalent of about 32MHz of bandwidth to process.
With the RTL-SDR, each Recorder only has to look at 2MHz, which puts a lot lighter load on the CPU. Roughly speaking, having 3 Recorders active, plus the control channel would mean that only a total of 8MHz was being processed. As you can see, this means that it scales much more efficiently.
Using three RTL-SDR’s to monitor a 6 MHz trunking system.
With an RTL-SDR connected and the router running rtl_tcp, the router can be placed anywhere there is power (yo2ldk uses a portable battery pack) to create a remote radio receiver with absolutely no coax cable losses. It’s WiFi range could be extended over long distances by using a directional Yagi antenna.
Using routers instead of mini computers like the recently released Raspberry Pi 3 may be a good option because they are very small, usually much cheaper, maybe be more power efficient, and may work better at transmitting the large amounts of data rtl_tcp requires.
In the future yo2ldk hopes to install everything into a shielded metal case, add an upconverter and also a solar panel for remote power.
YO2LDK’s remote RTL-SDR set up.
We note that if you have an old Android phone, then this could also potentially be used as a remote RTL-SDR server. To create an android RTL-SDR server simply download the Martin Marinov Android RTL2832U Driver from the Google play store. Find the IP address of your Android phone by going to Settings -> About Device -> Status -> IP Address. Then open the RTL2832U driver app and click on “Enable advanced mode (for debug & stream to PC)”. Initially the rtl_tcp string will have the code “-a 0.0.0.0”, simply change this to the IP address of your Android phone, for example “-a 192.168.1.15” and then click Start stream. Now on a remote PC connected to the same network open SDR# go to RTL-SDR (TCP) and type in the IP address of the phone and use the port number 14423. Click the play button and you should now be streaming your RTL-SDR data over WiFi.
The R820T/2 RTL-SDR’s are known to have a problem that surfaces when trying to listen at L-band frequencies above about 1.5 GHz. As the dongle heats up the internal PLL appears to loose lock, causing reception to be lost above a certain frequency which is usually above around 1.5 GHz. There appears to be manufacturing variation between R820T/2 chips, so some dongles may exhibit this problem, whilst others do not, and some may fail at lower or higher frequencies than others.
This problem can be almost completely solved by cooling the RTL-SDR, and this is the reason we have added a thermal pad to the RTL-SDR dongles sold by us to aid with passive cooling via the metal case. In our tests this solves the problem for almost all dongles, but a few still do sometimes still exhibit this problem after running for a few hours.
Recently we were informed by a reader of RTL-SDR.com about a conversation on IRC where some users suggested modifying the RTL-SDR drivers to solve this problem. The suggestion was to modify the VCO current settings so that they were implemented in the same way as in the Airspy (which also uses the R820T2 but does not have this problem). Basically, in the Airspy the current is set at maximum on initialization, whereas in the RTL-SDR drivers it is set lower, and then bumped up if the PLL fails to lock. Setting it to maximum in the first place seems to help stop signal loss at L-band frequencies.
So far we’ve tested this change with a dongle that was known to be very bad at L-band. This dongle used to fail at 1.65 GHz after 20 seconds. With the driver change it fails after 2 minutes which is an improvement. With passive cooling via thermal pad and our metal case it used to fail after 15 minutes or so, but with passive cooling and the driver change it runs indefinitely.
If you’re having problems at L-band and would like to test this change then we’ve uploaded a modified Windows version of the driver on GitHub here https://github.com/rtlsdrblog/rtl-sdr/releases. It is based on Keenerds version of the RTL-SDR drivers. Simply download the .dll file and replace the current version in your SDR# folder, or other folder. Let us know if it helps you.
The main change made is r82xx_write_reg_mask(priv, 0x12, 0x00, 0xe0); is added to the init code, and r82xx_write_reg_mask(priv, 0x12, 0x80, 0xe0); r82xx_write_reg_mask(priv, 0x12, 0x60, 0xe0); are removed from the set_pll and pll check code.
Thanks to patchvonbraun, Youssef of Airspy and others on IRC for discussing this problem.
Passive cooling via thermal pad and metal case heatsinking resolves the L-band problem in most cases.
Over on YouTube user surfrockuk shows a fun and educational use of the RTL-SDR. Every now and then astronauts will arrange a ham radio session where they will communicate with a school. An RTL-SDR can be used to listen in on at least the downlink (astronaut talking) portion of these transmissions.
The following video shows astronaut Tim Peake transmitting from the international space station (ISS) on Feburary 19th 2016. He was speaking to Oasis Academy in the UK. To receive the signal surfrockuk used an RTL-SDR with a QFH antenna. Many people have reported that other simple antennas such as discones, quartwave ground planes and even long wire antennas have been good enough to receive transmissions from the ISS too.
Look up the device frequency and listen to it with an RTL-SDR and SDR#.
Record the signal and visually study the waveform in Audacity.
Look up system part info and determine encoding type (e.g. ASK/OOK)
Determine the bit string and baud rate.
Program the RFcat to send the same disarm binary string.
Once again research like this shows that cheap home alarm systems have literally zero protections against wireless attacks. In a previous post we also showed how the popular Simplisafe wireless alarm system could be disarmed in a somewhat similar way.
$50 home alarm system broken by an RTL-SDR and RFcat.
An upconverter allows you to receive HF frequencies (0-30 MHz) with an RTL-SDR which has a lower frequency limit of 24 MHz. The ham-it-up upconverter was one of the first upconverters to go on the market that targeted users of the popular RTL-SDR dongle. Over the years the ham-it-up has slowly been revised and now it is up at version 1.3. The biggest changes in the latest version are a revised design that uses the ADE-1 in reverse (better VLF operation), a presoldered oscillator and it also now includes the previously optional noise source by default.
In his review Akos compares the ham-it-up v1.3 to the older v1.2 model. His results show that the revised design seems to have better immunity to noise and better FM broadcast filtering. He also tests out the new battery power via connection and shows that using battery power is less noisy.
Previously we posted a review comparing the ham-it-up v1.0, SpyVerter and Nobu’s Japanese upconverter. Although the ham-it-up v1.3 is much improved and we have not tested it, we still believe the SpyVerter is the better upconverter choice at the moment due to its better architectural design and included metal case, though Akos does point out that the ham-it-up is currently about $15 USD cheaper and has a passthrough switch.
Ham-it-up v1.3 vs ham-it-up v1.2
In his second post Akos reviews the Balun 1:9 which is a $10 balun that is designed for attaching a long wire antenna to the ham-it-up. The goal of the balun 1:9 is to transform the high impedance long wire antenna down to around 50/75 Ohms for the receiver. In Akos’ results he writes that he mostly see’s identical or better performance with the balun connected.
The Nooelec balun 1:9
To add to Akos’ review, we want to note that we think that there might be some confusion over baluns and ununs. We wonder if a 9:1 unun (instead of a balun) should be used for a long wire antenna, since a long wire is an unbalanced antenna. We think a balun should be used for a balanced antenna such as a dipole. In his review Akos also found that connecting two longwire antennas to the spring terminals improved reception. This may have possibly been because adding two longwires essentially created a balanced dipole antenna. To implement a longwire antenna unun with a balun, we think that the second terminal and coax shield should be connected to a good ground source like a cold water pipe. If you have knowledge on this topic please comment to confirm or expand on our theory.