Foc.us EEG Dev Kit Instructions & Guide

Introduction

Foc.us EEG Dev Kit is an electroencephalography (EEG) device, used for monitoring electrical activity of the brain. It measures voltage on electrodes, digitizes and streams via Wi-Fi or records into internal memory.

The Device can be controlled using one of following options:

  1. Web user interface (UI) at http://eeg.ai/
  2. iOS application”foc.us me” – Click for App Store
  3. Android application “foc.us me” – Get it on Google Play

There are two versions of EEG Dev Kit available

  • EEG Only Dev Kit
  • EEG+ Dev Kit

EEG Only Dev Kit can be used for EEG only. EEG+ Dev Kit as an addition to EEG functionality supports transcranial electrical stimulation (tES).

What's Included

EEG Only Dev Kit Includes

  1. EEG Dev Kit Device
  2. Active electrodes – 5 pairs
  3. Reference & Bias electrode pair
  4. 10-20 Cap
  5. Power Charger

EEG+ Dev Kit has all of the above plus

  1. 2x Amxy silicone electrodes
  2. 1 pair sponges
  3. x/y magentic tES cable

Getting Started

Understanding EEG Device

focus eeg dev kit bottom view

Device status indicator LED
Power button
Microphone
Power charge socket
tES electrode socket
“O” Daisy Chain socket
“W” Daisy Chain socket
Reference/bias electrode socket
Single-ended input channels 1 & 2
Single-ended input channels 3 & 4
Single-ended input channels 5 & 6
Single-ended input channels 7 & 8
Differential input channel 7
Differential input channel 8
fNIRS sensor socket

Getting Started

Charging Your Dev Kit

For charging, please, connect the power charger to EEG Dev Kit and then to mains. Blue indicator shows charging and switches to green color, when charging finished (charging indication works if device doesn’t perform any other actions). Also, you can check the battery level in Device Details menu.

Full battery charging normally takes 2-3 hours.

Note, that EEG session and tES can’t be enabled whilst device is charging. This is both for safety and quality of recorded signal.

EEG Dev Kit Features

Analog Biopotential Inputs

EEG Dev Kit has two types of biopotential analog inputs: 1) single ended 2) differential.

Channels #1 to #6 are always single-ended.

Channels #7 and #8 are dual purpose and can be configured as single-ended or differential. It is important to ensure that the correct sockets are used according to the desired configuration.

Single-ended

Signals at single-ended input channels are referenced to a common ground. And this common ground (called reference input of the EEG Dev Kit) is shared between all single-ended inputs.

So, single-ended measurement is the voltage difference between input channel and reference.

Differential

Differential input channel consists of two lines: negative and positive. And differential measurement is the voltage difference between those lines.

Reference

Reference channel is a dedicated input line used for single-ended channels. And acts as common ground for single-ended measurements.

The EEG can be monitored with either a bipolar or a referential montage (using differential or single-ended inputs respectively). Differential channels requires two times more electrodes comparing to single-ended, so the referential montage is the most popular for EEG.

The right place for the reference electrode should be found. If possible, this place must be located in “inactive” zone (no brain activity), and also should not pick up signals which are not recorded (like heart activity). Usually this is the right or left earlobe.

Device Analog Outputs

Patient Bias

Patient bias output is used for common mode rejection. Another name for it is driven ground. Or the right leg drive (RLD) – holdover from electrocardiography (ECG) technology.

The human body is prone to common-mode drifts because noise easily couples onto the human body, similar to an antenna. These common-mode drifts may push the input common-mode voltage out of the measurable range of the system.

There are several frequencies of interest, depending on the location and the country of operation. The primary source of interference is the AC main that generally operates at 50 Hz (Europe and Asia) or 60 Hz (USA). Apart from these two frequencies, Eastern European railway traction power networks use distributed single-phase ac power at 16⅔ Hz. A frequency of 25 Hz is used for the Austrian railway.

The bias circuit of the system senses the common-mode voltage of a selected set of input channels (can be configured in UI) and creates a negative feedback loop by driving the body with an inverted common-mode signal.

In EEG applications the bias electrode usually connected to the center of forehead, but can be placed anywhere on the body, since its location is irrelevant in most cases.

EEG Electrodes

It is a pair of dry electrodes wired to a 3.5mm jack. Each electrode consists of a small printed circuit board (PCB) wrapped into conductive soft silicone. The silicone component has spikes to go thru hair when attached to head.

