ESP lab has made the following datasets and open source software available to the community:

BioZPulse Simulation Platform

Accurate measurement of various parameters including the arrival time, velocity, and pressure of the arterial pulse wave is essential for continuous monitoring of hemodynamic parameters and early diagnosis of cardiovascular disease. Non-invasive sensors such as bio-impedance (Bio-Z) have been used to measure the arterial pulse wave by sensing the change in blood volume. However, the measured hemodynamic parameters are significantly affected by the electrode positioning relative to the artery and the electrode configuration. We present a Bio-Z simulation platform using a 3D time-varying impedance grid based on SPICE netlist to model the arterial pulse wave. This platform can be used to guide design decisions (i.e. electrode placement relative to the artery and electrode configuration) prior to experimentation. We present simulations of the arterial pulse waveform for different sensor locations, current injection frequencies, and artery depths.

MATLAB source code is available for download at the link below:

BioZPulse GitHub Respository

If you used our source code, please reference our paper:

Bassem Ibrahim, Drew A. Hall, Roozbeh Jafari, Bio-impedance Simulation Platform using 3D Time-Varying Impedance Grid for Arterial Pulse Wave Modeling, IEEE Biomedical Circuits and Systems Conference (BioCAS), October 17-19, 2019, Nara, Japan.

MoST (MotionSynthesis Toolset)

Body Sensor Networks and wearable computing devices are becoming more prevalent. They are being used for health monitoring, activity tracking, and fitness applications. Collecting the data necessary to develop the new concepts for these systems can be difficult. We present theMotionSynthesis Toolset (MoST) to alleviate some of the difficulty in data collection and algorithm development. This toolset allows researchers to generate a sequence of movements (i.e. a diary), synthesize a data stream using real sensor data, visualize, and validate the sequence of movements and data with video and waveforms.

Software packages for download and tutorials can be found in the website linked below:

MoST Website


Increased demands for applications of brain computer interface (BCI) have led to growing attention towards their low-power embedded processing architecture design. BCIBench is a benchmarking suite developed by our lab that includes a wide range of algorithms used for pre-processing, feature extraction and classification in BCI applications. We analyzed the architectural characteristics of these algorithms such as performance, data-intensiveness and memory behavior. We provide insights into architectural components that can enhance the performance and reduce the power consumption of BCI embedded systems using these applications.
All the code corresponding to BCI pre-processing, feature extraction and classification algorithms, as well as for BCI applications can be found in the website linked below:

BCIBench Website


The SPINE Project aims at providing developers with software instruments for rapid prototyping of BSN-based applications by offering great flexibility in the implementation of distributed signal processing algorithms for the analysis and classification of sensor data. In particular, two main versions of the SPINE programming framework (SPINE1.x and SPINE2) have been released, both developed as Open Source projects (based on the LGPL licence) to establish a broad community of users and developers that contribute to extend the frameworks with new capabilities and applications.

  • SPINE1.x is being developed since 2008 and it has been adopted in several WBSN applications. Implemented for supporting different sensor architectures based on the TinyOS environment, its programming model is mainly based on functions and signal features extraction.
  • SPINE2 has been conceived and developed for reaching a high platform-independency by rising the level of the provided programming abstractions from platform-specific to platform-independent, and thus supporting different C-like programmable sensor architectures. Moreover, SPINE2 offers a new programming abstraction based on a task-oriented paradigm so that distributed and collaborative applications can be programmed as a dynamically schedulable and reconfigurable set of tasks to be instantiated on the sensor nodes.

SPINE Websites:

For information on HMM Annotator implemented in SPINE1.3, our contribution, click here

Poster: SPINE: Software Framework for Wireless Body Sensor Networks