Steve Hegenderfer, director of developer programs at the Bluetooth Special Interest Group (SIG), explains why the organisation created the tool and how it will help to ease development for those building for the IoT.
When I first joined the Bluetooth SIG, although I was a wireless developer I wasn’t familiar with the ins and outs of Bluetooth® technology. I spent a long time immersing myself by reading through over 3,000 pages of specification guidelines, learning about the development process for both adopted and custom profiles and finding out what tools were already available, with the ultimate aim of trying to understand how to implement the technology. The bottom line was that it was not prescriptive. As a developer understanding Bluetooth technology, then the terminology and then how to get it onto a Bluetooth chip or module, was difficult to get your head around. It was at that point that I decided there must be a better way.
Because of that my team at the Bluetooth SIG started to create tools to make developing with Bluetooth simpler and quicker. We created a couple of great tools, including the Application Accelerator and Smart Starter Kit, but we still thought we could do better. We wanted to achieve three key things: to lower the barrier to entry, speed time-to-market for developers and increase consistency and collaboration.
Lower the barrier to entry: we wanted to get developers what they needed quickly while reducing the learning curve. Bluetooth has lots of great documentation but as the technology advances, it gets harder for developers to keep up with the changes, even in just the GATT technology. The concept of creating custom profiles, use cases for how a device should function in a solution, added an extra layer of complexity. We had to find a way of doing this without creating a massive document.
Speed time-to-market: reducing the documentation and making the process more intuitive would certainly speed up the process. But we wanted to go further. There are a lot of great tools in existence for creating device-side (and client-side) code, including compilers and IDEs. We didn’t want to create a whole new tool chain. The tool needed to be easy to use, but also flexible enough to allow for integration into other tool chains to avoid duplication and ensure the process is as quick as possible.
Increase consistency and collaboration: I’m constantly astounded by the amount of good ideas we see from the community. Hobbyists, makers, all the way through to large ODMs are using Bluetooth to create the latest and greatest connected devices and applications. We wanted a way for people to be able to share their innovations in a simple way that would benefit the community as a whole.
That’s why we have created the Bluetooth Developer Studio, the official new Bluetooth development tool. We launched an Alpha version earlier this year and is now in beta with a full launch scheduled for Q4 2015. It allows developers to use existing adopted profiles, or create their own custom profiles, in the same intuitive graphical tool. You don’t have to poke around strung-together XML files, and then parse them to get what you want. You don’t have to read a 3,000 page specification to see how the GATT-based services hang together. You can interact with those things in real-time.
Bluetooth Developer Studio is designed with ease of use in mind, allowing you to focus on the solution you’re building, not the Bluetooth implementation. For those that don’t know much about developing with Bluetooth you can get started quickly using an intuitive, drag and drop user interface. The tool gives you a list of all the adopted profiles and lets you search within it, for example if you’re creating a fitness tracker you could type in ‘fitness’. Once you’ve found the correct profile you can then drag and drop it into the designer frame to import it.
If you don’t find an adopted profile that meets your needs the tool allows you to reference a library of custom solution implementations published by community members to see if you can find one that already fits the needs of your product. Developers can also share and rate these profiles, providing an extra layer of assurance and information from the community to help you make the right decision on what profile to use. If you don’t find what you want from the adopted profiles or from within the community you can still turn to creating a new custom profile. Bluetooth Developer Studio makes this far easier by using a template for profile, service, and characteristic development.
To ensure interoperability with partner tool chains and various development tool sets, Bluetooth Developer Studio is built with a plug-in infrastructure. We already have a range of plug ins available in the beta from chipmakers including Nordic Semiconductor and Texas Instruments, as well as OEMs like Seed Labs, and we expect this ecosystem to grow. If you want to ensure your product will work with other devices, applications and platforms these plug-ins enable the quick creation of code that can easily be flashed on to a development kit or a particular device. If you’re creating a temperature sensor and you want to allow a particular application to be notified when the temperature changes, a Bluetooth Developer Studio plugin could generate that stub code for you.
To take you right through the development process Bluetooth Developer Studio also ties in with the testing process. Currently the Bluetooth SIG Profile Tuning Suite automates protocol and profile testing, ensuring a device supports the specification and is therefore interoperable with other devices. But while it supports technical testing it doesn’t support functional testing to ensure the product works in the way you want it to. So PTS can tell you if your device supports the heart rate profile but not what will happen when a user’s heart rate goes below a certain amount. With Bluetooth Developer Studio, we’re looking to provide functional testing in real time, using virtual testing environments and physical devices, within the tool so you can do all your testing in the same environment.
Throughout the process if there are things that still aren’t clear, service annotations, descriptions and notes all help you along the way. But you can also access in-depth tutorials directly from the tool – including how to create a custom profile or use a plug in. Bluetooth Developer Studio has a full help system with access to the in-depth documentation already in existence, so if you do need it you don’t have to find it somewhere else. We know people learn in different ways so whether you like to read, watch or listen we’ve got different types of tutorials for you.
Over 3,000 people have signed up to the beta and the feedback that we’re getting so far is that it is a solid development tool. The programme will continue for a couple of months before launch so if you’re a developer interested in the tool sign up today – get involved and give us your feedback. We’ve created a tool for the community and will continue to develop it so we want to hear your ideas on how we can improve it. We don’t want Bluetooth developers to feel constrained by the process, we want them to focus on their products and making them unique. We hope Bluetooth Developer Studio will allow you to dream bigger and get your product to market quicker.