A flying, distributed wireless mesh network. What could possibly go wrong?

Similar projects worth following
What happens when you take some low cost scratch built flying wings, strap WiFi routers to them, and attach an autopilot controlled by some clever software?

Probably a few crashes - both software and hardware. But once those are out the way, hopefully there will be a distributed self healing WiFi network left behind.

The idea is to create a mesh network out of flying hardware. The planes communicates amongst themselves and with the ground, by using standard 802.11 wireless technologies. Eventually, they should be able to fly completely autonomously where needed to maximize coverage.

The main idea behind this project is to use low cost RC aircraft as a platform for building a distributed wireless mesh network. The current idea is to use a 5GHz wireless link for inter-drone communication, with 2.4GHz panel antennas aimed downwards to provide ground coverage.

Each plane should have the capacity to stay in the air for at least an hour, but since multiple planes can form a swarm, they should be able to keep coverage while others are recharged or taken down.

  • 1 × "Arduino Mega 2560" The quote marks are there since it's a cheap clone. Any ATmega 2560 board should be fine.
  • 1 × 10-DOF sensor board A 10 degree of freedom sensor board, with a BMP085 pressure sensor, HMC5883L magenetometer and a MPU6050 gyro / accelerometer
  • 2 × 1520mm x 1020mm foam board The exact dimensions aren't too important as they can be scaled, but that's the foam I have available. Ideally, you'd get EPP foam sheets without paper covering. But I'm using art foam-core board, and it should work fine.
  • 2 × Duct Tape Rolls Any colour will do. Use different colours to look cooler. (and fly faster)
  • 1 × Mikrotik RB912UAG-2HPnD 600MHz CPU, 64MB RAM, miniPCIe slot, 1000mW integrated 2.4GHz radio, and supported by OpenWRT :)

