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
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. |
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.
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.
-
Python 3.6 or higher is required to run the small example environment generation script. Python can be downloaded from Python.org.
-
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.
-
Extract the zip file.
-
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.
-
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”
-
The script should indicate successful execution, as shown below,
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.
-
Python 3.6 or higher is required to run the small example environment generation script. Python can be downloaded from Python.org.
-
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.
-
Extract the zip file.
-
Open a terminal and run:
> python dlg_make_keil5_env_v2.000.py -sdkpath “clean”
-
The script should indicate successful execution, as shown below,
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.