The main circuit of the active electrode is a unity gain amplifier to buffer very low level EEG signals. This model has advantages comparing to passive electrodes:

  • The electrode doesn’t require skin preparation and special paste (to lower impedance between electrodes and skin) improving user comfort. Thanks to amplifier’s very high input impedance, which allows using of dry electrode without affecting signal quality.
  • Low output impedance of the amplifier almost completely eliminates cable motion artifacts.
  • Because path to the first amplifier stage is very short, the electrode has minimal stray-capacitance.
  • Low output impedance of the amplifier allows you not to use low noise heavy coaxial cables and plugs.
  • Safety. Since the dry skin impedance is very high, then the isolation barrier is much higher and chance for an electrocution is much smaller comparing to passive electrodes.

When connected to a single ended input of the main unit the electrode at short wire corresponds to the lower channel number and at long wire – to the higher channel number. E.g., if a pair of electrodes attached to socket “1 & 2”, then electrode at short wire is channel 1 and electrode at long wire – channel 2.

When connected to a differential input of the main unit the electrode at short wire corresponds to negative line and at long wire – to positive line of the input channel.

There is a special pair of electrodes with a clip at long wire and normal soft silicone electrode at short wire. It must be connected to “REF / BIAS” socket of the main unit. The electrode at short wire is a reference (see 3.1.Analog Biopotential Inputs) and at lone wire with a clip – bias (see 3.2.Device Analog Outputs).

There are 2 types of active electrodes: Dry Active EEG (black color) and Dry Active EEG+ (orange color) Electrodes. They come with EEG Only Dev Kit and EEG+ Dev Kit respectively. The difference that Dry Active EEG+ electrode has an extra circuit to disconnect electrode’s input. It is necessary when tES enabled and EEG electrodes left on head. So, EEG electrodes don’t create wrong paths for tES current.

If electrode is used with a third party EEG system, please, follow this specification:

  1. Tip: Short end electrode
  2. Ring: Long end electrode
  3. Ring: Power (+V)
  4. Sleeve: Power (GND)

WiFi & configure.dk

After turning EEG Dev kit ON, it attempts to connect to known Wi-Fi network(s) using details from saved Wi-Fi profiles. If it cannot connect  in 30 seconds the device switches into Wi-Fi provisioning mode.

There are few methods to configure EEG Dev Kit to Wi-Fi access point (AP)/wireless router credentials:

  • Configuring Wi-Fi network credentials via configure.dk webpage;
  • Wi-Fi Protected Setup (WPS) Push Button;
  • Using default Wi-Fi credentials.

Configuring via configure.dk webpage

  1. Turn ON EEG Dev Kit and wait 1 minute until the device switches into AP mode. You’ll see solid orange light.
  2. Using smartphone or computer connect to “EEG-DK-XXXX” Wi-Fi network (where XXXX is the last 4 symbols of your EEG Dev Kit serial number). Password is “password”.
  3. Open your browser to http://configure.dk. Please, note, it can be a little slow on Android.
  4. On this page, supply EEG Dev Kit with your own Wi-Fi network details: enter SSID, password and choose security type. Then click “Add”. You can save up to 6 Wi-Fi profiles if you want to use your device in a few places.
  5. Click “Connect”. Device will try to connect to Wi-Fi using details from saved profiles. Once connected you’ll see single green blinks.

Using WPS method

For this method your access point/wireless router must have a physical or virtual (in web UI) WPS button:

Follow these steps:

  1. Press WPS button on your router. The router is ready for new devices to join the network for 2 minutes (normally)
  2. Turn ON EEG Dev Kit and wait 30 sec until the device switches into WPS mode. You’ll see long single orange blinks.
  3. The device will automatically start the process of connecting to the network. Once connected you’ll see single green blinks.

Using default Wi-Fi Credentials

Instead of configuring EEG Dev Kit you can configure your access point/wireless router to Wi-Fi credentials, preprogrammed to device:

  1. Set network name (SSID) to “FOCUS”.
  2. Set password to “password”.
  3. Turn ON EEG Dev Kit. Once connected to network you’ll see single green blinks.

This method is not recommended.

EEG Dev Kit Control - eeg.ai

Raw Data

There are 3 options for EEG Dev Kit data output:

  • Stream;
  • File;
  • Stream+file.

Stream mode (MQTT)

In “stream” mode device publishes data to server (broker) using MQTT protocol in real time.

