Camlab TRUEscience project
This project covers every aspect of the TRUEscience Bluetooth
® laboratory probe product. The project involved designing the hardware and firmware for the probe, as well as the accompanying Android app. The app shows live readings from the probes, and supports multiple probes, stock inventory, logging, alarms, calibration, CSV data backup, live help and quick access to the shop.
I implemented the majority of the Android app and some Bluetooth® firmware. My colleague worked on the hardware design and implemented the majority of the firmware. We worked together on the Android app's architecture. We were in regular communication so that each part of the system met without issue.
What I worked on
- The app had to support different types of probes. Each type of probe supports their own specific features. For example, a Redox probe does not have a calibration process, whereas a pH does, though it is different to a Disolved Oxygen probe's calibration.
- Products could be added to the user's own Inventory, though in a way that allows the user to add multiple instances of one product. This meant that each inventory item had their own display name and expiry dates, yet still had the core product data, like manufacturer name and product number.
- Both readings from real Bluetooth® probes and probes that have app-generated readings (i.e. test probes) share a common interface. This allows for creating a useful test environment.
Testing environment: Espresso, Mockito
- Creating automated tests to combat any regressions
Bluetooth® Smart/Low Energy
- All normal Bluetooth® Smart tasks: extracting data from the advertising packets, reading/writing GATT characteristics, etc.
- Catering for different Android Bluetooth® stacks that are used by the tablet manufacturers
- Catering for Wifi®/Bluetooth® combination modules in cost-effective Android tablets, and their issues
- Using the brand colours in a way that makes the app recognisable and readable
- Followed the Material design guidelines, though not diverting away from the 'scientific application' visual specification
- Layout is responsive to the screen size; the app is usable on phones to tablets
- Logging data and stored readings can saved to backup services, or sent by email. This is sent in Comma Separated Values (CSV) format.
- App downloads updated product lists from Camlab's server. This allows up-to-date data without requiring an app-update via the Google Play Store.
- The app can send an email when a probe reading alarm goes off. For the email to be sent automatically, it cannot be sent from the tablet (i.e. the user's gmail address). This is due to anti-spam restrictions in place by Google. We ended up consulting Camlab's email server with the alarm email contents and asking it to send the email to the user-defined recipient.
- The circuit tester version of this app uploads rows of data to Google Spreadsheet using the Spreadsheets API.
- Creating characteristics
- Handling incoming/outgoing data, and writing to and reading from characteristics
- Tweaking power consumption