• Stars
    star
    137
  • Rank 266,121 (Top 6 %)
  • Language
    JavaScript
  • Created almost 9 years ago
  • Updated almost 5 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Node.js SDK for the all OpenBCI Biosensor Boards

OpenBCI NodeJS SDK

banner

Provide a single source to program all OpenBCI biosensors in NodeJS

Stories in Ready Join the chat at https://gitter.im/OpenBCI/OpenBCI_NodeJS Build Status npm

Welcome!

First and foremost, Welcome! ๐ŸŽ‰ Willkommen! ๐ŸŽŠ Bienvenue! ๐ŸŽˆ๐ŸŽˆ๐ŸŽˆ

Thank you for visiting the OpenBCI NodeJS SDK repository. This repository does not contain any specific source code and bugs for a specific biosensor should be open in their respective repositories: Cyton | Ganglion | WiFi Shield | Utilities. Checkout this blog post to understand the rational behind this modular structure of our java script code base.

This document (the README file) is a hub to give you some information about the project. Jump straight to one of the sections below, or just scroll down to find out more.

What are we doing?

The problem

  • There are a bunch of NodeJS repos for the Ganglion, Cyton and Wifi Shield
  • Examples are spread out across all these NodeJS repos
  • Some examples across NodeJS repos have the same code
  • There is no common interface for these NodeJS repos
  • NodeJS is a powerful tool for

So, if even the very best developers want to use NodeJS with their OpenBCI boards, they are left scratching their heads with where to begin. integrate the current easy to use Cyton and Ganglion NodeJS drivers, they are still burdened by the limitations of the physical hardware on the OpenBCI system.

The solution

The OpenBCI NodeJS SDK will:

  • Allow NodeJS users to import one module and use any board they choose
  • Provide examples of using NodeJS to port data to other apps like python and lab streaming layer
  • Provide a no low level device specific code to prevent the need to rewrite new examples for each board
  • Provide examples of filtering and different functions to transform raw data
  • Provide a common interface to all openbci boards to increase the speed at which new boards can be integrated

Using this repo provides a building block for developing with NodeJS. The goal for the NodeJS library is to provide a single source to program all OpenBCI biosensors in NodeJS

Who are we?

If we look back in time, we see this library took shape when the Cyton board was the only OpenBCI board around. Then the Ganglion came around which required it's own nodejs libary! When the wifi shield was in development, we created the wifi nodejs driver which was had a lot of overlap with Cyton and Ganglion nodejs drivers. Therefore we pulled out the common code between all three NodeJS modules and created the [nodejs utilities][link_nodejs_utilities] which as of today is also available to use in the browser.

The contributors to these repos are people using NodeJS mainly for their data acquisition purposes. For example, the entire OpenBCI GUI is dependent on the NodeJS ecosystem to provide cross platform support.

What do we need?

You! In whatever way you can help.

We need expertise in programming, user experience, software sustainability, documentation and technical writing and project management.

We'd love your feedback along the way.

Our primary goal is to provide a single source to program all OpenBCI biosensors in NodeJS, and we're excited to support the professional development of any and all of our contributors. If you're looking to learn to code, try out working collaboratively, or translate you skills to the digital domain, we're here to help.

Get involved

If you think you can help in any of the areas listed above (and we bet you can) or in any of the many areas that we haven't yet thought of (and here we're sure you can) then please check out our contributors' guidelines and our roadmap.

Please note that it's very important to us that we maintain a positive and supportive environment for everyone who wants to participate. When you join us we ask that you follow our code of conduct in all interactions both on and offline.

Contact us

If you want to report a problem or suggest an enhancement we'd love for you to open an issue at this github repository because then we can get right on it.

You can also hang out, ask questions and share stories in the OpenBCI NodeJS room on Gitter.

Find out more

You might be interested in:

And of course, you'll want to know our:

Glossary

OpenBCI boards are commonly referred to as biosensors. A biosensor converts biological data into digital data.

