VariFlight ADS-B - Flightradar in Chinese

Flightradar, 3r31800. in some ways, it has become a household name, in effect replacing the notion of 3r-31013. "A site where you can watch the aircraft in real time" 3r3-31014. . Although in fact there are several such large sites, and smaller projects are even more, but it is often possible to see in the media news about an aviation event with the phrase “according to Flightradar website” and a screenshot from another resource. 3r31987.  
3r31987.  
On Habré there are a number of publications about radar sports, in which or in the comments to which not only the Flightradar is mentioned. In this publication, I will talk about the Chinese service for tracking air traffic and its the same 3r3-31013. Chinese [/i] An ADSB receiver that they send for free. 3r31987.  
3r31982. VariFlight ADS-B - Flightradar in Chinese 3r31987.  
How to keep track of identified flying objects with the Raspberry Pi
 
3r3822. 3r350. Cheap and simple radarspot station 3r31100.
 
3r3661. 3r31987.  
The receiver receives, transmitted by airplanes, a signal at a frequency of 1090 MHz, decrypts it, and sends it in some format. For example,
 
3r? 31802. 3r31580. {"updatetime": 153790222? "UTC Time": "2018-09-???:03:45", "anum": "TCETM", "fnum": "KKK6944", "position": {"long": ???? "lat": ???}, "height": 10005.0? "speed": 888.9? "angle": 130}, 3r319323. 3r31924. 3r31987.  
3r31987.  
This lesson is not only interesting, but has become the activity of several companies:
 
3r3653.  
3r3822. Flightradar24
 
3r3822. Flightaware
 
3r3822. PlaneFinder
 
3r3822. AirNav Network Radarbox
 
3r3822. 3r33939. AvDelphi network 3r3-31996.
 
3r3661. 3r31987.  
Few people think about what they do for a living and how services like Flightradar work. An example of this can be seen in the ru. Wikipedia "3-3331013. Public web service that allows you to monitor the position of aircraft in the air 3-3-331014.". The article itself and the title give a false impression of Flightradar as a kind of entertainment service. 3r31987.  
3r31987.  
In fact, having emerged in the early 2000s as a hobby, these companies quickly reached a payback period and each year increase revenue. For example, Flightaware, founded in 200? became profitable already in 200? earning more than $ 1M in the first 18 months, and showing an annual growth of 40-75%. According to some resources, the annual income of Flightaware exceeds $ 9M, and Flightradar - more than $ 2M. 3r31987.  
3r31987.  
If in Europe there is a Flightradar, in the USA - Flightaware, then in China there is a VariFlight. In the same way, the service, which sells flight statuses, statistical data and archives of flights, performs analysis and forecasting for customers - organizations and individual clients. 3r31987.  
3r31987.  
Own words VariFlight:
 
3r? 31802. 3r31580. 3r3117.
3r3119.
3r31923. 3r31924. 3r31987.  
Companies trade data, both their own and those received, for example, from the US Federal Aviation Administration. But the greatest profit can be obtained from its own receivers, the operation of which the company does not cost anything because they are installed by radarspot enthusiasts, you only need to spend money on manufacturing and shipping. Therefore, at some point companies began to sell and send their receivers for free. Free of charge to where the company does not yet have coverage with its network of receivers and from where there is no data. 3r31987.  
3r31987.  
The cost of the data justifies the “free” distribution of receivers (note the text below the table - the receiver remains in the ownership of Flightaware, formally rented out for free). 3r31987.  
3r31982. 3r31987.  
By 201? Flightradar had more than ?000 active receivers in the network, Flightaware had about ?500. But Flightaware began distributing receivers two years before, and Flightradar had built its network for almost a decade by that time. On 3r3137. This time 3r3-31996. Flightaware network has more than 1?000 receivers. The Flightaware receivers software is constantly being improved on this and FMSDATA, FMSWX
 
3r31987.  
Location map of receivers in March 2017: 3r3r1919.  
3r31982. 3r3146.
3r31987.  
Orange - free-of-charge Flightaware receivers, white - self-made receivers, red - 3r-3150 paid program. PlanePlotter
. 3r31987.  
This coverage of the Flightaware receiver network in December 2015:
 