View all 6 components

  • It's raining, it's pouring.

    cb2206/05/2014 at 09:27 0 comments

    Since it's winter here, I haven't had the chance to maiden the plane yet. It's just sitting next to my bed, and looking awfully sad. It's not so much the cold, but rather the rain and the wind that's a problem.

  • A small update

    cb2205/25/2014 at 09:50 0 comments

    Unfortunately I haven't had the time to post much, but having said that, the basic platform is almost ready. I've mounted the motor, installed the servos, and am busy adjusting everything for correct CG.

    Eventually (when they arrive) the flying wing will be carrying two 5000mAh 3S LiPo batteries from HobbyKing which will hopefully provide enough power for a decently long sustained flight. In the meantime, I've got my 3300mAh 3S LiPo hooked up, as well as weights, to balance out the plane.

    I'd like to maiden it within the next few days, that's when all the little niggles will start coming out, and the tweaking begins.

  • Build in progress

    cb2205/11/2014 at 19:19 0 comments

    I've never used this particular foam board before - it has a paper covering on it which adds quite a bit of rigidity at the expensive of, well, being paper.

    Since I had two sheets of foam, I stripped the one of its paper covering. This was a messy process, even though there are videos on YouTube showing people doing it in minutes, it took me ages with a hose pipe to get the thing clean. That's when I discovered just how much rigidity the paper actually added.

    Anyhow, the build is coming along nicely, although I do need some more foam glue and carbon fibre spars. I think that if I had kept the paper layer on, the carbon fibre spars wouldn't even be needed. The whole thing will be "laminated" with duct tape anyway, which makes it substantially tougher and somewhat water resistant.

    For scale, the long ruler in the picture is 1 m.

  • Designing the flying wing

    cb2205/08/2014 at 13:23 0 comments

    Flying wings are tricky things - as I've learnt the hard way, the CG is extremely important, much more so than on a normal plane. (Compare with incorrect CG vs properly adjusted). This can quite limit your options in terms of component placement. In a pusher design, you'll need heavy batteries up front to bring the CG to the correct location.

    A flying wing can be characterized by 4 basic parameters, the wing span, root chord, tip chord and sweep. There's a handy calculator online that will generate a wing as well as calculate the optimal CG location based on these parameters.

    The next step was to choose these parameters to maximize both capacity and flight time. I'm certainly not an aeronautical engineer, but going from online reading, as well as other videos on YouTube, you can figure out how these parameters affect the overall performance of the wing.

    Eventually, I thumb sucked some design parameters (deep-link to the calculator):

    Wing span
    Sweep Angle
    25 degrees
    Root Chord
    Tip Chord

    The wing span was chosen simply because that's the largest size of foam I can easily obtain, and the root chord and tip chord were chosen to be in a 2 : 1 ratio. The "airfoil" will be a KFm2, which is extremely easy to build, and apparently gives decent performance. Essentially it is just a stepped airfoil, with a single step on the top at 50% of the chord.

    Both the FPV49v2, from FPVTrond and the Raptor 140, by MyGeekShow served as the primary inspiration. This design will have the same airfoil and motor mounting style as the FPV, while keeping the elevon style from the Raptor.

    So far I've cut out the upper half of the KFm2 step. Hopefully I'll be able to finish assembling this soon and test it out, then get some proper build instructions up - as well as few videos of me crashing it into the ground :)

  • Getting the autopilot to co-operate

    cb2205/04/2014 at 18:29 0 comments

    I could just have gone and bought a complete APM system, but at a few hundred dollars, plus expensive shipping, I decided to go for a decidedly more budget route for the first autopilot system.

    Take a Cheap Arduino clone and add a Chinese 10-DOF board, and you get a cheap (~$50 total) platform that can run the ArduPilot code. Well, sorta. While the BMP085 and HMC5883L on the sensor board were both well supported, the IMU - a MPU6050 was not. At first glance I thought it was, as the ArduPilot code has a driver for the MPU6000, with the difference being that it drives the 6000 in SPI mode whereas the 6050 is I2C only.

     I contemplated writing an I2C driver for the chip - but some searching revealed that this had already been taken care of. The MegaPirateNG project has extended the ArduPilot code to support a greater variety of boards, including quite a few of the cheap HobbyKing ones. Once the code was compiled and loaded on to the  board, it was time to hook up the sensors.

    Or it would have been, if the Arduino clone ran off 3V3 or the sensors were 5V tolerant. Unfortunately neither of these are the case, and so getting it to work involved a bit of modification to the Arduino clone itself. In I2C, the bus is not driven high, instead pull-up resistors are used, and the bus is driven low.

    This makes level shifting fairly easy, since you can just tie the pull-ups to the lowest voltage you need to support, and provided it is still higher than the threshold for a logic level 1, things will work. Usually the Arduinos use the AVR's built in pull-ups to do this, but for some reason the Arduino Mega has extra 10k pullup resistors. I cut the trace to these, and added in some external pull-ups to 3V3.

    The rest was fairly straightforward. The channels from the radio receiver connect to the analogue input pins, and the PWM output pins are the output from the autopilot. It was a nice change not having to deal with and decipher a complicated pin mapping scheme, like on the Beaglebone Black or STM32s.

    Flying environments tend to be a bit inconducive towards breadboards, unfortunately.

  • Hello World!

    cb2205/03/2014 at 09:47 0 comments

    About time I put up a first post (or log, same thing). Unfortunately there's been a string of public holidays in South Africa and between those and work, I haven't had the chance to go and get the sheets of foam that form the base material for building the wing.

    The current photo is an earlier wing I built, based off the FPV49 design. It uses a KFm-2 aerofoil which makes for really easy construction, and had been scaled down to around 1m instead of the original 1.25m. The planned design for the wing for this project will have a longer wingspan, be less swept back, and have a higher aspect ratio - essentially trying to make it more efficient at the expense of control and stability.

    Not that this should be a problem for APM:Plane that will be doing most of the flying work. Over the next few days, I'll be playing around with the autopilot system, hopefully getting everything up and running. One of the downsides about living in South Africa is the extremely long shipping times, so instead of buying a ready made APM board, I got myself an Arduino Mega 2560 clone, and a 10-DOF sensor board.

    Photo unrelated, it's a shot I took from up on Table Mountain.

View all 6 project logs

Enjoy this project?



zakqwy wrote 07/26/2014 at 00:52 point
Any luck with the weather? I'm excited to see this thing take flight!

  Are you sure? yes | no

John Boyd wrote 07/16/2014 at 18:56 point
Have you considered using directional antennas to concentrate the RF energy down towards the ground? This could possibly allow the planes to fly higher and still have wifi reception, which would make the whole project "safer" from collisions with buildings and stuff

  Are you sure? yes | no

ThePentium wrote 07/12/2014 at 11:36 point
Interesting project. What kind of information would you need to share over the swarm network for full autonomy? Also, could you give a little more information about the associated network protocols the way they are implemented, etc. ?

  Are you sure? yes | no

