### Device description

The BioStampRC® (Model No. BRCS01) and kit (charging station for stamps, adhesive strips, recording tablet (Samsung Galaxy Tab. A), and conductive gel), were obtained from MC10, Inc. (Lexington, MA). The BioStamp is a thin, pliable device directly applied to the skin surface (3.4 cm × 6.6 cm × 0.45 cm; weight = 7 g). The BioStamp is controlled from an embedded micro-controller unit for recording bio-signals and transmission of data via WiFi to the MC10 Investigator Portal or broadcasting wirelessly via Bluetoogh to the MC10 Discovery App, pre-loaded on the included Android™ tablet. Prior to BioStamp application to a subject, the sensor can be configured to select measurement modality (3 axis accelerometer, 3 axis gyroscope, ECG, EMG or combination), sampling frequency (50–250 Hz), and measurement range (±2–16 G for accel; ± 250–4000 °/s for gyro). Once configured, the BioStamp is applied to the subject and can be selected to start or stop recording and sync data from the tablet. Dataare then uploaded to the cloud where they can be accessed and downloaded from the MC10 Investigator Portal website. Additional specifications on the BioStamp and comparison to other wearable sensors are shown in Additional file 1: Table S1 and Table S2.

### Accuracy of BioStamp angular displacement

To show accuracy of BioStamp measurements, angular displacement was simultaneously measured using a 12-in., 360-degree goniometer. With the BioStamp adhered to the distal end of the goniometer, the goniometer was carefully rotated to a specified angle while on a flat surface. The goniometer angle was used as a reference for the calculated BioStamp angle. Angular position was determined by summation integration of the gyroscopic velocity in MATLAB (Mathworks, Inc).

### Accuracy of BioStamp spatial displacement

To show accuracy of BioStamp measurements during arm movement, spatial displacement was measured using a 12-in., 360-degree goniometer set to 110 degrees—a comfortable angle for uninhibited arm motion. With the BioStamp adhered near the wrist on the volar surface of the subject’s dominant forearm, the subject rotated their arm between the 110-degree markings for a minimum of 8 cycles at varying frequencies: 1 Hz, 0.75 Hz, 0.5 Hz, and 0.2 Hz.

### Study design

