Building an Autonomous Delivery Drone
February 2019 - February 2021
The math seemed simple. A DJI Phantom could carry a camera. A pizza weighed less than a camera. Therefore, I could build a drone that delivered pizza. This was high school logic, and like most high school logic, it ignored approximately everything that mattered.
I wanted a drone for photography but couldn't justify spending money on a DJI when I could barely afford the lenses I wanted. Then I found a tutorial about building your own quadcopter from parts ordered off Alibaba. The components arrived in unmarked bags, the instructions were half in Chinese, and nothing quite fit together the way the tutorial promised. But after enough trial and error, I had a working hexacopter that actually flew.
After a few test flights in my backyard, watching this thing I'd built hover steadily in the air, the idea hit me: what if it could deliver things?
The first attempt was spectacularly overengineered. I built a wooden box, rigged up a winch using fishing line and a small DC motor, and connected everything to a Raspberry Pi with a mobile data dongle. The theory was solid: fly to location, lower package on fishing line, release, return home. In practice, the wooden box was too heavy. The mobile data connection took forever to boot up and dropped constantly. The fishing line tangled. The whole assembly shifted the center of gravity so far back that the drone could barely maintain stable flight.
I stripped it down and started over. Out went the Raspberry Pi and mobile data, replaced with a simple Bluetooth module. Out went the wooden box, replaced with styrofoam. I built a custom frame from aluminum sheets to accommodate a pizza box. The new door mechanism meant the winch only had to hold the package itself, not the entire door assembly. Each change saved weight, and weight was everything.
The aluminum frame worked, but it was still heavier than it needed to be. Carbon fiber would be lighter and stiffer, but working with carbon fiber required precision drilling, and I only had a Dremel. I found an open-source CNC design online called the Mostly Printed CNC, where you 3D print most of the frame and use whatever rotary tool you have. I spent three weeks printing parts and assembling the machine. Then I spent another week learning how to actually use it without breaking bits. But once I figured it out, I could drill all the holes I needed in both carbon fiber and aluminum. I even machined the delivery box styrofoam into a more aerodynamic shape, though I'm not sure it made much difference at drone speeds.
The hexacopter configuration gave me about six kilograms of thrust with thirty-centimeter propellers. I chose six motors instead of four partly for the extra payload capacity, but mostly for redundancy. Lose one motor on a quadcopter and you're probably crashing. Lose one on a hexacopter and you can still land safely, assuming you don't panic and cut the throttle.
I upgraded to a Pixhawk 4 flight controller and added GPS. This meant I could program autonomous missions: waypoint by waypoint instructions for takeoff, flight path, delivery, and return. For the winch mechanism, I used a motor with both an encoder and a load cell. The encoder tracked the winch position. The load cell detected weight changes. When the package touched the ground, the load cell would sense the tension drop, the winch would release, and the drone would reel back the empty line. Google Wing was using a similar concept with their tether system, which made me feel like I was at least on the right track.
After high school graduation, my dad and I built a landing platform in the backyard. The concept was ambitious: the drone would land on the platform, three motorized rails would push it to the center for precise alignment, and then the winch could lower packages into the platform where a motorized floor would slide new packages in for the next delivery. Fully automated restocking.
I built a separate test drone with a camera to develop autonomous landing using ArUco markers. The idea was the drone would detect the markers, calculate its position, and adjust to land precisely on the platform. In practice, the vision system was unreliable. Lighting changes threw off the detection. The slightest wind meant the position calculations lagged behind the actual drift. I spent weeks tweaking parameters and trying different approaches. Then final exams started, and I decided precise autonomous landing could wait.
Summer 2020, I rebuilt most of the system again. I designed a custom battery pack with quick-swap connectors that could be changed in under ten seconds. I wrote software that connected to a server so I could plan routes from my iPad and see real-time status updates. I added LED strips to the delivery box that changed color based on delivery status: blue for armed, green for en route, yellow for lowering, red for any errors.
The load cell and encoder integration meant the drone could now confirm it had a payload before takeoff and verify successful delivery autonomously. I tested in my backyard and at a field nearby. Neighbors would come out to watch, asking questions about how it worked and whether it could deliver their mail. Nobody complained, though I was legally limited to line-of-sight operations anyway.
October 16, 2020. First fully autonomous delivery attempt. I'd tested every component individually dozens of times, but this was the first end-to-end mission without any manual intervention. I placed a small package in the box, armed the system, and pressed start on my iPad.
The drone lifted off, climbed to altitude, and began following the GPS waypoints. At the delivery location, it stopped and hovered. The winch motor engaged. The package descended on the line. I watched the telemetry: load cell reading steady, encoder counting down the line length. Then the load cell reading dropped. Package on ground. Winch released. Line reeled back in. Drone returned to launch point and landed itself.
It actually worked. After all the crashes, all the rebuilds, all the versions that almost worked but didn't quite, I'd finally built what I set out to build two years earlier.
That year, some friends and I entered the Entrepreneurs of Tomorrow business plan competition. We pitched drone delivery for local restaurants. Second place. The judges liked that we had an actual working prototype instead of just slides and projections. But writing that business plan taught me something the engineering never did: building something that works technically isn't the same as building something that works economically.
The numbers were brutal. Delivery margins are thin. Each drone costs thousands of dollars and requires regular maintenance. Battery life limits range to a few kilometers. Noise regulations restrict flight times. Airspace restrictions require permits and coordination. Weather grounds operations. Insurance costs are high. And customers still expect prices comparable to someone on a bike.
I kept working on the drone through early 2021, refining the software and improving reliability. But I understood by then that this was never going to be a business. It was an education.
I learned Arduino, Python, C, Swift, React. I learned CAD and CAM. I learned to work with carbon fiber, operate a CNC machine I'd built myself, debug electronics, and tune control systems. I went through five major iterations and had to rebuild several of them completely after crashes. The whole project cost around a thousand euros, including the CNC machine.
Looking back with what I know now from BU, I'd do it differently. I'd start with proper modeling: mass matrices, center of gravity calculations, aerodynamic simulations. I'd use lighter materials from the beginning. I'd iterate faster instead of spending weeks perfecting each version before moving on. I'd probably use better components even if they cost more, because rebuilding after crashes ended up costing more than buying quality parts upfront.
But I was seventeen and learning everything from YouTube tutorials and forum posts. I didn't know what questions to ask. I didn't know what I didn't know. So I just built things, watched them fail, figured out why, and built them again differently.
That drone taught me more about engineering than any class could have. Not because it eventually worked, but because it failed in so many different ways first. Every failure was specific, debuggable, fixable. Every crash meant rebuilding something better. By the time I got to university, I'd already learned the most important lesson engineering has to teach: things don't work the first time, and that's fine. You learn from what broke and you build it again.