Alpha 0.9.0 release of new Bluetooth Smart tool from Nordic

We are now one step closer to the production release (v1.0) of our new Bluetooth Smart desktop application. The development team has been hard at work adding new features and improving the existing functionality of the application.

image description
Figure 1: Service discovery

It is important to note that the focus of this alpha release has been on adding new features and on internal architectural changes. It is still in the alpha stage, that means the application is in a finalized draft stage (but still not a full feature product) with rough edges and unaddressed corner cases. Features are also subject to change between releases. The application is code named Yggdrasil, but this will change to an official name by the time we hit production release.

image description
Figure 2: Server setup

If you are not familiar with the product, please have a look at this previous blog post.

Release change log

New features

GAP

  • Peripheral role
  • Advertising, advertising setup
  • Concurrent central & peripheral connections
  • Connection parameter update
  • Pairing (Just-Works)

GATT Client

  • Read/Write
  • Notification toggling and reception

GATT Server

  • Server setup
  • Save/restore server setup

Implementation of new JS Bluetooth Smart API

Early on in the project we decided that we wanted a higher level API on top of the SoftDevice API offered by the pc-ble-driver library. We first looked at existing APIs from iOS, Android, Chrome, etc., but decided that none of them completely matched our requirements. We wanted an API that abstracted away the verbose low level parts, but at the same time did not take away the GATT/GAP features we needed. At the time of this release, the major features of the API are in place. However, there is still work to be done in terms of documentation, stability, performance, and features. If you want a closer look you can find the API on GitHub inside the pc-ble-driver-js repository.

Next release

The next release is planned to be a production Release Candidate (RC1) and should be available in Q1 2016. The focus will be on the following:

  • Improving overall quality and stability
  • Feature freeze (no major new features added)

Roadmap

After the production release, we will again start adding new features. We can't wait to show what we have in store. The source code for the application is planned to be made available on GitHub when the application hits production release.

Known issues/limitations

  • nRF51 support only, nRF52 is not supported yet.
  • Board reset has to be done manually, and the application will need to be restarted (Ctrl-R) after a board reset.
  • It is not possible to change adapter selection after an adapter has been connected to.
  • It is only possible to apply server setup once per session. The board and the application will have to be reset before adding a new server setup.

The issues are being worked on and will be fixed in a later release.

Feedback

We would be happy to hear what you think about the release, and about any feature requests. Please leave your feeback in the comments section, send a PM, or if you have any issues, post a question on devzone.

File downloads

###Application installer/zip files Download the file for your system, install or unpack and run the application:
Windows
OSX
Ubuntu Linux 64bit

###Development kit firmware Program your nRF51 development kit (pca10028) or dongle (pca10031) with this firmware:
connectivity_115k2_with_s130_1.0.0.hex

  • Hi, Bill, thanks for the feedback.

    • Server save and load will be included in the next release (1.0RC), and the toUpperCase issue should be fixed.

    • The automatic resume of advertising would be a nice feature, we'll add that to the backlog for later releases.

  • This looks like it'll be a great tool. Here are some misc. issues:

    • When acting as a server it doesn't automatically resume advertising following a disconnect. It would be nice if it did or at least if this was an option.
    • There doesn't appear to be a way to export/save and import/reopen a server setup so it can be re-used in the future.
    • When re-connecting to it (when acting as a server) I often got an error window that says "Cannot read property toUpperCase of null"

    Bill