Get unlimited public & private packages + team-based management with npm Teams.Learn more »


0.10.1 • Public • Published

Cylon.js For Bluetooth LE

Cylon.js ( is a JavaScript framework for robotics, physical computing, and the Internet of Things using Node.js

This repository contains the Cylon adaptor/drivers to connect to Bluetooth Low Energy (LE) peripherals. It uses the Noble node module ( created by @sandeepmistry thank you!

For more information about Cylon, check out the repo at

Build Status Code Climate Test Coverage

How to Install

Install the module with:

$ npm install cylon cylon-ble

For Ubuntu you must install the following dependency prior to npm install cylon-ble:

$ sudo apt-get install libbluetooth-dev

How to Use

Here's a basic BLE example to get the battery level of a device:

"use strict";
var Cylon = require('cylon');
  connections: {
    bluetooth: { adaptor: 'ble', uuid: '207377654321' }
  devices: {
    battery: { driver: 'ble-battery-service' }
  work: function(my) {
    my.battery.getBatteryLevel(function(err, data) {
      if (!!err) {
        console.log("Error: ", err);
      console.log("Data: ", data);

How to Connect

var Cylon = require('cylon');
  connections: {
    wiced: { adaptor: 'ble', uuid: '207377654321' }
  devices: {
    battery: { driver: 'ble-battery-service' }
  work: function(my) {
    every((1).second(), function() {
      my.battery.getBatteryLevel(function(err, data){
        if (err) {
        } else {
          console.log("BatteryLevel:", data);

You will need a computer with a hardware adaptor that supports Bluetooth LE, also known as Bluetooth 4.0, or Bluetooth Smart. Also, this module currently only supports OSX and Linux operating systems.


You can use the cylon-ble modules's included commands to scan for BLE devices, and then to list the various BLE characteristics for a specific device.

Note that you need to install cylon-ble using the -g option, and then run each commands under sudo like this:

$ sudo cylon-ble-scan
Starting scan.
Peripheral discovered!
  Name: 2B-785E
  UUID: cc360e85785e
  rssi: -80

$ sudo cylon-ble-info cc360e85785e
peripheral with UUID cc360e85785e found
  Local Name        = 2B-785E
  TX Power Level    = -10
  Service Data      =
  Service UUIDs     = 22bb746f2ba075542d6f726568705327

services and characteristics:
1800 (Generic Access)
  2a00 (Device Name)
    properties  read, write
    value       32422d37383545 | '2B-785E'


We're busy adding documentation to our web site at please check there as we continue to work on Cylon.js

Thank you!


For our contribution guidelines, please go to .

Release History

For the release history, please go to .


Copyright (c) 2014-2016 The Hybrid Group. Licensed under the Apache 2.0 license.


npm i cylon-ble

DownloadsWeekly Downloads







Last publish


  • avatar
  • avatar
  • avatar