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.
The Pocket Science lab 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 was happy to be able to work on the Pocket Science Lab project with Fossasia. It has been a learning experience in collaborative editing, and 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 these are listed in the next section.
Introduction to the hardware and the state machine firmware. This post includes flow diagrams and fancy application screenshots and how-to's
My take on the problem that this device addresses, with some case studies.
Temporally accurate data acquisition via digital communication pathways in PSLab. Deals with acquisition of sensor data with accurate timestamps which enable precise extraction of frequency and phase data
Using the dust sensor DSM501a with the logic analyzer. Explains how to use the logic analyzer to interpret the output, and calculate the occupancy ratio
Creating a highly flexible I2C interface. This post shows how the pslab's sensor libraries are designed to be highly flexible in order to enable creation of GUIs with zero extra code. All menus and plots are autogenerated via parameters defined in the libraries.
Introduction to experiments with diodes. Explains the results from some of PSLab's experiments such as band gap calculations.
Introduction to transistors. Experiments such as using transistors as amplifiers, studying the common emitter characteristics etc are shown in this post
Calibrating the PSLab’s Analog Features. Any instrument is only as good as its voltage reference and calibration procedure, and this post details the calibration routine.
An introductory post about my plans to build a framework to remotely access the Pocket Science Lab via the internet.
A walkthrough on how to create an API server and deploy it on Heroku. Also includes testing with Postman chrome extension.
Submit a function string from the webapp, and view the results in a modal. A very elementary blog post which introduces us to the API methods and Ember components.
Tutorial on how to deploy the API server on Heroku, and the webapp on Surge.sh
Helping users to create object oriented apps with minimal lines of code
Including JQplot to enable plotting arrays returned by capture routines
A how-to guide on writing a simple python script that will create an oscilloscope utility with capture1, capture2, and capture4 function calls
This post is a guide for users who wish to test the remote access framework for PSLab.
The PSLab 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.
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.
This is a communication library written in Python that contains all the methods used to interact with the pocket science lab.
The firmware is essentially a large state machine that squeezes out almost all capabilities of the central microcontroller of the Pocket Science Lab, a PIC24E series chip from Microchip Technology.
The PSLab hardware is a 4 layer circuit board designed with KiCAD which is an excellent open-source EDA. 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.