We’ve come a long way…
The Dronesense project is a spectrum-scanning jamming and ground control communication system based on LimeSDR. It started when I was a senior in University. My graduation project involved drones, and, as I got more familiar with the technology, I started to realize how easily drones could be used by individuals with bad intentions. I started researching what sorts of countermeasures existed and soon discovered ground-based, anti-drone rifles. These are equipped with a scope for visually detecting drones and a directional antenna for then jamming their signal (allegedly up to 1200 meters away).
My research soon revealed that there was a problem with the detection part of this type of countermeasure, it’s dependant on human vision. In the course of further research on drone detection, I discovered Software-Defined Radio and I had an idea: if I could make a unit that could detect drone remote control signals, there would be no need to rely on fault-prone human vision.
As a junior engineer, I decided to set myself a challenge and design a communication system that provides detection, jamming, and communication functions all together. I was familiar with the Arducopter, digital signal processing, and the MAVLink comms protocol, so I used that knowledge to get a government grant to work on the project. With that help, I was able to build a team and develop a fully functioning prototype system in one year.
The hardware side of the system consists of two parts: the drone and the base station (ground control). For the drone, we used a custom-made S600 frame with T-Motor U3 motors and a 40A esc. speed controller. The takeoff weight of the drone was 5 kg, flight time approximately seven minutes. The drone was also equipped with two LimeSDRs, one Advantech SBC a 4 W 2.4 G jammer, a U-Blox GPS module, a Pixhawk flight controller, and custom-made 433 MHz and 2.4 G antennas (which were unfortunately broken during testing).
For the drone’s software, we combined two GNURadio OOT (out of tree) modules called
gr-inspector. Initially, we had decided to provide detection by using an energy detection method with one LimeSDR since it’s faster and we wanted to learn about the Automatic Modulation Classification block in gr-inspector. (We managed to train a model with 97% success, but weren’t able to run the flowgraph.) After combining two modules, we made our custom block called
decider and a custom OOT module called
decider runs a special algorithm upon receiving a detection signal that sends messages to the Pixhawk controller via serial to TTL converter and to the jammer via the iManager SBC interface. We also wrote a script to run two flowgraphs on the drone simultaneously.
Decider block diagram
For software on the ground side, we modified the existing
gr-uaslink TX flowgraph connected to the B210 SDR. We also did Software in the Loop (SIL) testing with a Raspberry Pi before switching to the higher performance Advantech SBC. The
deciderblock simply controls the jammer and the drone according to the signals on the flight area.
You can see some test videos of Dronesensein action on Youtube.
Drone signal detected!
Please note: some details cannot be shared due to a non-disclosure agreement.