.g8"""bgd db MMP""MM""YMM db `7MN. `7MF'
.dP' `M ;MM: P' MM `7 ;MM: MMN. M
dM' ` ,V^MM. MM ,V^MM. M YMb M
MM ,M `MM MM ,M `MM M `MN. M
MM. AbmmmqMA MM AbmmmqMA M `MM.M
`Mb. ,' A' VML MM A' VML M YMM
`"bmmmd'.AMA. .AMMA..JMML..AMA. .AMMA..JML. YM
Communication Assistance Technology over Ad-Hoc Networks
CATAN is an emergency communication system that can be deployed without other supporting infrastructure to assist an affected population report status information, receive information about the status of others, and communicate with relief personnel following a disaster. CATAN supplements existing tools such as Google Person Finder by providing a direct method of collecting and transmitting volunteered data from an affected site suffering a loss in connectivity.
CATAN is designed to bridge multiple wireless communication technologies using a mesh of portable "nodes". The nodes provide a web based user interface through Wi-Fi radios and (optionally) GPRS radios. They can optionally be configured to provide an SMS based user interface. The user interface allows users to report a basic set of status information that would be relevant to connecting with loved ones and assisting disaster responders. The nodes synchronize information via a custom peer-to-peer networking protocol. CATAN is designed to be agnostic to the data link used to communicate between peer nodes. The current implementation includes code to utilize UDP packets over a peer-to-peer Wi-Fi mesh network. It also provides code to link the nodes via amateur radios using the AX25 protocol. In order to disseminate information beyond the peer-to-peer network, CATAN provides the ability for a gateway node that has access to the Internet to upload data to an instance of Google Person Finder.
The core CATAN services are written in Python and designed to run in Linux on a Raspberry Pi device. The web base front end is written in PHP and also runs on the Raspberry Pi. The CATAN project includes software that augments the Wi-Fi router firmware (provided by the Broadband-Hamnet) to allow network flooding and code that interacts with OpenBTS to implement the SMS interface Also included are design files for 3D printing an enclosure for the node components.
The advantage of CATAN is its use of commodity off the shelf components to provide an emergency communication infrastructure at a minimal cost. It is designed to interoperate with the wireless communication devices that survivors of a disaster are likely to have access to. This type of technology should be of interest to the humanitarian assistance and disaster response (HADR) community.
For more information check out our presentation at ICCM 2014 or publication at GHTC 2015.
Email: catan@ll.mit.edu
These instructions should help you get a CATAN node up and running.
- Setup your raspberry pi with Raspbian and get it on the internet. Guide
- We provide a script to help copy the image over in raspberry-pi.
- Run raspi-config on the Pi and expand the file system and enable SSH.
- 1 Expand File System
- 9 Advanced Options
- A4 SSH
- <Enable>
- Exit, and reboot system.
- Ensure that the Pi is connected to the internet (and that you are connecting over eth0 for the initial setup).
- Run our setup script from another machine. This should install all dependencies and services for CATAN. The CATAN Node id cannot be zero.
./setup_new_pi.sh <ip address of pi> <CATAN Node ID>
Note: This install has only been tested and confirmed on Rasbian Jessie.
______ ______
_____ | USB0 | USB2 |
| ETH | | USB1 | USB3 |
-----------------------
- ETH - Ubiquiti Rocket M2 Router
- USB0 - Internet USB/Ethernet Dongle
- USB1 - OpenBTS USB/Ethernet Dongle
- USB2 - USB Extender to GPS
- USB3 - Wi-Fi Frontend card
- Username/Password: pi/raspberry
- IP Address for OpenBTS port: 192.168.0.3
- IP Address for WiFi interface: 192.168.2.1
- Internet should be DHCP, may require a restart
- UART:
screen /dev/ttyUSB<Number that Pi is on> 115200
- Connect your computer to the router and ensure that it receives and IP address over DHCP (10.X.X.X subnet).
- Flash the appropriate Broadband-Hamnet firmware onto the router, found in router_firmware. For example (ubiquiti_rocket2)
$ ./flash_ubiquiti.sh
- Then configure the router ID to the corresponding CATAN node ID (This requires a HAM radio license and callsign).
$ ./config_ubiquiti.sh
More detailed instructions in the router_software file
- Check to make sure that both hostapd and dhcpd are running:
$ ps aux | grep hostapd
root 803 0.4 0.2 5912 2680 ? Ss 20:48 0:02 /usr/sbin/hostapd -B -P /run/hostapd.pid /etc/hostapd/hostapd.conf
$ ps aux | grep dhcpd
root 2354 0.0 0.7 10488 7352 ? Ss 20:58 0:00 /usr/sbin/dhcpd -q -cf /etc/dhcp/dhcpd.conf -pf /var/run/dhcpd.pid wlan0
This work was sponsored by the Department of the Air Force under Air
Force Contract #FA8721-05-C-0002. Opinions, interpretations,
conclusions and recommendations are those of the authors and are not
necessarily endorsed by the United States Government.
© 2015 Massachusetts Institute of Technology
#How to test:
- You should be able to see CATAN services running with
$ ps aux | grep catan.
-
Also, the /opt/catan folder will include all of the runtime files for CATAN. Logs are stored in /opt/catan/log.
-
After you have two nodes running (each with its own radio) you can double check that the radios see each other by going to localnode:8080. In the main panel go to Mesh Status- you should be able to see the other node's radio under current neighbors.