MQTT is an Internet of Things (IoT) protocol, provides a lightweight method of carrying out messaging using a publish/subscribe model. EEG Dev Kit is a MQTT client, connects to a MQTT broker and publishes data at specific topic. The broker then pushes the information out to those clients that have previously subscribed to the client’s topic. So, any computer that runs a MQTT library can receive data from EEG Dev Kit in real time.

Please, refer to chapter 3.9 “Using Your Own Server” if you want to use your own MQTT broker.

EDF+ & BDF+ Recordings

In “file” mode device saves data into internal flash memory in EDF+ or BDF+ format (can be configured in UI). As soon as session finished it starts file uploading to FOCUS servers for storage. File can be downloaded to your computer at “Recorded Sessions” page. Note, that free storage is available for 7 days only, after that time the file will be deleted automatically.

The European Data Format (EDF) is a simple and flexible format for exchange and storage of multichannel biological and physical signals. Complete specifications can be found at official website https://www.edfplus.info/. EEG Dev Kit fully supports the newest extension – European data format ‘plus’ (EDF+).

BDF+ format, developed by Biosemi, is a 24-bit version of the EDF+. Its specification can be found here: https://www.biosemi.com/faq/file_format.htm.

EEG Dev Kit is a 24-bit EEG system. It is recommended to use BDF+ format to get full advantages. When using EDF+ the input voltage range is limited to ±732uV, comparing to ±187mV for BDF+.

For your convenience it is possible to fill EDF+/BDF+ field “local patient identification” in UI:

  • Patient code;
  • Patient gender;
  • Patient birthdate;
  • Patient name.

Lab Streaming Layer

The foc.us EEG Dev Kit now includes native Lab Streaming Layer functionality. From firmware version 5.1.0 when you enable EEG channels, in either stream or stream & record modes, the device will create a lab-streaming layer on the wifi network.

Using LSL opens up a lot of software options for processing your raw EEG data.  There is no software overhead or proxy involved as the device streams natively straight onto the network. This gives ultra-low latency times. 

Currently this is limited to sample rates below 1k SPS but will be increased in a future update.

Using Your Own Server

By default device streams data to FOCUS MQTT broker for EEG signals filtering and visualization in UI. If you want to get access to raw data you need to setup your own MQTT broker or use a third party one.

Note, that at this moment device supports transport layer security (TLS) only for connections to FOCUS MQTT broker.

Install and configure local MQTT broker

Local MQTT broker is useful if you want to use maximum possible sampling rates (up to 16000 SPS). This is possible, because local network normally has very low latency. Another reason to use a local MQTT server could be safety, since in this case sensitive private data doesn’t leave your local network.

  1. Install and start ActiveMQ

If you don’t have bash installed, follow these steps to install ubuntu subsystem on windows 10. Alternatively just install ActiveMQ on Windows.

Install Apache ActiveMQ and start it (instructions here).

  1. Open firewall

The EEG Dev Kit will connect to your ActiveMQ server over your Wi-Fi connection. It is important that both devices are on the same network for this to work.

Then open firewall rules for any ports that are used in conf/activemq.xml e.g. 1883

Check that you can connect to your ActiveMQ using an MQTT client such as MQTT.fx

Another quick check is to use telnet from another machine on the same network

  1. Create topic and update device

Your EEG Dev Kit has a unique 24 digit ID (Device ID) which can be found in foc.us/me Device Details page.

Create a topic in ActiveMQ with your Device ID plus suffix .afe.binary

e.g. 303730313534510A004A0024.afe.binary

Now provide the new server details to the Dev Kit in the focus/me Settings page

e.g. mqtt://192.168.15.43:1883

Finally turn on one or more AFE channels.

Using third party MQTT broker

This is the simplest option to get access to raw data. There are many paid and free MQTT brokers. In this example we show, how to work with public MQTT broker https://test.mosquitto.org. Since it is public, there is even no need to create your own account.

  1. In Server Settings enter MQTT server details: mqtt://test.mosquitto.org:1883
  2. Done! Device will start to publish data to test.mosquitto.org as soon as EEG session enabled.

Getting data from MQTT broker

To receive the raw data in real time any MQTT client can be used. It should be connected to MQTT broker and subscribed to ‘deviceID’/afe/binary topic.

