• Stars
    star
    131
  • Rank 275,867 (Top 6 %)
  • Language
    JavaScript
  • License
    Other
  • Created about 9 years ago
  • Updated almost 9 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Desktop application to interact with Bluefruit LE and other Bluetooth low energy devices on Mac OSX, Windows, and Linux.

Adafruit Bluefruit LE Desktop Application

Desktop application to interact with Bluefruit LE and other Bluetooth low energy devices on Mac OSX, Windows, and Linux. Allows you to connect to a BLE device, view the services and characteristics, interact with a BLE UART, use a control pad, color picker, and view orientation from a BNO-055 sensor. Created using Electron and noble.

Adafruit Bluefruit LE Application

Note that this program is currently in beta and might have bugs or issues. Feel free to raise problems you find as new issues on this repository!

Installation

For ease of installation pre-built binary releases are available in the releases tab of this repository. Pick the right binary for your platform, Windows x64 (win32-x64), Mac OSX (darwin-x64), or Linux (linux-x64). See below for more detailed install instructions for each platform.

Windows

Bluetooth low energy support has typically been problematic on Windows because of a lack of APIs to access BLE devices. However the noble library added support for Windows by talking directly to a USB BLE device and working around the lack of BLE support in the OS. This means the Adafruit Bluefruit LE desktop app will only work with the following USB BLE adapters:

  • CSR8510 (USB VID 0x0a12, PID 0x0001)
    • This is the recommended adapter and the only one that has been tested.
  • BCM920702 Bluetooth 4.0 (USB VID 0x0a5c, PID of 0x21e8)

Unfortunately any other BLE adapter, including one that might be built in to your laptop or computer, will not work. You must be using one of the USB BLE adapters above.

You'll need to be running Windows 7 or greater to use the application. Note that only Windows 7 has been tested at the moment.

