Skip to content

openbci-archive/OpenBCI_NodeJS

Repository files navigation

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