Tutorials
How 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 MoreHow to build the simplest nRF52 BLE Central (Lightbulb use case)
In any BLE application, there are (at least) two devices involved: a BLE Peripheral device and a BLE Central device. Usually, the BLE Central is a smartphone, but that doesn’t mean it has to be! What if: you do not want to have to launch an app everytime you want to control a BLE Peripheral?…
Read MoreThe complete cross-platform nRF development tutorial
In a previous blog post (The complete nRF Mac development tutorial), I went over how to set up your nRF development environment using the NetBeans IDE on a Mac. The beauty with NetBeans is that it’s cross-platform and customizable to fit your needs. I had been using NetBeans for over a decade, so I was very comfortable…
Read MoreHow to build the simplest nRF52 BLE Peripheral application (Lightbulb use case)
Let’s face it… One of the hardest things when working with BLE is simply getting started. Whether it’s the setup of the IDE, the configuration of the project, or the implementation the BLE application. I’ve been there… I’ve felt lost, not knowing where and how to start… This is especially true since I was trying…
Read MoreThe Ultimate Bluetooth Mesh Tutorial (Part 1)
Bluetooth has been around for a while. In fact, it recently celebrated its 20th year anniversary! The introduction of the Bluetooth Low Energy (BLE) standard came in 2010 to address the rapid growth of use cases in the Internet of Things (IoT) field including sensors, wearables, medical devices, etc. However, one thing that BLE lacked…
Read MoreThe Ultimate Bluetooth Mesh Tutorial (Part 2)
In last week’s tutorial (The Ultimate Bluetooth Mesh Tutorial (Part 1)) in this series on Bluetooth mesh, we covered the following: Basics of Bluetooth mesh Terminology: nodes, elements, states, properties, messages, addresses, publish-subscribe, and managed flooding. In this week’s tutorial, we’ll continue by covering a few more concepts within Bluetooth mesh, including: Models Scenes Types…
Read MoreThe Ultimate Bluetooth Mesh Tutorial (Part 3)
In this post, we’re continuing our tutorial series on Bluetooth mesh (you can find part 1 here and part 2 here). This will be the final post that will cover “theory only” content — in the upcoming posts we’ll start digging into more practice by implementing a Bluetooth mesh example on the Nordic nRF52 series platform.…
Read MoreThe Ultimate Bluetooth Mesh Tutorial (Part 4)
This week we will continue our tutorial series on Bluetooth mesh. Here’s where you can find part 1, part 2, and part 3. But before we get into the practical implementation of an example on the nRF52 series platform, let’s better understand how Bluetooth mesh works on the platform. We’ll go over: The basics and architecture…
Read MoreThe Ultimate Bluetooth Mesh Tutorial (Part 5)
In the last post in this series on Bluetooth mesh (found here), we provided a high-level overview of the nRF5 SDK for Bluetooth mesh. We also listed the different examples provided as part of the Nordic SDK. The most complete of these examples is the lighting example, and this is the one we’ll go forward…
Read MoreThe Ultimate Bluetooth Mesh Tutorial (Part 6)
Now that we’ve covered the basics of Bluetooth mesh and also gone over how to run a simple example on the nRF52 platform, it’s time for us to dig deeper into the source code of each type of device/node involved in a mesh network. If you missed the previous posts in this series, you can find…
Read MoreThe nRF52840 USB Dongle Tutorial (Part 1)
When it comes to Bluetooth Low Energy modules, chipsets and development kits, prices are only getting lower. Take for example the new nRF52840 USB dongle. The dongle costs only $10 and can serve as a great development kit with a few I/O peripherals including one button, two LEDs (one green, one RGB), and 15 GPIO pins.…
Read MorenRF52 Development using Visual Studio Code [macOS]
Introduction When it comes to IDEs and advanced text editors we, developers, have so many choices… probably too many! But that’s not necessarily a bad thing. Having these many choices can be overwhelming, and if you’re a tools geek like me, you end up spending hours and hours just exploring and trying out new tools…
Read MoreZephyr Tutorial: Bluetooth Low Energy Development
What is the Zephyr Project? Zephyr is an open-source real-time operating system (RTOS) meant for use on resource-constrained embedded systems. This can range from simple sensor devices without connectivity to much more complex IoT devices such as smartwatches and medical devices. Zephyr is a Linux Foundation project that is backed by many members including Intel, NXP Semiconductors, Synopsys, Linaro, Texas…
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 More