Once you have the USB BLE adapter you will need to use Zadig tool to configure the device to use a WinUSB driver (note that Windows won't be able to use the BLE adapter after making this change). To use Zadig tool download it, make sure your BLE adapter is plugged in, and run the program. Then select the Options -> List All Devices menu item:

Zadig step 1

Find the BLE adapter in the device drop down list, in this case a CSR8510, and then select a WinUSB driver in the combobox on the right side of the green arrow. Click the Replace Driver button like below:

Zadig step 2

Zadig tool will replace the driver for the device with a WinUSB driver. When it finishes you should see a successful install dialog like below:

Zadig step 3

You should now be ready to use the Bluefruit LE application. Download the latest win32-x64 release (sorry there is currently no 32-bit Windows binary available yet) of the application from the releases page. Unzip the archive and double click the able.exe inside to start the application.

Driver Uninstall

If you'd ever like to revert back to the normal driver for the BLE adapter you can use device manager to find the device, right click it and select 'Uninstall' like below:

Zadig uninstall

Be sure to check the 'Delete the driver software for this device.' option so the WinUSB driver is not installed again when the device is connected to the computer (don't worry this won't delete the WinUSB driver from Zadig tool, you can always use Zadig tool to setup the BLE adapter with WinUSB again).

Mac OSX

On Mac OSX you only need to ensure your device supports Bluetooth 4.0/low energy. Most MacBooks since ~2012 should have BLE support. Then download the latest darwin-x64 release of the application from the releases page. Unzip the archive and run the able application.

Linux

On Linux you need to meet the requirements for noble on Linux which include at least a Linux kernel version 3.6 or higher. In addition you'll want to ensure bluez is installed. On a Debian/Ubuntu system make sure the following packages are installed:

sudo apt-get install bluetooth bluez-utils libbluetooth-dev libudev-dev

Or on a Fedora or other RPM-based system install these packages:

sudo yum install bluez bluez-libs

Then download the latest linux-x64 release of the application from the releases page. Unzip the archive, open a terminal, navigate to the location of the files and run the able application. Note that you should run the application as a root user using sudo:

sudo ./able

Also if you have multiple Bluetooth adapters the first one will be chosen (hci0). You can set an explicit BLE adapter by following the steps from the noble library to set the NOBLE_HCI_DEVICE_ID environment variable, like to use hci1:

sudo NOBLE_HCI_DEVICE_ID=1 ./able

Compiling From Source

To build the application from its source you will need to setup your machine to compile native node.js application code. Be warned that this is a somewhat involved process on platforms like Windows! If you just want to run the application grab one of the pre-built binaries from the releases.

First you will need node.js version 0.12.7 installed. Later versions might work but have not been tested. Node.js 4.0.0 is unfortunately not yet supported by many of the native dependencies.

First follow all of the steps for installing node-gyp to compile native modules for your platform. On Linux you'll need to install a compiler toolchain from your package manager. On Mac OSX you'll need to install the XCode command line tools. On Windows you'll need to install Visual Studio 2013 community edition, Python 2.7, and follow all of the steps to setup environment variables, etc. Do not move on until node-gyp has been installed!

Next clone the repository for this application to get the latest source code.

!! WINDOWS WARNING !!

On Windows there is an unfortunate problem with node.js and npm where dependency file paths can exceed the 255 character platform limits of Windows and fail to install. The issue has a long history but is unfortunately still a problem as of 2015. The best way to work around this issue is to install the source code into a subdirectory of the C:\ drive, like under C:\able. If you don't do this you will see cryptic errors with missing modules during packaging of the application.

!! WINDOWS WARNING !!

Now install gulp to run the build scripts for the source:

npm install -g gulp

Note on Ubuntu you probably need to use sudo when running npm install -g, see this issue. For other platforms like Mac OSX or Windows do not use sudo to run npm as root.

Install the dependencies for building the application by navigating to the folder with the source and running the npm install command:

npm install

Now you're ready to build the source using gulp commands. To build a complete package for your platform use the package command:

gulp package

This will install the application dependencies, compile any native node modules (being careful to ensure they are built to work with Electron), convert the application's React JSX code to javascript, and then package everything up with Electron. After the package command finishes there will be a zip file created for your platform, like able-darwin-x64-0.1.0-beta.zip for Mac OSX with version 0.1.0-beta of the code. There will also be a folder created like able-darwin-x64, and inside this folder is the contents of the zip file.

You can either run the packaged application code from the zip or folder above, or you can run the unpackaged application code with Electron manually. The unpackaged application code will reside in the app subfolder, and it contains the following folders:

  • assets - Binary assets for the application like icons, 3D models, etc.
  • css - Cascading style sheets used by Bootstrap & Bootswatch.
  • dist - ES6 and JSX source that has been 'compiled' to ES5 for Electron to run.
  • fonts - Fonts used by Bootstrap.
  • lib - Third party JavaScript libraries used by the application.

To run Electron against this app code you can use an Electron prebuilt binary that is installed with the application dependencies. From the application folder run:

./node_modules/.bin/electron app

Note that you must use the Electron version installed by the application. The native dependencies of the app are compiled against a specific Electron version and won't work with other versions!

Running Electron against the app code directly is useful if you're modifying the code. You can change the code and then run Electron with the app to test the changes without having to package all the code up again. However you will need to be careful that if you change any JavaScript source code in the src directory you use the gulp js-build command to 'compile' JSX and ES6 JavaScript code:

gulp js-build

After the js-build command runs it will drop the compiled JavaScript in the app/dist directory so you can run Electron against the app folder to see the changes.

If you are modifying the code you will want to be aware that the code in the src directory uses ES6 and the React framework. You will want to familiarize yourself with using React.

More Repositories

1

Adafruit_NeoPixel

Arduino library for controlling single-wire LED pixels (NeoPixel, WS2812, etc.)
C++
2,862
star
2

Adafruit-GFX-Library

Adafruit GFX graphics core Arduino library, this is the 'core' class that all our other graphics libraries derive from
C
2,111
star
3

DHT-sensor-library

Arduino library for DHT11, DHT22, etc Temperature & Humidity Sensors
C++
1,835
star
4

Fritzing-Library

Adafruit parts, components, breakouts, etc...in Fritzable format!
1,605
star
5

Adafruit_SSD1306

Arduino library for SSD1306 monochrome 128x64 and 128x32 OLEDs
C++
1,587
star
6

Adafruit-Raspberry-Pi-Python-Code

Adafruit library code for Raspberry Pi
1,414
star
7

Adafruit_Python_DHT

Python library to read the DHT series of humidity and temperature sensors on a Raspberry Pi or Beaglebone Black.
C
1,091
star
8

Adafruit-Eagle-Library

Slowly building up a collection of parts we use here ... This file includes some library parts from microbuilder.eu Most of 'em are either Eagle parts that I've changed a little to make them easier to solder, some are 'handmade' and a few are from microbuilder.eu Its released into the Public Domain - that means you can do whatever you want. We'd like it if you kept the author email/url in the part description, just so we can be alerted if there are errors. Enjoy!
1,005
star
9

Adafruit_Learning_System_Guides

Programs and scripts to display "inline" in Adafruit Learning System guides
C
990
star
10

Adafruit_Sensor

Common sensor library
C++
887
star
11

Adafruit-Pi-Finder

Find and set up your brand new Raspberry Pi
JavaScript
844
star
12

Adafruit_CAD_Parts

CAD files for various boards, components and parts
SMT
829
star
13

RTClib

A fork of Jeelab's fantastic RTC Arduino library
C++
760
star
14

Adafruit_CircuitPython_Bundle

A bundle of useful CircuitPython libraries ready to use from the filesystem.
Shell
737
star
15

awesome-circuitpython

A curated list of awesome CircuitPython guides, videos, libraries, frameworks, software and resources.
620
star
16

Adafruit_nRF52_Arduino

Adafruit code for the Nordic nRF52 BLE SoC on Arduino
C
608
star
17

Adafruit_MQTT_Library

Arduino library for MQTT support
C++
541
star
18

Adafruit_Python_SSD1306

Python library to use SSD1306-based 128x64 or 128x32 pixel OLED displays with a Raspberry Pi or Beaglebone Black.
Python
519
star
19

Adafruit-ST7735-Library

This is a library for the Adafruit 1.8" SPI display http://www.adafruit.com/products/358 and http://www.adafruit.com/products/618
C++
495
star
20

Adafruit_TinyUSB_Arduino

Arduino library for TinyUSB
C
483
star
21

Adafruit-WebIDE

This is a simple editor to be used on the Raspberry Pi (or anywhere?).
JavaScript
474
star
22

adafruit-beaglebone-io-python

Adafruit's BeagleBone IO Python Library
C
465
star
23

Adafruit_GPS

An interrupt-based GPS Arduino library for no-parsing-required use
C++
450
star
24

pi_video_looper

Application to turn your Raspberry Pi into a dedicated looping video playback device, good for art installations, information displays, or just playing cat videos all day.
Python
442
star
25

Adafruit_nRF52_Bootloader

USB-enabled bootloaders for the nRF52 BLE SoC chips
C
437
star
26

Adafruit-PWM-Servo-Driver-Library

Adafruit PWM Servo Driver Library
C++
436
star
27

Adafruit-PN532

Arduino library for SPI and I2C access to the PN532 RFID/Near Field Communication chip
C++
397
star
28

Adafruit_Python_GPIO

DEPRECATED! Please use Adafruit Blinka instead (was: Library to provide a cross-platform GPIO interface on the Raspberry Pi and Beaglebone Black using the RPi.GPIO and Adafruit_BBIO libraries.)
Python
393
star
29

Adafruit_Python_BluefruitLE

Python library to simplify access to Bluetooth low energy devices and services on Linux (using bluez) and Mac OSX.
Python
390
star
30

Adafruit-PCD8544-Nokia-5110-LCD-library

Arduino driver for PC8544, most commonly found in small Nokia 5110's
C++
385
star
31

Adafruit_Blinka

Add CircuitPython hardware API and libraries to MicroPython & CPython devices
Python
384
star
32

Adafruit_CircuitPython_HID

USB Human Interface Device drivers.
Python
374
star
33

Adafruit-Fingerprint-Sensor-Library

Arduino library for interfacing to the fingerprint sensor in the Adafruit shop
C++
364
star
34

Adafruit_ILI9341

Library for Adafruit ILI9341 displays
C++
357
star
35

Adafruit-Retrogame

Raspberry Pi GPIO-to-virtual-keyboard utility for classic game emulators
C
348
star
36

Raspberry-Pi-Installer-Scripts

Shell
348
star
37

Adafruit-Motor-Shield-library

Adafruit Motor shield V1 firmware with basic Microstepping support. Works with all Arduinos and the Mega
C++
329
star
38

Adafruit-MCP23017-Arduino-Library

Arduino Library for Adafruit MCP23017
C++
322
star
39

Adafruit_BME280_Library

Arduino Library for BME280 sensors
C++
312
star
40

Adafruit_BNO055

Unified sensor driver for the Adafruit BNO055 orientation sensor breakout
C++
308
star
41

TFTLCD-Library

Arduino library for 8-bit TFT LCDs such as ILI9325, ILI9328, etc
C
301
star
42

Adafruit-Thermal-Printer-Library

Arduino Library for Small Thermal Printers
C++
300
star
43

Reference-Cards

Business card-sized references for Arduino and basic electronics
294
star
44

Adafruit_LED_Backpack

Adafruit LED Backpack Library for our various LED backpacks.
C++
286
star
45

Adafruit_CircuitPython_NeoPixel

CircuitPython drivers for neopixels.
Python
277
star
46

RGB-matrix-Panel

Arduino library and example code for the 16x32 RGB matrix panels in the shop
C++
275
star
47

Adafruit_CC3000_Library

Library code for Adafruit's CC3000 WiFi breakouts &c
C++
270
star
48

Adafruit_ADS1X15

Driver for TI's ADS1015: 12-bit Differential or Single-Ended ADC with PGA and Comparator
C++
268
star
49

Adafruit_Python_PCA9685

Python code to use the PCA9685 PWM servo/LED controller with a Raspberry Pi or BeagleBone black.
Python
258
star
50

Adafruit_TouchScreen

Arduino library for 4-wire resistive touchscreens
C++
251
star
51

Adafruit_CircuitPython_SSD1306

Adafruit CircuitPython framebuf driver for SSD1306 or SSD1305 OLED displays. Not for use with displayio. See README.
Python
249
star
52

Adafruit_BMP280_Library

Arduino Library for BMP280 sensors
C++
230
star
53

Adafruit-BMP085-Library

A powerful but easy to use BMP085/BMP180 Arduino library
C++
223
star
54

Adafruit_SleepyDog

Arduino library to use the watchdog timer for system reset and low power sleep.
C++
218
star
55

Python-Thermal-Printer

Python
213
star
56

Adafruit_IO_Python

Adafruit IO Python Client Library
Python
213
star
57

LPD8806

Arduino library for LED strips and pixels using LPD8806 (and probably LPD8803/LPD8809)
C++
210
star
58

Adalight

Processing
210
star
59

Adafruit_Python_CharLCD

Python library for accessing Adafruit character LCDs from a Raspberry Pi or BeagleBone Black.
Python
208
star
60

Adafruit_FONA

Arduino library for the Adafruit FONA
C++
206
star
61

Adafruit_BusIO

Arduino library for I2C & SPI abstractions
C++
206
star
62

Adafruit-Trinket-USB

Arduino libraries allowing Trinket to act as USB devices
C
205
star
63

Bluefruit_LE_Connect

iOS app for use with Bluefruit Bluetooth LE breakout board
Swift
203
star
64

Adafruit_Floppy

C++
199
star
65

TinyWireM

I2C library for Trinket and Gemma, adapted from BroHogan's code on Arduino Playground
C++
196
star
66

Adafruit_BluefruitLE_nRF51

Arduino library for nRF51822-based Adafruit Bluefruit LE modules
C++
190
star
67

Adafruit_IO_Arduino

Arduino library to access Adafruit IO from WiFi, cellular, and ethernet modules.
C++
188
star
68

Adafruit-WS2801-Library

Arduino library for controlling strips/pixels using WS2801 driver chips
C++
185
star
69

Adafruit_INA219

INA219 Current Sensor
C++
181
star
70

Adafruit_AHRS

Arduino library for AHRS (Attitude and Heading Reference System) for Adafruit motion sensors
C++
175
star
71

Adafruit_Motor_Shield_V2_Library

Arduino library for Adafruit Motor Shield v2!
C++
171
star
72

AccelStepper

A small fork of AccelStepper v1.3 with AF_motor (Adafruit motor shield) support!
C++
167
star
73

Adafruit_NeoMatrix

Adafruit_GFX-compatible library for NeoPixel grids
C++
167
star
74

SD

fixes & updates to the Arduino SD library - totally in progress. works but in beta
C++
166
star
75

Adafruit_ESP8266

Example code for ESP8266 chipset
C++
165
star
76

RadioHead

A github'ified version of http://www.airspayce.com/mikem/arduino/RadioHead/
C++
164
star
77

Adafruit_CircuitPlayground

library for Circuit Playground board
C++
159
star
78

Raw-IR-decoder-for-Arduino

Take raw IR signal from a remote receiver and print out pulse lengths
C++
158
star
79

circuitpython-org

CircuitPython's website
HTML
153
star
80

Bluefruit_LE_Connect_v2

iOS app for use with Bluefruit Bluetooth LE modules and dev boards from Adafruit (v2.0)
Swift
152
star
81

MAX6675-library

Arduino library for interfacing with MAX6675 thermocouple amplifier
C++
136
star
82

CircuitPython_Community_Bundle

A bundle of useful CircuitPython libraries from the CircuitPython community.
Shell
134
star
83

Adafruit_TCS34725

Arduino library driver for Adafruit's TCS34725 RGB Color Sensor Breakout
C++
133
star
84

Adafruit-VC0706-Serial-Camera-Library

Library for VC0706-based Serial JPEG Cameras
C++
132
star
85

Adafruit_VL53L0X

Arduino library for Adafruit VL53L0X
C++
131
star
86

Adafruit_NFCShield_I2C

I2C Driver for Adafruit's PN532-based NFC Shield
C++
128
star
87

awesome-feather

A curated list of awesome Feather form factor boards, guides, videos, libraries, software and resources.
127
star
88

Adafruit_CircuitPython_ADS1x15

CircuitPython drivers for the ADS1x15 series of ADCs.
Python
127
star
89

Adafruit_CircuitPython_BLE

Bluetooth Low Energy (BLE) library for CircuitPython
Python
126
star
90

circup

CircuitPython library updater.
Python
124
star
91

Adafruit_SPIFlash

Arduino library for external (Q)SPI flash device
C++
124
star
92

Adafruit_VS1053_Library

This is a Arduino library for the Adafruit VS1053 Codec Breakout and Music Maker Shields
C++
124
star
93

FreqShow

Raspberry Pi & PiTFT-based RTL-SDR frequency scanning and display tool.
Python
123
star
94

Adafruit_Adalink

Python wrapper for Segger's J-Link Commander & STMicro STLink V2 to flash various ARM MCUs
Python
122
star
95

FifteenStep

A general purpose Arduino MIDI sequencer library
C++
121
star
96

TV-B-Gone-kit

*Pew* *Pew* TV's are toast!
C
120
star
97

Adafruit-MLX90614-Library

Arduino library for the MLX90614 sensors in the Adafruit shop
C++
117
star
98

Bluefruit_LE_Connect_Android

Android port of Adafruit's Bluefruit LE Connect app
Java
117
star
99

Adafruit_Python_BME280

Python Driver for the Adafruit BME280 Breakout
Python
116
star
100

Adafruit_Python_ADS1x15

Python code to use the ADS1015 and ADS1115 analog to digital converters with a Raspberry Pi or BeagleBone black.
Python
114
star