Skip to content

Examples for the Dialog Smartbond Bluetooth low energy families based on the SDK6

License

Notifications You must be signed in to change notification settings

iizq/BLE_SDK6_examples

 
 

Repository files navigation

Smartbond SDK6 Application Examples

This is the repository storing example for the DA145xx family.

For information about the DA145xx platform and how to bring up your development kit, please refer to the Getting started User Manual

Examples Overview

Module DA14531 Pro Dev Kit DA14585 Pro Dev Kit DA14585 Basic Kit DA14531 USB Kit Example name Key Words Example Description
✔️ ✔️ active_scanner scanning mode - advertising data - UART This example shows how to setup the DA145xx device in active scanning mode,  On advertising data report, the data is formatted and pushed on the UART
✔️ ✔️ advertising button - advertising - Sleep- Wakeup up This example shows how to Use a button to switch between advertising methods, Go for sleep and wakeup , Timer callback is used
✔️ ✔️ burst_adv Burst advertising - UART This is a simple example showing how to implement 'burst' advertising on the DA14531 and DA14585/6 devices
✔️ ✔️ button_Wakeup notification - BLE -Button presses This example shows how to configure a DA14531 or DA14585/586 device to send notifications to a BLE central by button presses
✔️ ✔️ pressure_sensor BLE- PRESSURE 5 CLICK Board™ This is Simple example showing how to interface the DA14585/586 and DA14531 with the PRESSURE 5 CLICK Board™
✔️ ✔️ ble_temperature MCP9808-  Thermo 8 click board -I2C This is Simple example showing how to interface the DA14585/586 and DA14531 with the Thermo 8 click board™
✔️ BLE2IR Remote Control Unit This example provides an implementation of a Simple RCU using a custom BLE profile
✔️ ✔️ ble-Midi  MIDI - BLE This example shows how to  create MIDI service on DA145xx BLE device
✔️ ✔️ ✔️ central BLE-Central This project is intended to illustrate to the user How to scan for peer devices and how to parse advertisement data during the scan process + BLE connection
✔️ ✔️ central_Security pairing - encryption -bonding The main example purpose is to demonstrate the basic pairing, encryption and bonding process on central side
✔️ hibernation Hibernation- State aware hibernation This example demonstrates the  Hibernation and the State aware hibernation features on the DA14531
Connectivity ✔️ ✔️ ✔️ ibeacon iBeacon- payload parameters -advertising interval, UUID This is an  iBeacon implementation for the DA14531, DA14585/DA14586
✔️ ibeacon_Optim ibeacon - power optimization The example demonstrates an optimized software implementation for ibeacon on the DA14531
✔️ ✔️ multi_con_periph Central - peripheral- connection This example demonstrates how a single peripheral can be connected to more than one central.
✔️ ✔️ multirole Central- peripheral - scan-advertise roles The example demonstrates the capabilities of the DA14531/585/586 as a Central and a peripheral i.e. scan and advertise role
✔️ ✔️ scan_request_track scan- central -track This example demonstrates how a peripheral device can track if it is scanned and which central device performs the scanning procedure
✔️ ✔️ simple_beacon Beacon- Non-Connectable Advertising The main purpose of this Software Εxample is to demonstrate creating a Non-Connectable Advertising application example
✔️ ✔️ svc_data_beacon Beacon- Non-Connectable Advertising - UUID The main purpose of this software example is to demonstrate creating a Non-Connectable Advertising application example that includes service data. Specifically, this example illustrates the idea of including Service Data from a 16-bit UUID as defined by the Bluetooth SIG
✔️ Quuppa Tag Emu  Quuppa Intelligent Locating System™- real-time location-BLE-Tag this is the  QUUPPA Tag Emu Demo on the DA14531
✔️ ✔️ Coexistence WiFi coexistence -BLE The example provides guidelines on how the WiFi coexistence feature can be enabled on the SDK
Features ✔️ ✔️ L2CAP L2CAP- DLE-throughput This project is intended to illustrate to the user how to do a peer feature request for determining peer DLE capability
and how to request DLE and utilize larger packets to enhance throughput
✔️ ✔️ ✔️ reset_Indication Reset - source The current SW example demonstrates how to issue and identify the different kinds of reset on the DA14531 and DA14585/586 devices as well as identifying if the device run into a Hardfault or an NMI interrupt.
✔️ ✔️ ✔️ social-distancing DA14531 - social distancing (SDT) This example configures a DA14531 device to be used for social distancing purposes
✔️ Timer1 Timer 1 -DA14531 This software example demonstrates the usage of the TIMER1 hardware block. The SW example exposes the basic functions that TIMER1 offers
Helpers ✔️ usb_preloaded USB- DA14531-  OTP unique random address - BD address - UART print The main purpose of this software example is to provide the source files containing the firmware for the preloaded binary in the DA14531 USB kit.
Interfaces ✔️ ✔️ accel-Sensor  I2C accelerometer -BLE notifications This example shows how to acquire data from an I2C accelerometer and send the measurements with BLE notifications using a DA14531 or DA14585/586 device
✔️ external-processor STM32- DA14531 RAM - External MCU The goal of this example is to show how to load a program into the RAM of the DA14531 via a STM32 microcontroller
✔️ ✔️ HID-Gamepad  HID gamepad - BLE HOGPD profile. A DA14585/6 HID gamepad demo project. Used to demonstrate the usage of HID features over BLE with HOGPD profile.
✔️ MCube-Accel I2C- MC36xx (MC3672/35) accelerometers. Sample software application to interface Dialog DA14585/586 BLE SoC's with mCube MC36xx (MC3672/35) accelerometers.
✔️ ✔️ ✔️ segger_rtt Segger RTT This example illustrates to the user, how to use SEGGER RTT in conjunction with the DA145xx family.
✔️ ✔️ ✔️ simple_button Button - Press - UART This example shows How to configure a button for short press and long press
✔️ SPI-_I2C_DMA  SPI - I2C to interface with the LIS2DH acceleromete This example demonstrates how to use SPI or I2C to interface with the LIS2DH acceleromete
✔️ wakeup_ext_timer Eddystone beacon- TPL5010EVM - Wakeup This example configures a DA14531 device to be used as an Eddystone beacon.
✔️ ✔️ ✔️ wakeup-button SW2-SW3 button -wakeup up This example shows how to wake up using two possible sources, button SW2 or button SW3.
it shows how  to detect the source, button SW2 or button SW3.
✔️ ✔️ I2C-Master-Slave I2C - Master-slave This example describes how to perform I2C data buffer transmission/reception between two boards in asynchronous mode (non-blocking communication). The project is split in two parts: the Master Board and the Slave Board.

