Mouser has a free ezine called ‘Methods’ (pdf) that has in-depth articles on the latest advances in Bluetooth.
Steven Hegenderfer, Director of Developer Programs at Bluetooth SIG explains how Bluetooth 5 will enable design engineers to pioneer innovative solutions. Steven Keeping shows how Bluetooth has evolved and Barry Manz explains Bluetooth Mesh Networking and beacons.
If you take a look at the recently announced Bluetooth SIG mesh, it’s described by three specifications with around 1000 pages! It took three years to create. So what’s the rationale that caused it to be so complex?
For some answers, take a look at Szymon Slupik’s personal blog. Szymon is the Chair Mesh Working Group at Bluetooth SIG and his posts give a fascinating insight into the thinking behind the Bluetooth SIG mesh.
There’s a new command line Python-based utility for Linux called Bleah that describes itself as a “BLE scanner for smart devices hacking”. Don’t let the ‘hacking’ part put you off – all it does is scan for devices and enumerate/use Bluetooth GATT Service much like the many apps for iOS and Android like Nordic nRF Connect. Nevertheless, it’s useful should you need to do these things from Linux rather than mobile apps.
If you use this utility (or mobile apps) you need to be aware that most Beacons are not connectable by default and most have password protected Bluetooth Services preventing you writing to them without having written the password to a specific Service. You will need to read the documentation for the beacon to determine how to make it connectable and to ascertain the default password.
There’s a new article on MacRumors that explains how Bluetooth and Wi-Fi are not fully disabled when toggled off in Control Center on iOS 11. Bluetooth can still be used for Location Services such as apps detecting Beacons.
A full explanation is in an Apple support document. If you want to completely disable Bluetooth you need to do so in Settings.
Although much of the Beacon related PR at the moment is centred around the availability of the Bluetooth SIG Mesh there are other mesh solutions some of which were referenced in our previous post.
Two other mesh solutions that are catching our eye at the moment are Wirepas and Fruitymesh because they provide more at the application level.
Wirepas provides for remote monitoring and configuration of beacons allowing you to set things such as advertisement interval, transmit power, used channels and the beacon payload. It also allows monitoring of beacon battery levels and firmware update. The mesh supports enhanced beacon security to protect against beacon spoofing and piggybacking.
Fruitymesh is open source software provided by M-Way Solutions GmbH in Germany. It allows you to configure beacon advertising, set up Bluetooth scanning, perform I/O and report beacon status, all via the mesh.
What sets these two solutions apart from the Bluetooth SIG mesh is that they are more optimised for use on battery powered devices.
We hope to be supplying beacons with Bluetooth SIG mesh, Wirepas and Fruitymesh in the near future as no one solution is suitable for all scenarios.
The Apache Mynewt OS has just been released (v1.0). It’s an IoT operating system than works on, amongst other platforms, the Nordic Semiconductor nRF51 and nRF52 SoC that’s commonly used in beacons.
The OS has a Bluetooth 4.2 compliant stack that provides for simultaneous advertising, scanning, GATT and concurrent multiple roles (master(central)/slave(peripheral), server/client).
One of the difficulties of developing Beacon applications on (usually Linux) single single board computers (SBCs) is the difficulty in programming Bluetooth LE. We previously gave a few pointers.
To make things much easier, there’s a new pure Python module python-hcipy written using only the Python standard library for interacting with the Bluetooth HCI.
“The primary benefit of using this module is the lack of having any dependency on: PyBluez Python & C based module, the bluetoothd service or D-Bus; this module just uses the standard Python socket API.”
It currently supports BLE Adapter controller and querying, advertising, GATT Client (Central role),GATT Server (Peripheral role) and scanning.
In most cases you can place your beacons and they ‘just work’. However, what if you suspect things aren’t working due to other devices using the same 2.4GHz radio spectrum? It’s possible to use specialist test equipment and spectrum analysers but these are very expensive.
There are lots of marketing articles saying what will be possible and at the other end of the scale, mesh networking specifications that explain how it works. However, to implement these things, we need something in between marketing and specs that works with real hardware.
As we mentioned in our previous article, Bluetooth LE mesh networks tend to leave the application layer to the developer. This is so that mesh network can be used in many scenarios in many vertical industries. However, what’s particularly interesting with the Nordic SDK is that they have implemented some of the application level:
For beacons:
“We have therefore created a Beacon API as part of the Mesh SDK to do concurrent Beaconing and mesh networking”
Taking a look at the part of the SDK for beacons, there’s an API to define the device as a beacon with an advertising payload and advertising interval. The payload is up to the developer. While this falls short of defining APIs for the iBeacon and Eddystone beacon types, it provides a baseline for manufacturers and 3rd party solution providers such as ourselves to create new beacon products and solutions.
The paper explains how technologies (NFC, BLE, VLC) will be important for the Internet of Things in smart cities and how they will need to be connected via LoRaWAN, Sigfox, Weightless, LTE, and 5G. With regard to Bluetooth LE they say:
Another challenge for the attention of BLE technology is the limited range problem; the range is directly dependent on Broadcasting Signal Power. An increase in signal power makes BLE devices less energy-efficient. Moreover it is necessary to improve accuracy in determining proximity to a BLE device.
The range problem will become less of an issue once Bluetooth 5 devices become available.