Detecting Drones with a Raspberry Pi
The appropriately named DroneAwareDan found a way to use a Raspberry Pi to detect drones.
Drones are great! I have a drone and have owned several others, so I’m not against drones or anything like that. But there are places where they really don’t belong. They can, for example, disturb wildlife and so it makes sense for national parks to prohibit their use. The problem is that enforcement is difficult, because it isn’t easy to tell when someone is flying a drone unless you can see it or hear it. That’s why the appropriately named DroneAwareDan found a way to use a Raspberry Pi to detect drones.
To understand how this works, it helps to know the way most modern drones operate. Assuming a drone isn’t 100% autonomous (which is almost never the case), it needs to communicate with a pilot through some kind of remote control. Unlike the RC vehicles of the past, drones usually communicate digitally with remotes over 2.4GHz, 5.1GHz, or 5.8GHz frequencies and broadcast some identifying information when they do.
There is a lot more to it than that, but the key takeaway is this: many drones operate on the same frequencies as Wi-Fi and Bluetooth—even using the same protocols. You can, therefore, detect the presence of a transmitting drone using readily available hardware, like a Raspberry Pi SBC (Single-Board Computer).
In this case, DroneAwareDan did that using a Raspberry Pi, a USB Bluetooth dongle, and a USB Wi-Fi adapter. The Bluetooth and Wi-Fi modules both got massive antennas to improve reception.
The rest is just pretty simple software. As it runs, it just continuously scans for Wi-Fi or Bluetooth IDs that match drones. It then tells you if it sees one, but also publishes the finding to DroneAware.io for others to see. DroneAwareDan tested that with 2.4GHz Wi-Fi and Bluetooth, but it should be possible with 5GHz Wi-Fi, too.
DroneAwareDan reports that he was able to detect a drone flying a whopping five miles away. That was in ideal conditions over water, but it gives you an idea of what is possible with this hardware setup.
The code is over on GitHub for anyone that wants to give it a try.