3r31982. 3r31987.  
And in March 201? the Flightaware receivers network (3r3161. State-of-the-art at off-site 3r3-3?996.) Provided the following coverage: 3r?19387.  
3r31982. 3r3r1616.
3r31987.  
It is not always possible to install receivers, so in 2018 the data of ground receivers are supplemented with data from Iridium NEXT satellites - “For the first time, it will be possible to continuously monitor aircraft anywhere in the world” 3r3-31996. . 3r31987.  
3r31982. 3r33175.
3r31987.  
Gray-blue color - data of Iridium NEXT satellites. Green and yellow (the latter is
MLAT 3r3-31996.) - data from ground receivers. 3r31987.  
3r31987.  
The radius of the zone covered by one station is limited by the curvature of the Earth’s surface and the obstacles covering the horizon, and is no more than 450 km at best. And in the "usual case" about 150 km. With rare 3r3185. tropospheric passages 3r3-31996. for this radio frequency it is possible to look beyond the horizon. An example of zones of maximum coverage of stations broadcasting on 3r3187. Planeradar.ru:
3r31987.  
3r31982. 3r3192.
3r31987.  
The sharp peaks in the reception diagrams are just isolated cases of reception at very large distances. 3r31987.  
3r31982. 3r-33199.
3r31987.  
The animation below shows the need to send receivers. Outside the EU /US, this hobby is not very popular. There may be a reason for the cost of a hobby, and this map indirectly indicates the level of well-being, technical education, population density in the region. Perhaps a matter of practical interest - users transmitting data from their receivers receive a free 3r3203. Corporate account Flightaware
, costing $ 90 per month. 3r31987.  
3r31982. 3r3208.
3r31987.  
3r31987.  
And so the situation is outlined. The market for this service is growing, the market needs more data and VariFlight has also begun to deploy its network. In April 201? the company VariFlight announced that it is looking for volunteers to accommodate free equipment. An example of such a message is in the publication on r3r3214. Instagram
. 3r31987.  
3r31987.  
And in August, I came across this offer for free to order a receiver at http://flightadsb.feeyo.com/index/adsb?lang=en . After studying the site, I noticed that the company is looking for voluntary network participants in countries near the borders of China. And having filled out the questionnaire, I did not particularly expect that the SFD is in the area of ​​the company's interests. 3r31987.  
3r31982. 3r31987.  
In the application itself, you must indicate on the map the installation location (3r3-31013. Installation Location [/i] ), The antenna installation floor on the building (3r3-31013. Floor of Installation [/i] , For example, 7/9 - 7th floor of 9-storey building), the nearest airport code ( Airport code - I indicated the IATA code and download photos of the horizon from the installation site ( Installation Environment ). The rest is almost identical to the order on Aliexpress, except for the items Title, Nationality, Occupation, Company. Filled in English with full name. 3r31987.  
3r31987.  
After a couple of weeks, checking the mail, I found two emails from 3r31341. ADSB 展示 系统 (Display system of ADS-B)
that the application was approved almost immediately and that the parcel has been rushing to me for a long time, at that time having already passed customs. 3r31987.  
3r31982. 3r31987.  
In the second letter were the login, password and track number of the parcel. And also the instruction that I did not notice and read when you know yourself, when they usually read the instructions. 3r31987.  
3r31982. 3r31987.  
Login matched the name in the application, and the password is clearly sent the same to everyone. Therefore, we go and change the password immediately (and login if required). 3r31987.  
3r31987.  
In general, the phrase “This is some kind of nonsense” from the Sudden-strike game appeared more and more often in my head, if anyone remembers how the Germans in the game with accent speak Russian. Sometimes quiet, sometimes loud. 3r31987.  
3r31987.  
By the way, the questionnaire was the only page in English, then everything will be in Chinese. On Habré wtigga published an excellent article about the chinese internet "Chinese Internet and software: about sore" 3r3-331996. . I felt all the pain just now. If you have not read, then it's time to prepare. 3r31987.  
3r31982. 3r31987.  
The Google Chrome browser with the translation function will help to work on the site, but many pages that were not always feasible for it. 3r31987.  
3r31982. 3r31987.  
Places will be funny phrases. 3r31987.  
3r31982. 3r31987.  
And so we log in with the data from the second email. 3r31987.  
3r31982. 3r31987.  
And go to paragraph 3r32r97. Personal information 3r3-31996. . As it turned out, Google Chrome can not always translate the page or it does not succeed the first time, and in this case, after a series of automatic translation attempts, I had to copy the text into Google Translate. Therefore, I post a hint for those who encounter the same problem. 3r31987.  
3r31987.  
The page has two tabs, the active of which is marked with a red line. At first you can not touch anything. 3r31987.  
3r31982. 3r3306.
3r31987.  
3r33814.  
3r3822. FULL NAME
 
3r3822. Your phone number is
 
3r3822. Your email
 
3r3822. Airport code 3r3823.  
3r3822. The name of your ADSB receiver is
 
3r33825. 3r31987.  
QQ item is
Chinese messenger Tencent QQ
. 3r31987.  
3r31987.  
On the second tab, the password change
 
3r31982. 3r31987.  
3r33814.  
3r3822. Old password
 
3r3822. New password 3r3823.  
3r3822. Repeat new password
 
3r33825. 3r31987.  
With the exception of this, automatic translation almost always works. The sitemap design is very close to the Flightradar site and the “features” of the translation do not make it difficult to use. 3r31987.  
3r31982. 3r31987.  
A detailed examination of the service is different, for example, 3r33333. interesting functionality 3-3-31996. , which Flightaware does not have - heat map , translated by Google Chrome as "thermal analysis." 3r31987.  
3r31982. 3r33333.
3r31987.  
An interesting feature of some flights: 3r3-31987.  
3r31982.
3r31987.  
Probably there is no information about the airports of departure and landing of this flight. 3r31987.  
3r31941. 3r31179. Overview of the parcel and receiver
3r31942. 3r31987.  
According to the track number the parcel was sent on September 6 and received on September 18. The box has solid dimensions that surprised post office workers. On the way from the post office inside, something thundered, tinkled and rolled. 3r31987.  
3r31982. 3r33393.
3r31987.  
The open box was somewhat surprised by the lack of packaging materials. 3r31987.  
3r31982. 3r33400.
3r31987.  
For comparison, the box at the receiver Flightaware. 3r31987.  
3r31982. 3r3407.
3r31987.  
Surprisingly, the contents of the box did not suffer. Only on the antenna there was a scratch - the film was torn off. 3r31987.  
3r31982. 3r33414.
3r31987.  
The receiver itself has the inscription of only two connectors - power and HDMI. In addition to two, all connectors are on one side. LAN, 2 USB ports, four-pin connector (assumption that this serial interface was confirmed by a dial tone on the BCM 14 (8 pin TXD /Transmit), 3r31987.  
BCM 15 (10 pin RXD /Receive)), 5 volt power supply and SMA (female) antenna connector. 3r31987.  
3r31982. 3r33434.
3r31987.  
On the opposite side, behind the two holes in the housing, are green and red LEDs. And next to the sticker with the "serial number" of the receiver, recorded by hand. Also, the receiver has HDMI and microUSB. 3r31987.  
3r31982. 3r33430.
3r31987.  
TOThe receiver's strap has two ears for mounting on the wall, which positively distinguishes it from the almost same Flightaware receiver case, which the manufacturer provided for only four silicone feet at the bottom. 3r31987.  
3r31982.
3r31987.  
Test the ability to use these two ears for mounting the receiver:
 
3r31982. 3r3444.
3r31987.  
Flightaware Flightfeeder upside down:
 
3r31982.
3r31987.  
To compare receiver sizes:
 
3r31982.
3r31987.  
The natural question is "what's inside?" Removing the cover, fastened with 4 screws, we see this layout. 3r31987.  
3r31982. 3rr3465.
3r31987.  
The connectors are on a separate receiver board, made in the form of an expansion card for the Raspberry Pi 3 Model B V1.2. 3r31987.  
3r31987.  
For comparison, a photo Flightaware Flightfeeder (G6) without a cover. This generation of receivers were sent until about 2017. Built on RPi 2 Model B v.1.1 and a receiver-decoder simplified to one channel. Mode-S Beast . 3r31987.  
3r31982. 3r33478.
3r31987.  
The reverse side of this design hid an unexpected element. Surprise is a massive radiator located on the bottom side of the board. The need for it is incomprehensible (after a week, I think it is a “tropical design.” In my conditions, the radiator is slightly warm). 3r31987.  
3r31982.
3r31987.  
Additionally, the expansion board is connected to the RPi with a four-pin connector with three wires soldered to the test points PP27 (USB VCC), PP44 (USB D-), 3r31987.  
PP45 (USB D +). 3r31987.  
3r31982. 3r3494.
3r31987.  
Those. nothing can be plugged into the top right USB connector. Therefore, in the photo of the case placed above, it can be seen that of the two paired USB connectors, the slot in the case is just opposite to one closest to the LAN. 3r31987.  
3r31982. 3r301501.
3r31987.  
Flightaware did the same, soldering the receiver to the pins of one of the connectors. 3r31987.  
3r31987.  
Most of the expansion card takes a metal screen. Of the visible parts of the connectors on the same side, and on the opposite two indicators and a kind of "coil" with taps. Reminds shunt with variable resistance. Perhaps 1div0 3r3-31996. , author of article 3r33511. “Why bend the tracks?” 3r3-31996. knows what it is. During normal operation of the receiver, the green LED is on. In what cases it is lit red - I do not know. Not yet watched its inclusion. 3r31987.  
3r31982. 3r? 3516.
3r31987.  
On the side of the connectors there are power connectors and antennas, and a four-pin connector of unknown purpose. 3r31987.  
3r31987.  
All electronics are hidden under a large tin screen cover. The Flightaware Flightfeeder receiver board is not shielded. At the Flightaware forum, the developers answered this question that the metal case of the receiver itself is sufficient to protect against external interference. 3r31987.  
3r31982. 3r33535.
3r31987.  
An attempt to look under the screen was a success from the second approach. The lid is sealed off and it turns out
 
3r31982. 3r? 3534.
3r31987.  
as it turned out everything was in vain - the marking with the chips was carefully cut down. 3r31987.  
3r31982. 3r33541.
3r31987.  
Looking ahead, I will say that it turned out to be an almost ordinary RTLSDR receiver - 3r-3552. RTL2832U DVB-T 3r3-31996. (0bda: 2838), called "dongles", "whistles", and which are devoted to several articles on Habré, which give an idea about these devices and how they have simplified and cheapened the implementation of receiving and processing radio signals on computers. For example: 3r31987.  
3r3653.  
3r3822. 3r???. USB TV tuners on rtl2832 - or how to hear everything on the radio for 600 rubles

 
3r3822. 3r31158. Once again on the reception of HF on RTL-SDR 3r3-31996.
 
3r3661. 3r31987.  
In the latter, the background is well described:
 
3r31670. The release of the RTL2832U chip for DVB-T digital television receivers did not promise any sensation, because Realtek was already somewhat late in its release. In 201? a more advanced DVB-T2 standard was already being introduced with more efficient coding of information, therefore, the original novelty did not attract much attention. For two years, cheap USB tuners at its base were used for their intended purpose, until at the beginning of 2012 some technical information about the operating modes of this chip leaked. It turned out that for receiving analog (FM) and digital (DAB) radio in the VHF band, this chip uses the principle of software decoding of a previously digitized frequency band from the air. Those. roughly speaking, it digitizes the high-frequency signal from the antenna input, and filtering of a specific carrier and its detection (extraction of useful information) from the received digital stream is left to the central processor. Obviously, this was done for reasons of economy, just as at the time of the Dial-UP sunset, extremely cheap “soft modems” were widely distributed, which also represented only an advanced pair of DAC + ADC, and all signal processing was done by the CPU in thread with the highest priority. 3r-331997. 3r31987.  
3r31987.  
Unlike the “regular tuners” that I have, this instance of usb id 0bda: 2832 also has a 17-digit serial number. 3r31987.  
Bus 001 Device 005: ID 0bda: 2832 Realtek Semiconductor Corp. RTL2832U DVB-T 3r31987.  
Found Rafael Micro R820T tuner 3r31800. 3r31987.  
Those. analogue to the “blue whistle” used to create homemade ADSB receivers. In the photo is the receiver on OrangePI. 3r31987.  
3r31982. 3r33585.
3r31987.  
Assembling the receiver back, set the radiator just in case. Bought specifically for the revision of routers and other home equipment. 3r31987.  
3r31982. 3r? 3592.
3r31987.  
Power supply 5V 2A. It looks more solid than the power supply for Flightaware Flightfeeder. But with a Chinese plug I tried to remember where my adapter was lying around. 3r31987.  
3r31982. 3r3599.
3r31987.  
In a box of white cardboard turned out to be such a pretty velvet bag. 3r31987.  
3r31982.
3r31987.  
" in the chest - a hare, in a hare - a duck, in a duck - an egg, in an egg - a needle "
 
3r31982. 3r33613.
3r31987.  
Inside was a puzzle of three adapters that solved the question "where is my adapter lying around." 3r31987.  
3r31982. 3r3620.
3r31987.  
The CA-23RP 2.5GHZ 400W Made in Japan lightning arrester appeared in a brown cardboard box. I am not aware of this configuration of other ADS-B receivers. Very reasonable for protection against accidents of low power. 3r31987.  
3r31982.
3r31987.  
The indoor antenna is likely to test the receiver without installing an external antenna. Not suitable for practical use. But it is sold on Aliexpress /Ebay as an “ADS-B antenna”, but its present purpose is given on the inscription on a magnetic sole. I caught airplanes on this antenna no further than within a radius of 30-40 km. 3r31987.  
3r31987.  
Near adapter N (female) - SMA (male). Perhaps a gift in the event of a filter or low-noise amplifier. 3r31987.  
3r31982. 3r3638.
3r31987.  
Coaxial cable for antenna 5 meters with N and SMA connectors, and twisted pair 10 meters ("100% oxygen-free copper, blablabla"). 3r31987.  
3r31982. 3r3645.
3r31987.  
Antenna cable marked KOPA PLESS RG400-KF MIL-C-17. Googling M17 /128-RG400 RG-400 Double Braid Flexible Coaxial Cable with a different shell color:
 
3r3653.  
3r3822. The maximum operating frequency of 6 GHz
 
3r3822. At a frequency of ??? GHz, the maximum attenuation is ??? dB /m
 
3r3661. 3r31987.  
It is very doubtful that these are characteristics of a Chinese cable. By the way, Flightaware included a lousy antenna cable, albeit an Italian one. Shortening the cable from the antenna to several tens of centimeters three times increased the number of received packets by the Flightaware receiver. 3r31987.  
3r31982. 3r3667.
3r31987.  
Outdoor antenna and its mounting to the mast. 3r31987.  
3r31982. 3r3674.
3r31987.  
Karez from group 3r3678. FlightFeeder ADS-B VariFlight
on Facebook: 3r31987.  
3r31982. 3r31987.  
The antenna is slightly smaller in diameter than Flightaware
 
3r31982. 3r3690.
3r31987.  
Flightaware mast mount from Dural
 
3r31982.
3r31987.  
A gift with the symbolism of VariFlight. Judging by the inscriptions on the back - this label should cling to the luggage in case of loss at the airport, filling out contact details of the owner. 3r31987.  
3r31982. 3r3704.
3r31987.  
3r31982.
3r31987.  
3r31987.  
3r31941. 3r31179. The first inclusion of 3r31180. 3r31942. 3r31987.  
Turning on the power in principle did not change anything in the appearance of the device. Only LAN indicators were on, the router has a new host name raspberrypi in the list of issued dhcp IP addresses. On HDMI, there was a normal RPi boot output and a login request. 3r31987.  
3r31982. 3r33724.
3r31987.  
And that's all. The expected web interface for such devices at IP: 8080 was unavailable. Scanning the device ports found only port 22. Attempting to log in as the default user and password was sent far to both the console and ssh:
 
3r? 31802. 3r? 31803. login as: pi
pi @ raspberrypi's password:
Access denied 3r31924. 3r31987.  
3r31987.  
The receiver turned on and off several times, remained for days on the assumption that it could download something at that time or try to reach servers in China. Neither the red nor the green indicator lights up. 3r31987.  
3r31987.  
At that time, I went off-site looking for an FAQ, technical support or something else that could tell what this device should and should not do. I logged in for the first time, but this didn’t fundamentally change anything - there are no contact forms or feedback forms. The only thing that was found was that the receiver was tied to an account and had the status offline. I noticed that the system last saw it on the network on September 2 at ??? Beijing time, 4 days before being sent by mail. Those. He was checked and connected to the account. 3r31987.  
3r31982. 3r3747.
3r31987.  
After spending a couple of days in ferment on the sites of the “Chinese Internet”, which somehow linked to offsite or to which links from offsite were, and tired of their original design, I realized that there was no technical support for this product. And at that moment I remembered two emails from ADSB 展示 系统 (Display system of ADS-B). 3r31987.  
3r31987.  
“This is some kind of nonsense” - once again I heard a familiar voice with an accent in my head. My email to this address was turned back to PostMaster feeyo.com
 
3r31982. 3r3758.
3r31987.  
And then the eye caught the attachment to the second letter, which had previously eluded the view (due to the unusual GMail design). It turned out to be instructions on installing the VariFlight ADS-B. It's time to find out how it was supposed to work. 3r31987.  
3r31987.  
3r31941. 3r31179. Meet with 常 准 ADS-B 设备 安装 说明
3r31942. 3r31987.  
Below is a translation of the instructions in 6 pages and two languages, most of which are occupied by illustrations. 3r31987.  
3r3-1029. 3r31030. Installation instructions for VariFlight ADS-B
3r3-1032. 3r31987.  
3r31982. 3r33782.
3r31987.  
3r3-1029. 3r31030. Short description 3r31180. 3r3-1032. 3r31987.  
The VariFlight ADS-B is equipment designed for civil aviation enthusiasts to track aircraft. The kit consists of an ADS-B receiver, power supply, patch cord (patch cord), antenna and cable for it. 3r31987.  
3r31982. 3r33795.
3r31987.  
3r3-1029. 3r31030. Antenna installation site
3r3-1032. 3r31987.  
The external antenna must be fixed on the outside of the building, as high as possible above the obstacles to the radio signal; installation on the roof is preferred. Otherwise, ADS-B signals will be absorbed by obstacles such as a wall or a building. 3r31987.  
3r31982. 3r3808.
3r31987.  
After installing the antenna, you need to connect the ADS-B receiver to the Internet by doing the following steps: 3r31987.  
3r33814.  
3r3822. Connect the antenna cable to the receiver.
 
3r3822. Insert one end of the patch cord into the router and the other end of the ADS-B receiver.
 
3r3822. Connect the power supply to the receiver.
 
3r33825. 3r31987.  
3r31982.
3r31987.  
The Internet should connect automatically as soon as you complete these three steps above. Static IP is not supported, only DHCP. 3r31987.  
3r3-1029. 3r31030. Complete equipment set
3r3-1032. 3r31987.  
3r31982. 3r33842.
3r31987.  
3r3-1029. 3r31030. Room example3r31180. 3r3-1032. 3r31987.  
3r31982. 3r33853.
3r31987.  
3r3-1029. 3r31030. Three ways to find out if your ADS-B equipment is online or not
3r3-1032. 3r31987.  
Method one. 3r31800. 3r31987.  
In the settings of your router, find the IP address of the ADS-B receiver and open http //XXX.XXX.XXX: 8080 in a web browser, where XXX.XXX.XXX is the internal IP address on your local network. 3r31987.  
3r31982. 3r31987.  
Method two 3r31800. 3r31987.  
Open the link 3r33880. flightadsb.variflight.com
In the web browser, log in, and click on 3r33838. Point Airport
3r31987.  
3r31982. 3r3887.
3r31987.  
The third method, only for Chinese volunteers 3r31800. 3r31987.  
For Chinese users, we can use WeChat.
3r31987.  
3r31987.  
On this instruction over. In accordance with this instruction, the device works partially - it receives IP on the local network, but does not display the web interface, in which you can find out 3r30000. dump1090
- Mode S decoder, created for RTLSDR dongles and used in similar devices. 3r31987.  
3r31982.
3r31987.  
Without working dump109? no data will be sent to the server. It is strange that the device somehow worked when checking before sending. "This is some kind of nonsense." Since the Chinese are not interested in the fate of the device, and no signs of technical support could be found, then my conscience is completely clear if I try to repair it myself. 3r31987.  
3r31987.  
3r31941. 3r31179. Take control of the device
3r31942. 3r31987.  
Having disassembled the receiver, immediately upon receipt, I made a microSD image in the state before the first power up and studied the contents a bit, immediately suspecting as the receiver sends the data to the server - there were files and scripts with service addresses in /root /. 3r31987.  
3r31987.  
3r3-1029. 3r31030. Reset PI
user password. 3r3-1032. 3r31987.  
Instructions for changing the “forgotten password” with pictures can be found at this the link . 3r31987.  
3r31987.  
I disassemble the receiver again. To get to the microSD, you need to unscrew all the screws and pull out both the boards. Later on, while working with the receiver, I did not assemble it back into the case. I had to replace two microSD with different systems. 3r31987.  
3r31987.  
We take out the microSD from Rpi, make a backup copy on the computer, if you haven’t already, and edit the file - 3r31341. cmdline.txt
. 3r31987.  
3r? 31802. 3r? 31803. dwc_otg.lpm_enable = 0 console = ttyAMA?115200 console = tty1 root = /dev /mmcblk0p2 rootfstype = ext4 elevator = deadline fsck.repair = yes rootwait 3r31924. 3r31987.  
Add
to the end of this line.  
3r? 31802. 3r? 31803. init = /bin /sh 3r31924. 3r31987.  
We return the microSD back to the RPi, connect the monitor and keyboard. Connect the power. When the lines stop running on the screen, press Enter. The console prompt appears, in which we type
 
3r? 31802. 3r? 31803. mount -rw -o remount /
passwd pi
sync
exec /sbin /init 3r31924. 3r31987.  
The lines run again and again wait for them to stop running, then turn off. We take out microSD from RPi. On the computer, edit or restore the backup cmdline.txt - delete “init = /bin /sh”. 3r31987.  
For the last time, we return the microSD back to the RPi. Turn on. Successfully log in with a new password. Enable ssh by typing raspi-config and selecting SSH from the menu. 3r31987.  
3r31987.  
Then, using the top command, I want to see what the receiver lives with and suddenly notice the wget processes and dump-1090. Silent scene. I check in the web browser http //XXX.XXX.XXX: 8080 - there is an interface. 3r31987.  
3r31982. 3r3393979.
3r31987.  
Not to say that it was unexpected, but definitely unusual. From the instruction I check Method two 3r31800. - there, too, everything is fine: the receiver's icon turned green, and below there was a list of the aircraft he heard. 3r31987.  
3r31987.  
It would be possible to finish this, but first, using RPi3 only for this would be unforgivable. And secondly, if this device worked stably. For example, it disappeared from the list of IP addresses of the DHCP router, while it was available when accessing the previously received IP, and at the same time there was no image on HDMI. But the most important was the instability of the broadcast. According to statistics on the receiver page, it worked several hours a day. Sometimes a full day, sometimes several hours, sometimes zero hours. It took several days to study the system - not every software was installed. Chinese repositories The German voice finally convinced that it was necessary to make an ADS-B receiver for a healthy person, and for this you need to roll onto another microSD image of PiAware. The original microSD is still useful to find out how it works. 3r33989. At least save files from /root. Preferably make an image. 3r31180. 3r31987.  
3r31987.  
3r31941. 3r31179. PiAware
3r31942. 3r31987.  
PiAware - Linux software for transferring flight data to FlightAware. Contains fork dump1090-mutability. According to the developers, one of the differences is that it does not send packages to the FlightAware server if they do not differ from the first one. Those. if the plane did not change the speed, altitude, then this data should not be processed, and thus reduces the load on the server. 3r31987.  
3r31987.  
About two years ago, FlightAware began translating texts on the site into Russian. And much to create your own station PiAware can be found 3r3-31007. Offsite
. The essence of creating a station on RPi with RTLSDR is to write to the microSD of the finished image of PiAware on Raspbian Linux using the 3-3331009 program. Etcher
. Further, before you insert the card in RPi and wait for the download, you need to make some changes. To enable SSH access, create an empty file without an extension named ssh in the boot partition. And in the piaware-config.txt file you can enter the necessary settings For example, specify a static IP or turn on WiFi and specify an SSID /password, provided that a supported USB WiFi adapter is connected. The same settings can be made from the console using the piaware-config command. Setting_name Possible_values ​​ . 3r31987.  
3r31987.  
If you already have a Flightaware account, then in 5 minutes the station will be Bind to account 3r3-31996. getting unique identifier. And the receiver will have its own page with statistics. 3r31987.  
3r31987.  
By default, the PI user has the password flightaware. It’s a good idea to change your password right away. 3r31987.  
3r31987.  
3r3-1029. 3r31030. “Tests” 3r31180. 3r3-1032. 3r31987.  
Tests in quotes, just impressions. Having two devices with almost the same software, you can evaluate their abilities. 3r31987.  
3r31987.  
I have a free Flightaware receiver and the first thing I experienced was a complete VariFlight antenna. I just replaced it with a Flightaware antenna. And while studying the VariFlight receiver, FlightFeeder statistics was collected on the Flightaware page. The conclusion is disappointing. Although the maximum range, nothing has changed, like FlightFeeder, in the direction of the line of sight, catching some at a distance of 400 km, but the statistics of aircraft per hour /day slipped by 2-3 times. Sure takes the board for 300+ kilometers, but sees a few less messages. What I do not know inside the case of the antenna itself is not collapsible. 3r31987.  
3r31987.  
A Flightaware antenna was connected to the VariFlight receiver and it showed statistics of the same order. And with a native antenna even lower. 3r31987.  
3r31982. 3r31987.  
Decipher the statistics. Statistics from 10-05 to 10-07 is the VariFlight receiver with Flightaware antenna. 10-08 the complete antenna was connected and from 10-09 to 10-11 the statistics of the VariFlight kit. 10-12 The send_message.py script has been modified to collect data from Flightaware Flightfeeder. After that, VariFlight sent data from it and 10-13 daily statistics based on Flightaware Flightfeeder data. Further more, for example, for 10-18 - 396 flights, 814176 packages, for 10-19 - 471 flights, 860415 packages. 3r31987.  
3r31987.  
Let's estimate how the receiver VariFlight is subject to radio interference. To do this, we scan the 800 MHz-1200 MHz range and generate a heat map. 3r31987.  
3r? 31802. 3r? 31803. sudo apt-get install python-imaging
sudo wget
https://raw.githubusercontent.com/keenerd/rtl-sdr-misc/master/heatmap/heatmap.py
sudo chmod + x heatmap.py
sudo systemctl stop dump1090-fa
sudo rtl_power -f 800M: 1200M: 100k -i 30 -c 50% -e 30m -g 30 -F 9> scan.csv 3r31924. 3r31987.  
After half an hour (-e 30m) scanning stops and generate an image. 3r31987.  
3r? 31802. 3r? 31803. ./heatmap.py scan.csv scan.png 3r31924. 3r31987.  
Reboot the device to restore the work of dump1090. 3r31987.  
And copy the resulting image to a computer using (win) scp. 3r31987.  
This is a fragment of a thermal scan map around 1090 MHz. The full image is available by click. 3r31987.  
3r31080. 3r31081. 3r-331996. 3r31987.  
Bright yellow stripes is a mobile connection. Nothing out of the ordinary - he has no prefilters like the Flightfeeder, and he is greatly hampered by mobile stations. In this, it is absolutely the same as the simple “blue whistle” mentioned earlier. Manufacturing in the form of a special expansion card is possible; it makes some sense, for example, the role of “curved tracks” on this board is unclear. Making a specialized board it would not be difficult to install both a low-noise amplifier and a surfactant filter at 1090 MHz. Just looking at the scripts in the device, I had an idea why this was done - one script is called acars.py. 3r31987.  
3r31982. 3r31088.
3r31987.  
As far as the amplifier and filter would improve the characteristics of the receiver, an example from the above-mentioned group on Facebook shows. One of the VariFlight Box users connected a specialized dongle from Flightaware instead of a regular receiver, which brought it to the top of the rating from about a thousand users (of course, the installation location and another antenna also affected). 3r31987.  
3r31982. 3r31095.
3r31987.  
FlightAware launches two models of dongles - Pro Stick and Pro Stick Plus, which are still the same “blue whistle”, but have a preamplifier, and the latter also has 3-??? installed. SAW filter
, which eliminates unnecessary signals in areas with a lot of interference, for example in cities, and these models are equipped with an SMA antenna connector. These dongles are used in Flightaware Flightfeeder “orange” receivers. 3r31987.  
3r31982. 3r31-104.
3r31987.  
3r31798. 3r31799. with the cover removed r3r31800. 3r31801. 3r31982. 3r31113.
3r31987.  
3r31987.  
The name of the script “acars.py” hints that the absence of any filters is not an error and economy. 3r3-131121. Address and reporting system of aviation communication 3r3-31996. (Eng. Aircraft Communications Addressing and Reporting System, ACARS) - a digital radio communication system used in aviation for the transmission of short messages between the aircraft and ground stations. The operating frequency for ACARS in Europe is ??? MHz. Therefore, the device can not have a filter only for 1090 MHz, otherwise it will not be able to receive a signal at 131 MHz. What is inside the antenna is unknown, I am not going to break it, but it is obvious that its “wide coverage” is also provided by the creators. Similarly, the method above generated a heat map in the range of 100 MHz-500 MHz. Fragment of the thermal scan map around 450 MHz. The full image is also available by click. 3r31987.  
3r3-131125. 3r31982. 3rr31127.
3r-331996. 3r31987.  
The heat map shows control panels, security sensors, wireless door bells, wireless weather station sensors, radio amateurs, FM radio stations, and so on and so forth. 3r31987.  
3r31987.  
For example, by setting rtl_43? you can see the data of the neighboring wireless sensors of weather stations and, if desired, use them as the author of 3r31136. of this article 3-3-31996. . 3r31987.  
3r31982. 3r31141.
3r31987.  
And by running rtl_tcp, you can listen to radio amateurs and FM radio. 3r31987.  
3r31982. 3r31148.
3r31987.  
Interestingly, not all radio amateurs exactly hold the frequency. It was amusing to see how the radio amateurs rated the interlocutor as audible, and the frequency of one of the radio stations was somewhere off to the side. 3r31987.  
3r31987.  
But the Chinese receiver on the native system showed accuracy - 0 PPM. About the method of measuring PPM can be read on Habré in article 3r31156. quwy 3r31158. “Once again on the reception of HF on the RTL-SDR” 3r3-331996. . It is highly desirable to adjust the PPM for best reception. What the Chinese did. There is a small error on Piaware that can and should be removed by specifying the correct PPM value with the command sudo piaware-config rtlsdr-ppm <значение PPM> . 3r31987.  
3r31987.  
As a result, we can say that the VariFlight receiver for iron is little better than what you can assemble yourself. This is a good base to start to engage in this hobby (and showed tests of iron, it can be used for a wide range of other tasks.There are more than three free USB ports). 3r31987.  
3r31987.  
The unique disadvantage of an ADSB receiver is the software and the Chinese interface of the site. If nothing can be done with the Chinese website, then you can modify the software of the receiver itself. The easiest way is to install PiAware and set up distribution on VariFlight. Then you can set up distribution on Flightradar24 and get an account with special conditions there. An example of using an account with special features is access to the archived data of Flightaware (the crash of the An-148 Saratov Airlines). 3r31987.  
3r31982. 3r31172.
3r31987.  
3r31987.  
3r31941. 3r31179. We give the data on VariFlight
3r31942. 3r31987.  
Returning to the contents of the root directory. You can find it on r3r31184. GitHub
. The names of the files clearly hint at their functions. 3r31987.  
3r? 31802. 3r? 31803. root @ raspberrypi: /home /pi # ls /root -l
total 24
drwxr-xr-x 8 root root 4096 Nov ??? dump10r
drwxr-xr-x 5 root root 4096 Oct ???:54 get_message
-rwxr-xr-x 1 root root 567 Nov ??? install.sh
drwxr-xr-x 7 root root 4096 Nov ??? rtl-sdr
-rwxr-xr-x 1 root root 62 Nov ??? synctime.sh
-rwxr-xr-x 1 root root 1300 Nov ??? task.sh
3r31923. 3r31924. 3r31987.  
3r31798. 3r31799. install.sh
3r31801. 3r? 31802. 3r? 31803. #! /bin /bash
apt-get update
apt-get install cmake libusb-1.0-0-dev build-essential vim ntpdate -y
apt-get remove ntp
cd get_message /
mv rtl-sdr-blacklist.conf /etc/modprobe.d/3r32009. mv dump.sh /etc/init.d/dump
chmod + x /etc/init.d/dump
mv task.sh /
chmod + x /task.sh
cd /rtl-sdr/
mkdir rtl
cd rtl
cmake /-DINSTALL_UDEV_RULES = ON
make install
ldconfig
cd //dump1090/
make
cd /root /get_message /
python get_ip.py
ps aux | grep py
update-alternatives --config editor
crontab -e
* * * * * /root/task.sh> /dev /null 2> & 1
* * * /6 * * /root/synctime.sh> /dev /null 2> & 1
3r31923. 3r31924. 3r31987.  
3r31987.  
3r31987.  
From the last install.sh lines, you can see that cron adds two tasks - run task.sh every minute and synctime.sh every 6 days,
 
3r31987.  
3r31798. 3r31799. synctime.sh
3r31801. 3r? 31802. 3r? 31803. #! /bin /bash
/usr /sbin /ntpdate ???.248> /dev /null 2> & 1
3r31923. 3r31924. 3r31987.  
3r31987.  
3r31670. ???.248 - BeiJing Wanglianxuntong Telecom Technology Co., Ltd, Beijing, China. 3r31987.  
remarks: Please note that the CNP is not an ISP and is not
 
remarks: empowered to investigate complaints of network abuse. 3r31987.  
remarks: Please contact the tech-c or admin-c of the network. 3r-331997. 3r31987.  
3r31798. 3r31799. task.sh
3r31801. 3r? 31802. 3r? 31803.
#! /bin /bash
ps -eaf | grep dump1090 | grep -v grep
if[$? -eq 1 ]
then
/etc/init.d/dump stop
sleep 1
/etc/init.d/dump start
echo `date" +% G-% m-% d% H:% M:% S "` "dump1090 restart"
echo "------------------------------------------------ ------------------------ "
else
echo `date" +% G-% m-% d% H:% M:% S "` "dump1090 running"
echo "------------------------------------------------ ------------------------ "
fi
ps -eaf | grep send_message.py | grep -v grep
# if not found - equals to ? start it
if[$? -eq 1 ]
then
python -O /root/get_message/send_message.py &
echo `date" +% G-% m-% d% H:% M:% S "` "send_message restart"
echo "------------------------------------------------ ------------------------ "
else
echo `date" +% G-% m-% d% H:% M:% S "` "send_message running"
echo "------------------------------------------------ ------------------------ "
fi
ps -eaf | grep get_ip.py | grep -v grep
# if not found - equals to ? start it
if[$? -eq 1 ]
then
python /root/get_message/get_ip.py
echo `date" +% G-% m-% d% H:% M:% S "` "get_ip restart"
echo "------------------------------------------------ ------------------------ "
else
echo `date" +% G-% m-% d% H:% M:% S "` "get_ip running"
echo "------------------------------------------------ ------------------------ "
fi
3r31923. 3r31924. 3r31987.  
3r31987.  
The script task.sh, which is run every minute by cron, checks and, if necessary, restarts dump109? the send_message.py and get_ip.py scripts. 3r31987.  
3r? 31802. 3r? 31803.
pi @ raspberrypi: ~ $ ps -eaf | grep dump1090 | grep -v grep
root ??? Oct12? 13:49:25 ./dump1090 --net --net-sbs-port 30003
pi @ raspberrypi: ~ $ ps -eaf | grep get_ip.py | grep -v grep
pi @ raspberrypi: ~ $ ps -eaf | grep send_message.py | grep -v grep
root ??? Oct12? 00:09:20 python -O /root/get_message/send_message.py
3r31923. 3r31924. 3r31987.  
In the catalog get_message there are python scripts, one of which, send_message.py, sends data. 3r31987.  
3r? 31802. 3r? 31803. root @ raspberrypi: /home /pi # ls /root /get_message -l
total 40
-rw-r - r-- 1 root root 954 Nov ??? acars.py
-rw-rr-- 1 root root 1341 Nov ??? acars.sh
-rw-rr-- 1 root root 173 Nov ??? config.ini
drwxr-xr-x 8 root root 4096 Nov ??? dump10r
-rwxr-xr-x 1 root root 1731 Nov ??? get_ip.py
drwxr-xr-x 3 root root 4096 Nov ??? get_message1117
-rwxr-xr-x 1 root root 3400 Dec ??? init.sh
-rw-r - r-- 1 root root 33 Oct ???:51 md5.txt
-rwxr-xr-x 1 root root 1143 Oct ???:16 send_message.py
-rw-r - r-- 1 root root 16 May ??? UUID
3r31923. 3r31924. 3r31987.  
3r31987.  
3r31798. 3r31799. init.sh
3r31801. 3r? 31802. 3r? 31803. #! /bin /bash
path = '/root /get_message /'
DATE = `date -d" today "+"% Y-% m-% d_% H:% M:% S "` 3r-32009. result = ""
UUID = ""
execom = ""
FromServer = ""
SourceMD5 = ""
device = ""
if ps -ef | grep dump1090 | grep -v grep> /dev /null
then
device = "adsb"
elif ps -ef | grep acarsdec | grep -v grep> /dev /null
then
device = "acars"
else
device = "unknow"
fi
IpAddr = `/sbin /ifconfig | grep" addr: "| grep -v ???.1 | cut -d ':' -f2 | cut -d '' -f1`
if[-f "/root/get_message/UUID" ]
then
UUID = `cat /root /get_message /UUID`
fi
execut () {
while read command
do
eval $ command
if[$? -ne 0 ]
then
execom = $ command
result = 0
break
fi
result = 1
done <$path/package/exe.txt
}
removefile () {
rm -rf $ path /package
rm -f $ path /* tar.gz *
}
main () {
ps -eaf | grep "pic.veryzhun.com/ADSB/update/newpackage.tar.gz" | grep -v grep
if[$? -eq 1 ]
then
/usr /bin /wget -P $ path -c -t 1 -T 2 pic.veryzhun.com/ADSB/update/newpackage.tar.gz
if[-f "$path/newpackage.tar.gz" ]
then
dmd5 = `md5sum $ path /newpackage.tar.gz | cut -d '' -f1`
if["$SourceMD5" = "$dmd5" ]
then
/bin /tar -xzf $ path /newpackage.tar.gz -C $ path
echo $ SourceMD5> $ path /md5.txt
/bin /touch /usr/src/start.pid
echo $ DATE> /usr/src/start.pid
execut
if[$result -eq 1 ]
then
curl -m 2 -s -d UUID = $ UUID -d date = $ DATE -d execom = $ execom -d message = "success" http://receive.cdn35.com/ADSB/result.php
else
curl -m 2 -s -d UUID = $ UUID -d date = $ DATE -d execom = $ execom -d message = "fail" http://receive.cdn35.com/ADSB/result.php
fi
removefile
else
curl -m 2 -s -d UUID = $ UUID -d date = $ DATE -d execom = "------" -d message = "post file has been changed" http://receive.cdn35.com /ADSB/result.php
removefile
fi
else
curl -m 2 -s -d UUID = $ UUID -d date = $ DATE -d execom = "------" -d message = "download failed" http://receive.cdn35.com/ADSB/result.php
removefile
fi
fi
}
if curl -m 2 -s pic.veryzhun.com/ADSB/update.php> /dev /null; then
removefile
FromServer = `curl -m 2 -s -d UUID =" $ UUID "-d IpAddr =" $ IpAddr "-d Device =" $ device "pic.veryzhun.com /ADSB /update.php`
SourceMD5 = `echo $ FromServer | cut -d '' -f1`
length = `echo $ SourceMD5 | wc -L`
if[$length -ne 32 ]
then
curl -m 2 -s -d UUID = $ UUID -d date = $ DATE -dexecom = "------" -d message = "md5 style error" http://receive.cdn35.com/ADSB/result.php
exit
fi
else
curl -m 2 -s -d UUID = $ UUID -d date = $ DATE -d execom = "------" -d message = "curl failed" http://receive.cdn35.com/ADSB/result.php
exit
fi
DesMD5 = `cat $ path /md5.txt`
if["$SourceMD5" = "$DesMD5" ]
then
curl -m 2 -s -d UUID = $ UUID -d date = $ DATE -d execom = "------" -d message = "no update, md5 without change" http: //receive.cdn35. com /ADSB /result.php
exit
else
main
fi
3r31923. 3r31924. 3r31987.  
3r31987.  
The init.sh script checks if there is an update and installs a new send_message.py
 
3r31798. 3r31799. get_ip.py [/b] 3r31801. 3r? 31802. 3r31738. import socket
import fcntl
import struct
import urllib2
import urllib
import sys, os
import ConfigParser
import hashlib
import json
import uuid
config = ConfigParser.ConfigParser ()
config.readfp (open (sys.path[0]+ '/config.ini', "rb"))
uuid_file = sys.path[0]+ '/UUID'
if os.path.exists (uuid_file):
file_object = open (uuid_file)
mid = file_object.read ()
file_object.close ()
else:
mid = uuid.uuid1 (). get_hex ()[16:]
file_object = open (uuid_file, 'w')
file_object.write (mid)
file_object.close ()
def send_message (source_data):
source_data = source_data.replace ('n', '$$$')
f = urllib2.urlopen (
url = config.get ("global", "ipurl"), 3r332329. data = source_data,
timeout = 60
) 3r332329. tmp_return = f.read ()
request_json = json.loads (tmp_return)
request_md5 = request_json['md5']
del request_json['md5']
tmp_hash =
for i in request_json:
if tmp_hash == '':
tmp_hash = tmp_hash + request_json[i]
else:
tmp_hash = tmp_hash + ',' + request_json[i]
md5 = hashlib.md5 (tmp_hash.encode ('utf-8')). hexdigest ()
if (md5 == request_md5):
operate (request_json)
else:
print 'MD5 ERR'
print "return:" + tmp_return;
def get_ip_address (ifname):
skt = socket.socket (socket.AF_INET, socket.SOCK_DGRAM)
pktString = fcntl.ioctl (skt.fileno (), 0x891? struct.pack ('256s', ifname[:15]))
ipString = socket.inet_ntoa (pktString[20:24])
return ipString
def operate (request_json):
if request_json['type']== 'reboot':
os.system ('/sbin /reboot')
elif request_json['type']== 'code':
fileHandle = open (urllib.unquote (request_json['path']), 'w')
fileHandle.write (urllib.unquote (request_json['content']))
fileHandle.close ()
else:
print 'OK'
eth = get_ip_address ('eth0')
send_message (mid + '|' + eth + '|')
3r31923. 3r31924. 3r31987.  
3r31987.  
I especially do not understand the meaning of the network exchange performed by the script. A unique UUID is generated if it is missing. And there is a certain exchange with the addresses specified in the config.ini file. Probably this script is responsible for linking the translated data and IP to the account. 3r31987.  
3r31987.  
Noteworthy line “if request_json['type']== 'reboot': os.system ('/sbin /reboot') ". 3r31987.  
3r? 31802. 3r31580.[global]
name = NEW
ipurl = http://receive.cdn35.com/ADS-B_IP.php
sendurl = http://adsb.feeyo.com/adsb/ReceiveCompressADSB.php
version = ???r3r32009. passwd = 'null' 3r31924. 3r31987.  
Finally, the script is sending the data 3r31987.  
3r31798. 3r31799. send_message.py [/b] 3r31801. 3r? 31802. 3r31738. import socket
import urllib2
import urllib
import sys
import ConfigParser
import zlib
import base64
import os, uuid
serverHost = 'localhost'
serverPort = 30003
config = ConfigParser.ConfigParser ()
config.readfp (open (sys.path[0]+ '/config.ini', "rb"))
uuid_file = sys.path[0]+ '/UUID'
if os.path.exists (uuid_file):
file_object = open (uuid_file)
mid = file_object.read ()
file_object.close ()
else:
mid = uuid.uuid1 (). get_hex ()[16:]
file_object = open (uuid_file, 'w')
file_object.write (mid)
file_object.close ()
sockobj = socket.socket (socket.AF_INET, socket.SOCK_STREAM)
sockobj.connect ((serverHost, serverPort))
def send_message (source_data):
try:
source_data = base64.b64encode (zlib.compress (source_data))
f = urllib2.urlopen (url = config.get ("global", "sendurl"), data = urllib.urlencode ({'from': mid, 'code': source_data}), timeout = 2)
return true
except Exception, e:
print str (e)
return true
tmp_buf = "
while 1:
buf = sockobj.recv (1024)
if not buf: break
if len (buf)! = 0:
tmp_buf = tmp_buf + buf
if buf[len(buf)-1]== 'n':
if send_message (tmp_buf):
tmp_buf = "
3r31923. 3r31924. 3r31987.  
3r31987.  
I edited the serverHost = 'localhost' string, replacing 'localhost' with 'ff-1234' —the network name of my Flightaware Flightfeeder and rebooting the VariFlight receiver. After that the data from the Flightfeeder went to VariFlight. 3r31987.  
3r31987.  
The remaining scripts are the reception of ACARS messages. Perhaps the remnants of a functional or a function implemented in the future. Scripts work with /root/acarsdec-3.0/acarsdec, which is missing along this path. ACARSDEC is 3r3r161661. ACARS SDR decoder
decoding messages, for example, at a frequency of ??? MHz. Apparently it is precisely based on the reception of this frequency, at the receiver input there are no filters at 1090 MHz. 3r31987.  
3r31982. 3r31666.
3r31987.  
3r31670. The address and reporting aviation communication system (ACARS) is a digital communication system used in aviation for transmitting short, relatively simple messages between an aircraft and ground stations, either through direct radio communication or via satellite systems. 3r-331997. 3r31987.  
More information about ACARS can be found, for example, here is 3r31987.  
3r31987.  
The acars.sh script is similar in implementation to task.sh — it restarts acarsdec and the get_ip.py and acars.py scripts if it does not detect the required process. 3r31987.  
3r31798. 3r31799. acars.sh [/b] 3r31801. 3r? 31802. 3r? 31803. #! /bin /bash
ps -eaf | grep acarsdec | grep -v grep
if[$? -eq 1 ]
then
/root/acarsdec-3.0/acarsdec -n ???.1:8888 -o 0 -p -8 -r ??? ??? &
echo `date" +% G-% m-% d% H:% M:% S "` "acarsdec restart"
echo "------------------------------------------------ ------------------------ "
else
echo `date" +% G-% m-% d% H:% M:% S "` "acarsdec running"
echo "------------------------------------------------ ------------------------ "
fi
ps -eaf | grep get_ip.py | grep -v grep
# if not found - equals to ? start it
if[$? -eq 1 ]
then
python /root/get_message/get_ip.py
echo `date" +% G-% m-% d% H:% M:% S "` "get_ip restart"
echo "------------------------------------------------ ------------------------ "
else
echo `date" +% G-% m-% d% H:% M:% S "` "get_ip running"
echo "------------------------------------------------ ------------------------ "
fi
ps -eaf | grep acars.py | grep -v grep
# if not found - equals to ? start it
if[$? -eq 1 ]
then
python /root/get_message/acars.py
echo `date" +% G-% m-% d% H:% M:% S "` "acars restart"
echo "------------------------------------------------ ------------------------ "
else
echo `date" +% G-% m-% d% H:% M:% S "` "acars running"
echo "------------------------------------------------ ------------------------ "
fi
/usr /sbin /ntpdate cn.pool.ntp.org> /dev /null
3r31923. 3r31924. 3r31987.  
3r31987.  
3r31798. 3r31799. acars.py 3r31800. 3r31801. 3r? 31802. 3r31738.
#! /usr /bin /env python
import socket, traceback, time, urllib? urllib, sys, ConfigParser
def send_message (source_data):
try:
f = urllib2.urlopen (url = config.get ("global", "sendurl"), data = urllib.urlencode ({'from': config.get ("global", "name"), 'code': source_data}), timeout = 10)
print "return:" + f.read ();
return true
except Exception, e:
print str (e)
return False
host = '???.1'
port = 8888
config = ConfigParser.ConfigParser ()
config.readfp (open (sys.path[0]+ '/config.ini', "rb"))
s = socket.socket (socket.AF_INET, socket.SOCK_DGRAM)
s.setsockopt (socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
s.bind ((host, port))
while 1:
try:
message, address = s.recvfrom (8192)
socket_udp_str = '{0}: {1} nn'.format (time.strftime ('% Y-% m-% d% H:% M:% S ', time.localtime (time.time ())), message) 3r332009. send_message (socket_udp_str)
except (KeyboardInterrupt, SystemExit):
raise
except:
traceback.print_exc ()
3r31923. 3r31924. 3r31987.  
3r31987.  
At work, it looks like this:
 
3r? 31802. 3r? 31803.
PID TTY STAT TIME COMMAND
20726? Ss 0:00 _ sshd: pi[priv]
20732? S 0:00 _ sshd: pi @ pts /0
20734 pts /0 Ss 0:00 _ -bash
20744 pts /0 R + 0:00 _ ps -afx
777 tty1 Ss + 0:00 /sbin /agetty --noclear tty1 linux
907? Sl 737: 23 ./dump1090 - net - net-sbs-port 30003
915? S 11:11 python -O /root /get_message/send_message.py
3r31923. 3r31924. 3r31987.  
3r31798. 3r31799. ps -afx fully [/b] 3r31801. 3r? 31802. 3r? 31803.
pi @ raspberrypi: ~ $ ps -afx
PID TTY STAT TIME COMMAND
2? S 0:00[kthreadd]
3? S 0:59 _[ksoftirqd/0]
five ? S <0:00 _[kworker/0:0H]
7? S 5:28 _[rcu_sched]
eight ? S 0:00 _[rcu_bh]
9 ? S 0:01 _[migration/0]
ten ? S 0:01 _[migration/1]
eleven ? S 0:05 _[ksoftirqd/1]
13 ? S <0:00 _[kworker/1:0H]
14 ? S 0:01 _[migration/2]
15 ? S 0:04 _[ksoftirqd/2]
17? S <0:00 _[kworker/2:0H]
18 ? S 0:01 _[migration/3]
nineteen ? S 0:04 _[ksoftirqd/3]
21? S <0:00 _[kworker/3:0H]
22? S 0:00 _[kdevtmpfs]
23? S <0:00 _[netns]
24? S <0:00 _[perf]
25? S 0:00 _[khungtaskd]
26? S <0:00 _[writeback]
27? S <0:00 _[crypto]
28? S <0:00 _[bioset]
29? S <0:00 _[kblockd]
31? S <0:00 _[rpciod]
32? S 0:00 _[kswapd0]
33? S <0:00 _[vmstat]
34? S 0:00 _[fsnotify_mark]
35? S <0:00 _[nfsiod]
44? S <0:00 _[kthrotld]
46? S <0:00 _[bioset]
47? S <0:00 _[bioset]
48? S <0:00 _[bioset]
49? S <0:00 _[bioset]
50 ? S <0:00 _[bioset]
51? S <0:00 _[bioset]
52? S <0:00 _[bioset]
53? S <0:00 _[bioset]
54? S <0:00 _[bioset]
55? S <0:00 _[bioset]
56? S <0:00 _[bioset]
57? S <0:00 _[bioset]
58? S <0:00 _[bioset]
59? S <0:00 _[bioset]
60? S <0:00 _[bioset]
61? S <0:00 _[bioset]
62? S <0:00 _[bioset]
63? S <0:00 _[bioset]
64? S <0:00 _[bioset]
65? S <0:00 _[bioset]
66? S <0:00 _[bioset]
67? S <0:00 _[bioset]
68? S <0:00 _[bioset]
69? S <0:00 _[bioset]
70? S <0:00 _[VCHIQ-0]
71? S <0:00 _[VCHIQr-0]
72? S <0:00 _[VCHIQs-0]
73? S <0:00 _[iscsi_eh]
74? S <0:00 _[dwc_otg]
75? S <0:00 _[DWC Notificatio]
77? S 0:00 _[irq/92-mmc1]
78? S 0:00 _[VCHIQka-0]
79? S <0:00 _[SMIO]
80? S <0:00 _[deferwq]
83? S <0:00 _[bioset]
84? S 0:11 _[mmcqd/0]
87? S 0:04 _[jbd2/mmcblk0p2-]
88? S <0:00 _[ext4-rsv-conver]
89? S <0:00 _[ipv6_addrconf]
172? S 415: 15 _[w1_bus_master1]
224? S <0:00 _[cfg80211]
227? S <0:00 _[brcmf_wq/mmc1:0]
229? S 0:00 _[brcmf_wdog/mmc1]
493? S <0:00 _[kworker/1:1H]
550? S <0:00 _[kworker/3:1H]
632? S <0:00 _[kworker/u9:0]
633? S <0:00 _[hci0]
634? S <0:00 _[hci0]
638? S <0:00 _[kworker/u9:2]
3856? S <0:00 _[kworker/2:1H]
9346? S <0:00 _[kworker/0:1H]
15564? S 0:00 _[kworker/1:0]
17556? S 0:00 _[kworker/u8:2]
17878? S 0:00 _[kworker/0:0]
17879? S 0:00 _[kworker/2:2]
19234? S 0:00 _[kworker/u8:4]
19566? S 0:00 _[kworker/3:1]
20143? S 0:00 _[kworker/2:1]
20259? S 0:00 _[kworker/3:2]
20352? S 0:00 _[kworker/0:2]
20416? S 0:00 _[kworker/1:2]
20600? S 0:00 _[kworker/3:0]
20601? S 0:00 _[kworker/2:0]
20605? S 0:00 _[kworker/u8:0]
20725? S 0:00 _[kworker/0:1]
one ? Ss 0:10 /sbin /init
134? Ss 1:00 /lib /systemd /systemd-journald
136? Ss 0:08 /lib /systemd /systemd-udevd
416? Ss 0:09 /usr /sbin /cron -f
426? Ss 0:01 /lib /systemd /systemd-logind
429? Ss 0:00 avahi-daemon: running[raspberrypi.local]
458? S 0:00 _ avahi-daemon: chroot helper
433? Ss 0:00 /usr /bin /dbus-daemon --system --address = systemd: --no
450? Ss 0:02 /usr /sbin /thd --daemon --triggers /etc /triggerhappy /t
496? Ss 0:03 /sbin /wpa_supplicant -s -B -P /run/wpa_supplicant.wla
498? Ssl 0:13 /usr /sbin /rsyslogd -n
636? S 0:00 /usr /bin /hciattach /dev /serial1 bcm43xx 921600 noflow
640? Ss 0:00 /usr /lib /bluetooth /bluetoothd
729? Ss 0:02 /sbin /dhcpcd -q -w
749? Ss 0:00 /usr /sbin /sshd -D
20726? Ss 0:00 _ sshd: pi[priv]
20732? S 0:00 _ sshd: pi @ pts /0
20734 pts /0 Ss 0:00 _ -bash
20744 pts /0 R + 0:00 _ ps -afx
777 tty1 Ss + 0:00 /sbin /agetty --noclear tty1 linux
907? Sl 737: 23 ./dump1090 - net - net-sbs-port 30003
915? S 11:11 python -O /root /get_message/send_message.py
3r31923. 3r31924. 3r31987.  
3r31987.  
From this it is clear that you can take data from PiAware almost without straining, in fact, only by transferring the scripts to a new system. And if you already have an existing adsb-station - self-made, Flightradar2? Flightaware, then the existing receiver can be used at your discretion for other personal goals and tasks with a completely clear conscience. 3r31987.  
3r31987.  
At this point, my draft is “stuck” indefinitely, since here I wanted to write how to run on a router with an openwrt script and ModeSMixer to distribute data to services and thus turn off this receiver and use it for other purposes. But I do not yet have free time and I decided to publish it as it is. Maybe someone wants to order free the receiver and this article will be helpful. 3r31987.  
3r31987.  
3r31941. ModeSMixer
3r31987.  
One receiver can distribute data to several services and is used for this program ModeSMixer. 3r31987.  
3r31987.  
ModeSMixer is a console application for combining and relaying streams with Mode-S data in various formats. Approximate use case:
 
3r31982. 3r31952.
3r31987.  
By setting up a distribution to several services, the station owner receives a special membership on each service and access to non-public information and the archive of flights for a certain period. 3r31987.  
3r31987.  
In the meantime, while this article was in draft, news from China appeared concerning these services. In November 201? the Chinese authorities began to turn off the ADSB receivers of foreign services. This can be seen in the public statistics of Flightaware stations in China: 3r319197.  
3r31962. 3r31987.  
The news is that Chinese radarspot enthusiasts said they received calls from Chinese authorities and were visited by police, who “very nicely and politely” asked them to stop transferring ADS-B data to overseas services, which, apparently, “puts in jeopardy China’s national security and sovereignty. ” 3r31987.  
3r31987.  
Some claimed that they were called, even if they did not receive the receiver from FlightRadar24 and FlightAware. These events caused a stir among enthusiasts, and many of them stopped transmitting ADS-B data. It is known that FlightRadar24 tried to anonymize the user stations in China. It is not clear how effective it is. 3r31987.  
3r31987.  
Notice of the Chinese authorities in English: 3r31987.  
3r31982. 3r31976.
3r31987.  
“It threatens the national security and sovereignty of China” by the fact that such services allow us to locate Chinese (American, European and others except the countries of the former USSR) military aircraft. For example, the weekly trajectory of the US strategic reconnaissance UAV over international waters at an altitude of 16 km: 3r3r191987.  
3r31982. 3r31983.
3r31987.  
In the world there are two secondary radar systems from the USA and the USSR. Therefore, these receivers and services cannot show the location of the majority of “Soviet” aircraft, helicopters, if they are not equipped with an “American” radar responder, which requires only a fraction of flights in airspace, for example, the United States or the EU. Therefore, it is possible to see something interesting on the territory of the Russian Federation in the border areas, preferably by the sea. For example, the above-mentioned American intelligence officer is remarkably visible from Krasnodar. Thanks to this coastal receiver placement mentioned above, the PlaneRadar service periodically getst in the news of the Russian media. 3r31987.  
3r31989. 3-3-3?990. 3r-31991. 15:40 Moscow time 3r-331992. pic.twitter.com/sTCSsoY1VV
3r-31994. - PlaneRadar (@ ua4wiy_) 3r3-31995. November 2? 201 3-3331996. 3r-331997.
3r-31999.
+ 0 -

Add comment