This adds ganglion, wifi, and cyton support to the openbci
main library.
If you only need cyton over serial and so not want the additional support, please see openbci-cyton
.
- Bumped openbci-utilities to v0.2.0 for new accel data support
- Calling sdStart and stop would change the writeOutDelay
- Timeout for v1 was set to 10 ms instead of 50 ms.
- Timeout for v2+ was set to 0 ms instead of 10 ms.
- syncRegisterSettings now resolves channel setting object
- Bumped openbci-utilities to v0.1.5
- Can now sync the channel settings from the actual registers on the ADS! Call
.syncRegisterSettings()
- Bumped openbci-utilities to v0.1.4
- Update openbci-utilities to v0.1.2 to patch for sendCounts.
- Disconnect did not disconnect from serial port if the device was not streaming.
- Closes forgot parentheses in
getBoardType()
#152 (thanks @nateGeorge)
- Add support for v3 cyton firmware.
- Significantly reduce the properties in
this.info
object to only have firmware version and number of missed packets. Code dependent on this.info should switch to usingnumberOfChannels()
, andgetBoardType()
andsampleRate()
for accurate board info!
- Fixes for daisy with new board, specifically hardSet.
- Debug bytes was set to always print in processBytes
index.js
file allows for ES6 destructing
- Change name of
OpenBCIBoard
toCyton
to follow new naming convention. Simply change:const OpenBCIBoard = require('openbci').OpenBCIBoard; const ourBoard = new OpenBCIBoard();
const Cyton = require('openbci').Cyton; const ourBoard = new Cyton();
- Major change to how board is initialized with removal of
factory
paradigm. - New dependency called
openbci-utilities
. - Rejections are errors with messages, so check err.message for info on message, don't expect string.
- Documentation error with
testSignal
function.
- Add more tests for public API functions.
performance-now
: from^0.2.0
to2.1.0
serialport
- from4.0.1
to4.0.7
bluebird
: from3.4.6
to3.5.0
chai-as-promised
: from^5.2.0
to^6.0.0
codecov
: from^1.0.1
to^2.1.0
semistandard
: from^9.0.0
to^10.0.0
sinon
: from^1.17.2
to^2.1.0
snazzy
: from^5.0.0
to^6.0.0
- Add new example for Lab stream layer (#139) thanks @gabrielibagon
- Removed
impedanceCalculationForChannel()
andimpedanceCalculationForAllChannels
fromOpenBCISample.js
- Fixes #28- Impedance not working properly.
- New simulator option
simulatorDaisyModuleCanBeAttached
- Boolean, deafults to true, allows the simulation of the a hot swapped daisy board or simulates a misinformed module. - New
EventEmitter
-hardSet
- for when the module detects the board is not configured as the options for the module intended and tries to save itself. i.e. when thedaisy
option istrue
and a soft reset message is parsed and the module determines that a daisy was not detected, the module will emithardSet
then send an attach daisy command to recover. Eithererror
will be emitted if unable to attach orready
will be emitted if success. - Add example for streaming with
daisy
andhardSet
.
.setInfoForBoardType()
changed to.overrideInfoForBoardType()
to elevate it's dangerous nature..setMaxChannels()
changed to.hardSetBoardType()
and input changed from numerical to string: 8 and 16 todefault
anddaisy
respectively.
- Fixes #131 - 16 chan not working by sending a channel command and parsing the return.
- Fixed bug where end of transmission characters would not be ejected from buffer.
- Separated radio tests from main board test file.
- Set max number of channels for the board to use with
.setMaxChannels()
see readme.md - Set the core info object that drives the module with
.overrideInfoForBoardType()
see readme.md - Get info for the core object that drives the module with
.getInfo()
see readme.md
- Bug where daisy would sometimes not be recognized which destroyed all data.
- Add example of node to python
- Add example of debug
- Add example of get streaming
- Fixes bug where extra data after EOT (
$$$
) was dumped by preserving the poriton after the EOT for further decomposition. - Fixes bug where any calls to channel set would actually break the openBCIUtilities code as the channelSettingsArray contained an undefined.
- Writes promises resolve when they are actually sent over the serial port.
- Three new initialization options:
simulatorFragmentation
,simulatorBufferSize
, andsimulatorLatencyTimer
. Together, these enable a more realistic serial port simulation, mimicking different potential user computer systems. - New option
debug
gives a live dump of serial traffic on the console if enabled - New API function
.isConnected()
to check if communications are active. - New API function
.isStreaming()
to check if samples are coming from the board.
- Implement and adapt semi-standard code style. Closes #83
- autoFindOpenBCIBoard now notices and uses the stock dongle on Linux
- 'synced' object now has
error
property, null on good syncs, error description on bad syncs.
- The setting for simulatorInjectLineNoise has changed from
None
tonone
- connect() will now fail if already connected
- The constructor will throw an error now if an invalid option is passed
- The
.connected
property has been removed, replaced by.isConnected()
. Removed from docs. - The
.streaming
property has been removed, replaced by.isStreaming()
. Removed from docs. - An error event will be emitted if sntp fails to initialize on construction
- The simulator will no longer communicate when disconnected
- Promises returned by writes will now only resolve after the write has been sent
- Fixed bug where early packet fragments were dropped after board reset
- Fixed bug where time sync replies that began a buffered chunk were ignored
- Fixed bug where simulator would output wrong version in its reset message
- Fixed bug where resources were not cleaned up if connect was called twice
- Fixed bug where serial data was written after disconnection
- Fixed bug where unexpected disconnection was not detected
- Fixed bug where promises could lead to out of order packet processing.
- Add
timeOffsetMaster
to object emitted when bad time sync.
- Fixed log statement on impedance setting function
- Remove event emitter with time sync on reject of sync clock full
- Added master time offset
timeOffsetMaster
tosyncObj
which is a running average across sync attempts.
- Fixed bug where
connected
andstreaming
were not set in constructor
- Add dropped packet detection, new event
droppedPacket
can be added to get an array of dropped packet numbers in the case of the dropped packet event.
- Add table of contents to read me
- Reduce size of repo by removing impedance test report
- Upgrade serialport to 4.x
- Fixed bug where set channel function allowed for channel 0 to be set. Cannot set system to channel 0; lower limit is 1.
- Add tutorial/sample code for interfacing the module with lab streaming layer.
- Fixed time synced accel to work OpenBCI_32bit_Library release candidate 5 and newer.
- Add function
.time()
which should be used in time syncing - Add function
.syncClocksFull()
which should be used for immediate consecutive time syncs - Synced object can be emitted on
synced
event. Checkvalid
property for if the sync was done - Add detailed description of object returned on
synced
event to README.md
- Changed option named
timeSync
tosntpTimeSync
- Removed function called
.sntpNow()
because it was replaced by.time()
- Time sync working
- Module could not work with local time
- Add time sync tutorial in
README.md
- Fixed bug in simulator that lead to samples being all zeros.
- Fixed time sync sent confirmation bug that led to bad time values.
The second major release for the OpenBCI Node.js SDK brings major changes, improvements and stability, on top of a push to increase automated test coverage.
- NPM Module now called
openbci
instead ofopenbci-sdk
- Firmware version 2.0 support.
- Clock synchronization between OpenBCI board and this driver
.info
property which contains verified board information parsed from the OpenBCI'ssoftReset()
response.eot
event that is emitted when a user sends a command that results in an EOT ("$$$") being sent from the board- Daisy (16 channel) support
- Simulator overhaul, it completely mocks the board. Can now simulate board failure, where the board stops talking to the dongle. Can also mock a serial port failure.
error
andclose
events from serialport now emtted events users can subscribe to.
- NPM package is not called
openbci-sdk
anymore, now calledopenbci
- Accelerometer data now goes into
.accelData
array instead of.auxData
array. - In openBCIUtilities.js
parseRawPacket()
is now calledparseRawPacketStandard()
ready
event only triggered after soft reset.eot
event emitted in all other conditions resulting in the board sending EOT ("$$$")- Must use camel case on the OpenBCISimulator object.
- Renamed constructor options for readability:
simulatorAlpha
tosimulatorInjectAlpha
simulatorLineNoise
tosimulatorInjectLineNoise
connect()
no longer rejects onclose
orerror
event from the serialport.
- Add tests for parsing raw packets
- Removed
got here
log from.streamStart()
- Validate stop byte before emitting
rawDataPacket
- Fixed readme.md
- Upgrade dependencies
- Update Travis
.numberOfChannels()
now uses the info object, which is set in the constructor and on the return message from.softReset()
.sampleRate()
now uses the info object, which is set in the constructor and on the return message from.softReset()
- Simulator now has accelerometer data
- SD card support! Now logging to an SD card is easier than ever.
- Sample rate does not return correct sample rate for custom rate on simulator. #58
- Simulator made to look more like brainwave data to the user. Implemented a 1/f filter. Defaults to injecting 60Hz line noise with two channels of alpha (10Hz) boost.
rawDataPacket
not being emitted
- SNTP Time Synchronization
- updates to README.me and comments to change ntp to sntp, because the two are similar, but not the same and we do not want to be misleading
- Extended Stnp to main openBCICyton.js
- Add
.sntpNow()
function to get ntp time.
- Bumped serialport version
- Test Signals with ADS1299 using
.testSignal()
- Continuous impedance testing, where each sample gets an
impedances
object that is an array of impedances for each channel. - OpenBCI Radio Test File
- Added Sntp npm module with helper functions
- Removed stopByte and startByte from sampleObjects
- Changed simulator name to
OpenBCISimulator
- Changed name of function
simulatorOn
tosimulatorEnable
- Changed name of function
simulatorOff
tosimulatorDisable
- NTP Time Synchronization
- Goertzel algorithm to get voltage for impedance calculation
- Impedance calculations
- Readme updates
- Serial buffer had the chance to become permanently unaligned, optimized and completely transformed and refactored the way bytes are processed.
- Changes to gain of channels not working correctly.
- Node 5 compatibility
- #25, #26, #27, #29, #30, #31, #33, #34