CEMN: Community Engagement Mesh Network

What started as a paper design in the first round of the HackADay prize to connect people in developing countries using either Peer-To-Peer networks on handsets augmented with a wireless  mesh network has evolved to a refined design that tries to address some on the realities in the communities of under developed countries: limit budgets for infrastructure, lack of access to advanced manufacturing techniques, lack of free exchange of information and a lack of trusted sources of information.

The CEMN is design to be  secure (encrypted) and authenticated messaging system that can be deployed cost effectively in undeveloped and disadvantaged regions. It is made up of off the shelf modules so it can be assembled locally. As many sub-systems as possible tried to use potentially available local materials so the construction could be done locally.

Text messaging is the most cost effective means of getting information out in developing countries by government and non-government organizations. Because of the cost of sending text messages by individuals it is often a one way conversation. CEMN provides a way for people in developing countries to have a two way conversation by having the community own the network.

The design used off the shelf hardware component modules so that the design could be a plug and play as possible. It relied heavily on open source software to implement the features such a fault tolerance of the mesh network and message server software to handle messaging. Being  able to freely exchange, trusted information is something we take for granted in developed nations. In some countries it is against regulations to import any technology that encrypts communications, so the designer chose not to use some of the open source encryption schemes and software add-ons. In addition as the network could be potentially be closed with no connection to the great World Wide Web, due to their being no third party infrastructure in the region, the use of trusted third party sources to validate hosts are problematic and many of those open source encryption schemes depended heavily on third party sources to create secure connections. The designer decided on a more simplistic scheme to encrypt the messages and to provide validation. The encryption can be implemented after the fact without importing an explicit encryption technology into a country. The encryption schemes were chosen to not be  overly elaborate, so programmer without encryption and security experience could implement them, but effective enough as to be considered secure.

The challenge of this project was to create a system that could be deployed affordably, be maintained by people with no advance technical training, be fault tolerant as it may be months before trained staff can be in a remote region and be self powering in the absence of centralized power sources. Fault tolerance is a key important element in an environment where ownership of the infrastructure by the locals is not guaranteed. As a result regular servicing is not always done. There are countless examples where clean water infrastructure has been left to fall apart due to the lack of regular care.

This was not a project about creating the newest and the greatest technology. It was a project that tried to understand the cultural and economic realities of the end users and then create a solution that provided real world services that are needed and desired to its end users.  The CEMN App user experience mirrors that of sending traditional text message and messages are limited to 117 characters with longer message broken into 117 characters chunks. The restriction on character length is due to the asymmetric encryption scheme used.  Everything was done to balance simplicity with a reasonable level of security. Methods of facilitating longer methods are available but the designers wanted the CEMN Message App to feel familiar to end users. 

The project background, design specifications, description of the solution, parts list and instructions  are contained in the "Technical Specification" document contained in the Project Files here on HackADay. In addition the software and any additional supporting documentation is available on GitHub.


Link to video for the project: