After recent environmental events, PG&E cut our power resulting in internet service outages across California. In the few days without power, we caught a glimpse of what it meant to live without the internet. Today, caught up with the latest iPhone, we often forget that almost half of all people have no internet access and many others have limited internet access. We sought to create a cheap easily deployable internet solution that could function independently of a grid. This internet solution could be deployed in communities where internet access is limited or non-existent and after natural disasters where communications and infrastructure are compromised.
What it does
AtomicNet is a low-cost mesh network of raspberry-pi nodes that work together to provide communication and information in a low bandwidth network. Each node is equipped with a wifi module so that it may connect to nearby wifi devices or other nodes and optionally a radio module so that it can connect to nodes further away (up to 2km).
On top of this network, we built four main applications which we call the Atomic Suit: Electron Chat, a messaging app; Protron Forums, online forums; Neutron Library, a collection of all Wikipedia articles; and Lepton Link, a connection to the full internet (available when an exit node is connected).
These four apps are able to provide communications in a disaster situation. Relief personnel can use Electron chat to communicate with victims, good samaritans can use Proton forums to post about new materials they have for donation, victims can use Neutron Library to learn about ways to improve their situation, and families can use Lepton Link to communicate with loved ones.
These four apps also provide core internet services to those in developing countries who lack consistent internet access. Friends can chat over Electron chat, communities can organize through Proton forums, and students can learn on Neutron Library.
The network nodes themselves are made of the Raspberry Pis 0s, lithium-ion batteries, charge circuits, a wifi router, and an optional solar panel. The lithium batteries are able to keep the Pis running for two days. This ensures if there is a prolonged power outage or no sunlight (for solar-powered Pis), the network will remain running.
Unfortunately, we did not get the chance to add LoRa radio transceivers to our Pis (we didn't bring any with us) but we designed our system to be compatible with them. We purposely designed our system to use a low bandwidth that the lower frequency transceivers would be able to transmit in a timely fashion.
How we built it
The backend is is a mesh network made using BATMAN-adv, and a server written in Golang that uses a PostgreSQL server as the database.
Challenges we ran into
One of the biggest challenges we had was how to network multiple Raspberry Pis together, because the MakeSchool network had network segmentation, and prevented us from connected the Pis to each other easily.
Another challenge we had was to build an entire software suite in 24 hours. Each of the four applications that individually could have taken months to design, develop, and debug had to be written in a matter of hours. While we were unable to code perfected versions of each app, we were able to create a first version for each.
Accomplishments that we're proud of
We are proud of being able to network raspberry Pis together and coding the Atomic Suite in so little time. Also, we are proud of being able to adapt to learning new languages that we may not have used before. In addition, Wikipedia which due to its scale, proved difficult to parse especially when writing code that would run on a $10 computer. We hashmaps to achieve an o(1) when processing Wikipedia data.
What we learned
We learned how to use React and ANTD. This was something we had wanted to learn for a while and it was great to finally learn React and use it in a project. We also learned the ins and outs of batman-adv, the software we used to help network the Pis. But more importantly, we learned the value of teamwork and collaboration, and how to work better and more effectively as a team.
What's next for AtomicNet
In the future, we hope to further refine the Atomic Suite while also allowing other developers to create applications for Atomic Net.
In addition, we would like to program drones to airdrop Atomic Net Nodes. In the event of a disaster, drones can drop AtomicNet nodes at predetermined locations. A drone-enabled system would allow for a rapid deployment of AtomicNet during emergencies. Since it will be a nonprofit and sold at cost, with sufficient donations, we can quickly spread the scope of AtomicNet and increase the access of Internet to more places than ever.