It’s getting close to spring time in ye olde Connecticut, and with better weather comes more time that can be spent outside. With that in mind, I’m bringing back a personal project that I had set aside for a purely metaphorical rainy day. A drone that flies around with hacker tools and collects data. I’ve had this idea for well over a year now, but I hadn’t actually gotten around to building it because I just hadn’t found the time. Well, now is that time to create an autonomous hacker robot!
You might be saying, “But Lee, this has already been done.” I already know that I’m not the first person to think of turning a DIY drone into a hacking platform; Motherboard ran an article about this very topic in 2016. Just looking at the Danger Drone I see a bunch of similarities to my own drone, and I think this is a good sign. It means that I probably won’t have to purchase anything else, and if I do have to purchase something it will most-likely be minor.
As you can see, the Danger Drone is in much better shape, and it is complete. My drone is still just a bunch of parts and is mostly disassembled.
I now kinda wished that I kept a list of components that I’m using. If I remember correctly, a year ago I just kept buying parts recommended by other hobbyists/suggestions from Amazon until I had something that resembled a quad rotor drone. This probably isn’t the most optimal way of figuring out how to build a drone, but there are so many different configurations for drones that I couldn’t really find exactly what I was looking for that met all of my requirements. For me, I wanted a flying Linux computer of doom.
It probably doesn’t look like it, but my drone is almost complete. Seriously. Most of what I really need to do on the hardware side of things is complete. The majority of the project is now configuration and software. The first thing I need to do is get the flight computer online. I want to demonstrate that it can power on and talk to my ground control software. There’s an entire document that Navio2 published on how to accomplish this very thing, and I don’t think me repeating it would do anyone any favors. If you’re really interested in this process, you can find documentation here.
The documentation doesn’t really say specifically how to make a drone start to finish, but it does discus some possible configurations. The closest to mine being this:
You can kind of see in my photo that my drone is very close to this recommended setup already. In reading the documentation there’s an abrupt transition from “this is how to setup the Navio2” to “and now you should figure out how to use ArduPilot using other software.“
The general idea is that your Raspberry Pi 3 and your Navio 2 will control flight and act as a server, and a computer on your network will control your drone using MAVLink.
I was quickly amazed by QGroundControl. After ten seconds of having it open, QGroundControl was barking at me that I had a bunch of “Prearm” warnings. Since this was the first time I’d even heard “Prearm”, you could imagine my confusion when I saw that I had a bunch of them. Unfortunately a synthesized voice kept reminding me every 10 seconds of these warnings, which was very annoying.
I was able to work through most warnings. In fact, a lot of it makes sense in hindsight. “3D Accel Not Configured” meant that I had to configure the drone’s 3 axis accelerometer. “Compass not calibrated” was also pretty straight forward.
In the not so simple side of things was the fact that I didn’t intend to use a radio control. For that I needed to manually override warnings by setting ArduPilot variables. Clearly, this doesn’t seem to be anticipated user behavior since I’m still seeing some red icons. I’ll probably reverse this design decision, though. Having a kill switch to shut this thing down mid flight is a very attractive safety feature I want.
After some fiddling I was able to finally get into mission planning. The GPS worked, and my Linux Computer of Doom was being recognized.
At this point I threw caution into the wind, and decided to try to “take off.” I intentionally didn’t mount the rotor blades so that I could determine if the platform was working as intended. Unfortunately, I found that my 5 volt power supply was enough to power the Navio 2 and Raspberry Pi 3, but not enough to turn the motors at all. I plugged in the battery and the thing beeped at me! Scared me half to death. I didn’t know this thing made noise. Upon inspection, I think it’s using the motors to make audible noises. Very clever.
As you can see, the drone works… you know, kind of. Enough to get excited anyway. With a little bit more effort I will well be on my way to a test flight.