IC Hackathon 2020

Project Technical Report

IC Hack 2020 is the biggest student-run hackathon in the UK. Hosted by Imperial College London, it attracts hundreds of students from colleges around the UK to work on challenging problems with the most innovative solutions. This was my very first hackathon, and I worked alongside my friends to pursue a project we have been closely interested in. We aimed to create an off-grid radio communication device that can connect people in remote regions of the world without the need of internet connection. Many isolated regions of the world today with no internet coverage typically have two main options - erecting new telecommunication towers which are very expensive, or using satellite phones, which are bulky, inconvenient, and inflexible. Thus, we proposed another method, using a radio meshed network infrastructure that allows local communication to be deployed at low cost and low maintenance; whilst also being widely accessible to the ordinary person.

The concept we came up with was rather simple. Create a messenger application similar to WhatsApp that can connect to people using a meshed network infrastructure. This meshed network infrastructure is created through a series of LoRa (XBee) modules encapsulated within a handheld radio 'node', which will be carried by users - similar to a walkie talkie. The LoRa modules are connected to an Arduino MKR WiFi 1010 microcontroller, which allows messages to be encoded and decoded to and from the LoRa module, and passed on to the mobile phone application via WiFi.

An additional crucial feature is the SOS button in the handheld node, providing the ability to send a distress message to all other users within the mesh network should there be an emergency. Thus, a GPS module is also placed on the handheld radio node. Should a user face an emergency, e.g. a skiing accident, lost in a forest, etc., he / she can press the button. By doing so, the radio nodes of all users in the mesh network will begin to beep, and the location of the person in distress will be displayed in the mobile app's interactive map. Observe the CAD renderring of the radio node:

Each node within the mesh network acts as a form of a relay or intermediary between two user endpoints. Thus, the more user in the network and the more spread out they are, the larger the network will become, allowing long-range communication through a series of small hops and relays between radio nodes. Thus, if many people in a local community carry these radio nodes around, each node acts almost like a base station, thus simulating an internet environment (although allowing only local commuication). A future addition may be an internet gateway, which allows local mesh network to connect to the internet even when there are no base stations nearby. Observe the circuit diagram of the radio node modules:

The node, as mentioned, contains both the LoRa (XBee) modules, and the Arduino microcontroller. Since we are dealing with a wireless communication network, collision between radio messages occur relatively frequently when two nodes transmit simultaneously. Thus, a proper network infrastructure must be constructed to allow for a reliable, scalable, and fast transmission of data between radio nodes. A popular solution to this in wireless networks is the CSMA/CD. However, because our mesh network has no central node, this option was not feasible. Instead, we used the token ring system. Here, only a single node in the network will ever carry the token, and only nodes with the token are allowed to transmit at any one time. Whenever the node transmits a data (or if it passes the timeout window for transmitting data), the token will be passed on to the next node in the queue. The result is a very scalable, reliable, and dynamic network infrastructure that allows robust and fast transmission of data.

The Arduino MKR 1010 then connects to the mobile phone via WiFi. Messages sent by users via the mobile app is passed to the Arduino, which contains information about the source user, the target user, and the message content. The microcontroller then encodes this message and broadcasts the data throughout the mesh network until it reaches the target user (defined by its MAC address). Observe the mobile app user interface below:

At the end of the project, we received 2nd place for the category of "best hack for the community". It was truly inspiring to be able to build something that can impact communities positively, and will push me to take on greater challenges in future hackathons and work both inside and outside college.