Wireless mesh networking

Hi all,

I am interested in setting up a wireless mesh network using a collection of BBBs (and possibly other devices). Does anyone have experience setting up a wireless mesh network using BBB?

I am not really interested in a so-called “wireless distribution system” that is used to extend an SSID across a wide area using wireless mesh networking. I am much more interested in setting up a network of cooperating nodes that talk with each other (and to the internet via a gateway/mesh portal connected simultaneously to the internet and the mesh).

In particular, I’m interested in:

  • What distro and kernel are you using?
  • Ideally this would be with one of RCNs Debian images, but if not, I’m interested in what you might have used.
  • If you have done something with a Linux based system other than a BBB, I’d like to know about that too.
  • What mesh routing protocol was used? Batman, Babel/AHCP, HWMP, OLSR, …
  • Steps to configure the mesh network and gateway.
  • Did you use 802.11s? If so, presumably using the 802.11s support in the kernel?
  • WiFi chipset that was used (presumably supporting mesh mode). SOFTMAC or HARDMAC?

I have researched the topic fairly extensively and can probably set something up via trial and error myself. Prior to diving into that, I wanted to see if anyone has already done some work with wireless mesh networking and BBB (or something else) and would be willing to share their experience and knowledge!

Thanks in advance.



I am using 802.15.4 (Zigbee) to connect BBBs together for security penetration testing. I am running my custom Linux, The Deck, to do this, but you should be able to do the same with Debian or Ubuntu (which mine is based on). Logic systems started selling capes for this. I have been making my own. Design is in my book http://store.elsevier.com/product.jsp?isbn=9780128007518 and I’m planning to sell some capes commercially as well soon. One warning about the Logic Systems capes: they lack the EEPROM which tells the BBB what they are so you need to manually set that up on the BBB using the device tree overlays.

Thanks Phillip. I’ll have a look at your book.

Actually, I am really interested in 802.11 based mesh networks because of bandwidth requirements. I am interested in 802.11 based mesh networks and routing protocols and how to configure things to setup this style of wireless mesh network. I am thinking that the 802.15.4 stuff relies on the Zigbee/Xbee mesh routing stuff rather than the 802.11s stuff in the recent Linux kernels.



It really depends on what you are trying to do. The nice thing about Zigbee is that you can configure the modems and then sit back and let the network form, heal, etc. without any work on your part. If you are only interested in communications between nodes then Zigbee is a great choice unless you need high speeds (250kbps is typical max speed). This book http://shop.oreilly.com/product/9780596807740.do has lots of good info on Xbee/Zigbee (most of which is in my book) and is geared more toward Arduino.

A tip on my book: Syngress currently has a deal where you can buy the print book and get a DRM-free eBook for free till October 9 at http://store.elsevier.com/product.jsp?isbn=9780128007518. Be sure to add both to your shopping cart to get the free eBook. The deal code is BOGO.

Hi Brian,

I had evaluated babel, OLSR, and Batman-adv two years ago on a test network of 5 beaglebones to demonstrate wifi mesh networking. I concluded Batman-adv was the one to explore further. I was using Robert Nelson’s ubuntu (3.2 kernel) on beaglebone white then. I had tried three different long range wifi dongles from Alpha. The black one (http://www.amazon.com/Alfa-AWUS036NHA-Wireless-Adaptor-Compatible/dp/B004Y6MIXS) has Atheros ar9271 chipset and has the best kernel support on Beaglebone. The more common model is based on realtek rtl8192cu chipset. Back then rtl8192cu driver on arm was not anywhere near ready. I would still strongly prefer AR9271 based wifi dongle today. I had to use a USB Y-cable to make sure there is sufficient current during boot time to power up the wifi dongle. BB only has a USB host port, so this was a bit inconvenient. I resorted to tie the 5V and GND lines of the USB to a 5V supply to ensure smooth boot.

With a 14" omnidirectional antenna and tx-power cranked up full, I was able to sustain decent connectivity at ~300 meter per hop during field demonstration.

For batman-adv, I configured every node’s bat0 interface on 192.168.50.x subnet. (wlan0 has its own static address assignment in /etc/network/interfaces)

When starting a mesh node, a startbatman.sh is called that has the following:

modprobe batman-adv
ifconfig wlan0 mtu 1528
batctl if add wlan0
ifconfig bat0 up

batctl gw client
ip route del default
ip route add default via

On the node serving as gateway through its eth0, I had the additional lines for Network Address Translation.

sysctl net.ipv4.ip_forward=1
iptables --table nat --append POSTROUTING --out-interface eth0 -j MASQUERADE
iptables --append FORWARD --in-interface bat0 -j ACCEPT

You could add an @reboot line in /etc/crontab that calls your startbatman.sh on reboot every time.

I have not updated this since the switch to 3.8 kernel, but I am pretty sure it would work on the current Debian image. I would recommend you use the 3.14 kernel to benefit from the more reliable USB.


Nice work there! You could also look into cjdns it may fit your needs

Just try to implement mesh network by using raspberry and my usb wifi dongle is edimax ew 7811un with realtek rtl8192cu. But I still cannot ping each other, refer to explanation that you ever use rtl7811cu, could you help me what the problem so I cannot ping each othe. I have been setting all node with same ssid and channel but still cannot connect,

I am use batman-adv with openwrt router

在 2014年9月27日星期六 UTC+8上午5:30:02,Brian Anderson写道:

Are you wanting to do this on WiFi or something else. I have zigbee capes for connecting these together.