These days, more and more devices are equipped with wireless connectivity. Everything from keyboards to keyfobs, from lightbulbs to clothing, wants to talk to your smartphone or computer. And many of those things do so using a technology called Bluetooth® Low Energy, or Bluetooth LE. The technology has become more and more prevalent; by some estimates, there are nearly 4 billion Bluetooth LE devices out there in the world.
Synapse has worked on numerous projects involving Bluetooth LE, both from the hardware/firmware and mobile application perspectives. We’ve often found the need to have a simple way for our test engineering team to speak to devices separately from the actual application. How do you test a device to know that it works properly separate from the mobile application, after all?
There are various tools already out there for smartphones which allow you to examine Bluetooth LE enabled devices and interact with the Bluetooth LE services they present to the world, and our developers and test engineers were often making use of them. But all of those tools required writing up raw bits of information in hexadecimal form and sending them to the devices—a painful process on most smartphones. And further, there was no convenient tool for doing the same sort of exploration and testing on desktop or laptop machines.
Enter BlueSee™, our in-house Bluetooth LE debugging toolkit.
BlueSee provides not only the same capability to explore the Bluetooth LE enabled world around you as the existing mobile tools—viewing all devices that are advertising, filtering those scan results, connecting to them, and interacting with them—but it provides a scripting interface, which allows you to define easy interactions. This allows our test engineers to write scripts to help them automate testing various bits of functionality, and to use these scripts either on mobile devices or on their laptop computers.
In its out-of-box form, BlueSee provides scripts for several common Bluetooth LE services: device information, time/date, battery level, heart rate, and so on. Anything that BlueSee doesn’t recognize, all the available characteristics will be presented to the user in a raw form for reading, writing, and subscription.
But where we’ve found this tool helped our process is when we extend it with custom project-specific scripts.
Previously, if the only way to exercise the device was manually through writing characteristics, often the testing was done with the final application; this meant that if something went wrong, the test engineer had no visibility into whether it was something wrong in the firmware on the device, or something wrong in the end-user application itself. By using BlueSee, testing of the two halves can be decoupled, and issues are found much more readily.
This has already proven useful to several Synapse projects, where test engineers were able to use BlueSee and some device-specific test scripts.
Scripting BlueSee is done through the use of the Lua scripting language, and through the use of ‘widgets’ which can be added to ‘panels’ representing each Bluetooth LE service. For instance, imagine you had a Bluetooth LE enabled porch light, branded a PORCH SHIELD, where you could set a color, or ask it to blink messages in Morse code.
The service panel for this hypothetical lightbulb is defined in Lua, and built out of widgets. BlueSee provides a library of interactive widgets for scripters to use: labels, buttons, option-pickers, dividers, and similar. When a user connects to the lightbulb, they can use these widgets to interact with it. If we want to set the light to Synapse red and blink our company name, we could do so:
And one of the most powerful parts of this tool is that the same script can be used on the iOS mobile version of the application, providing precisely the same test functionality.
BlueSee has helped immeasurably with streamlining testing of devices here at Synapse, and we’re eager to let others benefit from the same tools. As such, the macOS and iOS versions of BlueSee are being released into the App Store right now, for use by anyone who might find them useful. Information about the application, as well as sample scripts and a link to the support forums, can be found at https://www.synapse.com/bluesee.
It’s our hope you’ll find this tool just as helpful to your own workflow as we have!