Some of the hardware used to produce the prototypes
Rate limited version of the network with 2 primary nodes
These beauties are the prototypes
The propagation of anti-net neutrality movements over the past few years has resulted in a politically and economically unfavorable environment for consumers. Areas which were, at one point, struggling to provide services like broadband connections to their citizens, are now in a situation even more dire. The removal of regulation on ISPs' service rates has left municipal governments with little to no budget for any telecommunications infrastructure, leaving thousands of people disconnected. Cepheus aims to provide a cost-effective and scalable solution to this problem; a headless solution.
What it does
Named after the constellation, Cepheus is an RF project that enables users with no previously existing telecommunications infrastructure, to create a fault tolerant, scalable and cost-free mesh-network. The headless architecture produces a highly decentralized, self-sustaining p2p network, where every participant is as much a contribute to the network, as they are a user. The protocol supports WiFi 2.4Ghz & 5Ghz, Bluetooth 4 and NFC, and can thus integrate with other preexisting devices in an area, such as smart phones, home networks, cellular networks and LoRA networks.
How I built it
The baseline model utilizes Arduino Nanos as the controllers and multiple NRF24L01 RF modules as the implementation vectors. These parts were chosen specifically for their cheap retail prices and rapid deployment capabilities. The back-end is written wholly in C++17, and exposes a standard networking API for future implementations. The baseline model is capable of 2MB/s data transfer rates, on a network of only 2 nodes and the network performance scales exponentially with the addition of nodes (roughly 2^n).
Challenges I ran into
Reducing the noise from external sources, specifically from cheap switch mode PSUs that have a high degree of AC ripple on their supply lines, as well as reducing the noise from reflected signals and other resonant signals in the same frequency band, proved to be quite difficult. The solution, was a combination of 10uF filtering capacitors across all supply lines to ground, as well as, software-defined, pull-down resistors on all signal lines from the NRF24L01 modules.
Another major obstacle in the way of development of this project, was time. I usually attend hackathons in teams of at least 2, and thus can coordinate work accordingly. However, I am the sole member for this team. While this decision was a major limiting factor, reducing both the range and scale of the possibilities that would, have otherwise, been achievable.
Accomplishments that I'm proud of
The protocol is quite complex and I'm indescribably pleased that it works, given the amount of signal and channel multiplexing required for node discovery and authentication. I hoped to expand the domain of this project, further than the prototypes; using React Native applications to demonstrate protocol capabilities and platform-agnostic design; and using OpenCL to deploy kernels over idling devices in the network. I was not able to achieve these goals in the 36-hour time span. Nevertheless, I am satisfied with the results, given the challenges faced.
What's next for Cepheus
I plan to expand the implementation platforms, firstly to Android and IOS devices, then to system platforms and cellular networks. Further, the decentralized and client-volume-based model I believe that, with the right care, this project has the potential to introduce networking capabilities in third world countries and areas of the world where hard-lined infrastructure is not practical, and thus not available.