Temi Robot Bluetooth App

As part of a college research project, we were placed into teams to build an Android app connecting a Temi robot with 3rd party Bluetooth devices. The project’s objective was to help hospital staff gather data from medical devices by allowing a Temi to roam their facility, connecting ad-hoc to Bluetooth-enabled medical devices.

Description

The primary use case for this project was to have Temi connect to Bluetooth devices and push to or pull data from those devices. Our example scenario was having Temi navigate a predetermined path through a hospital, and then locating and connecting to various medical devices, eventually pushing that data to the hospital’s cloud services. (NB I admit the scenario was little contrived, since the BT devices could upload directly to the cloud, but I digress).

We began by downloading Temi’s SDK and connecting our own devices to Temi using Android Debug Bridge (adb). From there, we brainstormed the designs for an app that would allow us to set Temi’s route, review BT devices, and share the collected data.

Testing, troubleshooting, refining our app’s design, and exploring the SDK eventually led to a breakthrough. We were able to connect to an SN30 Pro Bluetooth gamepad, and we were able to use it to control our app.

We followed up by testing our app with Bluetooth medical devices by Shimmer. This meant researching their function and connectivity. However, our versions of Android were not compatible. We also couldn’t pair devices needing a code, nor were we able to automate data gathering within our project timeline. Despite these limitations, we documented our progress for future cohorts to expand upon.

Highlights

Cross-team Collaboration

Our research group was divided into two teams: one for Bluetooth connections, and another for mobility. During the project, each team made distinct efforts to present their learnings to the other, and this led to breakthroughs in understanding the SDK in more depth.

The Bluetooth Protocol

We delved into a full breakdown of the Bluetooth protocol, including topics like piconets, addresses vs names, and bonding vs pairing. We left the project far more knowledgeable in wireless transmission than when we started, and we had succeeded in building our own Bluetooth connection with a 3rd party device.

Black Box Exploration

This was a self-contained project without manufacturer support or prior experience with Android or Temi – in other words, it was a black-box software engineering project. We relied only on our knowledge and the guidance of the course instructor to set and achieve our goals.

Technologies Used