Below, you can find, how to configure the MQTT.fx client to use MQTT broker from the previous example.

  1. Create connection profile. Go to Extras/Edit Connection Profiles/. Set Profile Name and Broker address to “test.mosquitto.org”, Broker Port to 1883. Click OK to confirm.
  2. Connect to MQTT broker. Choose “test.mosquitto.org” from dropdown list and click Connect. Now you are connected.
  3. Subscribe to ‘deviceID’/afe/binary topic. Go to Subscribe tab, enter ‘deviceID’/afe/binary (replace ‘deviceID’ with your device ID) and click Subscribe.

Everything is ready to receive data. Turn EEG session ON in UI.

fNIRS Sensor

EEG Dev Kit Programs

Maintenance & Troubleshooting

Specifications

EEG Dev Kit Device

  • Data rate: 250 to 16000 SPS
  • Number of channels: 8 (expandable to 32)
  • Input-referred noise: < 1 μVPP
  • Common-mode rejection ratio: -110 dB
  • 24 bits resolution
  • Connectivity: Wi-Fi, BLE 5.0*
  • Onboard memory: 8GB
  • 6-axis inertial measurement unit (accelerometer + gyroscope)
  • Microphone
  • Battery operating time: 8 hours
  • MQTT protocol for online data streaming
  • EDF+/BDF+ data format

Active dry electrode:

  • Supply voltage: 2.2 to 5.5 V
  • Quiescent current: 1.5 mA (EEG electrode), 3 mA (EEG+ electrode)
  • Input-referred noise: < 0.8 μVPP
  • Input safety resistor: 5.1 kΩ
  • Input bias current: 0.2 pA
  • Common-mode rejection ratio: -90 dB

Power charger:

  • Power: 6W
  • Medical and ITE Approval

 

Device Indicator LED color chart

 

Indicator colorNumber of blinksDevice state
BluesolidCharging.
1EEG session is ON.
GreensolidBattery fully charged.
1Device online.
2Device online and uploading file.
OrangesolidWi-Fi provisioning. AP mode (www.configure.dk).
1 longWi-Fi provisioning. WPS push button mode.
1Waiting to connect to Wi-Fi.
2Connected to Wi-Fi, waiting for IP address assignment.
3IP address acquired.
4Network quality test passed successfully.
Red1 with button pressEmpty battery. Connect charger.
1Bad network quality. Try to reboot or connect to another Wi-Fi.
2Device offline. Try to reboot.
3Wi-Fi security failure (possible wrong Wi-Fi password)
Whitefast flashingFirmware is being updated. Do not remove the power.

Troubleshooting

Can’t connect to WiFi?

Check following:

  • Network name (SSID).
  • Network password.
  • AP security mode is WPA (WPA Personal) or WPA2 (WPA2 Personal). WEP and Enterprise modes are not implemented.
  • AP frequency is 2.4 GHz. 5 GHz is not supported.
  • AP mode is 802.11b, 802.11g, 802.11n or mixed (e.g. 802.11b/g/n).
  • If connecting to a computer hotspot, antivirus software should be configured to allow device’s network activity or disabled.

Firmware Updates

FOCUS is constantly working on adding new features (and fixing bugs). Your device is automatically updated if new version available. EEG Dev Kit checks for updates if battery is charged at least 50%, connected to Wi-Fi and power charger connected.

Current firmware version can be found on Device Details page in UI.

Cleaning & Storage

Please, don’t store device with empty battery. Be sure that it is charged to 50% at least. Otherwise battery life may be reduced significantly.

EEG Data Packet Format

The packet contains multiple samples of raw data.

Default MQTT topic name: ‘deviceID’/afe/binary

Device ID can be found on Device Details page of the UI.

OffsetSizeNameNote
012Device IDUnique for each device
121Product ID1 – for foc.us EEG Dev Kit
131Format version1
146TimestampMilliseconds since Epoch
202Sample rateSamples per second
221Channels mask0bXXXXXXXX, X – channel ON(1)/OFF(0), LSB – Channel 1
231reserved 
244Channel 1 valueOnly if enabled. Type – float (uV)
284Channel 2 valueOnly if enabled. Type – float (uV)
324Channel 3 valueOnly if enabled. Type – float (uV)
364Channel 4 valueOnly if enabled. Type – float (uV)
404Channel 5 valueOnly if enabled. Type – float (uV)
444Channel 6 valueOnly if enabled. Type – float (uV)
484Channel 7 valueOnly if enabled. Type – float (uV)
524Channel 8 valueOnly if enabled. Type – float (uV)
564Channel 1 valueOnly if enabled. Type – float (uV)
….

Table of Contents