Thursday, March 29, 2012

Serval Overlay Mesh Can Now Ping

Okay, so it is one small step, but for us it is a significant one: the Serval Overlay Mesh can now ping nodes, simply using the Serval network identifiers (that are really stand-alone public keys in the NaCl CryptoBox key space):


It looks just like normal ping, except for those really long addresses (256 bits).  What is important for us, is that behind the scenes we have the Mesh Datagram Protocol (MDP) working, and all of the supporting infrastructure that goes behind it.

This means we are getting closer to carrying phone calls over MDP, and that is significant, because it lets us enjoy great transparent super-strong cryptography to protect the privacy of people making calls on a Serval phone.

It also lets us use non-IP based transports to carry the data, such as UHF and VHF radio based long-range mesh technologies that we are working on.  We are having some really encouraging conversations with one phone manufacturer about including UHF long-range meshing into their phones, which would be great, as it would provide hundreds of metres range indoors and potentially one to a few kilometres outdoors under ideal conditions.

Such improved range compared with WiFi makes mesh telephony much more useful, as it means that fewer mesh phones are needed in an area to allow communications to occur.  With WiFi you need someone in just about every house with a mesh node if you want to connect a community, because the range is about one house.  But the long-range meshing would increase that range to perhaps a 5 to 10 house radius.  In that context only a few percent of homes need mesh devices, which is much easier to achieve.

Meanwhile, I should get some sleep and then get back to writing software.

Saturday, March 3, 2012

KiwiEx 2012: Installing and Updating Software In A Simulated Disaster

(Please take a look at our crowd-funding campaign at igg.me/at/speakfreely.)

KiwiEx 2012 has just finished, and I am sitting in Wellington Airport with a few spare minutes to write down some thoughts about the experience.

First, it has been amazing to spend a week with the exceptionally bright and dedicated volunteers of the New Zealand Red Cross IT&T Emergency Response Unit (ERU).  These people are all volunteers giving up their valuable time for training, and also for potential overseas deployment to help provide communications support for Red Cross activities anywhere in the world.  This IT&T ERU is one of only five in the world, and the only one outside of Europe and the USA, which shows the calibre of the group.

To provide some context, the ERU is the team that deploys HF and VHF radio systems and satellite-backed internet access for other Red Cross teams.  Thus, they are frequently working in areas with no available terrestrial communications infrastructure.
Setting up the HF and VHF Radio Mast For the Emergency Operations Centre (EOC)

The primary function of KiwiEx was to provide a simulated deployment exercise to aid team readiness for potential deployment.

Along side this, the secondary goal of the exercise was to test various new technologies to see if they would be helpful for the ERU, and possibly for other users within the New Zealand Red Cross and other Red Cross national societies.

The Serval Mesh was one of these new technologies being test-run at KiwiEx, with a focus on Serval Rhizome store-and-forward and the Serval MeshMS infrastructure-independent short message service, which is similar to SMS on cellular networks.

Charging Phones Ready For Roll-Out
Rhizome allows the sharing of files between mesh-enabled phones, even if they are not all in range of one another at the same time.  MeshMS allows text messaging between phones -- all without relying on any infrastructure.  The Serval software was also combined with software from Kestrel and hardware from de Lorme that allows the entering of free-form or structured information into an electronic form on an Android phone that is then relayed via the de Lorme inReach (which uses the Iridium satellite constellation) back to an internet-enabled portal that can display the entered information in real time.  The Serval Mesh software was also complemented with the ability to deliver MeshMS between teams using the inReach satellite link as the back-haul.


This combination can also provide real-time tracking of people on the ground via the GPS receiver in the inReach unit.  Keeping track of their personnel is very important for the Red Cross, not only to maximise their effectiveness, but also to keep their people safe.

