Posts by Mohammad Afaneh
Native vs. Cross-Platform Bluetooth Low Energy Mobile App Development
This post comes straight from the Bluetooth Developer Academy community forums. It all started with this simple question from one of the Academy members: We are planning to start making an app for Android phones and iPhones from scratch and wondering what BLE developers’ thoughts on language choice are. I believe the most common language (for BLE app development)…
Read MoreThe World’s First Programming-Free Bluetooth Beacon Platform
This article/video is sponsored by InPlay, Inc. However, the opinions expressed by the author are his own and were not influenced by the sponsor. Introduction In some cases, you may want to build a very simple Bluetooth Low Energy device that sends out sensor data like a temperature reading or the state of a particular…
Read MoreIntroducing the Nordic nRF5340 LE Audio Development Kit
Introduction In this week’s post/video, we cover the newest development kit from Nordic Semiconductor: the nRF5340 LE Audio development kit, which was released today (May 10, 2022). You can learn more about the development kit here. LE Audio represents the next generation of Bluetooth audio! It requires support for an optional feature that was introduced…
Read MoreImplementing Nordic nRF52 OTA DFU over Bluetooth LE – Part 4
In a few previous posts (Part 1, Part 2, and Part 3), we covered the basics of designing a secure Over-the-Air Device Firmware Update (OTA DFU) process, an overview of the Nordic nRF52 OTA DFU process, as well as testing out one of the DFU examples included in the nRF5 SDK. In this tutorial, we…
Read MoreWhat’s the Maximum Data Size you can send in a Bluetooth Advertising Packet?
In a couple of previous posts (here and here), we covered the basics of Bluetooth Low Energy (BLE) advertising and advertisement packets. In this post, we’ll go into more depth on Bluetooth advertisements and specifically the advertising packet payload and the maximum amount of data you can send out in the payload. Bluetooth beacons are…
Read MoreBluetooth vs. Bluetooth Low Energy: What’s the Difference? [2022 Update]
First, a Short Story… Before I dive into the meat of the topic (Bluetooth Low Energy vs. Bluetooth Classic), I’d like to tell you a little story… A few years ago (circa 2012), a friend of mine came to me with an idea that he wanted to partner with me on developing. At that time,…
Read MoreHow to Manage Multiple BLE Peripherals in iOS [SwiftUI]
This tutorial is an excerpt from a course available within the Bluetooth Developer Academy, developed in collaboration with Anas Imtiaz, Ph.D. For the purpose of this tutorial (separated into two parts), our goal is to create an iOS app that can manage multiple BLE peripherals. Our example will be an app that can be used…
Read MoreHow Bluetooth Low Energy Works: Advertisements (Part 2)
In this week’s post, we’ll continue our discussion on Bluetooth Advertisements (first part here) and cover them in a bit more detail. Bluetooth Advertisements are crucial for any BLE device since they are utilized for all types of applications, whether that’s a device that allows connections or one that simply advertises its presence and includes…
Read MoreIntroduction to BLE Mobile Development [iOS] – Part 2
This post is an excerpt from a course developed by Anas Imtiaz, Ph.D. which is available within the Bluetooth Developer Academy. In a previous post (Introduction to BLE Mobile Development for iOS), we covered: Setting up Xcode for BLE development Bluetooth permissions Scanning for BLE peripherals Connecting to a BLE peripheral In today’s post, we…
Read MoreHow Bluetooth Low Energy Works: 21 Interesting Facts
Whether you’re a beginner or an expert in Bluetooth Low Energy development, it’s always good to take a step back and revisit some of the basics and facts. In this post, I’ll be going through a list of 21 facts about Bluetooth Low Energy technology. You may know about all of these, but it’s always…
Read MoreHow Bluetooth Low Energy Works: Advertisements (Part 1)
To fully understand advertisements in BLE, we need to take a step back and learn about one of the layers within the architecture of BLE: the Generic Access Profile (GAP). GAP provides a framework that defines how BLE devices interact with each other. This includes: Roles of BLE devices Advertisements (Broadcasting, Discovery, Advertisement parameters, Advertisement…
Read MoreA Deep Dive Into Eddystone Beacons (nRF52 + Zephyr use case)
As a continuation of our series on Bluetooth beacons (part 1 here, part 2 here, and part 3 here), today we’ll be covering Google’s Eddystone standard in more detail along with implementation. The Eddystone standard was released as an alternative and competitor to Apple’s iBeacon standard. It provides similar functionality to iBeacon, but also goes…
Read MoreBluetooth Addresses & Privacy in Bluetooth Low Energy
Like a MAC address for LAN-connected devices, Bluetooth devices also have an identity address associated with each device. Understanding how Bluetooth addresses work is crucial for every BLE developer, especially when device privacy is a concern. So, what is a Bluetooth Address? A Bluetooth address sometimes referred to as a Bluetooth MAC address, is a…
Read MoreA Deep Dive into BLE Packets and Events
In BLE, there are many events and operations that can be exchanged between a Peripheral and a Central. Understanding these events is imperative for any BLE developer, and there are two aspects to achieving this: Learn the concepts in theory. Learn by analyzing them using a Bluetooth analyzer (sniffer) captures. I believe these two methods…
Read MoreGetting Started with the New Silicon Labs BG22 Chipset
Today (March 23, 2020), Silicon Labs released the next generation of their Bluetooth SoCs: the EFR32BG22 chipset family. The chipset features an ARM Cortex-M33 which supports the latest version of Bluetooth: version 5.2 (including features from versions 5.1 and 5.0). More importantly, the chipset features the following enhancements: Significantly lower power consumption compared to the…
Read MoreIntroduction to BLE Mobile Development [iOS]
This tutorial represents a small portion of a complete course on BLE development for iOS in the Bluetooth Developer Academy. The course was developed in partnership with Anas Imtiaz, PhD. In this tutorial, we will look at developing iPhone/iPad apps that interface with a Bluetooth Low Energy peripheral to send/receive data. We will start by…
Read MoreThe Ultimate Guide to What’s New in Bluetooth version 5.2
Introduction A couple of months ago at CES 2020 (January 2020), the Bluetooth SIG introduced the latest version of Bluetooth, version 5.2. This announcement was made alongside the announcement of the next generation of Bluetooth audio, named: LE Audio. The major change introduced in version 5.2 is a new feature called Isochronous Channels (ISOC). ISOC…
Read MoreImplementing Bluetooth Beacons (iBeacon) – nRF52 use case
Introduction As a continuation of our series on Bluetooth beacons (part 1 here and part 2 here), today we cover Apple’s iBeacon standard in a bit more detail. iBeacon is especially useful for deploying location-awareness applications and monitoring user behavior within an area. It was introduced in iOS 7 and utilizes Bluetooth Low Energy (BLE)…
Read MoreUnderstanding the “SweynTooth” BLE Vulnerabilities
About two weeks ago (February 11, 2020), a group of Singaporean researchers released a group of vulnerabilities discovered in quite a few BLE vendor SDKs. They named the group of vulnerabilities “SweynTooth“. Here’s their explanation: The insight behind the name SweynTooth arrives from Sweyn Forkbeard, the son of King Harald Bluetooth (after whom the Bluetooth…
Read MoreAn overview of Bluetooth Beacons – Part 2
Bluetooth beacons are alive and well due to the low cost and widespread usage in commercial spaces like retail stores and logistics. The technology itself has been around for a while but gained widespread awareness when Apple released its iBeacon protocol in 2013. Since then, adoption and uses have increased as businesses and developers come…
Read More