Our media lab Deckspace SPC has started collaborating on a Horizon2020 research project titled MAZI. We are installing the MAZI toolkit on Quintessence in order to work with the bargee community. SPC’s main project within this research collaboration is Creeknet.
The mazizone will first live in our living room. The mazizone will be used as a boattr log & research journal (using WordPress), as well as local sharing device (using NextCloud) & the MAZI guest book, allowing the community of neighbors around Quintessence to share the boattr know-how. Ideally those mazizones could also mesh with each other (but therefore the Raspberry Pi would need two Antennas). Something to add onto the ToDo list of MAZI.
The code for the mazizone can be found on GitHub.
MAZI backend
The MAZI Backend has been designed and developed in order to handle low-level communication between the MAZI toolkit’s hardware and the MAZI Portal. Moreover, it can be used by developers or advanced MAZI toolkit users to configure a MAZI Zone or build one from scratch. You can find below a guide on how to execute these scripts from the command line in order to modify your MAZI Zone.
In case you are using one of the MAZI Zone images, you can find the back-end scripts in the following folder
cd /root/back-end
Also, you can clone this repository into a Raspbian image to build a MAZI Zone from scratch, check here for more info.
Prerequirements
Install the following packages:
$ apt-get install python-pip
$ pip install speedtest-cli
$ apt-get install sshpass
$ apt-get install jq
$ apt-get intsall sqlite3
$ apt-get install batctl
$ echo "batman-adv" >> /etc/modules
Guide
mazi-antenna.sh
The mazi-antenna.sh script has been created in order to manage an external USB adapter that is connected to the Raspberry Pi. This script is able to check if a USB adapter is connected to the Raspberry Pi. In addition, you can discover the available networks in range and connect to one of them. Finally, you can disconnect the USB adapter from the connected Wi-Fi network.
Usage:
sudo sh mazi-antenna.sh [options]
[options]
-i,--interface Set the interface
-a,--active Shows the SSID of the interface
-s,--ssid Sets the SSID of the Wi-Fi network
-p,--password Sets the password of the Wi-Fi network
-l,--list Displays a list of the available Wi-Fi networks in range
-h,--hidden Connect to hidden Wi-Fi network
-d,--disconnect Disconnect the USB adapter from Wi-Fi network
mazi-wifi.sh
The mazi-wifi.sh script is responsible for creating the Wi-Fi Access Point on the Raspberry Pi. With this script, you can also modify the settings of your Wi-Fi Access Point.
Usage:
sudo sh mazi-wifiap.sh [options]
[options]
-i,--interface Set the interface
-s,--ssid Sets the name of the Wi-Fi network
-c,--channel Sets the Wi-Fi channel
-p,--password Sets the Wi-Fi password
-w,--wpa [OFF/off] Turns off wireless network security
You can simply start (or restart the Wi-Fi Access Point if it is already started) without passing any argument.
sudo sh mazi-wifiap.sh
mazi-resetpswd.sh
In case you have forgotten your MAZI Portal administrator password, this script enables its recovery. Once you run the mazi-resetpswd.sh, the password changes back to the default “1234” and then you can access the MAZI Portal and change it through the first-contact page.
Usage:
sudo sh mazi-resetpswd.sh
mazi-sense.sh
The mazi-sense.sh script has been created in order to manage various sensors connected to the Raspberry Pi. This script can detect the connected sensor devices and consequently collect measurements periodically with a specific duration and interval between measurements. In addition, it can store these measurements in a local or remote database and check the status of the storage procedure, as well.
Usage:
sudo bash mazi-sense.sh [SenseName] [Options] [SensorOptions]
[SenseName]
-n,--name The name of the sensor
[Options]
-s , --store Stores the measurements in the database
-d , --duration Duration in seconds to take a measurements
-i , --interval Seconds between periodic measurements
-a , --available Displays the status of the available sensors
-D,--domain Sets a remote server domain (default is localhost)
--status Displays the status of store process
[SensorOptions]
-t , --temperature Get the Temperature
-h , --humidity Get the Humidity
-p , --pressure Get the current pressure in Millibars
-m , --magnetometer Get the direction of North
-g , --gyroscope Get a dictionary object indexed by the strings x, y and z
The values are Floats representing the angle of the axis in degrees
-ac , --accelerometer Get a dictionary object indexed by the strings x, y and z
The values are Floats representing the acceleration intensity of the axis in Gs
mazi-app.sh
The mazi-app.sh script enables the control of the status of the installed applications such as the Etherpad, the Guestbook, the LimeSurvey and the Interview-archive. You can start, stop or display the status of the above applications.
Usage:
sudo sh mazi-app.sh [options] <application>
[options]
-a, --action [start,stop,status] <application> Controls the status of the installed applications
mazi-domain.sh
The mazi-domain.sh script enables the modification of the MAZI Portal’s domain and the change of the splash page.
Usage:
sudo sh mazi-domain.sh [options]
[options]
-d,--domain Sets a new network domain of the portal
-s,--splash Sets a new splash page
mazi-internet.sh
The mazi-internet.sh script is able to modify the mode of your Wi-Fi Access Point – currently – between offline and online as the managed mode has not been implemented yet. In the offline mode, clients of the Wi-Fi Access Point have not access to the Internet and are permanently redirected to the Portal splash page. In the online mode, the Raspberry Pi provides Internet access through either the Ethernet cable or an external USB Wi-Fi adapter.
Usage:
sudo sh internet.sh [options]
[options]
-m,--mode [offline/online/managed] Sets the mode of the Wi-Fi Access Point
mazi-current.sh
The mazi-current.sh script displays the settings of the Wi-Fi Access Point that has been created in this MAZI Zone. You can view information such as the name, the password and the channel of the Wi-Fi Access Point. You can also see the domain you are using for the portal page, as well as the active interface that broadcasts the Wi-Fi Access Point – in case you have plugged in an OpenWRT router. Finally, this script informs you about the mode of your Wi-Fi Access Point (offline, online, managed).
Usage:
sudo sh mazi-current.sh [options]
[options]
-i,--interface [wifi|internet..] Shows the interface that used for AP or for internet connection respectively
wifi Interface for Access Point
internet Interface for internet connection
mesh Interface for mesh network
all Shows all available interfaces
-c,--channel Shows the Wi-Fi channel in use
-m,--mode Shows the mode of the Wi-Fi network
-p,--password Shows the password of the Wi-Fi network
-s,-ssid Shows the name onan f the Wi-Fi network
-d,--domain Shows the network domain of the MAZI Portal
-w,--wifi Shows the device that broadcasts the Wi-Fi AP (pi or OpenWRT router)
mazi-router.sh
The mazi-router.sh script is used for the management of the OpenWrt Router connected to this MAZI Zone. After connecting an OpenWrt Router this script is able to detect it and control the status of the connection, (activate/deactivate).
Usage:
sudo sh mazi-router.sh [options]
[options]
-s,--status Displays if the OpenWRT router exists
-a,--activate Activates the OpenWRT router as the Wi-Fi AP of this MAZI Zon
-d,--deactivate Disconnects the router and restores the initial settings of the Raspberry pi built-in Wi-Fi module
mazi-stat.sh
The mazi-stat.sh script enables the observation of system activity data of the Raspberry Pi such as the CPU temperature, the CPU usage, the RAM usage, the Storage usage, the Download/Upload speed and the number of users connected to the Wi-Fi network. You can also see information about the SD card such as capacity and whether or not the filesystem has been expanded. Another functionality is the storage of these data in a local or remote database. In addition, you have the ability to flush these data from the database in case you do not need them.
Usage:
sudo sh mazi-stat.sh [options]
[options]
-t,--temp Displays the CPU core temperature
-u,--users Displays the number of connected users
-c,--cpu Displays the CPU usage
-r,--ram Displays the RAM usage
-s,--storage Displays the card storage in use
--sd Displays information about the SD card
-n,--network Displays the Download/Upload speed
-d,--domain Set a remote server domain (default is localhost)
--status Shows the status of store process
--store [enable,disable,flush] Controls the status of the storage process
mazi-appstat.sh
The mazi-appstat.sh script enables the collection of statistical data from the applications installed on the Raspberry Pi and the storage of these data in a local or remote database. In addition, you have the ability to flush these data from the database in case you do not need them. At the moment, you can collect data from the following applications, Guestbook, Etherpad and Framadate.
Usage:
sudo sh mazi-appstat.sh [Application name] [options]
[Application name]
-n,--name The name of the application
[options]
--store [enable,disable,flush] Controls the status of the storage process
--status Shows the status of storage process
-d,--domain Sets the server domain to be used for storage (default is localhost)
mazi-mesh.sh
With mazi-mesh.sh script you can expand the range of the Wi-Fi Access Point by creating a mesh network. To be able to create a mesh network, you must have more than one Raspberry Pi devices. One of these should be chosen as a gateway while the others as nodes. The Raspberry Pi that was chosen as a gateway is the main node of our topology, as it hosts the Portal of the MAZI toolkit, forwards internet in the mesh network and provides IP to the other nodes and their clients through the DHCP server. The Raspberry Pi that was chosen as a node is a relay of our mesh network, it redirects its clients to the gateway. Finally, you can restore the initial settings with the portal mode.
Usage:
sudo bash mazi-mesh.sh [Mode] [Options]
[Mode]
gateway Operates as a gateway node
node Operates as a relay node
portal Restore to the Portal settings
[gateway Options]
-i, --interface Set the interface of the mesh network
-s, --ssid Set the name of the mesh network
[node Options]
-i, --interface Set the interface of the mesh network
-s, --ssid Set the name of the mesh network
DIY networking can serve two complementary objectives:
1) to improve Internet connectivity in a certain region or local area
2) to support local interactions and services.
DIY networks can be seen as “organic”: they are created by local communities, reflect local culture, and the data they use can be generated and consumed in the same place. DIY networks can also bring people together, face-to-face, instead of keeping them online all the time.
Since these types of networks are owned and operated by individuals, significant coordination can be required around various issues: from purely technical, like the underlying networking protocols, to more social and political, like the design of the applications running on the network and the governance of the whole ecosystem (access and resource allocation, cost recovery, community support, conflict resolution, etc.). For such interactions to be productive and fruitful, one should carefully distinguish between the two main roles of a community network, Internet access vs. local services, and their possible combinations.
The MAZI project is exploring the important reasons why such networks should also be promoted as infrastructure for hosting local services, built and used by local communities.
Further Reading
Antoniadis, P. Apostol, I. Gaved, M. Smyth, M. Unteidig, A. (2015) DIY networking as a facilitator for interdisciplinary research on the hybrid city. Hybrid City Conference, Athens, September 17-19th.
Smyth, M., Helgason, I. (2015). Life at the Local Scale: An alternative perspective on the urban. In: Hybrid Cities – Data to the People. Athens, Greece. DOI: 10.13140/RG.2.1.3740.2083
Antoniadis, P. Apostol, I. The right(s) to the hybrid city and the role of DIY networking. Journal of Community Informatics, special issue on Community Informatics and Urban Planning, vol. 10, 2014. [publisher]
Antoniadis, P. Ott, J. and Passarella, A. (eds.) Do It Yourself Networking: an interdisciplinary perspective. Dagstuhl reports, 4(1): 125-151, June 2014. [publisher]
Creeknet, is one of four project pilots being operated as part of the MAZI initiative which will bring together components for a neighborhood network toolkit. This will feature a guide for those establishing or improving on open wireless and offline collaborative systems, advising on cost effective hardware and open source software solutions, whilst refining tactics and tutorials.
To help co-ordinate and explore the many options, we worked with MAZI partner University of Thessaly, Greece, to establish a suite of software to test and use in our local networks. Etherpad is a collaborative writing tool and OwnCloud is a document and media management system. UTH role is to co-ordinate and consolidate toolkit components and the first prototype, on a RaspberryPi disk image is available for testing featuring these and small selection of complimentary applications. In the simplest mode, presents a ‘stand alone’ wireless access point running webserver and other local services to promote working together. Without internet connection, any requests for webpages are redirected to local webpages listing services and describing options.
During recent workshop at the Prinzessinnengarten in Berlin, we heard about progress of MAZI pilot ‘Common Ground‘ during launch of Neighborhood Academy building in the garden. Their prototype ‘interview station’ enables one 2 one interview recording and publishing process. Completed interviews are published directly to their offline server prototype for review and comment by those visiting the garden academy. The same combination of powerful software options and offline network server was in use during the recent Unmonastery at Kokkinopolis, a two week meeting in the Olympus mountains in Greece where it was first tested by them for communal exchange and interaction.
Kraftwerk1 housing cooperative in Zurich is working with Nethood to identify suitable evolutionary path away from their proprietary cloud information system. Their inspirational living model has been a great success and with growth of cooperative housing across Switzerland there is increasing interest in mapping of methods and monitoring of progress not least at Inura.
The ‘Creeknet’ pilot began in April 2016 describing first impressions and identified groups from the local area whom SPC have worked with in the past, to propose key issues and ideas to explore.There are many aspects to consider, changes to the built environment here are continuing at a rapid rate, some groups are being sidelined with conditions for living and working in the area facing disruptive challenges as well as opportunities.
Our role as advocate for user owned and operated information infrastructures is well known in the area. SPC worked with individuals, neighborhoods and local businesses from 2001 on a series of DIY low tech network projects, last represented by OWN, the open wireless network established 2008. Today the effects of population churn, rise of portable computing, concerns for personal security as well as long term exposure to the elements have reduced the operational status of OWN to a shadow of it’s former self.
The afterglow of positive experiences gained over eight years is now being rekindled with the prospect of renewed offline network development, expressing a passion for the ‘local’, celebrating neighborhood news and wider collaboration. The access to broadband provided by OWN in the area, needs re-doubling if it is to serve the co-ordination demands of MAZI ‘offline’ network development and monitoring of process. This process is now underway with new connections being upgraded between Deckspace in Greenwich and Minesweeper on the creek. From there we will continue to redistribute access to locations of activity nearby.
Monumental civil engineering and relentless apartment block building is underway throughout the area, bringing changes to the environment for everyone. For some it will mean the end of affordable rents for both domestic and workspaces. For others, this area of London is where overheads are still comparatively low. It will certainly result in increased traffic, noise and pressure on services, a transformation in the mix of people and expectations.
Pollution concerns over quality of water, air and electrosmog, processing of rubbish and recycling urgently seek answers. The Creekside Centre and other Deptford Creek groups are already working on the creeknet MAZI pilot to build on existing relationships and operate more effective information sharing and neighborhood network solutions. With these issues in mind early installations will include a range of passive environmental sensing of sound, light and radio.
The opportunity for social interaction in the area is limited to the few publicly accessible parks, pathways and the remaining pubs alongside west and eastern banks of the creek. A few new public areas have being created which have yet to be understood and adopted. For example the new footbridge at the mouth of the Deptford Creek, completes