PSLab - Pocket Science Lab

Python Powered Open Source Science Lab from FOSSASIA

PSLab Repo on Github PSLab-apps Repo GSoC-16 Project

PSLab - Pocket Science Lab

PSLab is a new addition to FOSSASIA Science Lab. This tiny pocket lab provides an array of necessary equipments for doing science and engineering experiments. It can function like an oscilloscope, waveform generator, frequency counter, programmable voltage and current source and also as a data logger.

The project is inspired from ExpEYES

New Front Panel Design

The control and measurement functions are written in Python programming language. Pyqtgraph is used for plotting library. A variety of experiments can be performed using GUI applications written in python. PSLab is interfaced and powered by USB port of the computer.

Features of PSLab - Various control and measurement tools

PSLab is equipped with array of useful control and measurement tools. This tiny but powerful Pocket Science Lab enables you to perform various experiments and study a wide range of phenomena.

Some of the important applications of PSLab are mentioned below...

  • 4-Channel, up to 2MSPS Oscilloscope
  • 12-bit Voltmeter. Programmable gain. Input ranges from +/-10mV to +/-16V
  • 3x 12-bit Programmable voltage sources/ +/-3.3V,+/-5V,0-3V
  • 12-bit Programmable current source. 0-3.3mA
  • Supports Advanced Plugins/Add-on Modules
  • 4-Channel, 4MHz, 15nS Logic Analyzer
  • 2x sine wave generators. 5Hz to 5KHz. Manual amplitude control
  • 4x PWM generators. 15nS resolution. Up to 8MHz
  • Capacitance Measurement. pF to uF range
  • I2C, SPI , UART data buses for Accel/gyros/humidity/temperature modules etc

Python based communication library and experiment specific PyQt4 based GUI’s make PSLab a must have tool for programmers, hobbyists, science and engineering teachers and also students.

Learn More...

PSLab Code Repositories - ........

The following are the code repositories of PSLab.

Installation How to install pslab from source?

To install PSLab on Debian based Gnu/Linux system, the following dependencies must be installed.

			PyQt 4.7+, PySide, or PyQt5
			python 2.6, 2.7, or 3.x
			NumPy, Scipy
			pyqt4-dev-tools          #for pyuic4
			Pyqtgraph                #Plotting library
			pyopengl and qt-opengl   #for 3D graphics
			iPython-qtconsole        #optional

Now clone both the repositories pslab-apps and pslab

Libraries must be installed in the following order

1. pslab-apps

2. pslab

To install, cd into the directories
and run the following (for both the repos)
$ sudo make clean
$ sudo make 
$ sudo make install
Now you are ready with the PSLab software on your machine :) For the main GUI (Control panel), you can run Experiments from the terminal.
$ Experiments

Communicating with PSLab Getting started...

Connecting to PSLab is as simple and straight forward as this...

>>> from PSL import sciencelab
>>> I = sciencelab.connect()     #Returns None if device isn't found
# An example function that measures voltage present at the specified analog input
>>> print I.get_average_voltage('CH1')

Various sensors can be connected to PSLab and data can be fetched with a simple python code as shown below...

>>> from PSL.SENSORS import HMC5883L #A 3-axis magnetometer
>>> M = HMC5883L.connect()
>>> Gx,Gy,Gz = M.getRaw()

Example 1: Capturing and plotting a sine wave

Connect WG1 to CH1 and run the following code.
			>>> from pylab import *
			>>> from PSL import sciencelab
			>>> I=sciencelab.connect()
			>>> I.set_gain('CH1', 3) # set input CH1 to +/-4V range
			>>> I.set_sine1(1000) # generate 1kHz sine wave on output W1
			>>> x,y = I.capture1('CH1', 1000, 10) # digitize CH1 1000 times, with 10 usec interval
			>>> plot(x,y)
			>>> show()
The output of the program is here... sine1

Design Your Own Experiments Enables user to design new experiments without coding....

One of the main target group, the PSLab is aimed at, is high-school science teachers and students, who may or may-not be familiar with the computer programming. For such users it is difficult to design or develop new experiments on their own. They may also find it difficult to fetch the data and plot required graphs, if a ready-made GUI is not available for that particular experiment.

To enable such users to quickly design a simple experiment for studying various phenomena, we have developed a simple Experiment Designer GUI. This incorporates few controls, read-back elements and easy functions to select parameters and plot graphs.


PSLab Communication Function Calls..

PSLab Developers Curious Brains

Jithin B P

Cspark Research

Young Scientist in the making. Masters in Physics from Indian Institute of Science Education and Research, Mohali.

Jithin is working on instrumentation for labs and has independently developed severel python powered versatile lab tools, latest one is SEELABLET - An instrumentation cluster for science and engineering experiments.

Designs and developes software/hardware framework for various scientific instrumentation including PSLab.

Praveen Patil

For the love of Physics!

A Physics Teacher who loves FOSS, Fedora and Python. Organizer Pybelgaum and Science Hack Day India

Praveen has been a Fossasia-GSoC (Google Summer of Code) alumnus (internship for three years 2014, 2015 and 2016). Involved in developing new experiments and sensor plug-ins for ExpEYES and PSLab. He is also mentor for Google Code-In with FOSSASIA. Actively involved in ExpEYES project, teacher training programs and currently working on Pocket Science Lab along with Jithin B P.

Designs new experiments and developes GUI's for PSLab

PSLab Mentors and Contributors

Ajith Kumar B P


Ajith is a senior scientist, at Inter University Accelerator Centre, New Delhi. His work mainly involves the design and development of particle accelerators and associated experimental facilities. He has developed control and data acquisition systems for particle accelerators using open source tools.

The Phoenix project is the brainchild of Dr. Ajith. His selfless and dedicated efforts led to the latest development ExpEYES- a computer interface for teaching physics and engineering. ExpEYES is currently the cheapest educational system available to teach science.

Dr. Ajith Kumar does designing, developing experiments and writing software and documentaion for all the equipment from Phoenix project.

Hong Phuc Dang

For the love of Science!

Ambassador Science Hack Day, Founder FOSSASIA,Organizes SHDs across Asia.

Apart from the fascination in mathematics and technology she is interested in how technology can improve peoples live. As a member of the FashionTec working group she works on topics of mathematical grading of garment patterns.She also coordinates the Google Summer of Code program of the project.

She is also a core-member of GNOME.Asia and FOSSASIA. Professionally, Hong Phuc works as a consultant and researcher for an International data research company.

Mario Behling


Mario is a German born technologist with more than a decade of experience in international ICT development, start ups and events organization. He is the founder of Lubuntu and one of the main organizers of FOSSASIA.

Mario is also one of the founders of Loklak -Tweet Engine for Humans and Machines of the Internet of Things

Lorenz Gerber

For the love of Science!

Analytical chemist by training. Worked with analytical measurement equipment, mostly spectroscopy of different kinds. Currently, postdoc at the Swedish University of Agricultural Sciences in Sweden.

Gi Soong Chee

For the love of Science!

Teacher at Dunman highschool, singapore

Georges Khazandar

Lycee Jean Bart

Teacher of physics and chemistry at lycée Jean Bart, Dunkerque, France. Free software enthusiast

Due to his efforts expEYES software is now part of Debian GNU/Linux and it's derivatives like Ubuntu. He did the localisation of software and documentation, French versions are already available, Created a logo. Introduced PHOENIX in Europe, first using in his school, then took to others. Manages the expEYES resository on github. Suggested a lot of creative ideas for the project.