The Ganglion has 4 channels, meaning the Ganglion can take four simultaneous voltage readings.

The Cyton has 8 channels and Cyton with Daisy has 16 channels.

Generally speaking, the Cyton records at a high quality with less noise. Noise is anything that is not signal.

Thank you

Thank you so much (Danke schรถn! Merci beaucoup!) for visiting the project and we do hope that you'll join us on this amazing journey to make programming with OpenBCI fun and easy.

Installation:

npm install openbci

Developing:

Running:

npm install --all

License:

MIT

More Repositories

1

OpenBCI_Python

The Python software library designed to work with OpenBCI hardware.
Python
506
star
2

_DEPRECATED_OpenBCI-V2hardware

This repository contains the core OpenBCI hardware and software frameworks.
Processing
155
star
3

pyOpenBCI

Provide a stable Python driver for all OpenBCI Biosensors.
Python
82
star
4

-DEPRECATED-OpenBCI_Processing

Repository containing the latest OpenBCI Processing GUI.
HTML
64
star
5

OpenBCI_LSL

An application for establishing an OpenBCI stream through the Lab Streaming Layer (LSL)
Python
53
star
6

OpenBCI_Hub

The electron application for the Ganglion and Cyton.
JavaScript
40
star
7

OpenBCI_MNE

Examples of using OpenBCI boards with MNE
Python
32
star
8

_DEPRECATED_OpenBCI_32bit

Repository containing the firmware for the 32bit OpenBCI board.
Arduino
32
star
9

OpenBCI_NodeJS_Ganglion

The ganglion node js driver
JavaScript
24
star
10

OpenBCI_MATLAB

MATLAB
22
star
11

Spiderclaw

OpenBCI 3D-printable EEG headset files
22
star
12

OpenBCI_8bit

Firmware for OpenBCI_8bit Board along with Host and Device code
C++
21
star
13

OpenBCI_NodeJS_Wifi

NodeJS driver for the Wifi Shield
JavaScript
16
star
14

OpenBCI_NodeJS_Cyton

The official NodeJS driver for the Cyton board over Serial.
JavaScript
16
star
15

OpenBCI_C

OpenBCI C driver
C
13
star
16

OpenBCI_JavaScript_Utilities

NodeJS and Browser Javascript Utilities for OpenBCI boards
JavaScript
13
star
17

3D-printed-electrode

7
star
18

OpenBCI_32bit_Simulator

A full blown simulator for the OpenBCI 32bit board.
C
6
star
19

_DEPRECATED_OpenBCI_32bit_16channel

firmware for driving OpenBCI with Daisy Module attached
C++
5
star
20

Ganglion-Prototype-Data

Repository for Test data from the Prototype OpenBCI Ganglion Board
5
star
21

UDB32-MX2-DIP

repo for the bootloader hex for the OpenBCI 32bit on-board PIC32 microcontroller
4
star
22

OpenBCI_32bit_Serial_Trigger

Code that receives a signal on the Serial port, and inserts a trigger into the data stream.
Arduino
3
star
23

OpenBCI_RFduino

The RFduino code that needs to be in the Arduino's hardware resources folder.
C
3
star
24

OpenBCI_32Bit_Analog-Sensor

Example code to include analog sensor reading and include it into the OpenBCI Data Stream as a Aux Value
Arduino
2
star
25

openbci-ganglion-js

Pure javascript web bluetooth based Ganglion driver
TypeScript
1
star
26

OpenBCI_32-with-Speaker-output

Make boops and beeps with the OpenBCI 32bit board
Arduino
1
star
27

OpenBCI_Cyton_Electron

An electron hub for the Cyton
JavaScript
1
star
28

OpenBCI_Radio_Config_Utility

Radio Configuration Utility for OpenBCI systems
Processing
1
star
29

OpenBCI_32bit_TriggerTimingTests

This repo extends the standard OpenBCI 32 bit firmware to allow for sending of event tags from software as well as reading in analog sensor data
Arduino
1
star