Example usage


To run any of these SW examples, the user needs:
  • DA14531/DA14585/DA14586 hardware.
  • Keil µvision.
  • Dialog SDK 6.0.14 available
  • Python script

Begin by cloning this repository locally and then link the SW example to the SDK. Below is the description on how to use the python script to link the SDK and the SW example, and to clean the SW example project environment (remove absolute paths).

Note: It is highly recommended the user creates files that are added in the src folder of the SW example. By default, the Python script does not process user files located outside the src folder. You are free to create any folder under the src user space. You need to make sure the new folder path under src is added in the Keil project as a relative path.


Linking the project environment and the Dialog 6.0.14 SDK


Note: Linking the SW example project environment and Dialog 6.0.14 SDK adds absolute file paths to files in your SW example project environment path containing information about your system’s folder structure.

If the repository is cloned inside the SDK's project folder then by default all the projects are linked to that SDK given that the folder structure looks like "..\6.0.14.1114\projects\BLE_SDK6_examples".

The Python script also supports cleaning these absolute file paths.See “Cleaning the project environment”.


Below are the steps to link all the SW example project environments to the 6.0.14 SDK. This script will also copy project folders into SDK location at projects_github.

  1. Python 3.6 or higher is required to run the small example environment generation script. Python can be downloaded from Python.org.

  2. Navigate to the main page of the github SDK6 examples repository and download the SW example. You can do so by clicking on "Code" and selecting "Download Zip", or use the HTTPS or SSH to clone the repository to your local.

  3. Extract the zip file.

  4. To link all projects to the SDK run the script from the current location. To link a particular project copy the python script in that project's project_environment folder and run the script there.

  5. Open a terminal and run:

    > python dlg_make_keil5_env_v2.000.py -sdkpath “<path to your sdk repository>

    For instance to link all projects:

    > ..\BLE_SDK6_examples> python dlg_make_keil5_env_v2.000.py -sdkpath “C:\dev\6.0.14”

    For instance to link a single projects:

    > ..\connectivity\active_scanner\project_environment> python dlg_make_keil5_env_v2.000.py -sdkpath “C:\dev\6.0.14”
  6. The script should indicate successful execution, as shown below,


Cleaning the project environment


Linking the project adds absolute paths to the project files, pointing them to the 6.0.14 SDK and adding projects in SDK location under folder projects_github. The clean functionality removes these absolute paths. Since absolute paths contain intermediate directory names, the clean command makes sure these intermediate directories are not shared with internal and external application users.

Example: After linking, C:\Users\Your_name\Upcoming_project\Keil_5 reveals the user’s name and the name of the project the user is working on. Below are the steps to clean the SW example project environment.


  1. Python 3.6 or higher is required to run the small example environment generation script. Python can be downloaded from Python.org.

  2. Navigate to the main page of the github SDK6 examples repository and download the SW example. You can do so by clicking on "Code" and selecting "Download Zip", or use the HTTPS or SSH to clone the repository to your local.

  3. Extract the zip file.

  4. Open a terminal and run:

    > python dlg_make_keil5_env_v2.000.py -sdkpath “clean”
  5. The script should indicate successful execution, as shown below,



Example compatibility

Not all the examples will run on the latest version of the SDK6, the tested version is indicated in the Readme. If you find and example that needs porting to the latest version please report it in the issues.

About

Examples for the Dialog Smartbond Bluetooth low energy families based on the SDK6

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C 99.3%
  • Other 0.7%