Pre-Exercise Briefing
Following Serval's approach of assume zero infrastructure (including no satellite internet, and possibly even no GPS), we also provided a mesh-based mapping application that uses Rhizome to share location and point-of-interest (POI) information among phones on the mesh.  This allows the Emergency Operations Centre (EOC) in the field to get this useful information, even when outside communications are not possible.  If internet access is available, the information can be pushed to the internet and visualised there.


The intention was to test if these various technologies (and combinations of them) were actually practical. In this regard, the tests were very successful: about 50 succinct data reports and a number of Serval MeshMS messages were pushed via inReach back to Kestrel's internet portal; more than 11,000 tracking points were obtained from more than a dozen phones allowing the reconstruction of team movements during the week; and more than 86MB of data was pushed around the mesh using Rhizome.

The ERU Team Familarise Themselves With The Serval Mesh Phones
Rhizome proved it's value several times over during the exercise, enabling bulk data transfer without any supporting infrastructure, and without requiring that all phones be on the mesh at the same time.

The KiwiEx Amenities Block
Indeed, Rhizome worked so seamlessly that it wasn't until I had pushed several software updates and a local map to the phones on the mesh that the significance of what we had done really dawned on me:  we had been transferring data at broad-band speeds, delivering software updates and critical operational data and telemetry over a network that contained no infrastructure.  Phones delivered data to other phones as required.  By the time I had pushed an update to the mesh and told the team leaders about it, it was available on their handsets.  It just worked.  It was amazing.

Serval Mesh Phone and inReach on Dash-Board Relaying Data via Iridium Satellite and Serval Rhizome
Sending a Message via Satellite In The Field
The fact that phones were moving around an area of several hundred square kilometres, and being turned on and off at various times was unable to overcome Rhizome's termite-like relentlessness in steadily nibbling away at transferring data whenever it could.  Where as many other protocols try a few times to complete a transaction, Rhizome's design allows it to keep trying for as long as it takes. Also, where as many other mesh protocols suffer from exponential bandwidth decay as the hop count increases, Rhizome is able to transfer large amounts of data easily because it only ever moves files one hop at a time, and thus does not need any routing information.
Boiling the billy, Kiwi style, in a Thermette.


Similarly, when at the end of the exercise I wanted to collect all the photographs that various people had taken during the exercise and shared to the mesh, all I had to do was find any mesh phone, and copy the pictures, because they all had a copy of all of the photographs.

The early feedback from the ERU team has been very encouraging, and they have made many valuable suggestions to enable us to improve our software.  Above all, their enthusiasm for what Serval will be able to do for them in the near future was a wonderful vindication of our approach of assuming no infrastructure, but using whatever infrastructure is available.

Thursday, March 1, 2012

At KiwiEx 2012 (part 1)

This week I have been participating as an Observer at KiwiEx 2012 with the New Zealand Red Cross as part of a process for evaluating a combination of our Serval Mesh and Serval Rhizome software with software and hardware from Kestrel and de Lorme respectively to create a satellite-connected mesh network that can relay team tracking and situation awareness / common operating picture to the outside world, and allow the on-mesh sharing of software, photos, intelligence and other data that is too large to push up via satellite.  In fact, I am on a satellite link right now, so this will be a quick post, with more (and more pictures) to come.

But for now, some pictures:

A Serval-enabled phone in use tethered to a de Lorme inReach iridium satellite module sending data back to base.
We also did some tracking, just using the Serval Mesh to get the data back to the EOC (no iridium satellite), using Serval Rhizome to replicate data among the phones.  I then collected it from just one phone back at base.  All automatic and painless. Rhizome has been an amazing capability this week, being used to collect data and push out software updates at the same time.
Here is a view of the Emergency Operations Centre (EOC) the team set up.  VHF/HF radio masts and satellite (for internet and telephone) in the foreground.  EOC is in the shearing shed in the foreground, and those of us lucky enough slept in the two cottages in the distance, while the exercise participants camped in a field about a kilometre away.


I got to be part of the team that provided "interference" for the simulated exercises that is the principle purpose of KiwiEx.