Skip to content

Project Abstract : Develop firmware and experiments


Characteristic of a shift into the digital era, students have started to learn to code at an early age. However, most of the academic applications are currently centered around purely software based learning techniques such as simulations. The ability to easily access multiple control and measurement tools as well as analyze the results from one common platform (such as is common in advanced research labs ) enables students to design new experiments and further the spirit of science.

ExpEYES17 is such a platform precisely, and its architecture makes it an affordable tool for the masses, that has the potential to nurture young scientists.

Over this summer, I contributed to such a device based on my work from2014 onwards as documented on Hackaday, and published on the Debian repo. I worked with several frameworks such as EmberJS, Flask, Jekyll, and PyQt, and also got acquainted with platforms such as Heroku and Surge.sh . During the course of this programme, I wrote 15 blog posts outlining my work, and the organisation was mostly focused on getting publicity and counting commits rather than getting work done.

Mentors : Lorenz Gerber, Kiwi, Praveen Patil (Gnovi), Greg Austic, Ansgar Schmidt, Darwin Gosal, Wan Leung Wong, Ajithkumar bp, Mitch Altman, …

Progress report


For GSoC-17, I worked on several aspects of this Project:

* Desktop Applications:

The desktop applications consist of a range of PyQt based graphical utilities and apps that allow users to carry out a range of experiments. They rely on PyQtGraph for visualization of data, and Scipy and Numpy for data analysis. The package uses pslab-python repository for communicating with the hardware. * Desktop application: https://github.com/fossasia/pslab-desktop-apps : A clone of SEELablet which was already available on the official Debian repository. * Documenting several apps using Jekyll to render markdown files via templates. Docs for a few apps are still pending. * Cross checked a range of experiments and collected data. * Created screenshots, and made several schematics for documentation. * Added applications to calibrate the pslab using ADS1115 16-bit ADC module.

  • Screenshot of an experiment : Pendulum study using IMU sensors
  • Screenshot of a Docs Page made with Jekyll
  • Sample help Page: Interference of sound experiment

* Remote Laboratory : https://github.com/fossasia/pslab-remote:

The remote laboratory is essentially an EmberJS webapp paired with a Python-Flask API server that allows users to write and execute python scripts via the internet or local network. In the progress I have made so far, users can create accounts, and write a variety of Python scripts whose console output will be shown on the webapp. A framework for object oriented scripts is under development, and users are currently able to create button widgets, and relay the results of their callbacks to graphs as well as labels. * I Created an API server with python flask, and Postgresql. A live copy is hosted on heroku . A real device is not connected to the server, and a dummy class is being used instead. * Created a webapp made with EmberJS . A demo of the webapp hosted on Surge.sh. * Sign-up is not necessary; a demo account may be used; username: a@a.com , password:a * Heroku reaps free dynos after an hour of inactivity, so the backend may take up to 10 seconds to boot up and respond to the first request.


* Python Communication Library

This is a communication library written in Python that contains all the methods used to interact with the pocket science lab. * Was also a part of my previous work on vLabtool, and is documented on hackaday. * Made bug fixes in capture calls. * Assisted the android team to understand the various function calls during the porting process * My Contribution: Pull Requests, commits, issues


* Firmware Development : https://github.com/fossasia/pslab-firmware

The firmware is essentially a large state machine that squeezes out almost all capabilities of the central microcontroller of the device, a PIC24E series chip from Microchip Technology. * This is a codedump of the vLabtool firmware. refer first commit.
* uploaded the same during the proposal stage of GSoC-17. Should have insisted on a fork from my git page. * My Contribution: Pull Requests, commits, issues


* Hardware Design :

The PSLab hardware is a 4 layer circuit board designed with KiCAD by Dr Ajith Kumar . The hardware has a minimal bill of materials, and combines a powerful 64MHz microcontroller with a range of analog peripherals such as programmable amplifiers, Op-Amps, buffers, crystals etc. * Designed with KiCAD. * I also manufactured the device and supplied it to co-developers for development and testing.

  • Flow diagram of device