Skip to content
Branch: master
Go to file

Latest commit

atbrask committed 25d348a Jan 16, 2017
Get live data at specific frame rate


Failed to load latest commit information.


Contec CMS50D+ Pulse Oximeter Data Downloader

This python script can download both live data and recorded data from a Contec 
CMS50D+ pulse oximeter into a standard CSV file for further analysis.

In live data mode the device will sample at 60 Hz. Each sample is saved to CSV 
along with the current wallclock time (in UTC). For recorded data you'll have
to provide a start time as the device doesn't provide any historic timestamps
at all. In this mode we assume a sample rate of 1 Hz.

For more details, see my blog post at

1.0 (2015-03-24) Uploaded initial version to GitHub
1.1 (2015-03-26) Added support for downloading recorded data
1.2 (2015-09-28) Added time column to output CSV for both modes

usage: [-h] [-s STARTTIME] {LIVE,RECORDED} serialport output v1.2 - Contec CMS50D+ Data Downloader (c) 2015 atbrask

positional arguments:
  {LIVE,RECORDED}       Specify LIVE for live data or RECORDED for recorded
  serialport            The device's virtual serial port.
  output                Output CSV file.

optional arguments:
  -h, --help            show this help message and exit
  -s STARTTIME, --starttime STARTTIME
                        The start time for RECORDED mode data.

If you have the device connected as /dev/ttyUSB0 and want live data saved as
foo.csv, then the program can be run like this:

./ LIVE /dev/ttyUSB0 foo.csv

Likewise for recorded data:

./ RECORDED /dev/ttyUSB0 foo.csv -s "2015-01-01 12:34:56"


Python code for downloading data from a Contec CMS50D+ pulse oximeter




No releases published


You can’t perform that action at this time.