Chip wrote 07/06/2014 at 16:46 point

  Are you sure? yes | no

Joseph Hansen wrote 06/23/2014 at 04:16 point
May I ask what type of motor your using?

  Are you sure? yes | no

Mike Szczys wrote 06/06/2014 at 23:14 point
Autonomous moving mesh network, what could go wrong? Ha!

I love the idea. Thanks for entering it in The Hackaday Prize. My advice for success is spend a bit of time documenting how the communication network works (protocols, error recovery, etc.) and how it could be used in other applications.

Good luck!

  Are you sure? yes | no

cb22 wrote 06/11/2014 at 05:32 point
Thanks for the comments Mike! With the weather here, it's getting a bit frustrating trying to wait for a good enough day to test the airframe. Sure, I want it to be able to fly in all sorts of conditions, but maidening it in rainy 40kph+ wind bursts? Recipe for even more disaster.

I've been working on just that, I thought having a RESTish API would be really neat (think, http://drone3.swarm1001.local/fly?lat=34.143&long=-118.151), with UDP multicast for inter-drone discovery, and something like BATMAN for routing.

  Are you sure? yes | no

mistertime wrote 05/26/2014 at 17:14 point
Isn't Google doing this with hot air balloons? Wouldn't it be better to us quadcopters, as they can hover? Either way, this is freakin' amazing.

  Are you sure? yes | no

cb22 wrote 05/26/2014 at 18:23 point
They are - hence the tagline! I considered quads, but one of the issues then becomes endurance. Getting a quad to hover for 1 hour+ is not an easy feat. Also, they suffer from the issue that should a single motor fail (in a quad, or more than one / your power system in a hex or octo) you pretty much fall out of the sky. With a standard plane, if you still have servo control you could pretty much land it with no issues.

I also have thoughts of these things being able to move around pretty freely (obviously within whatever local laws apply) - so one launched at a certain point might find itself circling 10km away.

  Are you sure? yes | no

mistertime wrote 05/26/2014 at 22:22 point
Hmm, good point. I think the height limit for there things is something like 250-300 feet or so. As for a quad's infeasability, well, I don't like helicopters because if the main rotor fails, you're screwed. In a plane, you can usually glide to relative safety. Also, post up there, "us should be "use", derp.

  Are you sure? yes | no

myfirsttattoo wrote 05/19/2014 at 16:02 point
I have my own project that I am going to add called 'Gargoyles' that would be complimentary. They come in 2 flavors. One is a lighter than air wifi drone and the other is a vertical take off, move, then land concept. The are both inteded to move for load balancing and peak usage..

  Are you sure? yes | no

cb22 wrote 05/26/2014 at 18:25 point
Interesting, it would be pretty neat if our projects could somehow link together - perhaps using a common communication protocol. Although I'm still quite a way from working on that side of things..

  Are you sure? yes | no

Jake wrote 05/02/2014 at 23:19 point
"NOTAQUAD" Excellent 10/10 How are these powered? And how long do you expect them to stay airborne and transmit? And how loud are they? Great idea btw:)

  Are you sure? yes | no

cb22 wrote 05/03/2014 at 09:27 point
Haha, thanks! At the moment - standard LiPo batteries. As for airborne time, I'm aiming for about an hour minimum - pretty much all of the endurance tests on diydrones and such that I've come across focus more on distance endurance rather than time endurance, and they can manage more than that while travelling at a fairly fast speed.

Here it would be holding a slow circling pattern pretty much just above the stall speed for most of the time. As for loudness, not very at all. You can't really hear it once it has some altitude.

  Are you sure? yes | no

RodolpheH wrote 04/30/2014 at 16:03 point
You could contact the OpenStreetMap community. Perhaps you could get other hackers to join on your project.

  Are you sure? yes | no

cb22 wrote 05/03/2014 at 09:29 point
I was contemplating the idea of adding cameras and capturing imagery - would sort of be like a free Google Earth, but people start going all sorts of crazy when you strap cameras to drones...

One use that I did have in mind for OpenStreetMap was road avoidance. The system would never maintain a holding pattern above an actual road, but we'll see how things come along.

  Are you sure? yes | no

Similar Projects

Does this project spark your interest?

Become a member to follow this project and never miss any updates