Web Bluetooth Terminal

There’s an open source (Node.js based) Progressive Web Application (PWA) for Web Bluetooth written by Danila Loginov. It’s also hosted and runnable at GitHub.

A PWA is one that can be run in the web browser. There’s no need to install anything and it works offline after it has been loaded.

Web Bluetooth allows the browser to see and interact directly with Bluetooth LE devices. This allows such devices to be configured and controlled from the web browser, where the browser is on a smartphone, laptop or desktop that has a Bluetooth LE adapter.

A particularly useful feature of Web Bluetooth Terminal is that it supports GATT Serial Port Profile. This is a standard interface that allows control of a Bluetooth device in much the same way as via UART. This means it’s possible to send strings of commands to configure and control. Some Bluetooth LE devices such as the HM-10 (make sure you get a genuine rather than fake one) include the Serial Port profile. Alternatively, if you are creating your own Bluetooth LE device you might include the GATT Serial Port Profile as part of the firmware.

For more information there are some links on Web Bluetooth, a great tutorial by François Beaufort, another article by the author of the PWA and the W3C Bluetooth Community Group.

Why Doesn’t the Web Bluetooth Configuration Page Work?

The Physical Web project has a web page where they invite you to use a web page to configure your Eddystone beacon. Unfortunately, it doesn’t work for most beacons. The reason is because it assumes your beacon conforms to the new Eddystone Configuration GATT Service that became available in April 2016. Most beacon firmware pre-dates this so isn’t compatible.

A few manufacturers have added support for the new GATT Service. For example, Sensoro that we stock, can be irrevocably turned into what Sensoro call Standard Eddystone GATT that turns the beacon into a generic Eddystone beacon with no Sensoro (or iBeacon) facilities. Even when we did that, the Web Bluetooth Configuration Page wouldn’t recognise the beacon so we suspect the page doesn’t fully work yet.

In the meantime, if you want to configure a beacon having the Eddystone Configuration GATT Service, the best way is to use the Nordic nRF Connect app that does a great job of recognising and describing and configuring the Eddystone Configuration GATT Services.

Chrome 53 Arriving With Web Bluetooth

Chrome 53 currently being rolled out now includes Web Bluetooth. What was previously an experimental feature enabled by the chrome://flags/#enable-web-bluetooth flag can now be enabled for Chrome OS, Android M, and Mac via what Google calls an Origin Trial.

Web Bluetooth allows the browser to see and interact directly with Bluetooth devices. The idea is that it will allow such devices to be configured and controlled from the web browser. Imagine consumer or IoT devices that no longer need a native configuration app nor configuration over WiFi. Instead, the app can be written in Javascript, served from anywhere and even be a local html file. There are some technical level examples on GitHub.

In terms of beacons, Web Bluetooth allows these to be potentially configured via the web browser rather than via native iOS and Android apps. The Physical Web team has a page where you can configure Standard Eddystone Beacons that follow their new Eddystone Configuration GATT Service. We have tried this under Android Chrome 52 with our Sensoro beacons in Standard Eddystone mode and the beacons weren’t even detected. Let’s hope when Chrome 53 reaches us, such problems have become resolved.

There’s more information on implementing Web Bluetooth and the implementation status of Web Bluetooth across the various platforms.