Phase 2#
Phase 2 Begins: Expanding Functionality and Enhancing Compatibility#
During this phase, my primary objective was to add support for new instruments within the app and ensure compatibility with the latest hardware. To familiarize myself with the sensor libraries and the project’s code style, I began by fixing the existing BMP180 Temperature Sensor functionality both in the Python library and the app.
Adding Sensors#
I successfully added the following proposed sensors to the app:
VL53L0X Time-of-Flight Proximity Sensor:
The VL53L0X utilizes a time-of-flight principle, where it emits short infrared laser pulses and measures the time it takes for the pulses to travel to an object and back, providing millimeter-level accuracy.
It offers a long-ranging capability with a maximum range of up to several meters, depending on the target surface characteristics and ambient lighting conditions.
The sensor can perform distance measurements quickly, with typical measurement times in the range of a few milliseconds.
The VL53L0X is capable of detecting multiple targets within its field of view simultaneously. This feature is useful for applications such as occupancy detection, object tracking, and multi-touch interfaces.
CCS811 Digital Gas Sensor:
The CCS811 sensor can detect a wide variety of volatile organic compounds (VOCs), including alcohols, aldehydes, ketones, and organic acids.
In addition to VOC detection, the CCS811 sensor is equipped with a built-in carbon dioxide (CO2) sensor. It can measure CO2 levels in the atmosphere
The sensor employs dynamic baseline correction algorithms to compensate for sensor drift over time. This ensures long-term stability and accuracy in VOC and CO2 measurements
The CCS811 sensor includes on-chip processing capabilities, allowing it to perform real-time data processing and output calibrated air quality measurements directly to the host microcontroller.
APDS9960 Gesture, Color, Proximity and Ambient Light Sensor:
It can accurately measure red, green, and blue (RGB) light levels, allowing it to detect and differentiate between different colors in the environment.
It includes an ambient light sensor capable of measuring the intensity of ambient light.
It can detect the presence of objects or obstacles in close proximity to the sensor. It emits infrared (IR) light and measures the reflection to determine the distance between the sensor and nearby objects.
One of its standout features is its ability to recognize a variety of hand gestures, such as swipe, flick, and circle motions.



CI/CD Pipelines#
I worked on the following improvements in the release pipeline of the project:
Automatic Screenshots: Worked on a workflow to automatically capture app screenshots during each new release and upload them to the Google Play Store while updating the app from the beta track to the production track using
fastlane
, streamlining the release process.Release Pipeline: Developed a release pipeline for the documentation repository, migrating the build and deployment processes from Travis CI to GitHub Actions.
Miscellaneous Work#
During this period, I also worked on the following:
Updating Commands for Compatibility: Refactored the app’s commands to ensure compatibility and functionality with the PSLab V6 device and the latest firmware version.
Wireless Connectivity: Started work on integrating the
ESP8266 ESP-01
chip with the board to facilitate wireless communication with the device.
Phase 2 marked the successful completion of the project, where key features were integrated, and the final improvements were implemented. Again, wrapping it up one week ahead of time gave me the oppertunity to test out other instruments in the app.