Reactive OpenBCI for Node
This library works with the following OpenBCI hardware:
Get started by importing the library:
npm install --save openbci-observable
const { Cyton, Ganglion, Wifi } = require('openbci-observable');
// Or with an alias...
const BrainObservable = require('openbci-observable').Ganglion;
Basic usage
const { Cyton } = require('openbci-observable');
async function init () {
const cyton = new Cyton();
await cyton.connect();
await cyton.start();
cyton.stream.subscribe(sample =>
console.log('sample', sample)
);
}
init();
const { Ganglion } = require('openbci-observable');
async function init () {
const ganglion = new Ganglion();
await ganglion.connect();
await ganglion.start();
ganglion.stream.subscribe(sample =>
console.log('sample', sample)
);
}
init();
const { Wifi } = require('openbci-observable');
async function init () {
const wifi = new Wifi();
await wifi.connect({ ipAddress: 'xx.xx.xx.xx' });
await wifi.start();
wifi.stream.subscribe(sample =>
console.log('sample', sample)
);
}
init();
** All operators from this library have been migrated to the eeg-pipes project. Now these can be used as "lettable" RxJS operators. **
// npm install openbci-observable eeg-pipes
const { Ganglion } = require('openbci-observable');
const { voltsToMicrovolts, bufferFFT, alphaRange } = require('eeg-pipes');
async function init () {
const ganglion = new Ganglion();
await ganglion.connect();
await ganglion.start();
ganglion.stream.pipe(
voltsToMicrovolts(),
bufferFFT({ bins: 256 })
alphaRange()
).subscribe(buffer =>
console.log('alpha buffer', buffer)
);
}
init();
And now we have an FFT buffer of Alpha waves!
Make sure you have Node version >= 7.8 installed for development purpose.
MIT © Alex Castillo