PSLab - Pocket Science Lab

Open Source Pocket Science Lab from FOSSASIA

PSLab Hardware Repo PSLab Firmware Repo PSLab Android Repo

PSLab - Pocket Science Lab

The goal of PSLab is to create an Open Source hardware device (open on all layers) that can be used for experiments by teachers, students and citizen scientists. Our tiny pocket lab provides an array of sensors for doing science and engineering experiments. It provides functions of numerous measurement devices including an oscilloscope, a waveform generator, a frequency counter, a programmable voltage, current source and as a data logger.

We are developing the experiments starting on the hardware to libraries and user interfaces for desktop PCs and Android apps for smartphones. The PSLab project is inspired by the work of the Open Science Hardware community and the ExpEYES project.

New Front Panel Design

The desktop applications for 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 an 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

For desktop PCs a Python communication library and PyQt4 based graphic user interfaces are available for a number of experiments, that make PSLab a must have tool for programmers, hobbyists, science and engineering teachers and students.

Learn More...

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

The following code repositories of PSLab are available.

Installation How to install PSLab for Desktop PCs from source?

To install PSLab for Desktop PCs 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-desktop-apps and pslab-python

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 a PC 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....

PSLab is aimed at 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 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. The next step on our roadmap is to offer an Android app that enables students and teachers to conduct experiments on their smartphone.


PSLab Communication Function Calls..

PSLab Developers Curious Brains

Jithin B P

Founder and Developer at Cspark Research

Jithin is a young Scientist who founded Cspark Research. He designs and developes software and hardware for various scientific instrumentation including PSLab. He has a Masters in Physics from the Indian Institute of Science Education and Research, Mohali. Jithin developed several python powered lab tools and is mainly focusing on hardware and firmware within the PSLab project.

Praveen Patil

High School Physics Teacher in Belgaum, India

Praveen is a Physics teacher who loves FOSS, Fedora and Python. He is an organizer of Science Hack Day and has been a FOSSASIA-GSoC (Google Summer of Code) alumnus in 2014, 2015 and 2016. For PSLab he is developing new experiments and sensor plug-ins and supports student projects. He also works on teacher training programs.

PSLab Mentors and Contributors

Dr. Ajith Kumar B P

Senior Scientist at Inter University Accelerator Centre, New Delhi

Ajith is a senior scientist at the Inter University Accelerator Centre, New Delhi (IUAC). His work 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. Part of the project is ExpEYES, a computer interface for teaching physics and engineering.

Hong Phuc Dang

Science Hack Ambassador - For the love of Science!

Hong Phuc is an Ambassador of Science Hack Day, Founder of FOSSASIA, and Organizer of SHDs across Asia. Apart from the fascination in mathematics and technology Hong Phuc is interested in developing Open Technologies that 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. Professionally, Hong Phuc works as a consultant and researcher for International data research companies.

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 co-founded FOSSASIA. Mario is working on SUSI.AI following his interested in providing tools and Artificial Intelligence solutions for students, teachers, and scientists.

Lorenz Gerber

Postdoc University of Agricultural Sciences, Sweden

Lorenz is an analytical chemist by training. He works on developing analytical measurement equipments, mostly spectroscopy of different kinds. He is a postdoc of the University of Agricultural Sciences in Sweden.

Gi Soong Chee

Science and Informatics Teacher Singapore

Mr. Gi is a science and informatics teacher at Dunman High School, one of the leading co-educational high schools in Singapore in terms of academic results, and one of the largest government schools in Singapore.

Georges Khazandar

Lycee Jean Bart

Georges is a teacher of physics and chemistry at the Lycée Jean Bart, Dunkerque in France. He is a free software enthusiast and due to his efforts Science software like expEYES is now part of the Debian GNU/Linux distribution and it's derivatives like Ubuntu. He also helps with the documentation and localisation of applications and creates artwork.