BeagleBoard/GSoC/Seismometer

=BeagleBone Remote Seismometer Node =

Student: Mariya Tsvarkaleva Mentors: Stephanie Lockwood-Childs, Steve Arnold Code: https://github.com/mariyagcv/Seismometer Wiki: http://elinux.org/BeagleBoard/GSoC/Seismometer GSoC: Not Applicable

=Status= This project is currently just a proposal.

=Proposal= Tasks completed: 1. Created accounts on Github, eLinux, Freenode and Google Groups. 2. Created a "Hello World" application, cross-compiled and executed. Generated a pull request, link here

About you
IRC: mariyagcv Github: https://github.com/mariyagcv School: University of Manchester Country: UK Primary language (We have mentors who speak multiple languages): English Typical work hours (We have mentors in various time zones): 8AM-5PM BST Previous GSoC participation: No previous experience.

About your project
Project name: BeagleBone Remote Seismometer Node

Description
This project's main goal is to develop a low-cost interconnected system that will detect seismic activity and help us understand the nature of earthquakes better, and possibly predict minor shocks. This will be implemented by using a system of multiple RSNwBB, whose primary function will be to log data, send it to a centralized server and display it as a web interface. The following modules will form the project: Modules 1. "The nodes": a BeagleBone board with various sensors, but most importantly an accelerometer. As an additional idea, it would be very interesting to experiment with adding other types of sensors, such as temperature, pressure and humidity. I have found a project from last year which could be a good starting point [1]. I am planning on evaluating its performance as soon as I have access to a development board, and discuss this with my mentor. In terms of programming, there will be code for accessing the accelerometer and sending data to the server. Data will also need to be compressed and sent in packages rather than requests each time new data is available, in order to avoid network and server overloading. I will need to perform tests in different network conditions in order to optimise data transfer. Most of the coding for this module will be done in C / C++. For accurate testing purposes, I will build a device that will move the sensor in a controlled manner, so that accuracy of different types of accelerometers can be evaluated. I will attempt building a minimal version of the testing setup presented in [2]. Ideally one should be able to provide a magnitude and the device should be able to simulate what the node might experience during a real earthquake (including simulating noise). Such a device will consist of servo motors and a platform, and its purpose will be to convert up and down motion received by sensors into magnitude. 2. A server that integrates with QCN client software and also sends processed data to a user interface. Python seems like a good option for this due to flexibility and the various signal processing libraries it offers. As a further development of the project, an API could be built for accessing meaningful statistics. 3. A user interface allowing for the data to be visualized. This will include graphs, using Chart.js [3] and easy access to statistics from aggregated data. I will make use of various web tools, such as HTML, CSS and JavaScript.

Timeline
2018-04-23 - 2018-05-14: Community Bonding Period Getting more involved in the community, checking out different projects and learning about development on BeagleBoard. Discussing the workflow with mentors and splitting work into smaller deliverable parts.

2018-05-14: Milestone #1

Evaluating [1] on an actual board, documenting any issues that I run into with installing the module. If the module works well, start turning it into a proper npm package, so that it’s easily installable.

2018-05-21: Milestone #2

Build the earthquake simulator platform for testing the device.

2018-05-28: Milestone #3

Write unit and integration tests that integrate the testing device with the node. Jointly evaluate their accuracy

2018-06-04: Milestone #4

Build a basic web interface and ensure that there’s a full pipeline. Deliverables for first evaluation: code for one node, installable as a node package.

2018-06-11: Milestone #5 2018-06-18: Milestone #6 2018-06-25: Milestone #7 2018-07-02: Milestone #8 2018-07-09: Milestone #9 2018-07-16: Milestone #10 2018-07-23: Milestone #11

Experience and approach
I am currently a student at the University of Manchester doing a BSc in Computer Science. I have always been fond of dealing with both hardware and software, and as the nature of this project makes it necessary to be skilled at both, I am more than excited to work on it. One source of inspiration for me to start exploring hardware has been other students' projects at the university,which in turn motivated me to built a hardware hack at a hackathon in Edinburgh. For my project I implemented the use of an Arduino board with the final goal of building a remotely controlled device that simulates an instrument out of air pumps and bottles with water. In addition to this, I've also worked on projects using Raspberry Pi and FPGA boards. When it comes to software, I am confident that I can contribute to working products using various programming languages, as I am experienced with using web development tools to build web applications. I am very motivated and having no other commitments during the summer, I am doing this to learn as much as possible and get involved with the open-source community

Contingency
I will make sure to keep in touch with the mentor regularly and avoid miscommunication, but in case I find myself stuck and no mentor is available, I will make use of BeagleBoard's strong community support. In addition, I think there’s a lot of supporting information available alongside some very good documentation.

Benefit
Developing a BeagleBone Remote Seismometer Node network will benefit in detecting and understanding better earthquakes. Being portable and inexpensive, BeagleBoard nodes can be easily deployed around the world and create an efficient and powerful monitoring system. The project also has a lot of room for growth, as many additional functionalities can be implemented, such as multiple types of sensors for detecting temperature, pressure, and humidity, and many more.