Using the Mobile Base Station and BLE Services

The Mobile Base Station is used to communicate orientation data from up to three
Solitons to an app running on a mobile device via. BLE (Blue Tooth Low energy). It
exposes the orientation data in the form of quaternions via. standard BLE Services
and Characteristics.

The Mobile Station wirelessly collects orientation data from up to three Solitons. In
reality the Mobile Station itself contains a fully functional onboard Soliton which
produces its own orientation data via an onboard IMU (Inertial Measurement
Unit). The functionality of the onboard Soliton will be used in future applications
and we will ignore data coming from the onboard Soliton in this document.
Therefore the Mobile Station transmits four quaternions via. standard BLE
characteristics, three from external Solitons and one from its own onboard Soliton
(which we shall ignore in this document). We have replaced the quaternion data
from the onboard Soliton to all zeros in this version.

Exposed Services and Characteristics

The orientation data of the three Solitons is exposed via a standard BLE Service
containing two BLE Characteristics. The following information will be needed to
connect to the Mobile BLE Station from a mobile App to consume orientation data
from the three Solitons:

Device Name: SOLITON
baseUuid: 00000000‐9380‐4839‐a6f2‐875a0c81d88d
solitonSvcUuid: 1903 , i.e., 00001903‐9380‐4839‐a6f2‐875a0c81d88d
solitonChar1Uuid: 2031, i.e., 00002031‐9380‐4839‐a6f2‐875a0c81d88d
solitonChar2Uuid: 2032, i.e., 00002032 ‐9380‐4839‐a6f2‐875a0c81d88d

• Each Characteristic contains orientation data of two Solitons
• Orientation data is in the form of quaternions
• Each Characteristic exposes its data via BLE Notifications
• The Notification data in each Characteristic is 18 bytes long
• The Notification data is updated at the rate of 100 updates per second

Characteristics Data Format

Each Characteristic contains 18 bytes of data packed as follows:
Char1:
First 8 Bytes: Orientation Quaternion for the onboard Soliton (currently null)
Second 8 bytes: Orientation Quaternion for external Soliton (Q2)
Last 2 bytes: For future use. Currently null
Char2:
First 8 Bytes: Orientation Quaternion for external Soliton (Q0)
Second 8 bytes: Orientation Quaternion for external Soliton (Q1)
Last 2 bytes: For future use. Currently null

Further reading: Mobile Base Station Manual