Open mhirsch opened 5 years ago
It depends on bluetooth-hci-scocket by way of noble. Since noble is an optional dependency you can get around this by running npm install --no-optional @openbci/ganglion
One thing I didn't understand is that the BLED112 dongle is not a normal BLE dongle. It has the ability to bypass the normal system bluetooth stack and interact as a serial port. The way this code is written, at least on Windows and Linux, it relies on this very specific behavior of the BLED112 dongle. But then on macos, it seems the project does rely on the native bluetooth stack, which is why noble
is a dependency. When used on linux, noble
perhaps once upon a time worked by pulling in bluetooth-hci-scocket
, but that's all crufty and broken.
Why in the world it was written this way is a confounding and frustrating mystery. But then again, every layer of OpenBCI code, from this driver, to the Hub, to the GUI, is a hot mess of barely functional, brittle spaghetti code. I'm so dissapointed by this project. I am sad that I gave them money for the ganglion board. The debt of human misery they have created by subjecting the world to their insane concept of software engineering could never be sufficiently repaid in brain research.
@mhirsch I'm with you. Painfully aware of how brittle, messy, and hard to maintain the code is. It has been neglected for a while.
The good news is that we're working on making it better. Way better. It won't happen overnight, but it's happening.
Why is noble is a dependency? Probably because we still support built-in bluetooth on mac. I'll see if I can get the install working on Node 10. If not, maybe it's time to consider dropping built-in bluetooth for now.
openbci-ganglion fails to install with node v10, due to a broken dependency, bluetooth-hci-socket.
See the issue with bluetooth-hci-socket here
https://github.com/noble/node-bluetooth-hci-socket/issues/84
The project should migrate away from this abandoned dependency.