Initial studies were performed with the the Biostamp on 4 healthy volunteers (two male and two female, 22–24 years of age) to gain familiarity with signal capture and processing over a range of motions (partially previously reported [42]. Here we report an extension of this protocol examining 1) enhanced, detailed component signal analysis; and 2) reproducibility of signals for specified component (arm) motions over time. Over a three-week period a single volunteer of the initial cohort underwent follow-up analysis. All motions were repeated three times, each trial being performed a week apart. As a comparative measure, the study was also completed with the same subject exhibiting reduced range of motion. For all studies, the BioStamp was placed on the flat, volar surface of the subject’s forearm, approximately 3 in. distal from the elbow. The sensor was placed parallel to the ulnar anterior border, in the same orientation for each motion recording. To minimize error accumulation during data collection, the starting position of the arm for each motion protocol was examined from the real-time accelerometer measurements to ensure consistent orientation and position at the start of each motion study (i.e. acceleration = 1 in sensing axis feeling gravitational pull). The sensor was re-placed or the arm was adjusted if the orientation was inconsistent. Human subject approval was obtained for this study from the IRB of the University of Arizona (#1809925234).

### Arm motion protocols

#### Horizontal adduction and abduction - motion in the transverse plane

The subject began by lying in supine position on a raised surface. The subject’s dominant arm was over the edge of the raised surface such that no objects could obstruct the arm motion. Subject began with their arm straight in front of them, in the same sagittal plane as the shoulder and perpendicular to their body. Palms of the hand were facing medial to the body. This was the starting position. Recording began when subject had arm in starting position. With arm straight and palms medial, the subject adducted their arm in the transverse plane as far as possible, held for three seconds, then returned to the starting position and held until recording was paused. When subject was ready, recording resumed with arm in starting position. The subject abducted their arm horizontally in the transverse plane as far as comfortably possible, held for three seconds, and returned to the starting position until recording was completed.

#### Flexion and extension - motion in the sagittal plane

The subject began by sitting upright in a chair, facing forward with feet flat on the ground. The subject’s dominant arm was over the edge of the chair such that no objects could obstruct their arm motion. Subject began with arm straight down at their side, perpendicular to the floor. Palms of the hand were facing medial to the body. This was the starting position. Recording began when subject had arm in starting position. With arm straight and palms medial, the subject flexed their arm in the sagittal plane as far as comfortably possible, held for three seconds, and then returned to the starting position and held until recording was paused. When subject was ready, recording resumed with the arm in starting position. The subject extended their arm behind them in sagittal plane as far as comfortably possible, held for three seconds, and then returned to the starting position until recording was completed.

#### Vertical abduction - motion in the frontal plane

The subject began by sitting upright in a chair, facing forward with feet flat on the ground. The subject’s dominant arm was over the edge of the chair such that no objects could obstruct their arm motion. Subject began with arm straight down at their side, perpendicular to the floor with fifth digit of the hand medial to the body. This was the starting position. Recording began when subject had arm in starting position. With arm straight and thumbs medial, the subject vertically abducted arm in frontal plane as far as comfortably possible, held for three seconds, and then returned to the starting position and held until recording was completed.

#### Three-dimensional range of motion

The subject began standing with their arm straight down at their side. Before beginning movement, the arm was adjusted and the subject stands still for the accelerometer outputs to be as close to zero as possible. The subject was told to move their arm to reach the extent of their range of motion, comfortably. For gradual motion, the subject swung their arm laterally to medially and gradually moved their arm upwards until it was straight above their head. For leveled motion, the subject swung their arm laterally to medially approximately five times before moving it upwards and repeating the process. For random motion, the subject moved their arm to their own preference for approximately one minute.

### Three-dimensional arm spatial displacement and motion trajectory from BioStamp

3-D displacement of a body movement can be reconstructed using the acceleration and gyroscopic data from a BioStamp sensor and advanced signal processing. The BioStamp measures accelerations and gyrations in a sensor coordinate, termed as local coordinate herein, which varies with the movement of the sensor attached to a body. In such local coordinates, the acceleration contains gravity components that cause significant errors during the numerical integration process. Therefore, the integration of accelerations into displacements should require the transformation of acceleration data in a space-fixed coordinate, termed as the global coordinate here, as well as the removal of gravity components from the data. The gyroscope measures the rate of angular configuration change in the local coordinate, i.e. angular velocity *ω* (*ω*_{x}, *ω*_{y}, *ω*_{z}) of the body, which hence can be used for coordinate transformation. It should be noted that quantities in boldface are vector quantities in here. The signal processing scheme to reconstruct 3-D global-coordinate displacement from the local-coordinate acceleration and gyroscopic measurement is as follows: the angle change *∆**θ*_{i} between time *t*_{i} and *t*_{i + 1} is computed as,

$$ \Delta {\boldsymbol{\theta}}_i\approx \left({\boldsymbol{\omega}}_i+{\boldsymbol{\omega}}_{i+1}\right)\frac{\Delta t}{2} $$

(1)

Euler parameters [43] *e*_{0}, *e*_{1}, *e*_{2}, and *e*_{3} between local coordinates at time *t*_{i} and *t*_{i + 1,} are estimated as,

$$ {e}_0=\mathit{\cos}\left(\frac{\varnothing }{2}\right) $$

(2)

$$ e=\left[{e}_1,{e}_2,{e}_3\right]=\boldsymbol{n}\ \mathit{\sin}\left(\frac{\varnothing }{2}\right) $$

(3)

where ∅ = ‖*∆θ*_{i}‖ and \( \boldsymbol{n}=\frac{-\boldsymbol{\Delta }{\boldsymbol{\theta}}_i}{\varnothing } \). Then, the coordinate transformation matrix [43] for a vector quantity in the local coordinates at *t*_{i + 1} to *t*_{i} is given by,

$$ {\boldsymbol{A}}^i=2\left[\begin{array}{ccc}{e}_0^2+{e}_1^2-1/2& {e}_1{e}_2-{e}_0{e}_3& {e}_1{e}_3+{e}_0{e}_2\\ {}{e}_1{e}_2+{e}_0{e}_3& {e}_0^2+{e}_2^2-1/2& {e}_2{e}_3-{e}_0{e}_1\\ {}{e}_1{e}_3-{e}_0{e}_2& {e}_2{e}_3+{e}_0{e}_1& {e}_0^2+{e}_3^2-1/2\end{array}\right] $$

(4)

Thus, the acceleration 〈*a*_{i + 1}(*a*_{x}, *a*_{y}, *a*_{z})〉^{c = i + 1}, in the local coordinate at *t*_{i + 1}, has a transformation to the local coordinate at *t*_{i} as,

$$ {\left\langle {\boldsymbol{a}}_{i+1}\right\rangle}^{c=i}={\boldsymbol{A}}^i{\left\langle {\boldsymbol{a}}_{i+1}\right\rangle}^{c=i+1} $$

(5)

Where notation 〈〉^{c = i} denotes a quantity inside the braces in the local coordinate at *t*_{i} .

If we assume the local coordinate at *t*_{0} (i.e. the initial coordinate) orients exactly to a fixed global coordinate, a quantity measured at the local coordinate at *t*_{i + 1} can be transformed in the global coordinate, or the initial coordinate at *t*_{0}, as

$$ {\left\langle {\boldsymbol{a}}_{i+1}\right\rangle}^g={\left\langle {\boldsymbol{a}}_{i+1}\right\rangle}^{c=0}={\boldsymbol{A}}^0{\boldsymbol{A}}^1\cdots {\boldsymbol{A}}^i{\left\langle {\boldsymbol{a}}_{i+1}\right\rangle}^{c=i+1}={\mathcal{A}}^i{\left\langle {\boldsymbol{a}}_{i+1}\right\rangle}^{c=i+1} $$

(6)

Where, 〈〉^{g} denotes the quantity in the braces is in the global coordinate. \( \kern0.50em {\mathcal{A}}^i={\boldsymbol{A}}^0{\boldsymbol{A}}^1\cdots {\boldsymbol{A}}^i \), is the transformation matrix to the global coordinate (initial coordinate at *t*_{0}) from the local coordinate at *t*_{i + 1}. Once the acceleration measurements are in the global coordinate, gravity correction is a simple operation of deducting the constant gravity components from the global acceleration data.

If we assume the body is static at the beginning (i.e. at *t*_{0}), the acceleration components 〈*a*_{0}(*a*_{x}, *a*_{y}, *a*_{z})〉^{c = 0} are solely due to the gravity. These initial acceleration components are used for gravity correction at the global coordinate.

Once the acceleration is converted in the global coordinate with the gravity correction, the displacement of the body can be reconstructed by multi-step integration and filtering process. The first integration of acceleration data results in the velocity of the body at the measured location. The resulting velocity data may still drift due to potential numerical integration errors. The drift can be removed by high-pass filtering the velocity data. Subsequent integration of the velocity data and another high-pass filtering will result in the displacement of the body motions having sufficient dynamics (i.e. 3-D random and 2-D planar motions).

For the leveled and gradual motion shown in Fig. 7D and E, further processing is required as the out-of-plane (i.e. gravitational direction) movement is too slow. Such slow out-of-plane motion components are lost due to the high pass filtering process that is necessary for drift corrections in previous steps. In this case, Euler angle, i.e. roll, and arm length (i.e. distance of the sensor from the shoulder joint) can be used to recover the out-of-plane displacement components. The roll at *t*_{i} can be estimated from the gravity components in the local coordinate at *t*_{i}. The gravity components in local coordinates are estimated as,

$$ {\left\langle {\boldsymbol{g}}_i\right\rangle}^{c=i}={\left\langle {\boldsymbol{a}}_i\right\rangle}^{c=i}-{\left(\ {\mathcal{A}}^{i-1}\right)}^{-1}{{\left\langle {\boldsymbol{a}}_i\right\rangle}^g}_{corr} $$

(7)

where 〈*g*_{i}〉^{i} is the gravity components at *t*_{i} in the local coordinate at *t*_{i}, 〈*a*_{i}〉^{g}_{corr} is the acceleration after gravity correction in the global coordinate, ( )^{−1} notation denotes the matrix inverse of the quantity inside. The roll from the local gravity components at *t*_{i} are estimated as,

$$ {roll}_i= atan\left(\frac{-{\left\langle {\left({g}_x\right)}_i\right\rangle}^{c=i}}{{\left\langle {\left({g}_z\right)}_i\right\rangle}^{c=i}}\right) $$

(8)

Then the corrected *y* and *z* components of displacements are.

$$ {{\left\langle {y}_i\right\rangle}^g}_{corr}={\left\langle {y}_i\right\rangle}^g-l\ \mathit{\sin}\left({roll}_i\right); $$

(9)

$$ {{\left\langle {z}_i\right\rangle}^g}_{corr}={\left\langle {z}_i\right\rangle}^g+ lcos\left({roll}_i\right), $$

(10)

where *l* is the length of the arm.

All processing mentioned above was done in the MATLAB environment. An elliptical high-pass filter with 0.1 Hz cut-off frequency was used for this application, assuming the frequency contents of the arm motion were higher than the cut-off frequency. For other applications having different arm dynamics, the cut-off frequency can be adjusted accordingly. The schematic of the processing is summarized in Additional file 1: Figure S3.

### Arm angular displacement from BioStamp gyroscope

With BioStamp on recording from the subject’s forearm, the subject was instructed to separately perform movements of the arm in frontal, sagittal, and transverse planes. During motion performance, triaxial gyroscope and acceleration data with a sampling rate of 62.5 Hz, a gyroscopic range of − 4000°/s to + 4000°/s and acceleration range of -4G to +4G, were collected using the BioStamp. The collected gyroscopic data were integrated with respect to time for each motion in the corresponding axis of rotation to determine angular position of the arm. Total range of motion was determined by evaluating the difference in the maximum and minimum angular positions. A visual representation was created for the three motions of each plane using SolidWorks. Data collection with the BioStamp was completed and analyzed three separate times for each motion category.

### Arm angular displacement from video capture

Video was taken of the subject performing motion while wearing the BioStamp. Videos were recorded with a JVC HD Everio video camera, facing perpendicular to the axis of arm rotation. Range of motion angles were measured from video using ImageJ (NIH) with the angle tool. The angle tool measured the angles between a point on the forearm at the minimum (starting) position of the arm and the same point at the maximum (ending) position of the arm. The subject’s arm (elbow-to-wrist length) was measured and used as a standard reference point for scaling the video. Each video was analyzed three times with the angle tool, and each motion was video recorded three times. Angle measurements from a single motion video were averaged and displayed as mean ± standard deviation (*N* = 3).