This is an old revision of the document!
OpenITP - Contractor Agreement #??-OITPDOS2013 “Grant 2”
Section 1: Work to be Performed (Scope of Work)
Release Mesh Extender software image
Release Serval Mesh Android application
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:
. Flash, test and ship three working pairs of Mesh Extenders
. 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 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