FIS-B ADS-B Receiver
Posted: Sat Feb 07, 2015 2:32 pm
Hi,
I am trying to use the bladeRF (115 FPGA) as a receiver for the FAA's Next Gen Flight Information Service-Broadcast system. They transmit at 978MHz, and use phase coherent BFSK modulation with a symbol rate of 1.04167MS/s and a deviation of +/- 312.5 KHz. Also used is byte interleaving and a R-S FECcode. The RTCA publishes the officlal spec for the system in document RTCA DO-282B. I found what I believe is a draft copy of it on line and have used it so far in my design as to buy a full copy as a non-RTCA member is $650.00 (ouch!).
At this point I have written C code running on a PC under Ubuntu that uses the bladeRF. My code is debugged and can successfully demodulate the signal and obtain symbol lock. So far my tranmitting source has been a vector signal generator, programmed to match the modulation specs that continuosly transmits the FIS-B 36 bit sync code. My demodulator/symbol timing recovery code uses the bladeRF to downconvert and then sample the IF. Those samples feed a complex FFT and by sliding the FFT window over a block of samples, I can make bit decisions and correlate against the sych code. If I don't get a correlator score of zero, I slide the window on sample to the right and try again. So far so good.
I live fairly close to Reagan National Airport and have an outdoor deck on the 13th floor of a condo building. So, to continue testing, I "replaced" the VSG with an antenna. My code no longer achieves synch lock and I am trying to elminate possible causes. The spec I have says the receiver needs to work with a receive signal strength of -91dBm at the antenna input. With the bladeRF set with the LNA at high gain (6dB) and its two VGA's both set at a gain of 30dB I can achieve synch lock down to a VSG output level of -60dBm. So, by the spec, I'll need more gain than the bladeRF can provide by itself and this might be one of the reasons why, with an antenna (it give 5dB of gain), I can't lock on to the signal. However, as close as I am to what I believe is a transmitter at the airport, I think I should be at a range from the tranmitter such that I don't need maximum sensitivity. But, the other reason may be that the sych bit sequence I've been using from the spec has been changed.
The synch sequence I am using is the binary equivalent of the hex value 153225B1D with the left most bit of the code tranmitted first. So, here are my questions:
1. Does anyone of a final copy of DO-282B to verify from it that my receiver is looking for the right sync code? In my spec it is provided in para 2.2.3.2.1.
2. Has anyone else used a bladeRF to receive the FIS-B (not the TIS-B) service? And if so, what gain setting did you use on the bladeRF? Did you also need to use an external LNA?
I also have all the necessary code written to pack bits in to bytes, de-interleave them, de-code the R-S FEC and parse the resultant bytes in to the spec's message format so I am very close here! If anyone would like to cooperate on getting this done, I'd be open to that too.
Thanks,
Ray
I am trying to use the bladeRF (115 FPGA) as a receiver for the FAA's Next Gen Flight Information Service-Broadcast system. They transmit at 978MHz, and use phase coherent BFSK modulation with a symbol rate of 1.04167MS/s and a deviation of +/- 312.5 KHz. Also used is byte interleaving and a R-S FECcode. The RTCA publishes the officlal spec for the system in document RTCA DO-282B. I found what I believe is a draft copy of it on line and have used it so far in my design as to buy a full copy as a non-RTCA member is $650.00 (ouch!).
At this point I have written C code running on a PC under Ubuntu that uses the bladeRF. My code is debugged and can successfully demodulate the signal and obtain symbol lock. So far my tranmitting source has been a vector signal generator, programmed to match the modulation specs that continuosly transmits the FIS-B 36 bit sync code. My demodulator/symbol timing recovery code uses the bladeRF to downconvert and then sample the IF. Those samples feed a complex FFT and by sliding the FFT window over a block of samples, I can make bit decisions and correlate against the sych code. If I don't get a correlator score of zero, I slide the window on sample to the right and try again. So far so good.
I live fairly close to Reagan National Airport and have an outdoor deck on the 13th floor of a condo building. So, to continue testing, I "replaced" the VSG with an antenna. My code no longer achieves synch lock and I am trying to elminate possible causes. The spec I have says the receiver needs to work with a receive signal strength of -91dBm at the antenna input. With the bladeRF set with the LNA at high gain (6dB) and its two VGA's both set at a gain of 30dB I can achieve synch lock down to a VSG output level of -60dBm. So, by the spec, I'll need more gain than the bladeRF can provide by itself and this might be one of the reasons why, with an antenna (it give 5dB of gain), I can't lock on to the signal. However, as close as I am to what I believe is a transmitter at the airport, I think I should be at a range from the tranmitter such that I don't need maximum sensitivity. But, the other reason may be that the sych bit sequence I've been using from the spec has been changed.
The synch sequence I am using is the binary equivalent of the hex value 153225B1D with the left most bit of the code tranmitted first. So, here are my questions:
1. Does anyone of a final copy of DO-282B to verify from it that my receiver is looking for the right sync code? In my spec it is provided in para 2.2.3.2.1.
2. Has anyone else used a bladeRF to receive the FIS-B (not the TIS-B) service? And if so, what gain setting did you use on the bladeRF? Did you also need to use an external LNA?
I also have all the necessary code written to pack bits in to bytes, de-interleave them, de-code the R-S FEC and parse the resultant bytes in to the spec's message format so I am very close here! If anyone would like to cooperate on getting this done, I'd be open to that too.
Thanks,
Ray