Table of Contents
Serval Mesh Extender (Formerly Mesh Helper)
Difficulties with Ad Hoc Wi-Fi
Ad Hoc Wi-Fi is problematic on many Android phones, requiring a custom ROM to use. Interoperability problems also exist between various Ad Hoc Wi-Fi firmware. Ad Hoc Wi-Fi also has higher energy requirements compared with “managed” Wi-Fi.
Wi-Fi in general has limited range, in particular on mobile telephones that lack substantial antenna. Experience suggests maximum range of 100m - 170m outdoors and 10m - 30m indoors. This means that almost every dwelling would require a mesh node to allow connection across an urban or peri-rural setting. For rural settings Wi-Fi simply fails, regardless of the uptake because dwellings are more distant than the maximum achievable range.
Another vital characteristic is to ensure that Mesh Extenders installation consists simply of turning the device on: There should be no aiming of antennae, network configuration or other skilled tasks required. This ensures that the product can be easily and effectively used by anyone who has need.
Also, aiming is impossible for a portable device is simply not possible. This is one reason why aimed long-shot Wi-Fi is not a solution.
As Wi-Fi is not a complete solution, we wish to allow the use of other radio interfaces to connect devices. Also, for nearby devices, we wish to provide a Wi-Fi Access Point, so that energy consumption of the mesh nodes can be minimised.
Thus we wish to make a small device, perhaps looking very similar to a mobile telephone, that is a Wi-Fi AP, and also allows the use of a variety of other radio interface to provide longer-range and more energy efficient mesh networking. The device could also offer an HTML interface to the mesh, so that devices lacking the Serval Mesh software could still participate, and potentially download the Serval Mesh software if so desired.
At the highest level, the device will consist of:
- a Wi-Fi interface capable of running both AP and Ad Hoc mode at the same time
- an Arduino™ or similar micro-controller to provide a flexible interface on which to attach arbitrary radio interfaces
- a standard interface to the Arduino, to communicate to the radio modules and also to update the Arduino firmware as required.
This results in a simple interface that can be prototyped on existing hardware, such as a Dragrove, as well as form the basis for a reference implementation for later incorporation into specialised hardware, that will quite likely be based on smart-phone hardware.
The initial prototype will be based on a Dragrove with a HopeRF23BP UHF radio module. The Dragrove is an OpenWRT Wi-Fi enabled router with a built-in Arduino™ compatible interface.
We are also looking at prototyping using the 2nd generation Mesh Potato (MP2.0) from VillageTelco, as it has more RAM and FLASH than the Dragrove, a much faster processor, and it has 11 available GPIOs, enough to connect an Arduino. Best of all, it also has a USB port. This means that the first prototype round can actually use the USB port to connect to an Arduino UNO, simplifying the prototype design process, and also allowing for developing the Arduino/radio interface software on a real computer, and then copying the software onto the MP2.0 when it works, instead of having to debug on an embedded device.
But while we wait for the MP2.0 to become available, are are looking at solutions based on off-the-shelf wireless routers, and more recently cheap Android stick-PCs.
Prototyping on TP-LINK MR3020 - This is our 2nd generation prototype developed during our crowd-funding campaign in 2013.
Prototyping on TP-LINK WR703N / Mesh Potato 2.0 - This is the 1st generation prototype
Prototyping on OLinuXino A13 + ATH9k Wi-Fi Module - Another prototype we considered, but are not currently pursuing.
Prototyping on OLinuXino iMX233 + TP-LINK WR721N/722N - Another planned prototype that has been cancelled for now.
Prototyping on MK808B Android stick-PC - This was a planned 2nd generation prototype that has been cancelled.