1 00:00:07,400 --> 00:00:19,740 Hello, my name is Alan and together with Fabian we are going to talk about how to set up a VHF receiver to start collecting air traffic control voice data. 2 00:00:20,820 --> 00:00:24,300 Our presentation is divided into two parts. 3 00:00:24,300 --> 00:00:33,260 I will talk about OpenSky Network, about air traffic control and about the ADCO2 project. 4 00:00:33,640 --> 00:00:47,780 After what I will hand over to Fabian who will show you how to set up the receiver and share some tips and tricks how to improve signal reception quality. 5 00:00:48,620 --> 00:00:50,340 OpenSky Network. 6 00:00:50,340 --> 00:01:01,520 Our mission is to improve the security, reliability and efficiency of the airspace usage by sharing ATC related data to public. 7 00:01:02,240 --> 00:01:21,640 So far we only share air surveillance data but as you can see things are about to change and we broaden our scope also to voice communication taking place between the air traffic controller and the pilot. 8 00:01:21,640 --> 00:01:53,140 The way we collect the data is that we have a multitude of sensors operated by volunteers and connected to internet and the receivers then feed the data to OpenSky and OpenSky then shares this data to entities wishing to do interesting and useful stuff with this data. 9 00:01:53,180 --> 00:01:56,560 A few facts about our network. 10 00:01:56,560 --> 00:02:12,900 We have around 3 000 registered receivers from which around 1 000 is online and with those 1 000 receivers we get the coverage shown on this figure here. 11 00:02:12,900 --> 00:02:28,620 As you can see we have quite good coverage in Europe and in US but also in some smaller regions like Japan or in western coast of Australia. 12 00:02:30,720 --> 00:02:36,700 So now moving on to the air traffic control and a few words why it's needed. 13 00:02:37,860 --> 00:02:43,160 So pilots are facing pretty much a formidable task. 14 00:02:43,160 --> 00:02:56,780 They need to take a poorly maneuverable fast-moving aircraft from point A to point B without causing an accident. 15 00:02:58,060 --> 00:03:03,820 So you can imagine that the help would be needed. 16 00:03:04,020 --> 00:03:10,200 And here is the place where air traffic controller comes to play. 17 00:03:10,200 --> 00:03:33,460 Air traffic controller has a pretty good overview about the space surrounding any given aircraft and they also have good understanding about the aircraft, about its restrictions and current conditions. 18 00:03:33,460 --> 00:03:48,900 So they can advise pilots how to maneuver through the airspace the safest and most efficient way possible. 19 00:03:49,680 --> 00:03:58,220 So the tasks... there are three main tasks for the air traffic controller. 20 00:03:58,220 --> 00:04:07,140 They have to make sure that the aircraft do not collide with each other and also do not collide with terrain. 21 00:04:07,260 --> 00:04:29,200 They need to provide pilots with necessary information and also if things go really bad and help is needed, they do provide alerting services, meaning that they exchange data between... 22 00:04:29,820 --> 00:04:35,320 they exchange information between pilot and rescue units, for example. 23 00:04:37,240 --> 00:04:39,900 So how it's done? 24 00:04:39,960 --> 00:04:46,360 The short and easy answer is that via using radio. 25 00:04:46,400 --> 00:04:59,700 So if pilot wants to do something with the aircraft, they will ask air traffic controllers if it's safe to do so. 26 00:04:59,920 --> 00:05:20,260 Then the air traffic controller is looking at all the information available and gets back to the pilot saying that either it's safe and they can go ahead or it's not safe and they should do something else altogether. 27 00:05:22,380 --> 00:05:36,680 The frequencies used to communicate lie between 108 and 137 megahertz. 28 00:05:36,680 --> 00:05:43,060 It's often referred to as earbands. 29 00:05:43,640 --> 00:05:58,180 And by saying it's most commonly used, I mean there are other frequencies also that are used in some instances. 30 00:05:58,180 --> 00:06:13,380 For example, in oceanic areas, lower frequencies which have better propagation features or satellite communication also is used often in those areas. 31 00:06:13,500 --> 00:06:27,880 But as VHF communication provides the highest quality at the moment, it's preferred and used wherever possible. 32 00:06:27,880 --> 00:06:33,460 And that's why it's the most interesting also to listen to. 33 00:06:34,440 --> 00:07:07,560 So as I said, the communication between the pilot and the air traffic controller is verbal, meaning that if later one said it cannot be returned to later on, but you probably can come up with several scenarios where one would like to return to what was said. 34 00:07:07,560 --> 00:07:19,100 For example, pilot wants to double check the instructions gotten from the pilot. 35 00:07:19,280 --> 00:07:31,500 At current point of time, the pilot should, to be able to do that, the pilot should write these introductions down. 36 00:07:31,600 --> 00:07:43,180 But as pilots while flying are rather busy, they just don't have the mental capacity to do so. 37 00:07:43,820 --> 00:07:51,280 That's why some sort of automation would be much appreciated. 38 00:07:52,660 --> 00:08:09,340 But for building that sort of an automated system, transcription system, large amounts of data would be required. 39 00:08:09,340 --> 00:08:15,220 And that's why HATCO2 project was brought to life. 40 00:08:15,220 --> 00:08:36,820 It's a EU-funded project with several different partners who together intend to develop a platform that allows to collect, organize, and pre-process air control voice communication data. 41 00:08:36,820 --> 00:08:42,380 For that, two separate systems will be built. 42 00:08:42,830 --> 00:08:52,310 First, collecting voice recordings and storing them and making it available to public. 43 00:08:52,310 --> 00:09:09,490 And another one taking care of automatic transcriptions and also storing them so these transcriptions then can be later used to whichever reason needed. 44 00:09:09,810 --> 00:09:25,650 And lastly, the legal aspects of making that sort of recordings and sharing them with other parties is also looked at within this project. 45 00:09:27,310 --> 00:09:40,790 It's not inherently lawful to make the recordings in all the countries in the world. 46 00:09:41,110 --> 00:09:48,990 And that's why it's really important to shed some light into this matter as well. 47 00:09:50,090 --> 00:09:52,970 So that's it from my part. 48 00:09:52,990 --> 00:10:03,950 Thank you for listening and I will now give word to Fabian who will show you how the receiver should be set up. 49 00:10:03,950 --> 00:10:06,530 Thanks and enjoy! 50 00:10:12,210 --> 00:10:21,410 Hi all, my name is Fabian and in the second part I will take you through a tutorial of how to set up a Raspberry Pi as an air traffic control receiver. 51 00:10:21,710 --> 00:10:27,310 We will first go through a setup of the Raspberry Pi using SSH. 52 00:10:27,310 --> 00:10:39,170 Once we can access the Raspberry Pi, we're going to install RTL-SDR Airband on it, which is an open source software that we can use to record APC communications. 53 00:10:40,030 --> 00:10:46,890 Additionally, we will install some audio utilities to encode the raw output into FLAC audio format. 54 00:10:47,190 --> 00:10:55,650 After installing the software, I will show you how to configure the software based on your location using a configuration web page. 55 00:10:56,210 --> 00:10:59,730 And finally, we will test the setup if it's working. 56 00:11:00,130 --> 00:11:06,390 At the end, I will give you some hints on how to position your antenna and wrap up with some links and an output. 57 00:11:09,220 --> 00:11:15,480 So first, before we dive into it, let's look at the components that we are using for this setup. 58 00:11:15,720 --> 00:11:20,760 As a general purpose, low-cost computer, we're using a Raspberry Pi. 59 00:11:20,980 --> 00:11:25,260 It doesn't really matter which version, even a version 1 should work. 60 00:11:25,380 --> 00:11:32,390 Although if you want to use multiple downloads and listen to a lot of frequencies, a higher version Raspberry Pi might be recommendable. 61 00:11:34,040 --> 00:11:40,060 Then for the Raspberry Pi, we need the power supply and the LAN cable for the initial setup. 62 00:11:40,240 --> 00:11:47,180 The LAN cable you only need if you want to follow along this headless SSH setup from scratch. 63 00:11:47,180 --> 00:11:55,900 If you already have a running Raspberry Pi or setting up with monitor and keyboard, you can also use a wireless LAN. 64 00:11:56,040 --> 00:12:00,840 You also need a microSD card which serves as a Raspberry Pi disk. 65 00:12:00,900 --> 00:12:05,980 For the APC reception, we need a software-defined radio USB dongle. 66 00:12:05,980 --> 00:12:09,800 In our case, we're using the RTL-SDR dongle. 67 00:12:10,300 --> 00:12:14,820 The link to it is provided on the last page of this presentation. 68 00:12:16,100 --> 00:12:19,140 And then we need an antenna to connect to the dongle. 69 00:12:19,140 --> 00:12:23,360 There are dongle sets that you can buy including a general-purpose antenna. 70 00:12:23,360 --> 00:12:24,940 That's a good start. 71 00:12:25,300 --> 00:12:30,020 If you're setting up a Raspberry Pi from scratch, you can follow along this step. 72 00:12:30,020 --> 00:12:44,100 If you're not familiar with terminals SSH and how to find out the IP of your Raspberry Pi, it might be easier to follow the Noobs setup guide with mouse and keyboard from the official Raspberry Pi page. 73 00:12:45,140 --> 00:12:52,180 On a PC or laptop that has an SD card reader, install a Raspberry Pi OS to the microSD card. 74 00:12:52,180 --> 00:12:57,740 We're using Imgur that is available from the Raspberry Pi download section. 75 00:12:59,100 --> 00:13:09,080 So first, we choose the operating system as Raspberry Pi OS 32 bits and the SD card that we want to install it. 76 00:13:09,080 --> 00:13:10,820 And then press write. 77 00:13:15,890 --> 00:13:20,810 After the SD card is finished, we insert it into the Raspberry Pi. 78 00:13:20,970 --> 00:13:24,870 Connect the Raspberry Pi to the LAN network using the cable. 79 00:13:25,070 --> 00:13:31,450 Add the SDR USB stick with antenna attached to it and power up the Raspberry Pi. 80 00:13:31,710 --> 00:13:33,710 Give it a few seconds. 81 00:13:34,170 --> 00:13:39,730 Now we need to find out what the IP of our Raspberry Pi on our network is. 82 00:13:39,790 --> 00:13:45,550 You can normally see this somewhere on your router's configuration home page like shown here. 83 00:13:46,230 --> 00:13:56,510 If you can't find it out for some reason, you can always resort to attaching a monitor and keyboard and mouse to the Raspberry Pi and finishing the setup in that way. 84 00:13:57,390 --> 00:14:05,100 The initial login to the Raspberry Pi should work with username pi and password raspberry. 85 00:14:06,830 --> 00:14:13,730 Next, we're going to change the default password, configure the time zone, and optionally configure wireless LAN. 86 00:14:13,730 --> 00:14:16,620 So to do this, let's start raspi-config. 87 00:14:17,030 --> 00:14:21,350 Then select change user password and 88 00:14:24,730 --> 00:14:27,230 enter a new password twice. 89 00:14:34,170 --> 00:14:39,030 Next, let's select four localization options. 90 00:14:39,610 --> 00:14:47,630 Change the time zone and select the continent and country you're in. 91 00:14:50,840 --> 00:14:59,460 Then let's select localization options again and change the VLAN country to your country. 92 00:15:06,060 --> 00:15:11,100 If you want to configure wireless LAN, then you can do this under network options. 93 00:15:17,430 --> 00:15:25,710 Once installed, the configuration file for the software needs to be modified to record the desired frequencies and produce an output. 94 00:15:25,710 --> 00:15:32,250 The full set of configuration options you can find on the wiki page with the provided link. 95 00:15:35,940 --> 00:15:41,860 After the software is installed, the configuration file for the software needs to be modified. 96 00:15:41,940 --> 00:15:49,600 To make the configuration easier, we have a simple page that generates a configuration file for you in five steps. 97 00:15:49,900 --> 00:16:00,400 The first step is to specify your device, the type, give it some name, and you can leave the bandwidth as is for most cases. 98 00:16:00,800 --> 00:16:13,740 The second step is to specify your location, either by address, by longitude, latitude, or if your device supports it, you can use the current location button. 99 00:16:21,930 --> 00:16:28,930 Once you have specified your location, you can search airports that are close by. 100 00:16:29,850 --> 00:16:34,210 So in our case, we're choosing the Zurich airport, 101 00:16:37,870 --> 00:16:44,250 and this will provide you with a set of frequencies which are used in this airport. 102 00:16:44,750 --> 00:17:02,430 So you can select the frequencies which you want to record, but there is a restriction that the specified bandwidth of your device that you specified on top needs to fit all the frequencies in it. 103 00:17:02,430 --> 00:17:12,730 So if you have a bandwidth of 2.4 megahertz, the frequencies can be more than 2.4 apart. 104 00:17:13,670 --> 00:17:27,370 So if we're selecting all the frequencies here and assigning them all to one device, we'll end up with an error message saying that we've exhausted the bandwidth. 105 00:17:27,870 --> 00:17:31,710 So instead of 2.4, we are now at 13. 106 00:17:33,650 --> 00:17:42,370 So we deselect the frequencies that don't fit in to our bandwidth, and the error message should disappear. 107 00:17:53,380 --> 00:17:58,240 And based on these options, a configuration file should be generated. 108 00:18:05,560 --> 00:18:14,760 So we're copying this file or downloading it, and then we have to transfer it to our Raspberry Pi. 109 00:18:17,790 --> 00:18:26,670 To copy the configuration into our RTL-Airband.conf file, I'm using the Nano Editor. 110 00:18:26,670 --> 00:18:36,530 So first I delete all of the existing example configuration, and then I'm pasting in the generated configuration file. 111 00:18:42,720 --> 00:18:46,840 After that, we're exiting and saving the file. 112 00:18:53,550 --> 00:19:01,470 Next, let's test if our setup is working correctly by looking at the signal and the output that is produced. 113 00:19:04,220 --> 00:19:09,920 To test if the software is working, we can start it in the foreground mode. 114 00:19:09,920 --> 00:19:15,120 It's also useful to see if the noise level estimation and squelch are working fine. 115 00:19:15,420 --> 00:19:20,250 The two numbers indicate the estimated noise level and the signal level. 116 00:19:23,350 --> 00:19:29,010 And the star appears besides the two numbers if the recording kicks in. 117 00:19:30,330 --> 00:19:38,210 So for instance, if you always see a star, meaning it's recording all the time, you might need to adjust the gain setting. 118 00:19:38,590 --> 00:19:44,030 More information can be found in the troubleshooting section on the wiki page. 119 00:19:44,890 --> 00:19:54,650 Regarding output, there is an output airband folder in the home directory where the raw files and the metadata text file is stored. 120 00:19:56,250 --> 00:20:04,330 And then once it is encoded to FLAC, it will be visible in the encode subfolder in that directory. 121 00:20:18,320 --> 00:20:22,540 Configuration options that are generated by the config page are listed here. 122 00:20:23,440 --> 00:20:31,280 Multi-channel mode was chosen so that we're sure not to miss any transmissions in the channels that we're interested in. 123 00:20:31,280 --> 00:20:33,800 The other option would be frequency scanning. 124 00:20:34,740 --> 00:20:40,140 Then we chose raw output format so we could encode it to FLAC. 125 00:20:40,620 --> 00:20:45,520 Other options are mp3, icecast, or pulse audio. 126 00:20:45,740 --> 00:20:53,080 So you can also set up an icecast server to have a streaming version of the channels to listen to at home in parallel. 127 00:20:53,520 --> 00:21:04,380 The goal of the project in later stages is to provide the feeder software part to send the audio to OpenSky and reach the audio with annotations and potentially other data. 128 00:21:05,460 --> 00:21:10,380 The gain setting is set to a default level, but it might need to be adapted. 129 00:21:10,540 --> 00:21:22,360 Especially if you have a good antenna with some amplification, then the gain setting might have to be lowered, else you will have recording noise all the time. 130 00:21:27,110 --> 00:21:34,450 So for the setup of the antenna, in general, there should be no obstacles between the sender and the antenna. 131 00:21:34,450 --> 00:21:40,030 So in the ATC case, the senders are the airplanes and the airport tower. 132 00:21:41,010 --> 00:21:47,190 These examples are taken from the ADS-B receiver kit on the OpenSky network homepage. 133 00:21:47,210 --> 00:21:52,390 So only show airplanes and not the airport, but the same principles apply. 134 00:21:52,770 --> 00:21:58,390 On these pictures, you can see non-ideal setups with obstacles or a narrow angle. 135 00:21:58,590 --> 00:22:11,170 Finally, to give a short outlook, we will be providing some sort of feeder soon to be able to process the audio recordings on the server side and make it available to feeders through an API. 136 00:22:12,190 --> 00:22:16,990 Here is a collection of links that we used in this presentation. 137 00:22:16,990 --> 00:22:40,270 First, the AirBand GitHub repo and their wiki page, then the config page that helps you put together a configuration file, a link to the Raspberry Pi where you can find things like installation instruction, the RTL-SDR dongle we used in this setup, a link to the ADCO2 project page, 138 00:22:40,270 --> 00:22:47,650 and finally a link to the OpenSky network homepage where you can also find things like how to build an ADS-B receiver. 139 00:22:48,330 --> 00:22:59,770 I hope this tutorial was easy to follow along and that you're able to make your own ADS-B receiver with it and happy to answer questions that you might have right now.