bjorning gravatar image

Posted 2015-09-26 01:06:37 +0100


New Bluetooth Smart tool from Nordic

Over the last few months we have been working on a new desktop application for Bluetooth® Smart devices which will give you easy access to the most common Bluetooth features and allows you to control locally connected, compatible Nordic devices. We have tried to simplify the inherent complexity of the technology by presenting it in an intuitive way to help you get up and running quickly.

image description
Figure 1: Connection map

The features and use cases for this new tool are similar to the Master Control Panel desktop application, but with additional features and support. This tool is compatible with several operating systems which include Windows, Mac OSX, and Linux, a major step from our previous Windows-only Master Control Panel. To stay flexible, we have chosen a programming language and technology that will make it easier to update and add new features in the future. Let us know if you have any suggestions :)

image description
Figure 2: Device details

Written in HTML5, CSS, and JavaScript (Node.js) this new tool uses Electron to provide a self contained environment for running desktop applications with Chromium and Node.js. The Bluetooth host is run on nRF51 hardware, which is connected to the application through a USB serial port. We are also using a Nordic project called Bluetooth Smart Driver (pc-ble-driver) to handle the transport communication and send the SoftDevice BLE API as a C linked library. To access the C library, another project named pc-ble-driver-js generates native bindings for Node.js.
The frontend and backend javascript application uses various node.js modules to get the job done. Modules used include bootstrap, react, reflux, sqlite3, winston and several others.

image description
Figure 3: Building blocks

Features in this release

  • GAP central
    • Scan
    • Multiple connections (up to 3 connections)
  • GATT client
    • Service discovery
  • Log
    • Log view with most important events
    • Log file with more detailed logging

Planned features

  • GAP central and peripheral
    • Advertising configuration
    • Pairing and security
  • GATT client
    • Toggle notifications
    • Read and write
  • GATT server
    • Server set up
  • Device Firmware Upgrade
    • Over-the-air DFU
  • Device reset


The following hardware and software is required:

  • nRF51 development board (PCA10028) or dongle (PCA10031) (firmware HEX file is provided)
  • SEGGER JLink software (JLink and CDC drivers)

Compatible operating systems

We currently have support for the following operating systems:

  • Windows (tested on Windows 7 64-bit)
  • Mac OSX (tested on OSX 10.10 Yosemite)
  • Linux (tested on 64-bit Ubuntu 14.4 LTS)

Known issues/limitations

  • This is an early development stage release. No guarantees are given regarding stability and backwards compatibility.
  • No reset command is available at this point, so the board will have to be manually reset between each run of the application.


The application is currently licensed under Nordic proprietary license. We plan to have it under an open license in the future.


If you download and try out the tool, let us know what you think about it. Please leave your feedback in the comments section or contact Nordic tech support. We really appreciate it!

File download

Application installer/zip files

Download the file for your system, install or unpack and run the application:
Windows: yggdrasil-v0.7.0.exe
OSX: Yggdrasil-0.7.0-darwin-x64.tar.gz
Ubuntu Linux 64bit: yggdrasil-0.7.0-linux-x64.tar.gz

Development kit firmware

Program your development kit or dongle with this firmware:


Whizkid7 gravatar image

Posted Sept. 27, 2015, 5:51 p.m.

When will it receive nrf52 preview DK support?

bjorning gravatar image

Posted Sept. 28, 2015, 10:52 a.m.

@Lakerno: nRF52 support will be added to Yggdrasil after Serialization has been added to the nRF52 SDK. No date has been announced for this but it's in the roadmap.

follower gravatar image

Posted Sept. 29, 2015, 1:36 a.m.

Want to express my support for your work on this, particularly:

  • cross-platform OS support
  • eventual open license (please choose one of the main existing ones and not create your own license)
  • your choice of a more easily updated programming language/framework

A great start.

(I downloaded and tested on Mac OS X 10.8.5 which opened the application successfully. Haven't yet tried to interact with hardware though.)

JohnBrown gravatar image

Posted Sept. 30, 2015, 9:52 a.m.

So will it not work with the PCA 10000 dongle?

bjorning gravatar image

Posted Sept. 30, 2015, 1:11 p.m.

@JohnBrown: The firmware is not directly compatible with pca10000. It is possible to download the connectivity firmware project from SDK and follow the pc_ble_driver readme, though building for pca10000 is not something we actively support at this point.

JohnBrown gravatar image

Posted Sept. 30, 2015, 3:30 p.m.

I see. So that means that I need to buy a complete new dev kit if I want to use this? There appears to be no dongle in the nRF52 "preview" kit I bought a while back..

bjorning gravatar image

Posted Oct. 1, 2015, 8:45 a.m.

Currently you will need a pca10031 dongle or a pca10028 devkit. nRF52 support will be added later.

tonylee gravatar image

Posted Oct. 5, 2015, 4:59 a.m.

How can I enable the CCCD, it seems no button?

bjorning gravatar image

Posted Oct. 5, 2015, 12:21 p.m.

@Tony Lee: This release does not support write operations but it will be added in a coming release. See the "Features" sections in the article for an overview of what's supported and what's planned.

jdattolo gravatar image

Posted Oct. 12, 2015, 7:54 p.m.

I see that you are using the 115k2 version of the S130 firmware. I have been using the 1M version for a tool I have been writing. Is there some reason that you are using the 115K2 code over the 1M one? It would be great to not have to keep reprogramming back and forth.

Masa gravatar image

Posted Oct. 12, 2015, 10:43 p.m.

I guess this to replace MCP eventually. Is it going to support Android and iOS devices?

bjorning gravatar image

Posted Oct. 13, 2015, 2:17 p.m.

@Jim Dattolo: We chose to include only 115K2 in this release since that it is the highest baud rate that is supported by all three platforms (OSX does not support using 1M). If you want to use the 1M firmware from pc-ble-driver v0.5.0 with Yggdrasil, you can do so by updating the baud rate number in this file: (application folder)\resources\app\js\stores\driverStore.js.

bjorning gravatar image

Posted Oct. 13, 2015, 2:20 p.m.

@Masahiro: We have no immediate plans to support mobile platforms with this application, it is desktop only.

reidarma gravatar image

Posted Oct. 14, 2015, 9:32 a.m.

@Masahiro: I guess you are aware of MCP for Android. If not, check out this page for an overview of our mobile apps:

luposlip gravatar image

Posted Oct. 28, 2015, 1:16 p.m.

This is REALLY great! It works like a charm on my Mac w/OSX 10.11, using a PCA10031 dongle! :) Super helpful for debugging/analyzing/learning.

Look forward to more cross platform tools/utilities from you!

gap gravatar image

Posted Oct. 30, 2015, 5:23 p.m.

Hi, some beginner's problems getting it to work on OS X 10.10 here:

  • Select Com Port button lists available ports, but does not select them i.e. clicking on a port in the list returns the button to displaying "Select com port"; status light is always grey
  • Discovered devices, Start Scan button is always disabled, so cannot start a scan

Do I need to install pc-ble-driver or anything from electron separately to get it to work?

wilhelmsen gravatar image

Posted Jan. 11, 2016, 10:29 p.m.

@gap Did you figure it out?

Sign in to comment.