Ask any IoT manufacturer what makes their products exciting. They’ll all point to applications, the unique ways a device delivers value to its users. So it makes sense to focus your development resources on your application: first, last, and always. To get your application to work, however, you need iron-clad connectivity. That comes from technologies like Bluetooth Low Energy (BLE).
Bluetooth Low Energy is a great choice for connecting IoT products with mobile devices and/or the cloud. It’s flexible, reliable, widely supported, and easy on batteries. There’s just one problem: Open up a BLE SDK and look at the API, and even the most experienced developer will slam into a wall of complexity.
Learning to handle that complexity takes a lot of resources—resources better spent on the features that make your product special. From the user’s perspective, connectivity just has to work. But while they’re largely invisible to users, BLE stacks require a great deal of expertise to optimize. That’s because the BLE code is, frankly, a bit weird.
Confronting Complexity in Bluetooth Low Energy
The typical API from a BLE stack is full of unfamiliar terms like GAP, GATT, CCCD, and “blob request.” The code plays by its own set of rules, and it’s not well-documented. That compounds cost and complexity across any IoT product’s development cycle.
Adding to the challenge, BLE systems require three spheres of development, each of which must work seamlessly with the next:
- Firmware Development: This is embedded software that runs on a chipset. Firmware must be configured and optimized to get data where it needs to be, when it needs to be there, without killing your battery. Odds are, the firmware developers on your team won’t have a lot of pre-existing Bluetooth knowledge.
- Mobile App Development: Mobile developers are usually experts in iOS, Android, or both—not Bluetooth. And much of the Bluetooth functionality on mobile is both confusing and undocumented, so it takes a lot of time to develop BLE expertise from scratch.
- System-Level Architecture: Bluetooth development challenges are similar for both the firmware and mobile sides. But there are also system-level difficulties. Firmware and mobile developers must agree on common parameters, behaviors, and details of communication. That cooperation must extend throughout the production timeline; otherwise, you’ll run into interoperability flaws.
So how do you address the complexity of the BLE stack? You essentially have three options—and for most IoT projects, only one of them is the right choice.
The 3 Approaches to Bluetooth Low Energy Development
If you’re building IoT devices, you have a development team: firmware developers, mobile developers, or maybe just one expert handling both sides of the system. The trick is to give your developers the tools they need to create robust, dependable Bluetooth connectivity, without bugs or interoperability flaws, and without overrunning on timelines or costs.
Here are the three ways to approach Bluetooth Low Energy development. They’re ranked in descending order, going from worst to best in terms of simplicity, cost-savings, and faster time to market.
3. Take the time to learn everything there is to know about Bluetooth.
Your first option for Bluetooth development is to develop your own in-house expertise. That’s easier said than done. If firmware and mobile developers don’t have experience with Bluetooth, the libraries provided by iOS, Android, and chip manufacturers won’t make a lot of sense. What are GAP and GATT, for instance? How should you set the PDU and MTU sizes? What connection parameters should be used, and how are they configured?
Developing a BLE system is almost like learning multiple new languages, without a textbook. A lot of the expertise out there is essentially tribal knowledge: You have to spend a lot of time haunting obscure forums. That form of self-education is extremely time-consuming. It also increases the risk of mistakes. Often, those mistakes don’t become apparent until after your products ship.
So what’s the next option?
2. Hire a Bluetooth Low Energy Consultant
If you don’t have the time for self-training, you can always bring in outside help. Unfortunately, software consultants who specialize in BLE are rare. They’re also rather expensive. So the first downside of the consultancy route is the cost.
Then there’s the fact that many consulting firms aren’t actually Bluetooth experts. Most are generalists, extremely knowledgeable when it comes to their portfolio of microcontrollers and protocols—but less so with BLE’s unique ecosystem.
Given the cost and complexity of working with Bluetooth consultants, you may wish to explore another route. That brings us to the most beneficial way to bring BLE functionality to your IoT product—with your existing development team, and no steep learning curve.
1. Use a Bluetooth Low Energy Middleware Platform
A Bluetooth Low Energy middleware platform is a software layer that sits between the Bluetooth stack and your applications: Firmware and mobile both. The middleware reformats the chip vendor’s confusing code into familiar, English-readable language, in a simplified API. It strips out the many unnecessary feature sets built into chip ecosystems while pre-optimizing your application to meet your distinct goals—whether that’s high throughput, low energy consumption, security, or all three.
This middleware supports the firmware developer and the mobile developer, while also simplifying the overall system architecture encompassing both worlds. In short, middleware allows any developer to create dependable, optimized BLE systems without becoming (or hiring) experts. In a sense, the middleware is your expert. And with middleware taking the mystery out of Bluetooth Low Energy development, your team can focus on the features that make your product extraordinary.