Giter Site home page Giter Site logo

hgwood / winble Goto Github PK

View Code? Open in Web Editor NEW
11.0 2.0 1.0 15 KB

Noble bindings for the Universal Windows Platform

License: MIT License

JavaScript 100.00%
bluetooth bluetooth-low-energy noble noble-bindings windows-iot node-chakra nodejs node uwp sphero

winble's Introduction

Winble

Noble bindings for the Universal Windows Platform.

This module is EXPERIMENTAL.

Noble is a project that enables programming Bluetooth 4 (aka Low Energy) devices using Node.js. Unfortunatly, running it on Windows is not easy. Winble is an attempt to make Noble capable of leveraging the native Universal Windows Platform Bluetooth stack. This makes it compatible with any Windows 10 devices, from PCs to phones and Windows IoT devices.

In order to access the UWP APIs, Winble must be run using Node.js Chakra, which is the fork of Node.js where V8 is replaced by ChakraCore, the JavaScript engine from the Edge browser.

Alternative

Check out the more recent https://github.com/jasongin/noble-uwp, which should not require Node.js Chakra nor devices to be paired before using it. It does, however, require a more up-to-date Windows 10 installation.

Maintenance

I'm not actively maintaining this because I'm not using it. I wrote it for fun. However, I will promptly review issues and merge contributions. Feel free. :)

How to use

Install all the things

  • Install Node.js Chakra. You can find the latest release here. Make sure to get Node.js with Chakra and not the Node.js Tools for Windows IoT (see here).
  • npm install those from Node.js Chakra prompt:

Tell Noble to use Winble (noble >= 1.4.0)

To get an instance of Noble that uses Winble under the hood, do this:

const noble = require('noble/with-bindings')(require('winble'))

Then use Noble as usual.

Edit Noble (noble < 1.4.0)

Noble <1.4.0 is not extensible without modifiying its source code. Noble selects which bindings to use based on the environment. See here. After installing Noble, replace this section of code by bindings = require('winble'). You can then use Noble as intended.

Limitations

Winble implements only a small part of the Noble API, but it should be enough to play around with Bluetooth devices. I've used it to program a Sphero BB-8. You can connect to the device, then list services and characteristics, and read and write to and from characteristics. Note that devices need to be paired using Windows before you can connect to them through winble.

Changelog

  • 1.0.2
    • Fix for incorrect intersection in discoverCharacteristics (#3)
  • 1.0.1
    • package.json/readme update
  • 1.0.0
    • initial release

winble's People

Contributors

hgwood avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

Forkers

elundby45

winble's Issues

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.