This tutorial aims to provide a quick introduction to the Renesas SmartBond™ SDK6, while simultaneously demonstrating how to implement some basic functionality.
The hope is that this tutorial will help users to quickly understand the SDK6 structure and foundational concepts.
You are expected to have elemental knowledge of C programming, but you do not need to have any prior knowledge of Bluetooth®.
In this document:
DA1453x is referring to DA14531-00, DA14531-01, DA14530, DA14535 and DA14533
The DA14531-00 is the main DA14531 device. The -00 is just a new naming to introduce the variant DA14531-01. The DA14531-01 is a ROM variant of the main DA14531-00.
The DA14535 is a DA14531 upgrade.
The DA14533 is optimized for automotive and industrial applications at higher temperatures, and it is rated as operating up to 105 ºC and compliant with the AEC-Q100 (Grade 2) standard.
DA1458x is referring to DA14585 and DA14586.
The tutorial uses a sample application in the SDK6 as a starting point and expands this application step by step.
It is recommended that you follow along, but you should be able to select a specific topic from the index and manage to consume the tutorial in a piecemeal fashion.
The Renesas SDK6 supports the following SmartBond™ devices (Click on a device to download the datasheet):
The Renesas SmartBond™ SDK6 provides a rich set of high level APIs, facilitating accelerated firmware development without compromising on code and power efficiency.
You can download the latest version from SDK6
GCC & SDK6
Though SDK6 offers support for GCC, this tutorial will primarily focus on development using Keil µVision®, which is license free for code sizes below 32kBytes. You can find further details regarding the use of GCC and the Eclipse IDE later in the tutorial. Note that it should be possible to follow along regardless of the IDE and compiler you are planning to use.
The SDK6 consists of a simple folder structure and each sample project uses relative paths for ease-of-use.
The SDK6 has a clear separation of user space and SDK6 space, simplifying project porting between SDK6 releases.
A simple naming convention allows for easy distinction between user files and SDK6 files.
The SDK6 implements the main execution loop.
This loop manages the foundation of the implementation including the complex sleep architecture.
SDK6 File Integrity
The user is expected to Avoid placing code directly in the main execution loop. Instead, concentrate on creating and implementing event handlers to shape your application.
To reiterate:
The user should not directly implement code in the main execution loop!
The SDK6 handles the complex sleep functionality. The user can cancel and resume sleep functionality, but the SDK6 is ultimately responsible for the decision making!
The user implementation is limited to handling various events. Events are triggered by BLE activities, timer timeouts, and various callbacks from the main execution loop!
Working with Bluetooth® requires access to some type of generic GATT explorer tool that supports features such as:
Scanning for Bluetooth® LE devices
Establishing Bluetooth® connection with a specific device
Discovering and interacting with GATT services
There are numerous options when it comes to GATT explorer tools. Until recently, these tools have mostly been supported via smartphone apps or through specific hardware connected to a PC.
Recently, the Chrome Browser on Windows and MAC books offer GATT exploration using the native Bluetooth® hardware on those platforms. Below is a subset of options: