Skip to content

Instantly share code, notes, and snippets.

What would you like to do?
GSoc 2019 Work Product - Neel Trivedi

Google Sumer Of Code 2019 Work product summary

Student Name:

Neel Trivedi (@neel1998)




PSLab Android


Lorenz Gerber, Marco A. Gutiérrez, Abhinav Raj, Avjeet Singh, Mario Behling, Kok Wai Gie, Chung Wei Tat, Madhushanka Padmal


It was really great experience for me to work with FOSSASIA on PSLab Android project this summer as a part of GSoC 2019. The project is really exciting and I learned a lot while working on it. I had an amazing working experience with really great mentors.

About the project:

PSLab is a small USB powered hardware extension for your Android phone or PC that lets you measure all kinds of things. PSLab comes with a built-in Oscilloscope, Multimeter, Wave Generator, Logic Analyzer, Power Source, and we are constantly adding more digital instruments. PSLab is many devices in one. Simply connect two wires to the relevant pins and start measuring. The main aim of this project was to improvise and add more features to PSLab Android application.

Major Areas of My Contributions and Goals Achieved

Community Bonding:

I had started contributing to PSLab Android project prior to GSoC so I was familiar with the codebase. During the community bonding period, I focused on fixing some already existing bugs. I also worked on enhancing User Interface for some of the components of the app like Wave Generator and Data Logger.

Some of the major goals achieved in this period

  • Added functionality to user built in Gyroscope in the Android application

  • Implemented delete all logs functionality

  • Implemented feature to import saved logs file from local storage

  • Implemented Save Graph for most of the instruments

  • Added layout for a new feature of Robotic Arm Controller


Phase 1:

During the first coding phase I focused more on issues related to the core functionality of the application. I fixed some major issues with Oscilloscope and also worked on adding logging functionality to many instruments. I also finalized the implementation of Robotic Arm.

Some of the major goals achieved in this period

  • Added continuous logging and reading to Multimeter

  • Added main functionality and save timeline feature to Robotic Arm

  • Added save configuration feature to Wave Generator

  • Fixed major bug realated to simultaneous output of multiple channels in Oscilloscope

  • Implemented Fourier Transform option to Oscilloscope

  • Added XY plotting feature to Oscilloscope

  • Added Playback logged data option to Oscilloscope


Phase 2:

During the second coding phase I worked on stabilizing the application. I added two flavors to the app to support Google Maps and Open Street Maps. I also worked on adding basic architecture for Bluetooth communication to the application.

Some of the major goals achieved in this period

  • Added Curve fitting to Oscilloscope

  • Fixed Built-In mic functionality in Oscilloscope

  • Added interface to scan and connect to Bluetooth

  • Added continuous logging and playback to Power Source and Multimeter

  • Added Play Store and Fdroid flavors to the application


Phase 3:

During the final coding phase I fixed some long pending issues of Logical Analyzer and Oscilloscope. I also worked on project repo size from 1.9 GBs to around 60 MBs. I added a new architecture to the application to allow communication over ESP Wi-Fi module. I also worked on PSLab Firmware a bit to add basic ESP server code. I also added support for a new MQ-135 gas sensor. I also added a new feature to generate config files for PSLab board.

Some of the major goals achieved in this period

  • Fixed output issue of Logical Analyzer and added logging and playback to Logical Analyzer

  • Added feature to use MQ-135 gas sensor to log amount of gases in the air

  • Added ESP server code to PSLab Firmware

  • Added Altitude meter feature to existing Barometer

  • Added new architecture for Wi-Fi communication in the Android app

  • Added Actionbar to all instruments for a consistent application design

  • Completely upgraded Wave Generator User Interface

  • Added feature to Generate Config file for PSLab board.

  • Worked on adding feature to add visulization of waves in Wave Generator

  • Made many UI/UX changes for better workflow of the application


Code Contributions:

Outreach Events:


Presentation to explain the project and my Work

Additional Links

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment