This page introduces you to different software packages which can be used in conjunction with the Attys.

All programs for the Attys are open source and are on github.

AttysScope (Android)

AttysScope an Android app for the Attys which displays, analyses, records and allows in-app-sharing of data, for example on google drive.

Running AttysScope

Just make sure you have paired your phone/tablet with the Attys. In older Android versions you might need to type in a security code which is ‘1234’. Then start AttysScope.

Data format

AttysScope saves data as tab separated values where every column of a tsv file represents a channel:

Column number:

  1. Timestamp in secs (from the moment REC is pressed)
  2. Acceleration X in m/s^2
  3. Acceleration Y in m/s^2
  4. Acceleration Z in m/s^2
  5. Magnetic field X in T
  6. Magnetic field Y in T
  7. Magnetic field Z in T
  8. Analogue channel 1 (unfiltered) in V
  9. Analogue channel 2 (unfiltered) in V
  10. Analogue channel 1 (filtered) in V
  11. Analogue channel 2 (filtered) in V

For example if you want to work with the 1st analogue channel then you extract column #8.

This data format is accepted by MATLAB(tm), OCTAVE, GNUPLOT and many other plotting applications.

AttysScope (Windows/Linux)

We recommend the Belkin USB bluetooth dongle for optimal performance or internal laptop bluetooth adapters.

Installation (Windows installer)

Download attys_scope.msi and double click on it.

Attys Scope uses QT5.7 under the LGPL which requires us to host its source code. You can download QT5 here.


Running AttysScope

Just make sure your Attys is paired with your computer and then start the application.

Science Journal

Science Journal is an initiative by google to inspire the next generation of scientists! It’s been widely used in STEM education with more than 100,000 mobile phone / tablet installations.

It allows you to record sensor signals from both the Attys and the internal mobile phone/tablet sensors, document them in an electronic lab book and share the results.

You can configure the Attys to measure Volt, millivolt, microvolt and resistance so that it allows a wide range of experiments, for example in Physics education measuring the voltage induced in a coil, in Chemistry to measure pH or Biology to measure signals such as ECG, EMG, EOG and EEG.

Google science journal talking to ATTYS

For example this trace above was generated by moving a magnet over this improvised coil to show the induced voltage.

How to install

  1. Install AttysScope which contains the driver for ScienceJournal
  2. Install ScienceJournal from google play:


AttysECG is a specialised ECG program for Attys which displays all frontal leads: Einthoven I,II,II and the augmented leads aVR,aVL,aVF.


  • Heartrate plot which allows you to see heartrate variability and changes of the heartrate after exercise
  • Vector ECG which makes it easy to see any electrical conductance problems in the heart
  • Saves all leads and the heartrate as tab separated values: time,I,II,III,aVR,aVL,aVF,heartrate
  • Works on a wide variety of screens in both landscape and portrait mode (Android Fragments)

Recording the ECG

You just need three electrodes:

  1. right arm: “-” connected to Channel 1
  2. left arm: “GND”
  3. left leg: “+” connected to Channel 1.

Install AttysECG from google play:


AttysEEG is our EEG Android app and has especially been designed for displaying and analysing EEG in realtime on your tablet or phone. You can easily extend it by adding so called Android Fragments which then show up on the right hand side of the app.


  • Realtime EEG plotting and recording on your phone or tablet
  • Plots alpha, beta, gamma, delta and theta bands
  • Histograms of the different bands either in microvolts or normalised
  • Auditory evoked potentials (AEP) by playing click sounds through the headphone out
  • Visually evoked potentials (VEP) by using a standard chequerboard stimulus
  • Beta Ratio and PowerFastSlow which is used to determine the depth of anaesthesia
  • Easily extensible using Android Fragments
AttysEEG on github

Install AttysEEG from google play:

Python Scripts

We have Python scripts on github which demonstrate how to read data directly from the Attys. The one script asks the Attys to transmit the data in the form of comma separated values (CSV) and the other script as BASE64 (recommended for 250Hz). Both scripts generate tab separated data files (TSV).


OCTAVE allows you to filter, plot and post-process the data you’ve recorded with the Attys.

Loading tab separated data in a matrix

With the command

load mysignal.tsv

you load the TSV file into the matrix ‘mysignal’. The different channels are now in the different columns of the matrix. Every row contains the samples from one moment in time.

Extracting one channel

Let’s extract the analogue channel which is in column 8:


This command stores channel one in the vector ‘y’.

Plotting the channel

Use use the ‘plot’ command to create a graph of the signal:


The plot command can also plot time against data so if you extract the time t=mysignal(:,1); as well then you can plot your data against the timestamps:


Filtering of the signal

With just three commands one can filter the signal. For example, a lowpass filter at cutoff frequency 10Hz can be set up with these commands:

pkg load signal
[b,a]=butter(4,10/250*2); % filter coefficients
y2=filter(b,a,y); % filter the signal

This sets up a 4th order Butterworth lowpass filter with a cutoff frequency of 10Hz where the sampling rate of the Attys has been at 250Hz. Type ‘help butter’ how to set up other filters.


GNUPLOT is a plot program which can read the Attys data files straight away. It uses simple text commands to plot the data. It’s available for a myriad of different platforms, for example for Windows, MAC, Linux and Android.


The plot command is central in gnuplot: plot "mysignal.tsv" using 1:8 with lines

The ‘using’ keyword selects the columns (here 1 against 8) and ‘with lines’ tells gnuplot to join the datapoints with lines.

Saving the plot as a graphics file

gnuplot can save in many different formats. As an example let’s say we’d like to export the plot as a PNG image for a web page:

set term png
set output "channel1.png"
which replots the last plot but into the PNG image ‘channel1.png’.