This is an old revision of the document!

OpenITP - Contractor Agreement #??-OITPDOS2013 “Grant 2”

In December 2013, The Serval Project commenced a second round of work for the OpenITP (Internet Tools Project) to release software images for the Serval Mesh Extender device and the Serval Mesh app for Android by the end of March 2014.

Section 1: Work to be Performed (Scope of Work)

  1. Release Mesh Extender software image
  2. Release Serval Mesh Android application

Attachment I

From the grant proposal:

Specifically, we [The Serval Project are requesting OpenITP's support in completing work unit 3, that together with an existing grant under consideration by the NLnet Foundation, and existing work that are have [sic] currently resourced, will allow us to complete stages 1 and 2, and thus release an easy to use and effective Mesh Extender software image, and an integrated version of the Serval Mesh Android application. This will allow the general public to form their own mesh telephony networks over interesting distances using our open-source software.



The work was completed in November 2014, six months later than the contracted date of April 30, 2014. The delay was due to staff absences, more-than-expected technical hitches in the Mesh Extender firmware installation process, and demands of other tasks such as preparation of grant submissions to sustain the Project financially and completion of the following contracts:

During December 2014 and January 2015, three pairs of Mesh Extender units were tested and shipped in working condition to the “Bleeding Edge” supporters of the Speak Freely crowdfunding campaign.

Work items performed

Several work items were performed to satisfy the contract:

The following work items were performed to demonstrate fulfilment:

  • W6. Flash, test and ship three working pairs of Mesh Extenders
  • W7. Provide technical support for Mesh Extender early adopters


W1. Build Serval DNA for OpenWRT

The Mesh Extender firmware is an OpenWRT image, so during February and March 2014, formal OpenWRT build and release support was added to Serval DNA:

  • The new sp-openwrt-release script was added to the serval-tools repository, to automate the process of releasing Serval packages for OpenWRT instead of developers making manual changes to the Serval OpenWRT feed repository.
  • The Serval DNA development Makefile was introduced to support an OpenWRT edit-compile-test development cycle using the local working copy of Serval DNA instead of its GitHub repository.


W2. OpenWRT release procedures


W3. Improve Serval Mesh "Connect" screen


W4. Release Version 0.92 of Serval Mesh


W5. Mesh Extender firmware

From July to November 2014, scripts and documentation for installing the Mesh Extender firmware on an TP-LINK MR2030 from scratch were developed and committed to the new Mesh Extender Builder GitHub repository. This work was complicated by several technical issues:

  • The develop-test cycle was significantly slowed by the need to re-flash and reboot a Mesh Extender on every single change.
  • The Sandisk USB flash pen drives that we had purchased to use in the Mesh Extender were defective: after some number of disconnects without a proper sync and unmount (ie, on every Mesh Extender hard reset), they would permanently revert to read-only mode. We contacted Sandisk, who confirmed they were aware of the issue but did not intend to correct it.
  • The OpenWRT image produced by W1 turned out to be slightly too big to fit into the MR2030 flash memory, so the serval-dna package had to be excluded from the core image and built as a module instead.
  • The original RFD-900 radio module serial flash loader utility was a Python script, which slowed down the MR3020 boot process and required the OpenWRT image to include the Python interpreter, so we developed new serial flash loader in C which reduced the boot time and allowed us to shrink the OpenWRT image by removing Python.
  • The RFD-900 radio module could boot into different serial settings, making detection of the module's firmware version slow and unreliable, so we decided to always upload the radio firmware on every boot.
  • The Auto Upgrade feature could not be tested while any other Serval Mesh nodes were active within Wi-Fi range, because upgrade images stored on other devices would interfere with the test.


W6. Test and ship Mesh Extenders


W7. Mesh Extenders technical support
content/activity/openitp2.1420645295.txt.gz · Last modified: 07/01/2015 07:41 by Andrew Bettison