Signal Processing In Node Environment


Latest stable version (SPINE 1.3 release), source code and documentation are available for free download at our GitHub project.

Info about the SPINE Licence.

Get involved

We welcome contributions from all users, including bug reports and fixing, suggestions, and sub-projects of SPINE.
Proposals for new sub-projects should be sent via e-mail to: 'rgravina(at)dimes(dot)unical(dot)it' by specifying a short workplan with a description of the new functionalities, the impact on existing code, and the expected time for the first stable release.

SPINE at a Glance

SPINE (Signal Processing in Node Environment) is a software Framework for the design and fast prototyping of Wireless Body Sensor Network (BSN) applications. SPINE enables efficient implementations of signal processing algorithms for analysis and classification of sensor data through libraries of processing functionalities. It also embed an application-level communication protocol.

SPINE is organized in two interacting macro-components, which are respectively implemented on commercially available sensor devices and on the personal coordinator (such as an Android smart-phone or tablet, or a personal computer). Communication among these devices is wireless, using the Bluetooth 2.1 or IEEE 802.15.4 standards.

The high-level SPINE API (at coordinator level) allows for dynamic and flexible configuration of sensing and processing funcionalities available at the sensor node level. Many biophysical sensors and signal processing funcionalities are natively implemented and available to application developers; in addition, the SPINE framework has been carefully designed to allow for very easy integration of new, custom-defined sensor drivers and processing funcionalities.

Sensor Platforms

SPINE supports the most popular TinyOS-enabled sensor platforms (mote):
  • Shimmer (rev. 1.3 and 2R);
  • TelosB/Tmote Sky;
  • MicaZ.

Physical Sensors

The following physical sensors are natively supported by SPINE (each one is generally available only on specific sensor platforms):
  • Accelerometers and gyroscopes, force and pressure (for postural, gesture and activity monitoring);
  • Electro-cardio-gram sensor (ECG) (for cardiac monitoring);
  • Electro-impedance-plethysmographic sensor (EIP) (for respiratory rhythm and volume);
  • Electro-myographic sensor (EMG) (for muscolar activity);
  • Photo-plethysmographic sensor (PPG) and SpO2 (pulse oximetry and blood oxygen saturation, for indirect measurement of hear-rate and breathing);
  • Galvanik Skin Response sensor (GSR) (e.g. for emotion recognition);
  • Environmental temperature sensor;
  • Humidity sensor;
  • Light sensor.
The application developer, through the SPINE API available at the coordinator, can perform data collection of the raw signals from one or multiple available sensors (even simultaneously). It is possible to configure dinamically sensor parameters such as the sampling frequency (from less than 1Hz up to about 200Hz).

Signal Processing

Depending on application needs, each sensor node can also be configured (through the SPINE API available at the coordinator) to perform simple pre-processing operations to user-selectable time windows of the sensor signals, for instance to reduce the amount of data the sensor nodes has to transmit over-the-air back to the coordinator. Specifically, SPINE provides native support for several general-purpose processing functions, including:
  • Average, Median and RMS;
  • Max and Min;
  • Amplitude;
  • Variance and standard deviation;
  • Zero-crossing;
  • Entropy;
  • Cross-Axial Energy.
In addition, SPINE also provides some dedicated functionalities which can be applied only is certain physical sensors are available (e.g. pitch and roll features are based on accelerometry data).

BSN research prototypes

As a middleware for the development of BSN applications, SPINE has been adopted to prototype several BSN research systems, including:
  • Physical rehabilitation assistant;
  • Fall detector;
  • Physical activity monitor;
  • Smart step-counter;
  • Mental stress detector;
  • Handshake detection system.

About the SPINE Licence

SPINE is a free software and it is distributed in open source under the terms of the LGPL (Lesser General Public Licence Version 2).

The LGPL license keeps all contributors to the same level relative to each other and it respects and protects both the users and the authors. In the following you can have a fast and rough idea of rights and duties of this license but, please, refer to the official LICENSE file for more details and legally precise information.
In particular, LGPL assures right to:
- make and distribute copies of SPINE;
- have access to the software source code;
- make improvements to the program;
- incorporate SPINE into a proprietary program.

The LGPL mandates also some duties, in particular:
- to not keep modifications private;
- to not change the license of SPINE and its modifications.